Skip to content

Minecraft fabric mod for making errors readable

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

booky10/StackDeobfuscator

Repository files navigation

Stack Deobfuscator

Downloads

The configuration is documented on the wiki.

A hosted web-version is available at stackdeobf.booky.dev. See wiki for self-hosting this page.

What does this mod do?

All errors displayed in the console and all crash reports will be remapped from unreadable production names (e.g. net.minecraft.class_310) to readable mapped names (e.g. net.minecraft.client.MinecraftClient).

This allows mod developers to more easily identify issues in a non-development environment, as the errors are instantly human-readable.

Comparison

Before
[23:13:08] [Render thread/ERROR]: Reported exception thrown!
net.minecraft.class_148: Manually triggered debug crash
         at net.minecraft.class_309.method_1474(class_309.java:509) ~[client-intermediary.jar:?]
         at net.minecraft.class_310.method_1574(class_310.java:1955) ~[client-intermediary.jar:?]
         at net.minecraft.class_310.method_1523(class_310.java:1180) ~[client-intermediary.jar:?]
         at net.minecraft.class_310.method_1514(class_310.java:801) ~[client-intermediary.jar:?]
         at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-1.19.4-client.jar:?]
         at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.18.jar:?]
         at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
Caused by: java.lang.Throwable: Manually triggered debug crash
         at net.minecraft.class_309.method_1474(class_309.java:506) ~[client-intermediary.jar:?]
         ... 10 more
After (yarn/quilt mappings)
[23:11:25] [Render thread/ERROR]: Reported exception thrown!
net.minecraft.util.crash.CrashException: Manually triggered debug crash
         at net.minecraft.client.Keyboard.pollDebugCrash(Keyboard.java:509) ~[client-intermediary.jar:?]
         at net.minecraft.client.MinecraftClient.tick(MinecraftClient.java:1955) ~[client-intermediary.jar:?]
         at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1180) ~[client-intermediary.jar:?]
         at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:801) ~[client-intermediary.jar:?]
         at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-1.19.4-client.jar:?]
         at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.18.jar:?]
         at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
Caused by: java.lang.Throwable: Manually triggered debug crash
         at net.minecraft.client.Keyboard.pollDebugCrash(Keyboard.java:506) ~[client-intermediary.jar:?]
         ... 10 more
After (mojang mappings)
[23:04:12] [Render thread/ERROR]: Reported exception thrown!
net.minecraft.ReportedException: Manually triggered debug crash
         at net.minecraft.client.KeyboardHandler.tick(KeyboardHandler.java:509) ~[client-intermediary.jar:?]
         at net.minecraft.client.Minecraft.tick(Minecraft.java:1955) ~[client-intermediary.jar:?]
         at net.minecraft.client.Minecraft.runTick(Minecraft.java:1180) ~[client-intermediary.jar:?]
         at net.minecraft.client.Minecraft.run(Minecraft.java:801) ~[client-intermediary.jar:?]
         at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-1.19.4-client.jar:?]
         at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.18.jar:?]
         at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
Caused by: java.lang.Throwable: Manually triggered debug crash
         at net.minecraft.client.KeyboardHandler.tick(KeyboardHandler.java:506) ~[client-intermediary.jar:?]
         ... 10 more

Mappings Overview

Mappings are downloaded and parsed asynchronously. They are downloaded only once per version. Yarn and Quilt refresh their version every 48 hours to check for updates.

Mappings Compatible Minecraft Versions Download Size (zipped¹)² Cached Size (gzipped)²
Yarn 18w49a (1.14 snapshot) or higher 1.4 MiB 1.4 MiB
Quilt 1.18.2 or higher 1.4 MiB (+1.1 MiB below 1.19.2) 1.4 MiB (+1.1 MiB below 1.19.2)
Mojang 1.14.4 and 19w36a (1.15 snapshot) or higher 9.0 MiB (uncompressed) + 559.1 KiB 1.3 MiB + 558.6 KiB

¹: Mojang mappings are not compressed
²: Sizes as of 12th May 2024 (1.20.6 is latest)

Building

./gradlew build # remove "./" on windows

The output jar can be found in buildlibs.

License

This project is licensed under LGPL-3.0-only unless specified otherwise.