Server documentation
LeanCore
ActiveHytale • Version 1.7.0
Instalação, comandos, config, permissões, perfil LITE, retenção preditiva, modelo de movimento, HUD, heatmap e zone pin do LeanCore.
Instalação, comandos, config e permissões do LeanCore.
Visão geral
O LeanCore é feito para reduzir o uso de heap JVM em servidores Hytale. Conforme os jogadores exploram, toda área que tocam mantém seus chunks e entidades residentes na memória, e o engine é lento para liberá-los, então a heap sobe e fica alta muito depois de todo mundo ter saído. O LeanCore decide o que continua carregado e o que é liberado, modelando onde os jogadores estão, para onde estão indo e quais partes do mapa eles realmente revisitam. O quanto ele libera depende do mundo, e o unload de chunks só começa depois do /leancore probe. Solo embutido usa perfil LITE com governador real, view adaptativa, reclaim AFK e learning de demanda ligado por padrão. STANDARD e FULL adicionam bandit, holdout e caminhos completos quando habilitados. A partir da 1.6.0, um modelo de movimento por jogador faz retenção preditiva de zonas (unload inclinado para longe de onde o jogador vai, view atual/prevista nunca descarregada) e um modelo de reuse-distance + sobrevivência ajusta a dormência por zona. Inclui Activity Sense, /leancore savings, portão de probe, bootstrap dedicado, diagnóstico [diag] sempre ligado, snapshot v8 (gzip + poda, compatível com v7) e dispatch na world thread. Requer servidor Hytale >=0.5.6. Não mexe em FPS, GPU ou TPS do cliente.
Instalação
- Baixe LeanCore-1.7.0.jar na aba Files do CurseForge
- Coloque o JAR na pasta mods/ do servidor
- Inicie o servidor. Config em mods/durkz_LeanCore/LeanCore.json
- Rode
/leancore probese depender de unload de chunks (LITE ou STANDARD/FULL) - Conceda acesso HUD/admin à staff (veja Permissões)
- Rode
/leancore memorye/leancore statusapós cerca de um minuto
Perfis em host embutido
| Jogadores | Perfil | Tick | O que roda |
|---|---|---|---|
| 1 (solo local) | LITE | 30s (60s idle) | Governador lite, view adaptativa, unload AFK, lite learning |
1 + embeddedStandardProfile | STANDARD | 15s | Dogfood local de govern/learning sem tick FULL 5s |
| 2–8 (amigos) | STANDARD | 15s | Classificador; govern/learning/HUD se habilitados |
| 9+ (local denso) | FULL | 5s | Runtime completo conforme config |
| JVM dedicada | FULL | 5s | Runtime completo conforme config |
Config: localHostMode: "AUTO" (padrão). "PASSIVE" desliga ticks de fundo. dedicatedServerMode: true em host JVM dedicado.
Log (solo): LeanCore 1.7.0 setup (localHostMode=AUTO). e Runtime started profile=LITE. Amigo entra → profile LITE -> STANDARD.
Perfil LITE (solo embutido)
| Recurso | Comportamento |
|---|---|
| View adaptativa | 100% em COMFORT até pressão de chunks ou heap; cortes leves em WATCH; agressivo só em TIGHT/CRITICAL |
| Sinais duplos | Tier de heap JVM + pressão de chunks (loaded / view budget) |
| Unload AFK | Zonas dormant/frozen em idle; portão de probe; não exige governEnabled |
| Learning | liteLearningEnabled=true por padrão; demand molda cortes de view; sem bandit em LITE |
| Orçamento de tick | Trabalho pesado na amostra de heap (~60s), dispatch na world thread |
STANDARD/FULL: view-radius e unload ainda exigem governEnabled, learningEnabled e unloadEnabled como antes.
Recursos
- Perfis de runtime:
LITE,STANDARD,FULL - Governador LITE solo: view adaptativa, demotion, unload AFK, demand learning
- Tiers de heap: COMFORT, WATCH, TIGHT, CRITICAL com rollback
- Dormência de zonas: HOT, WARM, DORMANT, FROZEN
- Retenção preditiva (1.6,
motionModelEnabled): modelo de movimento por jogador inclina o unload para longe do rumo; view atual/prevista nunca descarregada - Modelo de reuse-distance + sobrevivência (1.6,
zoneReuseModelEnabled): aprende zonas revisitadas e ajusta limiares de dormência por zona - Diagnóstico sempre ligado (
diagnosticLogEnabled): resumos de início/fim e logs de decisão[diag]por perfil - Boost cinematográfico de view (1.6,
motionViewRadiusBoostEnabled, opt-in): sobe a view distance para quem se move rápido; desligado por padrão - Session savings, probe gate, HUD, heatmap, zone pin
Comandos
Comando principal: /leancore
| Comando | Acesso | Descrição |
|---|---|---|
/leancore status | Todos | Perfil, preset, tier, flags lite, portão unload |
/leancore memory | Todos | Snapshot de heap |
/leancore savings | Todos | Heap da sessão, governador lite/standard |
/leancore learn | Todos | Diagnósticos; LITE mostra só demand model |
/leancore learn player | Todos | Features, posterior, EMAs de atividade |
/leancore probe | Todos | 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
Permissões
| Permissão | Descrição |
|---|---|
durkz.leancore.hud | HUD de memória (/leancore hud …) |
durkz.leancore.admin | Heatmap, zone pin, ferramentas admin |
Configuração (LeanCore.json)
Caminho: mods/durkz_LeanCore/LeanCore.json
| Chave | Padrão | Descrição |
|---|---|---|
localHostMode | AUTO | AUTO, PASSIVE ou FULL |
governEnabled | false | Governador STANDARD/FULL |
learningEnabled | false | Learning STANDARD/FULL |
unloadEnabled | false | Unload STANDARD/FULL |
unloadProbeGateEnabled | true | Bloqueia unload até probe passar |
liteMemoryGovernorEnabled | true | Governador lite no solo |
liteLearningEnabled | true | Demand model + persistência no solo |
liteViewRadiusEnabled | true | View adaptativa no solo |
liteUnloadEnabled | true | Reclaim AFK no solo |
liteUnloadIdleSeconds | 180 | Idle antes de sweeps lite |
motionModelEnabled | true | Modelo de movimento + retenção preditiva |
zoneReuseModelEnabled | true | Reuse-distance + sobrevivência; limiares de dormência por zona |
motionViewRadiusBoostEnabled | false | Boost cinematográfico de view (opt-in) |
diagnosticLogEnabled | true | Logs [diag] de sessão/decisão sempre ligados |
dormantAfterMinutes | 8 | WARM → DORMANT |
frozenAfterMinutes | 20 | → FROZEN |
Snapshot: mods/durkz_LeanCore/learning.state.gz (v8, gzip; lê v7). HUD: mods/durkz_LeanCore/hud.state.
Recomendado
- Solo / local:
localHostMode: AUTO. LITE ligado por padrão. - Dedicado ou amigos: habilite govern/learning/unload conforme precisar; rode
/leancore probeantes de unload por política.
Verificando
- Log:
LeanCore 1.7.0 setupeprofile=LITEno solo /leancore status:profile LITE, flags lite ligadas/leancore savings:lite governor ONapós ~60s no solo- Amigo entra →
profile LITE -> STANDARD - Com unload habilitado,
/leancore probe→ portão abre
Licença
MIT License. Copyright (c) 2026 DurkzPRG