Modscraper Modscraper Minecraft
Radium Re-Reforged logo

Radium Re-Reforged

Mod

by big_energy

Fork of Radium Reforged 1.20.1 for bugfixes

Type

Mod

CurseForge Downloads

10,747

CurseForge ID

1649038

Last Updated

Sep 5, 2026

Description

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.

What's different from upstream

Fixed — NullPointerException when copying NBT compounds

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).

Fixed — ConcurrentModificationException during entity status changes

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

New — cached pushability for cramming tests

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

Ported — optimizations upstream Radium never picked up

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 attempt
  • mixin.entity.sprinting_particles — skips server-side sprinting particle work

This 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.

Compatibility

  • Minecraft 1.20.1, Forge
  • Mod id is radium — do not install alongside the original
  • Every optimization keeps its own config toggle, see lithium-mixin-config.md
  • Aperture Innovations: mixin.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.

More optimizations

Check my other mod: JEIOptimizer

Credits and licence

Lithium by CaffeineMC. Forge port by dima_dencep and NanoLive. Licensed under LGPL-3.0-only.

Source: https://github.com/bigenergy/radium-reforged-patched

Recommended Gear

Affiliate

Hardware and extras that pair well with this mod.

As an Amazon Associate I earn from qualifying purchases.

Similar Mods

Included in Modpacks (1)

External Resources