promotional bannermobile promotional banner

LeanCore

LeanCore keeps Hytale server RAM under control: idle map areas cool off, view distance trims when heap is tight, chunks unload when nobody needs them, and retention weights learn from player activity.

File Details

LeanCore-1.5.0.jar

  • R
  • Jun 15, 2026
  • 241.98 KB
  • 21
  • 0.5

File Name

LeanCore-1.5.0.jar

Supported Versions

  • 0.5

Changelog (1.5.0)

Added

  • LITE memory governor on solo embedded (liteMemoryGovernorEnabled, default on): view scaling, zone demotion, and unload sweeps without governEnabled
  • Adaptive view-radius in LITE (liteViewRadiusEnabled): COMFORT stays at 100% until chunk or heap pressure; gentle cuts in WATCH; aggressive only in TIGHT/CRITICAL
  • AFK chunk unload in LITE (liteUnloadEnabled): reclaims distant dormant/frozen zones when idle; probe gate still applies; no unloadEnabled required on solo
  • LITE learning (liteLearningEnabled, default on): demand model + gzip persistence on solo; no policy bandit or holdout in LITE
  • Lite config keys: liteViewPressureThreshold, liteViewComfortCapScale, liteViewWatchScale, liteViewTightScale, liteViewCriticalScale, liteMinClientViewRadius, liteViewRadiusLoginGraceSeconds, liteUnloadIdleSeconds, liteUnloadMaxChunksPerSweep
  • Dual pressure signals in LITE: JVM heap tier plus chunk saturation (loaded / view budget)
  • /leancore savings: lite governor block (preset, tier, lite flags, zone/chunk counters)
  • /leancore status: lite govern/view/learning/unload flags and lite unload gate line
  • /leancore learn: LITE footer clarifies demand-only learning on solo

Changed

  • Solo profile LITE now runs a full lite governor tick on the world thread (not dormancy sampling only)
  • Fresh LeanCore.json ships 1.5.0 defaults (lite*Enabled=true, STANDARD/FULL paths still off until you enable them)
  • Learning persistence interval defaults remain conservative for STANDARD/FULL; LITE flushes on its own path when liteLearningEnabled is on

Fixed

  • World-thread dispatch scoped per world (GovernorWorldContext); inline dispatch only when the target world matches
  • LITE governor tick runs entirely inside world.execute
  • Learning load hardening: invalid learning.state.gz quarantined; codec validation on read
  • LeanCore.json sanitization: invalid JSON quarantined, atomic save, caps on view/unload tuning keys

Notes

  • LITE unload still needs /leancore probe when unloadProbeGateEnabled is true (default)
  • LITE unload sweeps only run when heap tier is WATCH or worse and distant zones are dormant; COMFORT + low spread is normal with zero unload counts
  • STANDARD/FULL behavior unchanged: governEnabled, learningEnabled, unloadEnabled as before
  • Set embeddedStandardProfile: true only for dev dogfood of STANDARD on solo