Reimplements the core Not Enough Crashes features for Minecraft 1.12.2 on the legacy Forge toolchain (ForgeGradle 2.3, MCP mappings, SpongePowered Mixin), since Architectury/Fabric/Yarn do not support 1.12.2. Features: - Catches client game-loop crashes and shows a recoverable crash screen instead of closing the game (return to title / quit / open report). - Blames the mod most likely responsible by mapping stack-trace classes back to their owning mod. - Adds a Suspected Mods line to every crash report (client and server). Mixin is shaded and bootstrapped by a small Forge core plugin. A GitHub Actions workflow (.github/workflows/build-1.12.2.yml) builds it on JDK 8.
Not Enough Crashes — 1.12.2 (Forge) backport
This folder contains a standalone Forge 1.12.2 backport of Not Enough Crashes by Fudge.
The original mod (1.16+) is built with Architectury + Fabric Loom + Yarn mappings, none of which exist for 1.12.2. Fabric itself only started at 1.14, so a 1.12.2 port can only be Forge. This is therefore a reimplementation of the mod's core features against the legacy Forge 1.12.2 toolchain (ForgeGradle 2.3, MCP mappings, SpongePowered Mixin), not a literal copy of the 1.16 source.
What it does
- Catches client crashes in the game loop and shows a recoverable crash screen instead of closing the game. From there you can return to the title screen, quit, or open the crash report.
- Blames the mod that most likely caused the crash (by mapping the classes in the stack trace back to the jar they came from, and then to the owning mod).
- Adds a "Suspected Mods" line to every crash report — this part also runs on the dedicated server, so server crash reports tell you which mod is at fault.
Client vs. server
The recoverable crash screen is, by nature, a client feature. On a dedicated server this
mod does not prevent the server from stopping when it crashes — Forge/Minecraft has no equivalent
of a client "crash screen" on the server. What it does do on the server is improve crash reports
by listing the suspected mod(s). The mod is safe to install on both sides (acceptableRemoteVersions = "*").
Building
Requires JDK 8 (ForgeGradle 2.3 does not work on newer JDKs). The Gradle wrapper is pinned to Gradle 4.10.3, which ForgeGradle 2.3 requires.
cd 1.12.2
./gradlew build
The finished mod jar is written to 1.12.2/build/libs/.
CI builds this automatically on JDK 8 — see .github/workflows/build-1.12.2.yml.
Configuration
A config file is generated at config/notenoughcrashes.cfg:
catchCrashes(defaulttrue) — show the recoverable crash screen instead of quitting.disableReturnToMainMenu(defaultfalse) — disable the "Back to title screen" button.crashLimit(default20) — quit after this many crashes in a row.debugModIdentification(defaultfalse) — verbose logging of mod blaming.
Technical notes
- Mixin is shaded into the jar and bootstrapped by a tiny Forge core plugin
(
fudge.notenoughcrashes.coremod.NecCoreMod), so no extra dependency is required. MixinMinecraftcancelsMinecraft#displayCrashReport(which wouldSystem.exit) and re-enters the game loop after showing the crash screen.MixinCrashReportappends the suspected-mods list to the report's system details, on both sides.