Cyanide

Quick rating

Community listing page, reviews here may not be monitored by the author.

Cyanide

No reviews yet

Reduces data pack world generation pain by providing useful, informative error messages.

Mod Loaders
Minecraft

About

Description

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.

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 0
Feature '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)

N.B. Old Fabric Versions

Fabric versions older than 1.20 can be found on the Cyanide - Fabric project, which is no longer being maintained. Moving forward, both Forge and Fabric versions will be uploaded to this project, as per CurseForge's project guidelines.

N.B. New Fabric Versions

This project only contains old versions of Fabric Cyanide and is not being maintained! New versions can be found on the Main Cyanide Project. Moving forward, both Forge and Fabric versions will be uploaded to that project, as per CurseForge's project guidelines.


Cyanide (Old Fabric Versions)

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

For anyone familiar with Minecraft's configurable data pack based world generation since 1.16, the following error message will look annoyingly familiar:

Error without Cyanide

Do you know what's going on here? What file the error is present in? What other errors are hiding behind this absolute mess of a log message? I sure as hell can't decode this into anything that useful. Let's see what the exact same datapack produces if we instead add Cyanide:

Error with Cyanide

Wow! Let's break that down:

  • Cyanide identified that there were in fact, three errors in the above datapack, and notified us of them all.
  • In each case, the exact file, and datapack was able to be printed attached to each error.
  • Along with the error, additional trace information was provided, such as notifying that the missing feature was at index 7, at step "underground_ores" (index 6).
  • The errors are nicely formatted, separated, and grouped by relevant error location.

For a full list of all improvements that Cyanide makes to datapack world generation errors consult the features list on github.

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.

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 0
Feature '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)