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

+5
View File
@@ -65,3 +65,8 @@ config/paxi/datapacks/*
# Default Options copies them into place client-side, only when the target is absent. # Default Options copies them into place client-side, only when the target is absent.
!config/defaultoptions !config/defaultoptions
!config/defaultoptions/** !config/defaultoptions/**
# Server spawn tuning (analysis/client-perf/SPAWN-TUNING.md); partial files, the mods
# fill in defaults for every other key. Enforced: the server reads them from here.
!config/alexsmobs-common.toml
!config/fowlplay.json5
!config/crittersandcompanions-common.json5
+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
}
+12
View File
@@ -4,6 +4,14 @@ hash-format = "sha256"
file = "config/akashictome-common.toml" file = "config/akashictome-common.toml"
hash = "4e479c86ddfec0c5e28f07034f033a10abae404309f38ccc4bfc15da9de2dfa2" hash = "4e479c86ddfec0c5e28f07034f033a10abae404309f38ccc4bfc15da9de2dfa2"
[[files]]
file = "config/alexsmobs-common.toml"
hash = "bc47ee67032ceab8b2b408819ce9b268812f37da8f13b9b7efeae0deed607c4b"
[[files]]
file = "config/crittersandcompanions-common.json5"
hash = "a00a9fe09ce5b469247f757e780b5faf74191f5cfef158d999c4d7a1e203f420"
[[files]] [[files]]
file = "config/defaultoptions/extra/config/DistantHorizons.toml" file = "config/defaultoptions/extra/config/DistantHorizons.toml"
hash = "8949bf3c7a43df7a7ae384213db0985425db3559219c29cb63eaef45c7962dcc" hash = "8949bf3c7a43df7a7ae384213db0985425db3559219c29cb63eaef45c7962dcc"
@@ -36,6 +44,10 @@ hash = "9b75828543ed2b8cc5804eabecdc28262297a90d6f0e8e771d64ff779a69e3c9"
file = "config/defaultoptions/options.txt" file = "config/defaultoptions/options.txt"
hash = "62034e0589087dab02d1a15192ad313a57f907d5ee9ebbf8853151f7831851a1" hash = "62034e0589087dab02d1a15192ad313a57f907d5ee9ebbf8853151f7831851a1"
[[files]]
file = "config/fowlplay.json5"
hash = "09ad767a358310e9d38e632ba0e670b0afd1554c162eadb6928d106df17b66c3"
[[files]] [[files]]
file = "config/paxi/datapacks/onion-fixes/data/adorablehamsterpets/recipe/cucumber_crate.json" file = "config/paxi/datapacks/onion-fixes/data/adorablehamsterpets/recipe/cucumber_crate.json"
hash = "21b11674b18c3fb0d8292095cf7c12bca82ef4054ec3f1cd8d1e0222d1655629" hash = "21b11674b18c3fb0d8292095cf7c12bca82ef4054ec3f1cd8d1e0222d1655629"
+1 -1
View File
@@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0"
[index] [index]
file = "index.toml" file = "index.toml"
hash-format = "sha256" hash-format = "sha256"
hash = "50d97b070e620b4e850df2feb7a07b11bf7a90cab87efa96219a217b9586446d" hash = "3c17e58506c00f8c5aba5151afa765fdd68245c384293a017a5e2062ac35afbe"
[versions] [versions]
minecraft = "1.21.1" minecraft = "1.21.1"