Cyanide
A mod which substantially improves Minecraft's data driven world generation error detection, reporting, and recovery mechanisms.
Cyanide
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 list:
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.
<pre>Parsing Error: Value provider too low (must be >= 0), got -1<br> at 'placement'<br> at 'cyanide:worldgen/placed_feature/ore_tin' defined in 'file/Test.zip'</pre>
The "Unbound values in registry" error tracks what files were referencing it.
<pre>Missing File Error: 'cyanide:worldgen/configured_feature/big_ores' was referenced but not defined<br> at 'cyanide:worldgen/placed_feature/big_ores' defined in 'file/Test.zip'</pre>
Illegal JSON will show the exact file location, along with the surrounding context of where it failed to parse.
<pre>Syntax Error: Expected ':' at line 3 column 13 path $.config<br> at:<br>{<br> "type": "minecraft:big_flowers",<br> "config" {<br> ^<br> here<br><br> at 'cyanide:worldgen/configured_feature/flowers' defined in 'file/Test.zip'</pre>
"Feature Cycle" errors (where features are defined in different order within different biomes) trace and report the exact cycle found
<pre>A feature cycle was found.<br><br>Cycle:<br>At step 0<br>Feature 'minecraft:lake_lava_underground'<br> must be before 'minecraft:lake_lava_surface' (defined in 'minecraft:ocean' at index 1, 2 and 1 others)<br> must be before 'cyanide:big_ore' (defined in 'minecraft:ocean' at index 2, 3)<br> must be before 'cyanide:small_ore' (defined in 'minecraft:plains' at index 0, 1)<br> must be before 'minecraft:lake_lava_underground' (defined in 'minecraft:ocean' at index 0, 1 and 1 others)</pre>