There are multiple deobfuscation map file formats in use by the Fabric project and the wider Minecraft/Java modding community as a whole. This page will grant an overview and feature comparison table between the most popular options (grouped by format family, ordered by importance to Fabric tooling and release order therein):
Format | Namespaces | File Metadata | Element Metadata | Packages | Fields | Field descriptors | Methods | Parameters | Local variables | Element Comments | File Comments |
---|---|---|---|---|---|---|---|---|---|---|---|
Tiny v1 | ✔ | arbitrary | - | - | ✔ | src | ✔ | - | - | - | with # |
Tiny v2 | ✔ | arbitrary | - | - | ✔ | src | ✔ | lvIdx & srcName | lvIdx, lvtIdx, startOpIdx & srcName | shared | with # (in reserved areas) |
Enigma | - | - | access modifiers | - | ✔ | src | ✔ | lvIdx | - | shared | with # |
ProGuard | - | - | line numbers | - | ✔ | src | ✔ | - | - | - | with # |
SRG | - | - | - | ✔ | ✔ | - | ✔ | - | - | - | with # |
XSRG | - | - | - | ✔ | ✔ | src & dst | ✔ | - | - | - | with # |
JAM | - | - | - | - | ✔ | src | ✔ | argPos | - | - | - |
CSRG/TSRG | - | - | - | ✔ | ✔ | - | ✔ | - | - | - | with # |
TSRG v2 | ✔ | - | static method marker | ✔ | ✔ | src | ✔ | lvIdx & srcName | - | - | with # |
IntelliJ migration map | - | name & description | - | ✔ | - | - | - | - | - | - | with <!-- --> |
Recaf Simple | - | - | - | - | ✔ | src | ✔ | - | - | - | with # |
JOBF | - | - | - | ✔ | ✔ | src | ✔ | - | - | - | with # |