YACL serialises config with FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES
(and serializeNulls), so the camelCase keys biomeSpec, leafInsect, seaBunny,
stagBeetle, rolyPoly and stickBug were never read. Every SpawnEntry then
deserialised with biomeSpec = null, and CAC 2.7.0's SpawnEntry.isTag() calls
biomeSpec.startsWith("#") without a null check, crashing FMLCommonSetup on
both the dedicated server and the client.
Rename the keys; all tuned weights and biome specs are unchanged. Missing
keys still fall back to mod defaults (partial file). Refresh the index and
pack hashes.
52 lines
2.3 KiB
JSON
52 lines
2.3 KiB
JSON
// 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": {
|
|
"leaf_insect": [
|
|
{"biome_spec": "#c:is_jungle", "weight": 8, "min": 1, "max": 1},
|
|
{"biome_spec": "#c:is_forest", "weight": 4, "min": 1, "max": 1}
|
|
],
|
|
"sea_bunny": [
|
|
{"biome_spec": "minecraft:ocean", "weight": 10, "min": 1, "max": 2},
|
|
{"biome_spec": "minecraft:deep_ocean", "weight": 10, "min": 1, "max": 2},
|
|
{"biome_spec": "minecraft:warm_ocean", "weight": 20, "min": 1, "max": 3},
|
|
{"biome_spec": "minecraft:lukewarm_ocean", "weight": 10, "min": 1, "max": 3},
|
|
{"biome_spec": "minecraft:deep_lukewarm_ocean", "weight": 10, "min": 1, "max": 3}
|
|
],
|
|
"dragonfly": [
|
|
{"biome_spec": "#c:is_river", "weight": 4, "min": 1, "max": 1},
|
|
{"biome_spec": "#c:is_swamp", "weight": 5, "min": 1, "max": 1},
|
|
{"biome_spec": "#c:is_lush", "weight": 6, "min": 1, "max": 1}
|
|
],
|
|
"ladybug": [
|
|
{"biome_spec": "#c:is_forest", "weight": 4, "min": 1, "max": 3},
|
|
{"biome_spec": "#c:is_lush", "weight": 6, "min": 1, "max": 2},
|
|
{"biome_spec": "#c:is_floral", "weight": 7, "min": 1, "max": 2}
|
|
],
|
|
"stag_beetle": [
|
|
{"biome_spec": "#c:is_forest", "weight": 3, "min": 1, "max": 2},
|
|
{"biome_spec": "#c:is_lush", "weight": 6, "min": 1, "max": 2}
|
|
],
|
|
"roly_poly": [
|
|
{"biome_spec": "#c:is_forest", "weight": 3, "min": 1, "max": 3},
|
|
{"biome_spec": "#c:is_lush", "weight": 6, "min": 1, "max": 2},
|
|
{"biome_spec": "#c:is_swamp", "weight": 6, "min": 1, "max": 2}
|
|
],
|
|
"snail": [
|
|
{"biome_spec": "#c:is_forest", "weight": 3, "min": 1, "max": 2},
|
|
{"biome_spec": "#c:is_lush", "weight": 5, "min": 1, "max": 2},
|
|
{"biome_spec": "#c:is_swamp", "weight": 6, "min": 1, "max": 2}
|
|
],
|
|
"stick_bug": [
|
|
{"biome_spec": "#c:is_forest", "weight": 3, "min": 1, "max": 2},
|
|
{"biome_spec": "#c:is_lush", "weight": 6, "min": 1, "max": 2}
|
|
],
|
|
"weevil": [
|
|
{"biome_spec": "#c:is_forest", "weight": 3, "min": 1, "max": 3},
|
|
{"biome_spec": "#c:is_lush", "weight": 6, "min": 1, "max": 2}
|
|
]
|
|
}
|
|
}
|