Radium (Re-Reforged) — a maintained fork of Radium for Forge 1.20.1.
Radium is a Forge port of Lithium, CaffeineMC's general-purpose optimization mod. It improves server tick performance without changing vanilla behaviour, gameplay, or world generation.
This fork exists because upstream development has gone quiet. It carries the same mod id, so it is a drop-in replacement.
NbtCompoundMixin could leave a fastutil map with a null internal list, so any mod doing a deep copy or deep iteration of a CompoundTag crashed. The known workaround was mixin.alloc.nbt=false, which meant giving up the optimization entirely. The map is now filled eagerly and the option can stay on.
Upstream issue: Reforged-Hub/radium-upstream#52 (still open there).
Callbacks fired while a section's entity tracking status changes could discard entities mid-traversal and break the iteration. The section's entity list is now iterated over a copy.
Config: mixin.chunk.entity_status_iteration
Cramming tests are quadratic: every entity in a section asks every other entity whether it can be pushed, while the answer depends only on the entity being asked. It is now computed once per entity per tick, turning N*N calls into N.
This matters most on modded servers. In vanilla isPushable() is trivial, but it calls isClimbing() — a popular mixin target. Profiling a modded server showed Botania hooking it to look up a Curios slot, walking the capability dispatcher on every single call: ~0.6% of the server thread spent inside cramming tests alone, with Pehkui adding its own hook on top.
Costs at most one tick of staleness — an entity dying partway through a tick stays pushable until the end of it.
Config: mixin.entity.collisions.pushable_cache
Brought over from CaffeineMC's Lithium 1.20.1 branch:
mixin.ai.useless_sensors — skips brain sensors whose results are never read (goat item sensor; parent animal sensor on non-babies)mixin.block.beehive — beehives check for obstruction before the expensive NBT copy they otherwise do on every exit attemptmixin.entity.sprinting_particles — skips server-side sprinting particle workThis puts the fork at parity with Lithium 1.20.1 except for one experimental option, experimental.entity.block_caching.fluid_pushing. It keys its cache on the fluid-tag parameter of Fabric's updateMovementInFluid, and Forge replaced that method with a no-arg one — there is no key to cache by. Its ground is already covered by mixin.entity.collisions.fluid.
radium — do not install alongside the originallithium-mixin-config.mdmixin.entity.collisions.movement is switched off automatically when it is installed — with it on, its portals cannot be entered. No config editing needed on your side.Check my other mod: JEIOptimizer
Lithium by CaffeineMC. Forge port by dima_dencep and NanoLive. Licensed under LGPL-3.0-only.
Source: https://github.com/bigenergy/radium-reforged-patched