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.2.1.jar

  • R
  • Jun 9, 2026
  • 190.88 KB
  • 14
  • 0.5

File Name

LeanCore-1.2.1.jar

Supported Versions

  • 0.5

## Changelog (1.2.1)

Includes everything planned for 1.2.0 (Activity Sense) plus 1.2.1 performance and classification fixes.

### Added

- **Activity Sense (ML)**: online multiclass softmax classifier trained from live ECS events
- **Block/tool context classifier**: item id, gather type, and block group label breaks/places (MINE, CHOP, FARM, BUILD)
- **New playstyle labels**: `MINER`, `LUMBERJACK`, `FARMER` alongside EXPLORER, BUILDER, FIGHTER, AFK
- **Per-activity EMA features**: mine, wood, farm, build, craft, combat rolling windows
- **Combat signal listener**: FIGHTER only from damage events, not generic block breaks
- **Craft signal**: `CraftRecipeEvent.Pre` feeds craft activity
- **Demand feature schema v2** (`demandDim=11`) with activity-specific EMAs
- **`/leancore learn player`**: activity EMAs and `activityModel=SOFTMAX` status
- Block break/place classify cache (`item + block` key) and gather-type cache per item id
- Recent activity window (last 16 actions) for fast MINER / LUMBERJACK / BUILDER switches
- Dirty flush for `learning.state` (skip disk write when nothing changed)
- Unit tests for block classifier, activity model, behavior posterior, and role switching

### Changed

- **Behavior posterior** uses ML softmax as primary path; EMA fallback before model warm-up
- **`learning.state` schema v4**: persists activity classifier weights and per-player activity EMAs (migrates from v3)
- `/leancore learn` reports `featureSchema=v2` when demand model is active
- Activity EMA half-life reduced to 20s; cross-inhibition when switching mine/chop/build
- ML training throttled to 80ms per player; LITE profile skips chunk probe on dormancy tick
- Hatchet and Hytale wood block ids recognized; pickaxe no longer matches chop heuristics

### Fixed

- **Mining with pickaxe no longer tagged as FIGHTER** (tool/block context; combat from damage only)
- Slow switch from MINER to LUMBERJACK after changing tools (e.g. pickaxe to Hatchet)
- Solo LITE EMA decay during block events (not only background tick)
- Stutter from per-break classify and ML train on the ECS thread

### Notes

- Activity ML runs in-process on the server JVM (no client mod)
- Heuristic teacher bootstraps softmax until `updates >= 8`
- Primary KPI: **server JVM heap**, not client FPS
- Upgrade path: **1.1.1 → 1.2.1**