Everything the next agent needs to run the Phase 2 optimisation loop on a machine that can launch the client: - analysis/client-perf/: LEVERS (ranked levers + corrections), BENCH-MATRIX (world, scenes, config IDs, blocks B0-B14 with decision rules), PLAYER-TUNING, SPAWN-TUNING, research briefs, the jar scanner and its output, observed default configs, and proposed-configs/ (build.py generates tiers and bench variants and fails on unknown keys; apply_variant.py applies a variant and merges options.txt). - analysis/client-perf/bench/onion-bench/: bench-world datapack (scene teleports, Create grid, mob pen, sound storm, 120 s teleport tour). - analysis/audit/: the static recipe/dependency audit, including gen_fixes.py, which generates the shipped Paxi datapack and was never tracked. - phase0/: per-machine measurement harness (Steam Deck, 7700K/1060, 6700K/1080 Ti). - .pi/journal.md: running work log; read it first. All of it is packwizignored, so nothing here ships to players.
21 KiB
Research: Client-side performance sweep — content/mob mods (Onion MC, 1.21.1 / NeoForge 21.1.251)
Scope: client-side only (frame time, client tick, RAM/VRAM, startup). All pinned versions are 1.21.1 NeoForge. Every claim is tagged VERIFIED (primary source directly states it), DOCUMENTED (official changelog/wiki/README), COMMUNITY (user reports, issue trackers, forums), or INFERENCE (my reasoning from the sources).
Summary
The content/mob mods are individually cheap, but the stack has three real client-side risk patterns: (1) entity-count inflation — Alex's Mobs (unofficial port), Fowlplay and Critters and Companions all have open reports of over-spawning, which directly increases client render + tick work; (2) animation cost multipliers — Fresh Animations / EMF-ETF make every animated modded mob far more expensive to render, and EMF has a documented blow-up with many mobs on screen; (3) a handful of specific offenders (Ars Nouveau brand-new mirrorweave/SkyWeave rendering, Apotheosis loot beams, Citadel entity tracking) that are either already fixed in the pinned versions or have config levers. Most mods in this list have no known client perf issues at all.
Per-mod table
Legend for cost type: frame = render-thread cost; c-tick = client tick; RAM/VRAM; startup; none-known.
| Mod (pinned) | What it does | Client cost type | Known perf issues (URL + fixed?) | Perf-relevant config levers (exact keys only if seen) | Judgement |
|---|---|---|---|---|---|
| Alex's Mobs unofficial port 1.22.17 | 85+ animated new mobs | frame, c-tick, RAM (models/textures) | • Raguto port #62 "tons of monsters constantly spawn when mod is enabled" ramps up vanilla monster spawns → more entities to render — OPEN on 1.21.1 (#62) COMMUNITY • Original mod reputation: "notoriously bad for performance… noticeable increase in lag caused by all the spawning" (Reddit) COMMUNITY • Over-spawning lobsters/catfish/flyfish/terrapins breaking beds/boats (SteamPunk #83) COMMUNITY • Fabric port: vertex explosions/tearing with Sodium+Iris shaders, all shaderpacks (Alexs-Mobs-Fabric #121, Sep 2026, OPEN, Fabric build not our port) COMMUNITY • Leafcutter-ant tick lag was server-side TPS (#382) |
Per-mob spawn probability lives in the alexsmobs config folder (Fandom Configuration page, per-mob spawn probabilities) DOCUMENTED — exact keys not read (page returned 403). |
tune — keep, but cap spawn rates |
| Citadel port 2.7.6 (Alex's Mobs lib) | Shared models/AI/entity-data library | frame, RAM | • "Alex's Mobs X Citadel: Slow Chunk loading" — chunk-generation lag; user reports setting Citadel's track entities option to false helped slightly (Citadel #156, closed "completed" 2025-06-25, still reported persisting Dec 2024) COMMUNITY • Historic memory leak 609 MB ( registeredEntityData / WeakIdentityHashMap), 1.16.3, (Citadel #12) — very old, assumed long fixed COMMUNITY |
Issue cites citadel-common.toml entity-tracking toggle (exact key not verified — do not invent) |
keep |
| Mowzie's Mobs 1.8.2 | Boss-tier animated enemies (GeckoLib) | frame | • #30 "Performance issues, outdated file structures" on 1.21.1 / NeoForge 21.1.219 / MM 1.8.1 — spark showed mowziesmobs structure processing; owner: "I believe I have fixed the issue… next mod patch" (#30, closed 2026-03-13); our 1.8.2 presumably contains it INFERENCE • Elokosa leap checks tick cost (#38, #59) — server/tick side COMMUNITY • Old Frostmaw FPS drop (Crackpack-3 #101, 1.12-era) COMMUNITY |
none known | keep |
| Adorable Hamster Pets 3.7.0 | Tiny animated pet hamsters (genetics/NBT heavy) | frame, c-tick, RAM/NBT | • 3.6.1 changelog: "Resolved… pathfinding and AI issues where tamed hamsters following the player would sometimes experience server-tick lag spikes… with a lot of hamsters [following] at once" — fixed in 3.6.1, therefore present in 3.7.0 DOCUMENTED (Modrinth) • 3.6.0: moved genome tracking to IntArray NBT "without lagging the player entity" DOCUMENTED |
"Wander Mode" radius; a config fallback for auto-guidebook delivery (changelogs) — exact keys not read | keep |
| Doggy Talents Next 1.19.1 | Skill-tree/accessory overhaul of vanilla wolves | frame (custom dog models/skins) | No dedicated client-FPS issue found. Related: CarryOn #684 progressive instability/stall (CarryOn #684) COMMUNITY. Wiki: creative dog beds "randomly generated to a certain limit… to avoid performance issues" (FAQ) DOCUMENTED | Skin enable/disable per client (CurseForge file notes) DOCUMENTED | keep |
| Better Dogs X DTN 1.2.2 | Replaces DTN dog models/skins | frame (slightly heavier models) | No perf issue found (Modrinth) | none known | keep |
| Icy's Better Horses 2.1.0.1 | Horse AI/progression/traversal tweaks | none-known | No perf issue. One client crash with another mod (#31, Fabric 1.20.1, fixed in next jar) — not perf (#31) COMMUNITY | none known | keep |
| Friends&Foes 4.0.27 | Mob-vote mobs (Copper Golem, Crab, Glare, Moobloom, Iceologer, Rascal, Tuff Golem, Wildfire…) + structures | frame (few new mobs), worldgen | No known client perf issues found. Tracked issues are crashes/compat (e.g. startup MixinExtrasBootstrap crash #418) COMMUNITY |
YACL-based config exists (mod requires YetAnotherConfigLib — Modrinth dependency listing) DOCUMENTED; no perf keys read | keep |
| Flowery Mooblooms (F&F addon) | One moobloom variant per flower | frame (variant count) | No perf issue found (repo) | none known | keep |
| Critters and Companions | Vanilla-style animals (otters, dragonflies, ferrets…) | frame + entity count, c-tick | • #91: lag from otters/dragonflies; no config file; "dragonflies… fly out of range and become unloaded… chunks full to the gills with dragonflies". Dev: dragonfly spawn weight reduced + Fabric config / Forge datapack override added, Jul 2025 (#91, closed) COMMUNITY • Community: "always made servers… laggy… loading new chunks cause a lot of stuttering and CPU usage" (Reddit) COMMUNITY |
No TOML keys; spawns are data-file driven → override via datapack (dev statement in #91) | tune via datapack, else candidate-remove |
| Fowlplay 1.2.3 | Birds with realistic flight, natural spawning | c-tick, frame (entity count), RAM | • #214 ducks/birds spawn non-stop near rivers/oceans; F3 spawn cap "right under 400"; "almost 200 birds sitting in a single area" even after minimising group spawns — OPEN, 1.21.1 NeoForge (#214) COMMUNITY • #196 BirdEntity/GullEntity recalculate paths every tick (PathFinder.findPath() per tick) — server-side but scales badly (#196, open, 1.20.1 Forge) COMMUNITY• #213 hawk AI crash with c2me async chunkloading (#213) COMMUNITY |
Custom mob category; group-spawn settings exist (referenced in #214); no TOML keys read | tune (spawns) or candidate-remove if bird spam appears |
| Wings of Fire 1.0 | 6 phoenix breeds as summoned mounts | frame (only while summoned) | No known client perf issues found (Modrinth) DOCUMENTED | none known | keep |
Tiny Dragons (rpg_companions_tiny_dragons) |
Tameable tiny dragon companions | frame | No known client perf issues found. MCreator-generated mod (MCreator page) — MCreator mods are typically less optimised INFERENCE | none known | keep (low priority) |
| Mermod 3.3.2 | Necklace → mermaid transformation/tail rendering | frame (player model when transformed) | No known client perf issues found — GitHub issue search for lag OR fps OR performance OR memory returned 0 results (issues) VERIFIED |
none known | keep |
| Artifacts 13.2.5 | Curio-slot utility trinkets | none-known (light client-tick) | No known client perf issues found. Old spawn-rate complaint about Mimics (#3) COMMUNITY | none known | keep |
| Ars Nouveau 5.13.1 | Magic/spell system; client-side spell entities, particles, own skybox-style shaders | frame (particles/projectiles/shader blocks), c-tick, RAM | • SkyWeave/mirrorweave FPS drops (77→19 fps) — fixed by commit 640db2d / PR #1714, Mar 2025 (#1221) → already fixed in 5.13.1 (fix predates 5.9.1) VERIFIED• Agronomic Sourcelink + AE2 growth acceleration spawns excessive visual entities → client <20 fps (#1904, 5.9.1, closed 2026-06-08) COMMUNITY • Storage Lectern massive client lag sorting 500+ Apotheosis-affixed items (#1274, 1.19.2/3.23.0) COMMUNITY • Planarium + Mekanism pipes → 1 fps (#2108) COMMUNITY • Sylph particle spawner FPS tank (Optifine-era, fixed) (#379) COMMUNITY • A widely-reported "Ars projectiles drop FPS" case was traced to Xaero's Minimap (Reddit) COMMUNITY • Maintainer notes block-entity lookalike blocks (mirrorweave) "will always be more laggy than a normal static block"; recommends EntityCulling (#1221 comment) VERIFIED |
none verified for particle budget | keep; watch the storage-lectern/automation entity-spam cases |
| Apotheosis 8.8.0 | Affix items, gems, bosses/elites, loot beams | frame (loot-beam effects, boss glow), RAM | • #1191 perf issue (ShieldBreaker repeated capability comparisons) — fixed in 7.3.2 (cf0e2e8), so not present in 8.8.0 (#1191, changelog 7.3.2) DOCUMENTED• Boss glow is cheap (glow duration 2 min, 20 s boss cooldown) DOCUMENTED • Affix loot-beam in-world effects were added in 8.3.0 and are render-thread cost DOCUMENTED |
Changelog 8.3.0: "These loot effects can be disabled in the config file" (exact key not read) | keep; disable loot beams if chasing frame time |
| Too Many Bows | ~38 bows with unique projectile effects | frame (only when firing) | No known client perf issues found. v2.1.0 changelog: "Updates: Logic and performance of bows" (CurseForge file) DOCUMENTED | /tmb reload bows for registered bow settings (wiki) DOCUMENTED |
keep |
| Dungeon's Delight 1.5.1 | Farmer's Delight addon — cook/eat monsters | none-known | No known client perf issues found. 1.5.1 changelog is a compatibility/one-bug fix for FD 1.3.4 (Modrinth 1.5.1) DOCUMENTED. The task's "29 vanilla mixins" claim could not be verified — no source read (UNVERIFIED) | none known | keep |
| Fisherman's Haven | Fishing overhaul (rods, traps, bait, custom mobs, deco) | none-known | No known client perf issues found (Modrinth) | none known | keep |
| Aquaculture 2 | Fishing expansion (30+ fish, rods) | none-known | • Loot-table calc lag (#113) was server-side, fixed in Aquaculture 2.1.0 for MC 1.16.3 — long since fixed, not applicable to your 1.21.1 build (#113) DOCUMENTED • Optifine bobber-render crash (Optifine #3538) — irrelevant on Sodium COMMUNITY |
none known | keep |
Cross-cutting (apply to the whole content/mob set)
- Fresh Animations + EMF/ETF is the single biggest animation multiplier. EMF alone is not the problem, but stacking Fresh Animations with many mobs on screen is: a benchmarked case went 165→40 fps (30 mobs, shaders on) and 400+→30-40 fps with 50 cows (EMF #443) COMMUNITY. Maintainer: "you aren't going to be easily pushing past 200 fps with Fresh Animations on ever". Mitigation is config, not removal: EMF added an "Animation LOD distance" setting (skips animation frames beyond a distance) and a "Retain LOD at low fps" setting (EMF changelog 1.3) DOCUMENTED. Every animated content mod below multiplies this cost, so the animation settings should be tuned before removing content mods.
- Entity-count inflation is the recurring theme. Alex's Mobs port (#62), Fowlplay (#214) and Critters and Companions (#91) all have open/community over-spawn reports on or near 1.21.1. More entities = more render-list entries, more client-tick AI interpolation, more packet traffic. This is arguably the highest-leverage fix for the fleet, and it is all server-side spawn tuning rather than mod removal.
- EntityCulling is recommended by Ars Nouveau's author for the mirrorweave/SkyWeave block-entity case specifically (#1221) — you already ship EntityCulling 1.11.2, so that's covered VERIFIED.
- Sodium/Iris + animated modded mobs is a known fragile combination. Aside from the Fabric Alex's Mobs vertex-explosion report (#121), the EMF #443 reports are all on the Sodium/Iris/Embeddium/Oculus stack. Worth a visual + frame-time check with shaders on vs off once benchmarking starts COMMUNITY.
- Most mods in this sweep are clean. Mermod, Wings of Fire, Tiny Dragons, Icy's Better Horses, Friends&Foes (+Flowery Mooblooms), Artifacts, Doggy Talents Next, Better Dogs, Too Many Bows, Dungeon's Delight, Fisherman's Haven, Aquaculture 2 have no known client perf issues found relevant to the pinned versions.
Notable (the 3–5 that matter most)
- Alex's Mobs unofficial port is the top entity-count risk. Raguto's 1.21.1 port has an open issue that it "ramps up vanilla monster spawn rates like crazy" (#62), on top of the mod's long-standing over-spawning reputation and Citadel's chunk-loading lag (Citadel #156). This is a tune-spawns lever, and per-mob spawn probabilities are exposed in the
alexsmobsconfig folder (DOCUMENTED via Fandom Configuration, not read directly). - Fowlplay's bird spawning is un-bounded in practice. #214 (open, 1.21.1 NeoForge) reports up to ~400 birds / ~200 in one area even after reducing group spawns, and #196 shows flight entities recompute pathfinding every tick. Even though the tick cost is server-side, hundreds of visible birds is a direct client frame + RAM cost, and this is the mod most likely to need spawn tuning or removal.
- Fresh Animations + EMF with many mobs is the largest measured FPS multiplier. EMF #443 shows 4–8× FPS loss with 30–50 mobs on screen on the Sodium/Iris stack. Fixing this (EMF "Animation LOD distance" / "Retain LOD at low fps") is cheaper than removing content mods, and it compounds with every animated mob mod above.
- Ars Nouveau is mostly fine at 5.13.1, but has two known client hitches. The mirrorweave/SkyWeave rendering FPS bug is already fixed (PR #1714, Mar 2025, well before 5.13.1), but the Storage Lectern sorting Apotheosis-affixed items (#1274, large client lag) and Agronomic Sourcelink entity spam (#1904, <20 fps) remain behaviour that a busy server can hit. Note it also flags EntityCulling as the mitigation — which you already run.
- Critters and Companions has no config file — spawns are data-file driven, so the only lever is a datapack override (#91). If chunk-loading stutter or dragonfly pile-ups show up in profiling, that's the fix (or removal), not a TOML tweak.
Sources
Kept:
- Raguto/AlexsMobs-1.21.1 issue #62 (spawn inflation, 1.21.1 NeoForge) — https://github.com/Raguto/AlexsMobs-1.21.1/issues/62
- Citadel issue #156 (chunk loading, entity tracking toggle, closed-completed 2025) — https://github.com/AlexModGuy/Citadel/issues/156
- Citadel issue #12 (historic 609 MB memory leak) — https://github.com/Alex-the-666/Citadel/issues/12
- Alexs-Mobs-Fabric issue #121 (Sodium/Iris vertex explosion, Fabric build) — https://github.com/astryxion/Alexs-Mobs-Fabric/issues/121
- Mowzie's Mobs-Public issues #30 / #38 / #59 (structure + Elokosa tick perf; #30 fixed next patch) — https://github.com/BobMowzie/MowziesMobs-Public/issues/30
- Adorable Hamster Pets changelogs (3.6.1 AI/tick fix, 3.6.0 NBT fix) — https://modrinth.com/mod/adorable-hamster-pets/version/QitZ5fVO
- Doggy Talents Next FAQ (beds capped to avoid perf issues) — https://doggytalentsnext.wiki.gg/wiki/FAQ
- Icy's Better Horses issue #31 (client crash, not perf; fixed) — https://github.com/Icywhenhot/Icy-s-Better-Horses/issues/31
- Critters and Companions issue #91 (over-spawn, datapack-only config) — https://github.com/bonsaistudi0s/CrittersAndCompanions/issues/91
- Fowl-Play issues #196 / #214 / #233 (per-tick pathfinding, bird over-spawn, spawn-mod incompat) — https://github.com/aqariio/Fowl-Play/issues/214
- Ars Nouveau issues #379 / #1221 / #1274 / #1904 / #2108 (particles, mirrorweave fixed, lectern, sourcelink, planarium) — https://github.com/baileyholl/Ars-Nouveau/issues/1221
- Apotheosis issue #1191 (perf fix in 7.3.2) + changelogs 1.21 (loot beams, glow, shield breaker) — https://github.com/Shadows-of-Fire/Apotheosis/blob/1.21/changelog.md
- Aquaculture issue #113 (loot-calc lag, fixed in 2.1.0) — https://github.com/TeamMetallurgy/Aquaculture/issues/113
- EMF issue #443 + EMF changelog (Fresh Animations FPS blow-up; Animation LOD settings) — https://github.com/Traben-0/Entity_Model_Features/issues/443
- Mermod issues search (0 perf results = negative evidence) — https://github.com/ThatPreston/Mermod/issues?q=is%3Aissue+lag+OR+fps+OR+performance+OR+memory
- Modrinth/CurseForge pages for Friends&Foes 4.x, Flowery Mooblooms, Wings of Fire, Dungeon's Delight 1.5.1, Fisherman's Haven, Too Many Bows, Artifacts, Mermod 3.3.2 — used for version/feature/bugfix confirmation.
Dropped:
- SteamPunk #83, Reddit r/feedthebeast Alex's Mobs threads — used only as corroboration for the over-spawn theme; individual player reports not weighted as fact.
- AlexsCaves #168 / #616 (Ray Cat FPS drop) — different mod (Alex's Caves), not in this pack.
- Optifine #3538 (Aquaculture bobber) — Optifine-specific, not applicable to Sodium.
- Crackpack-3 #101 (Frostmaw FPS) — 1.12-era, not applicable to 1.21.1.
- Various "performance mods" listicles/SEO pages — no primary evidence.
- Alex's Mobs Fandom Configuration page — returned HTTP 403; could not read exact config keys.