Cyanide

Cyanide

Mod

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

Client or server Utility

13.3k downloads
40 followers
Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.
Filter loader...
Filter versions...

Initial update to Minecraft 1.21. This version had a lot of (Mojang made) changes, especially a large update to DataFixerUpper which required a lot of changes within Cyanide. Some of Cyanide's features have been integrated into Minecraft itself (see for example, Mojang/DataFixerUpper@e491561 or Mojang/DataFixerUpper#54).

With these changes, come some improvements to Cyanide's error tracking, mainly in being able to handle the "Unbound values in registry" more gracefully by tracking where the unbound reference(s) came from:

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'

Changes

  • Updated to Minecraft 1.21, supporting NeoForge and Fabric.
  • Rewrote registry parsing (again) in order to better handle "Unbound values in registry" errors.
  • Added improved error messages for IntProvider and FloatProvider.
  • Added various fieldOf injections for traceability across a number of different data types.
  • Removed error reporting modifications for Biomes, Enum types, and list indexes.

Features

For a more comprehensive list of Cyanide's existing features, see here.

Changes

  • Support Fabric's custom world gen registry API. Fixes #28, #29

Changes

  • Update to 1.20.1
  • Support Forge's custom world gen registry API. Fixes #20, #21, and #22.

Update to 1.20. No notable changes.

Updated to 1.19.3

Mojang pulled a fast one on modders and unfortunately this is not compatible with 1.19.2. They also managed to rewrite some of their registry loading which has made Cyanide a bit more ineffective, as tracking down invalid references is no longer possible (quite unfortunately).

1.19 Update!

Nothing has particularly changed, however this is updated to both Forge and Fabric, using a new setup which should allow both mod loaders to be maintained more in parallel than was already possible.

  • Added some additional error reporting to placed features.
  • Improved the cases in which feature cycle errors were able to be detected. Previously, this would only work with the "add datapacks" screen.
  • Improve performance of data pack detection (the at: data pack foobar.zip) error, when no errors are detected. Can result in 2-3x speedups for larger world gen data packs.

Added detection and improved error logging for feature cycles. The new error messages now identify the exact cycle, including the biomes and features by name that they were defined in (a significant improvement on printing the hash codes of the biomes).

Example of a feature cycle using Cyanide:

A feature cycle was found.

Cycle:
At step 7
Feature 'minecraft:patch_fire'
  must be before 'minecraft:patch_soul_fire' (defined in 'minecraft:warped_forest' at index 1, 2 and 3 others)
  must be before 'minecraft:glowstone_extra' (defined in 'minecraft:warped_forest' at index 2, 3 and 2 others)
  must be before 'minecraft:glowstone' (defined in 'minecraft:warped_forest' at index 3, 4 and 4 others)
  must be before 'minecraft:patch_crimson_roots' (defined in 'minecraft:soul_sand_valley' at index 2, 3)
  must be before 'minecraft:patch_fire' (defined in 'minecraft:soul_sand_valley' at index 3, 4)

The same datapack in Vanilla, 1.18-pre7:

Failed to validate datapack
java.util.concurrent.CompletionException: java.lang.IllegalStateException: Feature order cycle found, involved biomes: [caz@5bf17128, caz@7913a77c]
... followed by a ~50 line long stacktrace ...

Changes

  • Add improved logging for vanilla's "silent" world generation datapack errors, namely dimension errors.
  • Fix trace information for structure template pool processor lists not showing up as intended.

Project members

alcatrazEscapee

Owner

Details

Licensed MIT
Published a year ago
Updated 5 days ago