Release notes
QuantumHy Changelog
ActiveHytale • Latest version 0.4.0
Changelog version 0.4.0
Added
- Hytale 0.7 support: built and tested on 0.7.0
- Client draw distance cap (
clientRenderCapEnabled): the client’s own draw distance and fog follow the trimmed radius, so it stops drawing what the server stopped sending - Strained-client easing (
clientStrainEnabled): a client that falls behind gets a tighter radius and a gentler chunk rate - Far effects budget (
effectBudgetEnabled): far particles and 3D sounds share a per-player budget; effects within 16 blocks always go through - LeanCore memory awareness (
leanCoreMemoryAware): tighter radius while LeanCore reports the heap as tight - Distant entity update throttle (
distantUpdateThrottleEnabled, off by default): fewer position updates for far entities - Item merge under pressure (
pressureItemMerge, off by default): dropped items merge from farther away while the server is under pressure
Changed
- Chunk-load thresholds sized for 0.7 terrain (2800 / 5900 sections); existing configs migrate on first start
Fixed
- View radius stuck at the minimum on 0.7: the radius grows again in open areas
Changelog version 0.3.0
Added
- Per-player opt-out: players can use
/q optimize offor/q optimize on; the choice persists inPlayerPreferences.json - Scoped status: regular players see their own optimization state, while admins and the server console keep the full runtime report
Changed
- Safer defaults: the global entity LOD override is now opt-in, normal decision logs require
verboseLog, and spawn hold remains disabled unless configured - Multi-world pressure: global LOD decisions now use the highest active world pressure instead of whichever world updated last
- Lifecycle cleanup: disconnects, empty servers, inactive worlds, and shutdown release player-specific overrides and clear session state
Fixed
- View-radius floor and delta: adaptive view radius respects the configured minimum, the player’s own ceiling, and
minViewRadiusDelta - Stationary density sampling: cached density expires after 15 seconds, so local changes are detected even when the player does not move
- Streaming recovery: catch-up, spawn-pause release, and shutdown restoration no longer leave temporary runtime limits behind
- Config recovery: missing or invalid keys are normalized and rewritten, while corrupt files are quarantined before defaults are saved
Changelog version 0.2.3
Added
- Update checker: on startup, QuantumHy reads the mod page and notifies operators or players with
durkz.quantumhy.adminwhen a newer JAR is listed. Opt out withcheckForUpdates: false
Changed
- Hot-path allocations: density scan weights are precomputed, entity-cap cull reuses scratch buffers, cull counters batch. Same config and LeanCore ownership
Fixed
/q perfis not a public subcommand. The local-only dev meter stays in the class if a private build includes it; players cannot toggle it
Changelog version 0.2.2
Added
- Expand ramp and hysteresis: view radius moves at most +1 / −2 chunks per pass (shrink −4 under MSPT pressure); expand waits for consecutive calm load passes
- World-thread write budget (
worldPassBudgetMs, default 8): after the budget, the pass still samples and logs but does not write radii - Skip density scan on join, flight, streaming, same-chunk cache hits, and while held at the minimum with expand frozen (no 49-column walk on those passes)
Changed
- Hytale 0.6 stable: section-based streaming thresholds (
chunkLoad700/1550, backlog 80,maxChunksPerTick8) verboseLogoff on new installs- Entity radius at
[min]snaps to the floor in one pass instead of dripping down over ~35s - Existing
QuantumHy.jsonmigrates toconfigVersion5
Fixed
- View-radius sawtooth 6↔13 every adaptive pass
- Expand while flying, under MSPT pressure, or when the density disk is only half-loaded (looked like open sky)
- Pressure mode releasing in the middle of a hitch (exit now needs both the 10s average and the last tick calm)
- Bloom/sunshaft trim packets during a hitch (waits for last tick ≤ 50ms)
Notes
- Built for Hytale 0.6 stable. Install QuantumHy-0.2.2.jar over 0.2.1
- Existing
QuantumHy.jsonmigrates on first boot; delete the file if you want a clean 0.2.2 default sheet - CapFrameX numbers on the mod page are still the 0.2.1 captures
Changelog version 0.2.1
Added
- Ring-weighted density: center chunks count fully, outer scan rings less (all entity types, no species tables)
baselineShrinkFraction: light trim even when density is open- Chunk-load shrink: extra pull from loaded + streaming chunk count (separate from LeanCore hot/sim radius)
configVersionmigration: upgradesQuantumHy.jsonfrom 0.2.0 on load; logs each remapped field
Changed
- Recalibrated defaults for normal play: density 1.0/4.0 per chunk, LOD 2.0x, vertical cull 32 blocks, visible entity cap 80
- MSPT governor: enter 48, sustain 4s, pressure density multiplier 1.45
- Normal gameplay benchmark (~5 min each, CapFrameX): +42% average FPS, +60% P5, +155% 1% low average, 95% less time under 60 FPS (mod on vs off)
- README and benchmark chart images updated (including comparison chart)
Fixed
- Config migration no longer skipped when Gson ran the no-arg constructor before overlaying JSON (
configVersionfield default) - Partial v1 migrations (old thresholds stuck at 0.2.0 values) repaired on
configVersion2
Notes
- Server-side only. Install QuantumHy-0.2.1.jar over 0.2.0
- Existing
QuantumHy.jsonmigrates on first boot; delete the file if you want a clean 0.2.1 default sheet
Changelog version 0.2.0
Added
- Entity cull system: vertical (Y) prune and optional per-player visible entity cap (
maxVisibleEntitiesPerPlayer) /qcommand:status,help, andperfsubcommands, with a runtime snapshot in status output- Spawn stream pause: holds ambient spawn while a player’s
ChunkTrackerstill has chunks loading - MSPT pressure governor: trims render levers when server tick time climbs (client effects on by default, world levers opt-in)
- Mod list icon (256×256) and updated manifest description
Changed
- LeanCore coexistence: clear knob ownership; QuantumHy yields chunk streaming when LeanCore throughput governance is on
- Adaptive pass: circular density scan, fewer allocations per tick, cached tracker reads
- Density curve: smoothstep between low/high thresholds so view changes feel less snappy at the edges
- Entity visible cap: bounded nearest heap instead of a full sort when capping visible entities
- Pressure shutdown: parallel world restore within one timeout budget
- README: CapFrameX benchmark section, test PC specs, chart images, new gameplay videos
Fixed
/q statusand/q helpnow run correctly- Config write failures are surfaced in the log
- LeanCore bridge no longer double-writes client view radius or chunk send rate when both mods are installed
Notes
- Server-side only. Install QuantumHy-0.2.0.jar over 0.1.0
- Existing
QuantumHy.jsonis kept; new keys are added on first run with safe defaults
Changelog version 0.1.0
Added
- First public release (
0.1.0) - Adaptive chunk view radius: samples entity density around each player and pulls their client view radius in when it gets crowded, back out in the open, never above what the player asked for
- Adaptive entity stream radius: shrinks how far entities are streamed to the client in mob-heavy spots, driven by the same density signal. The big win when you are looking at a crowd
- Global entity LOD culling: drops small and distant entities sooner, server-wide, with one tunable knob
- Density smoothing: an exponential moving average so a moving player’s view radius does not flip-flop on momentary spikes
- LeanCore takeover: if LeanCore is installed, QuantumHy turns off LeanCore’s client view-radius governance on startup and drives it itself, no config change on either side
- Verbose logging: one log line per world per pass with each player’s density and the exact view decision
Notes
- Server-side only. It helps where it is installed, never on a server you merely join
- Config is created at first run as
QuantumHy.jsonin the plugin data folder