Minecraft decompilation
The Forge Community Wiki has an excellent coverage of the background of mappings
and deobfuscation in the Toolchain
page. phase/MinecraftMappings and
MinecraftDecompiler
have good cross-mapping coverage. Vineflower has an excellent architecture
document.
Mappings
- Feather (1.3-1.13.2): Supported by linkie-core.
- Intermediary
- Legacy Yarn (1.3-1.13.2): Supported by linkie-core.
- MCP (ModCoderPack) (1.8+): Their site has
downloads for 1.7.10–1.12. Supported by SuperSrg as
mcp
and by linkie-core.
- Mojang (1.14.4+): Supported by linkie-core.
- Parchment: Based on Mojang’s mappings.
- Plasma (Beta 1.7.3): Supported by linkie-core.
- Quilt Mappings: 1.17+
- Quilt hashed mappings: Creates a
hashed version of a mapping to avoid license issues and provide package rename
stability.
- Spigot:
Spigot’s deobfuscation mappings. According to SuperSrg, they’re changed
infrequently to avoid breakage with plugins and are significantly lower
quality than MCP mappings as most member names are left obfuscated.
Supported by SuperSrg as
spigot
.
- SRG (Searge’s Retro Guard): Supported by SuperSrg as
srg
.
- Yarn (1.14+): Supported by linkie-core.
- Yarrn (Infdev 20100618): Supported by linkie-core.
- Fabric Loom [docs]
- Quilt Loom: Plugin to simplify use
of Quilt Mappings
- SuperSrg: SRG mappings. Supports
srg
, mcp
, spigot
, and obf
.
- DecompilerMC: Converts Mojang
mappings from Proguard format to TSRG format
- MCPConfig: Public-facing repo
for MCP SRG mappings
- phase/MinecraftMappings: Creates
transitive mappings. Supports SRG, CSRG, TSRG, Tiny, and JSON formats.
Resources
Deobfuscators
- BON
(Bearded Octo Nemesis) by Immibis (2012–2015)
- BON2 (2014–2019): Rewrite of BON for
ForgeGradle.
- BON3 (2023): Rewrite using Linkie.
- Deobfuscator3000
(2020–2021): Allows selecting your own mappings. Closed source JAR.
- Cuchaz Enigma
(2014–2015)
[site] [forum]
- Quilt Enigma (2016–2024): Fork of
Cuchaz’s Enigma with continued history. Supports Vineflower, Procyon, and
Fabric CFR.
- Linkie [core]:
- MinecraftDecompiler:
- Supports these mappings (I assume it lists mapping file formats and projects
using it):
- Proguard (official)
- SRG
- CSRG (Bukkit, Spigot, Paper)
- TSRG (SRG 1.13+)
- TSRG v2 (SRG 1.16.5+)
- Tiny (Intermediary, Yarn)
- Supports CFR, FernFlower, ForgeFlower, or any other decompiler
- SpecialSource: remaps the client jar in TSRG format
Decompilers