Ice and Fire leaves a great deal of performance on the table. This mod picks it up.
Here is what Ice and Fire does every single tick — read from its own shipped code, not guessed:
DragonAIMatelooks for a mate across a box inflated by 180 blocks — several hundred blocks on a side, spanning hundreds of chunks. Every tick, for as long as a dragon is in love. Vanilla's breeding radius is 8.DeathWormAIFindSandTargetwalks up to 132,651 blocks in a triple-nested loop — on roughly half of all ticks.- A working Dragon Forge reads about 104 blocks per tick just to re-check whether it is still standing, because the check runs four times per tick.
- The pathfinding thread pool has always run on exactly one thread. It is built with an unbounded queue, and a
ThreadPoolExecutoronly grows past its core size when the queue is full — which it never is. The option that was supposed to control this,dragonPathfindingThreads, has never done anything at all. MyrmexAIForagewalks 18,513 positions three times per tick — about 55,000 block visits per worker, per tick.- A scorching dragon posts a Forge event roughly 100 times per tick to ask a question whose answer cannot change inside a tick.
The searches themselves are gameplay. Running them twenty times a second is not.
What this mod does
Throttles it, caches it, de-duplicates it. That is the whole mod.
- No content, no balance changes, no new items or entities. Nothing added, removed or reworked.
- 11 independent switches, each documented in place, each able to put that single behaviour back exactly as Ice and Fire shipped it.
If anything ever looks off, you can isolate it instead of dropping the mod.
Requires Ice and Fire
Ice and Fire 2.1.13 or newer is required. This mod is not standalone — it hooks into Ice and Fire's own classes, so on its own it does nothing at all. Ice and Fire requires Citadel; this mod does not touch it.
The changes
Dragon Forge — the input block's 100×100×100 dragon scan now runs on an interval instead of every tick; the multiblock check is computed once per tick instead of four times.
Pathfinding — the pool is built with the configured thread count, so dragonPathfindingThreads finally works. No job is ever rejected or dropped.
Creature AI — the mate searches, the death worm's sand search, the siren's water search and two further unthrottled scans now reuse one answer for a few ticks. EntityCockatrice's per-tick friend count is cached.
Myrmex — the 33×17×33 and 31×15×31 scans are cached, and two more goals stop rescanning every tick.
Dragon breath — the mob-griefing lookup is asked once per tick instead of ~100 times. An optional ceiling on how much one dragon carves per tick is provided (off by default).
Dragon flight — the per-tick search for the next wandering target is reused for a few ticks.
Multiparts — the per-part AABB, entity query and stream pipeline are throttled. Ice and Fire's own dragon parts already skip this; only the sea serpent and death worm were paying for it.