cyanide

A mod which improves Minecraft's data driven world generation error detection and recovery mechanisms.

MIT License

Stars
19

Cyanide


cyanide seems to be something that will make me want to drink cyanide a lot less - Starmute, world generation datapack wizard.

A mod which substantially improves Minecraft's data driven world generation error detection and recovery mechanisms. It removes unnecessary stack traces and generates user-friendly error messages for most common issues with world generation datapacks. For some examples of what improvements Cyanide makes to error reporting, see the below table:

Explanation Example
All errors identify the exact file, and source datapack where the error originated. Some error messages are improved for clarity or have additional context added where possible. Parsing Error: Value provider too low (must be >= 0), got -1  at 'placement'  at 'cyanide:worldgen/placed_feature/ore_tin' defined in 'file/Test.zip'
The "Unbound values in registry" error tracks what files were referencing it. Missing File Error: 'cyanide:worldgen/configured_feature/big_ores'was referenced but not defined  at 'cyanide:worldgen/placed_feature/big_ores' defined in 'file/Test.zip'
Illegal JSON will show the exact file location, along with the surrounding context of where it failed to parse. Syntax Error: Expected ':' at line 3 column 13 path $.config  at:{  "type": "minecraft:big_flowers",  "config" {  ^  here  at 'cyanide:worldgen/configured_feature/flowers' defined in 'file/Test.zip'
"Feature Cycle" errors (where features are defined in different order within different biomes) trace and report the exact cycle found A feature cycle was found.Cycle:At step 0Feature 'minecraft:lake_lava_underground'  must be before 'minecraft:lake_lava_surface' (defined in 'minecraft:ocean'  at index 1, 2 and 1 others)  must be before 'cyanide:big_ore' (defined in 'minecraft:ocean' at index 2, 3)  must be before 'cyanide:small_ore' (defined in 'minecraft:plains' at index 0, 1)  must be before 'minecraft:lake_lava_underground' (defined in 'minecraft:ocean'  at index 0, 1 and 1 others)