Server documentation
LeanCore
ActiveHytale • Version 1.7.0
Установка, команды, конфиг, права, профиль LITE, предиктивное удержание, модель движения, HUD, heatmap и zone pin для LeanCore.
Установка, команды, конфиг и права для LeanCore.
Обзор
LeanCore создан, чтобы снижать использование JVM heap на серверах Hytale. Пока игроки исследуют мир, каждая область, которой они касаются, держит свои чанки и сущности в памяти, а движок медленно их освобождает, поэтому heap растёт и остаётся высоким ещё долго после того, как все ушли. LeanCore решает, что остаётся загруженным, а что выгружается, моделируя, где находятся игроки, куда они направляются и в какие части карты они действительно возвращаются. Сколько именно памяти он освобождает, зависит от мира, а выгрузка чанков начинается только после /leancore probe. Embedded solo использует профиль LITE с реальным губернатором, адаптивным view, AFK reclaim и demand learning по умолчанию. STANDARD и FULL добавляют bandit, holdout и полные пути при включении. Начиная с 1.6.0, модель движения на игрока делает предиктивное удержание зон (unload смещается от направления игрока, текущий/прогнозируемый view никогда не выгружается), а модель reuse-distance + выживаемости подстраивает dormancy для каждой зоны. Включает Activity Sense, /leancore savings, probe gate, dedicated bootstrap, всегда включённую диагностику [diag], snapshot v8 (gzip + prune, совместим с v7) и dispatch на world thread. Требует сервер Hytale >=0.5.6. Не влияет на FPS, GPU и TPS клиента.
Установка
- Скачайте LeanCore-1.7.0.jar на вкладке Files CurseForge
- Положите JAR в папку mods/ сервера
- Запустите сервер. Конфиг: mods/durkz_LeanCore/LeanCore.json
- Выполните
/leancore probe, если нужен unload чанков (LITE или STANDARD/FULL) - Выдайте staff доступ HUD/admin (см. Права)
- Выполните
/leancore memoryи/leancore statusчерез минуту
Профили на embedded host
| Игроки | Профиль | Tick | Что работает |
|---|---|---|---|
| 1 (solo local) | LITE | 30s (60s idle) | Lite губернатор, адаптивный view, AFK unload, lite learning |
1 + embeddedStandardProfile | STANDARD | 15s | Локальный dogfood без FULL tick 5s |
| 2–8 (друзья) | STANDARD | 15s | Классификатор; govern/learning/HUD при включении |
| 9+ (плотный local) | FULL | 5s | Полный runtime по конфигу |
| Dedicated JVM | FULL | 5s | Полный runtime по конфигу |
Конфиг: localHostMode: "AUTO" (по умолчанию). "PASSIVE" отключает фоновые ticks. dedicatedServerMode: true на dedicated JVM.
Лог (solo): LeanCore 1.7.0 setup (localHostMode=AUTO). и Runtime started profile=LITE. Друг заходит → profile LITE -> STANDARD.
Профиль LITE (embedded solo)
| Функция | Поведение |
|---|---|
| Адаптивный view | 100% в COMFORT до давления чанков или heap; мягкие срезы в WATCH; агрессивно только в TIGHT/CRITICAL |
| Двойные сигналы | Tier heap JVM + давление чанков (loaded / view budget) |
| AFK unload | Dormant/frozen зоны в idle; probe gate; governEnabled не нужен |
| Learning | liteLearningEnabled=true по умолчанию; demand влияет на срезы view; без bandit в LITE |
| Бюджет tick | Тяжёлая работа на heap sample (~60s), dispatch на world thread |
STANDARD/FULL: view-radius и unload по-прежнему требуют governEnabled, learningEnabled и unloadEnabled.
Возможности
- Профили runtime:
LITE,STANDARD,FULL - LITE губернатор в соло: адаптивный view, понижение зон, AFK unload, demand learning
- Tiers heap: COMFORT, WATCH, TIGHT, CRITICAL с rollback
- Dormancy зон: HOT, WARM, DORMANT, FROZEN
- Предиктивное удержание (1.6,
motionModelEnabled): модель движения на игрока смещает unload от направления; текущий/прогнозируемый view никогда не выгружается - Модель reuse-distance + выживаемости (1.6,
zoneReuseModelEnabled): учится повторно посещаемым зонам и подстраивает пороги dormancy для каждой зоны - Диагностика всегда включена (
diagnosticLogEnabled): сводки старта/остановки и логи решений[diag]по профилю - Кинематографичный буст view (1.6,
motionViewRadiusBoostEnabled, opt-in): поднимает дистанцию обзора для быстро движущихся; выключен по умолчанию - Session savings, probe gate, HUD, heatmap, zone pin
Команды
Основная команда: /leancore
| Команда | Доступ | Описание |
|---|---|---|
/leancore status | Все | Профиль, preset, tier, lite flags, unload gate |
/leancore memory | Все | Снимок heap |
/leancore savings | Все | Heap сессии, lite/standard губернатор |
/leancore learn | Все | Диагностика; LITE показывает только demand model |
/leancore learn player | Все | Features, posterior, EMA активности |
/leancore probe | Все | Probe S1–S5 |
/leancore status
/leancore memory
/leancore savings
/leancore zones
/leancore learn
/leancore learn player
/leancore probe
/leancore hud on|off|status
/leancore heatmap [limit]
/leancore zone pin|unpin|pins
Права
| Право | Описание |
|---|---|
durkz.leancore.hud | HUD памяти (/leancore hud …) |
durkz.leancore.admin | Heatmap, zone pin, admin tools |
Конфигурация (LeanCore.json)
Путь: mods/durkz_LeanCore/LeanCore.json
| Ключ | По умолчанию | Описание |
|---|---|---|
localHostMode | AUTO | AUTO, PASSIVE или FULL |
governEnabled | false | Губернатор STANDARD/FULL |
learningEnabled | false | Learning STANDARD/FULL |
unloadEnabled | false | Unload STANDARD/FULL |
unloadProbeGateEnabled | true | Блокирует unload до probe |
liteMemoryGovernorEnabled | true | Lite губернатор в соло |
liteLearningEnabled | true | Demand model + persistence в соло |
liteViewRadiusEnabled | true | Адаптивный view в соло |
liteUnloadEnabled | true | AFK reclaim в соло |
liteUnloadIdleSeconds | 180 | Idle до lite sweeps |
motionModelEnabled | true | Модель движения + предиктивное удержание |
zoneReuseModelEnabled | true | Reuse-distance + выживаемость; пороги dormancy по зоне |
motionViewRadiusBoostEnabled | false | Кинематографичный буст view (opt-in) |
diagnosticLogEnabled | true | Логи [diag] сессии/решений всегда включены |
dormantAfterMinutes | 8 | WARM → DORMANT |
frozenAfterMinutes | 20 | → FROZEN |
Снимок: mods/durkz_LeanCore/learning.state.gz (v8, gzip; читает v7). HUD: mods/durkz_LeanCore/hud.state.
Рекомендации
- Соло / локально:
localHostMode: AUTO. LITE включён по умолчанию. - Dedicated или друзья: включите govern/learning/unload по необходимости; выполните
/leancore probeперед policy unload.
Проверка
- Лог:
LeanCore 1.7.0 setupиprofile=LITEв соло /leancore status:profile LITE, lite flags включены/leancore savings:lite governor ONчерез ~60s в соло- Друг заходит →
profile LITE -> STANDARD - При включённом unload,
/leancore probe→ gate открыт
Лицензия
MIT License. Copyright (c) 2026 DurkzPRG