LeanCore

LeanCore is server-side memory governor for Hytale. Unloads idle map regions, trims view radius under heap pressure, and learns which zones get revisited so it keeps the ones you actually use.
Back to Files

LeanCore-1.2.1.jar

File nameLeanCore-1.2.1.jar
Uploader
DurkzPRGDurkzPRG
Uploaded
Jun 9, 2026
Downloads
15
Size
190.9 KB
File ID
8219615
Type
R
Release
Supported game versions
  • 0.5

What's new

## 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**

This mod has no related projects