Skip to content

Slimefun Legacy 4.1.41

Choose a tag to compare

@github-actions github-actions released this 29 Aug 02:31
2b0a30b

Slimefun Legacy 4.1.41 — Maintenance & Compatibility

4.1.41 continues from the 4.1.40 stable production baseline with targeted maintenance, Paper 26.2 compatibility hardening, diagnostics fixes, and measured performance improvements.

Performance and stability

  • Correct negative-Y coordinates reported by /sf tick top.
  • Reduce Electric Smeltery idle ticker overhead without changing recipes, speed, energy, output, or cargo behavior.
  • Cache Slimefun Auto Crafter recipe wrappers so selected recipes do not rebuild ingredient predicate objects every machine tick while still reading each machine's stored recipe id and enabled state live.
  • Reuse one vanilla inventory snapshot for each complete Auto Crafter recipe match instead of calling Inventory#getContents() for every ingredient predicate.
  • Reuse one Smart Port inventory view per temporary crafter interactor and one Smart Port contents snapshot per recipe match, avoiding repeated BlockMenu#toInventory() and inventory snapshot work for every ingredient.
  • Cache normal-vs-virtual item resolution lazily per candidate slot during each core Enhanced Auto Crafter recipe attempt. Normal stacks go directly to the already-built recipe predicate after their first resolution, while virtual stacks retain the existing virtual-item-aware matching path. The optimization is intentionally restricted to the exact core EnhancedAutoCrafter class so addon subclasses and custom matching overrides are unchanged.
  • Remove a duplicate storage lookup from CrafterInteractorManager#getInteractor() while preserving its existing null behavior.
  • Reuse already validated EnergyNet capacities during charge writes.
  • Index registered networks by exact regulator location so Energy Regulator and Cargo Manager tickers avoid scanning the global network list for their own network.
  • Cache unchanged vanilla player-head EnergyNet presentation state between ticks. State changes still apply immediately while periodic self-heal validation is deterministically staggered across the 20-tick window to avoid regulator validation bunching.
  • Route Resonance Beacon player-only pulse work through the world's player list on Paper-family servers instead of enumerating every entity in every loaded covered chunk. Mob effects and Gravity Well retain full entity enumeration when required, and Folia retains its region-local path.

Live profiler validation

A broader shared Auto Crafter hot-path rewrite was rolled back after live AlbionMC profiling showed the same six ENHANCED_AUTO_CRAFTER machines rise from roughly 1.56 ms to 3.18 ms total. The known-good ticker flow was restored rather than keeping a synthetic micro-optimization that regressed real server performance.

A stable targeted build later measured:

  • total ticker time: 18.85 ms across 2,590 blocks
  • Slimefun-owned ticker time: 5.36 ms
  • ENHANCED_AUTO_CRAFTER: 2.38 ms / 6 machines / 0.40 ms average
  • ENERGY_REGULATOR: 1.25 ms / 21 regulators / 0.06 ms average
  • ELECTRIC_SMELTERY_2: 0.66 ms / 12 machines / 0.06 ms average

A later 10-tick sample showed the same six Enhanced Auto Crafters at 1.73 ms / 0.29 ms average, but also exposed a periodic BEACON_PLUS sample spike of 9.01 ms across eight beacons. That observation led to the player-only Resonance Beacon pulse-routing optimization above. Short Energy Regulator samples also varied when periodic vanilla-state validation aligned, leading to the staggered 20-tick validation phase.

The latest pre-RC production-side sample measured:

  • total ticker time: 19.31 ms across 2,918 blocks
  • Slimefun-owned ticker time: 5.69 ms across 178 blocks
  • ENHANCED_AUTO_CRAFTER: 2.16 ms / 6 machines / 0.36 ms average
  • ENERGY_REGULATOR: 1.55 ms / 24 regulators / 0.06 ms average
  • ELECTRIC_SMELTERY_2: 1.16 ms / 13 machines / 0.09 ms average

This latest sample is from the prior live test JAR and therefore does not include the final lazy Enhanced Auto Crafter match-mode cache. The final optimization is release-gated by the full CI matrix rather than requiring another production restart before RC.

Compatibility and behavior

  • Include Leaf 26.2 in the Paper-family runtime smoke matrix.
  • Add slimefun.update-notifications, defaulting to OP, so operators and explicitly permitted non-OP administrators are notified when a newer published Slimefun Legacy GitHub release is available.
  • Restore deterministic Resonance Beacon interaction routing: normal main-hand right-click opens the custom Resonance Beacon menu, sneak-main-hand right-click keeps the yellow beam visual toggle, and off-hand interaction is consumed so vanilla Beacon handling cannot replace the custom menu.
  • Require Resonance Beacons to be placed more than three chunks apart in the same world. Placement inside the three-chunk square radius is cancelled before Slimefun creates block data and the player receives a clear too-close message. Activator enable/upgrade behavior is unchanged.
  • Add required Resonance Beacon interaction and placement-spacing verification to Runtime Gameplay Correctness CI.
  • Harden vanilla Auto Crafter recipe handling for Paper 26.2 build SlimefunGuguProject#120 and Paper commit 1797fbccf1f1afffe934943b76ecb1f8d6c2cfcc, which introduced RecipeChoice.PredicateChoice. Shaped recipe accounting and previews now use the generic RecipeChoice representative-stack contract rather than assuming every choice is MaterialChoice, while actual ingredient matching continues to use the recipe's predicate semantics.
  • Preserve existing item IDs, saved-world data, addon-facing behavior, and established gameplay semantics.
  • Avoid migrations and broad behavioral rewrites in the 4.1.x maintenance line.

Paper 26.2 build SlimefunGuguProject#120 validation

The final pre-RC source head was boot-tested twice on the real stable Paper 26.2 build SlimefunGuguProject#120 server with Java 25. Both boots completed successfully, /sf doctor upgrade reported no BLOCKED status, and the second boot observed clean-shutdown persistence. The production build, Runtime Gameplay Correctness, Paper 26.2 runtime smoke, Purpur/Folia/Leaf 26.2 runtime smoke, Paper/Purpur 1.21.11 compatibility, Public API Compatibility, and Slimefun/Addons Compatibility gates all passed before the RC metadata rollover.

Platform targets

  • Paper 26.2 — primary; stable build SlimefunGuguProject#120 explicitly runtime-tested
  • Purpur 26.2 — supported
  • Leaf 26.2 — runtime smoke tested
  • Folia 26.2 — experimental
  • Paper/Purpur 1.21.11 — legacy compatibility tested
  • Java 21 bytecode target; Java 25 build/runtime validation

Release candidate

projectVersion and the compatibility registries are aligned at 4.1.41 for the release candidate. The validated 4.1.40 release commit e6561c97862ac0ef2b61a3657467b81edf62aafd is now the release-blocking previous-stable baseline.

No additional feature or performance changes are planned for 4.1.41 after this rollover unless release-gating CI or live RC validation exposes a release blocker.