Cyanide

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

47,08k

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>

ADS