diff --git a/.packwizignore b/.packwizignore index ee0f592..ce94ef8 100644 --- a/.packwizignore +++ b/.packwizignore @@ -65,3 +65,8 @@ config/paxi/datapacks/* # Default Options copies them into place client-side, only when the target is absent. !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 diff --git a/config/alexsmobs-common.toml b/config/alexsmobs-common.toml new file mode 100644 index 0000000..2bd64f1 --- /dev/null +++ b/config/alexsmobs-common.toml @@ -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 diff --git a/config/crittersandcompanions-common.json5 b/config/crittersandcompanions-common.json5 new file mode 100644 index 0000000..259a191 --- /dev/null +++ b/config/crittersandcompanions-common.json5 @@ -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} + ] + } +} diff --git a/config/fowlplay.json5 b/config/fowlplay.json5 new file mode 100644 index 0000000..79d66b1 --- /dev/null +++ b/config/fowlplay.json5 @@ -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 +} diff --git a/index.toml b/index.toml index 44c617a..3fb9d14 100644 --- a/index.toml +++ b/index.toml @@ -4,6 +4,14 @@ hash-format = "sha256" file = "config/akashictome-common.toml" hash = "4e479c86ddfec0c5e28f07034f033a10abae404309f38ccc4bfc15da9de2dfa2" +[[files]] +file = "config/alexsmobs-common.toml" +hash = "bc47ee67032ceab8b2b408819ce9b268812f37da8f13b9b7efeae0deed607c4b" + +[[files]] +file = "config/crittersandcompanions-common.json5" +hash = "a00a9fe09ce5b469247f757e780b5faf74191f5cfef158d999c4d7a1e203f420" + [[files]] file = "config/defaultoptions/extra/config/DistantHorizons.toml" hash = "8949bf3c7a43df7a7ae384213db0985425db3559219c29cb63eaef45c7962dcc" @@ -36,6 +44,10 @@ hash = "9b75828543ed2b8cc5804eabecdc28262297a90d6f0e8e771d64ff779a69e3c9" file = "config/defaultoptions/options.txt" hash = "62034e0589087dab02d1a15192ad313a57f907d5ee9ebbf8853151f7831851a1" +[[files]] +file = "config/fowlplay.json5" +hash = "09ad767a358310e9d38e632ba0e670b0afd1554c162eadb6928d106df17b66c3" + [[files]] file = "config/paxi/datapacks/onion-fixes/data/adorablehamsterpets/recipe/cucumber_crate.json" hash = "21b11674b18c3fb0d8292095cf7c12bca82ef4054ec3f1cd8d1e0222d1655629" diff --git a/pack.toml b/pack.toml index 3ba347e..8d23c93 100644 --- a/pack.toml +++ b/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "50d97b070e620b4e850df2feb7a07b11bf7a90cab87efa96219a217b9586446d" +hash = "3c17e58506c00f8c5aba5151afa765fdd68245c384293a017a5e2062ac35afbe" [versions] minecraft = "1.21.1"