Mobtimizer
Merges same-kind mobs into a single ticking entity carrying a member count, cutting the performance cost of large farms without changing how those farms behave.
Merged members stay in the world as real, frozen entities rather than being deleted and counted. That is the central design bet: removing the mod gives you back every mob, instead of leaving you with one cow where a farm used to be.
What it does
| Merging | Same-kind mobs merge once a crowd of 4 forms, counted by true mob count, so a 3-stack plus one loose cow qualifies |
| Count label | Shown on hover using the mob's ordinary custom name, so vanilla clients need nothing installed |
| Breeding safe | Babies, animals in love, and animals on a breeding cooldown are never stacked |
| Vanilla breeding | Feeding a stack releases one member as a partner and puts that animal in love, never the stack itself |
| Auto rejoin | Bred parents sit out their cooldown unstacked, then rejoin the herd automatically |
| Death handling | Killing a stacked host promotes a member rather than losing the stack |
| Persistence | Stacks survive world reloads and server restarts |
| Reversible | A full command set for putting everything back |
Requirements
Minecraft 26.2, Fabric Loader 0.19.3+, Java 25+, and Fabric API (required, not bundled).
Works in single-player, and on a dedicated server with entirely vanilla clients.
Commands
| Command | Effect |
|---|---|
/mobtimizer unstack all |
Release every stacked mob in the current level |
/mobtimizer unstack here [radius] |
Release stacks within radius blocks, default 16 |
/mobtimizer unstack type <id> |
Release stacks of one entity type |
/mobtimizer stats |
Report how many mobs are held in how many stacks |
/mobtimizer reload |
Re-read the config file |
All require permission level 2.
Configuration
config/mobtimizer.json, created on first run. /mobtimizer reload applies changes without a restart. You can tune the merge radius, the crowd threshold, scan interval, the count label format, freeze aggressiveness, and a per-entity allowlist or denylist.
What never stacks
Beyond the denylist (villagers, wandering traders and bosses by default), a mob is left alone if it is named, leashed, tamed, riding or ridden, persistent, has no AI, is invulnerable, is a baby, is in love, or is on a breeding cooldown. Each of those is either a deliberate player setup or a mechanic that would break if the mob were frozen.
Uninstalling
Delete the jar. Members are real entities the whole time, so they simply wake up on the next load. No migration step, no lost mobs. For a clean exit, run /mobtimizer unstack all first.
Current scope
This is an early release and deliberately does not scale every mechanic yet. Damage routing by source, scaled breeding (100 wheat yielding 50 babies), scaled production, and mob-cap reporting are all planned. What ships today is stacking that is correct, safe and fully reversible.
Play-tested on cows and sheep. Not yet verified alongside mods that rewrite entity ticking or death paths, such as Lithium.
Bug reports and source
Bug reports, feature ideas and pull requests are genuinely welcome. This is actively being improved.
Report a bug: https://github.com/Aff55/Mobtimizer/issues
Source code: https://github.com/Aff55/Mobtimizer
Documentation: https://github.com/Aff55/Mobtimizer#readme
When reporting an issue, please include your Minecraft and Fabric API versions, your other installed mods, and latest.log if the game misbehaved.
Made by Aff55. MIT licensed.