feat(config): moderate spawn tuning for Alex's Mobs, Fowl Play, Critters

Every visible entity multiplies the client render cost (vanilla, EMF/FA,
GeckoLib, ETF, dynamic lights) and the server tick. These cuts target only the
species that are heavy by weight x group size. Rare mobs keep their defaults.

- Alex's Mobs: halve 9 common weights (gazelle and capuchin herds, straddler,
  rocky roller, underminer, elephant, blobfish, mudskipper, caiman).
- Fowl Play: lower duck/goose/gull/sparrow weights and max group sizes
  (upstream #214, ~400 ducks on rivers, is still open in 1.2.3).
- Critters and Companions: about 40% off sea bunnies and the forest/lush bug
  rules. It does have a spawn config; configVersion 2 skips its v1->v2
  migration.

All three are partial files. NeoForge (TOML) and YACL 3.8.2 (JSON5) keep
defaults for missing keys. Shipped enforced from config/ because the server
reads them from this repo. Details and the B14 measurement plan:
analysis/client-perf/SPAWN-TUNING.md.
This commit is contained in:
logan committed 2026-10-14 18:14:50 -04:00
1 parent 5919955548
commit d80f85b3f6
6 files changed
+95 -1

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
# Onion MC spawn tuning (analysis/client-perf/SPAWN-TUNING.md). Partial file: NeoForge
# fills every other key with its default on load. Halves only the common mobs that are
# heavy by weight x hard-coded group size; rare mobs keep their defaults.
[spawning]
gazelleSpawnWeight = 20
capuchinMonkeySpawnWeight = 14
elephantSpawnWeight = 15
straddlerSpawnWeight = 35
rockyRollerSpawnWeight = 30
underminerSpawnWeight = 25
blobfishSpawnWeight = 15
mudskipperSpawnWeight = 14
caimanSpawnWeight = 15
+51
View File
@@ -0,0 +1,51 @@
// Onion MC spawn tuning (analysis/client-perf/SPAWN-TUNING.md). Partial file: YACL keeps
// defaults for missing keys. Each listed rule list REPLACES that mob's defaults, so every
// biome rule of a changed mob is listed. configVersion 2 skips the v1->v2 migration.
{
"configVersion": 2,
"spawning": {
"leafInsect": [
{"biomeSpec": "#c:is_jungle", "weight": 8, "min": 1, "max": 1},
{"biomeSpec": "#c:is_forest", "weight": 4, "min": 1, "max": 1}
],
"seaBunny": [
{"biomeSpec": "minecraft:ocean", "weight": 10, "min": 1, "max": 2},
{"biomeSpec": "minecraft:deep_ocean", "weight": 10, "min": 1, "max": 2},
{"biomeSpec": "minecraft:warm_ocean", "weight": 20, "min": 1, "max": 3},
{"biomeSpec": "minecraft:lukewarm_ocean", "weight": 10, "min": 1, "max": 3},
{"biomeSpec": "minecraft:deep_lukewarm_ocean", "weight": 10, "min": 1, "max": 3}
],
"dragonfly": [
{"biomeSpec": "#c:is_river", "weight": 4, "min": 1, "max": 1},
{"biomeSpec": "#c:is_swamp", "weight": 5, "min": 1, "max": 1},
{"biomeSpec": "#c:is_lush", "weight": 6, "min": 1, "max": 1}
],
"ladybug": [
{"biomeSpec": "#c:is_forest", "weight": 4, "min": 1, "max": 3},
{"biomeSpec": "#c:is_lush", "weight": 6, "min": 1, "max": 2},
{"biomeSpec": "#c:is_floral", "weight": 7, "min": 1, "max": 2}
],
"stagBeetle": [
{"biomeSpec": "#c:is_forest", "weight": 3, "min": 1, "max": 2},
{"biomeSpec": "#c:is_lush", "weight": 6, "min": 1, "max": 2}
],
"rolyPoly": [
{"biomeSpec": "#c:is_forest", "weight": 3, "min": 1, "max": 3},
{"biomeSpec": "#c:is_lush", "weight": 6, "min": 1, "max": 2},
{"biomeSpec": "#c:is_swamp", "weight": 6, "min": 1, "max": 2}
],
"snail": [
{"biomeSpec": "#c:is_forest", "weight": 3, "min": 1, "max": 2},
{"biomeSpec": "#c:is_lush", "weight": 5, "min": 1, "max": 2},
{"biomeSpec": "#c:is_swamp", "weight": 6, "min": 1, "max": 2}
],
"stickBug": [
{"biomeSpec": "#c:is_forest", "weight": 3, "min": 1, "max": 2},
{"biomeSpec": "#c:is_lush", "weight": 6, "min": 1, "max": 2}
],
"weevil": [
{"biomeSpec": "#c:is_forest", "weight": 3, "min": 1, "max": 3},
{"biomeSpec": "#c:is_lush", "weight": 6, "min": 1, "max": 2}
]
}
}
+13
View File
@@ -0,0 +1,13 @@
// Onion MC spawn tuning (analysis/client-perf/SPAWN-TUNING.md). Partial file: YACL keeps
// defaults for every missing key and re-saves. Targets the waterfowl/gull/sparrow flocks
// behind Fowl Play #214; songbirds and raptors keep their defaults.
{
"duckSpawnWeight": 2,
"duckMaxGroupSize": 4,
"gooseSpawnWeight": 2,
"gooseMaxGroupSize": 3,
"gullSpawnWeight": 3,
"gullMaxGroupSize": 5,
"sparrowSpawnWeight": 12,
"sparrowMaxGroupSize": 4
}