Ready to find who to Blame?
Forge version: https://www.curseforge.com/minecraft/mc-mods/blame
Blame is a diagnosis to be put on if you are having strange worldgen crashes or commands that break without any stacktrace. But when you have Blame on, it will attempt to gather far more infomation and print the stacktrace to the latest.log file in the logs folder above the mods folder. A much more convenient place with all the info you will need! Keep in mind, Blame only works on singleplayer or on servers. Not on clients connecting to a server.
Here's the current list of functionalities that Blame has!
• Prints out the stacktrace for commands that crashed when used.
(Normally, modded commands do not print anything to logs when they crash)
• Will detect and print out all broken commands when starting up a world.
(This will find commands that called an .executes() outside a .then() call because they won't work)
• Prints extra detail for features or structures that crashes during worldgen.
• Logs all ConfiguredFeatures, ConfiguredStructures, ConfiguredCarvers that are not registered.
(Mods that don't register the stuff will cause other mod's stuff to break and not spawn during worldgen)
• Detect if DynamicRegistry is loaded way too early by another mod.
(Doing so causes all other mod's registered worldgen stuff to blow up such as "Unknown Biome ID" issues)
• Logs out exactly which worldgen JSON file is broken from any mod or datapack and shows its JSON too.
• Logs out any missing loot table when the loot is attempted to be generated! Check logs if a chest is empty and this mod might catch why.
• Prints out the name of the crashing structure that has its spacing value set to 0 or if it's separation value is equal to or greater than the spacing value.
(Either one of these condition being true will crash the game.)
• Prints out exactly which structure crashed a custom/flat ChunkGenerator because it wasn't added to FlatGenerationSettings.STRUCTURES
• Will print to logs if a Jigsaw Structure attempts to access a non-existent template pool so you know when a structure is not fully generating.
• Will log out if a mod or datapack tries to access a non-existent nbt file for easier debugging.
• Will print out what block and its nbt crashed a structure processor during structure generation.
FOR MODDERS: USING BLAME IN Quilt/Fabric DEV ENVIRONMENT
In your build.gradle file, add this maven repository. This is where gradle will look for Blame's jar.
Now add this to the dependency block. Replace <version> with the Blame version you want to use such as `1.16.5-3.0.1-fabric`. Check the CurseForge page for what the latest version is.
Launch the game and Blame should be running! You can tell as Blame will print something like this to the IDE console and latest.log file:
[18:25:48] [main/ERROR] (Blame) Blame 1.16.5-3.0.1-fabric initialized
Discord Link to #telepathicgrunt-mods channel for my mods! :