User Tools

Site Tools


drafts:mixin_obfuscation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
drafts:mixin_obfuscation [2025/12/29 10:59] gauntreclusedrafts:mixin_obfuscation [2025/12/29 11:14] (current) gauntrecluse
Line 1: Line 1:
 ====== Mixins and Obfuscation (DRAFT) ====== ====== Mixins and Obfuscation (DRAFT) ======
  
-===== What is Obfuscation? =====+===== Introduction =====
  
 Obfuscation refers to a process used by Mojang up until 26.1, in which the names in the game's code were made obfuscated, in other words were scrambled to be meaningless. In order to get around this and be able to mod with meaningful names, the MC modding community has been using mappings, including mainly Yarn mappings, a libre-licensed set of mappings developed by and mainly for Fabric until obfuscation was dropped, and Mojang/"official" mappings, provided by Mojang directly. Remapping is the process of converting a set of named references and declarations of classes, methods and fields, and changing them to match a certain set of mappings. Obfuscation refers to a process used by Mojang up until 26.1, in which the names in the game's code were made obfuscated, in other words were scrambled to be meaningless. In order to get around this and be able to mod with meaningful names, the MC modding community has been using mappings, including mainly Yarn mappings, a libre-licensed set of mappings developed by and mainly for Fabric until obfuscation was dropped, and Mojang/"official" mappings, provided by Mojang directly. Remapping is the process of converting a set of named references and declarations of classes, methods and fields, and changing them to match a certain set of mappings.
Line 10: Line 10:
  
  
-==== Which MC versions are not obfuscated? ====+==== Obfuscated Versions ====
  
 Minecraft is obfuscated up to and including 1.21.11, meaning that the first unobfuscated versions will be 26.1 and its snapshots. An easy way to remember it is that MC versions are obfuscated up until the change to the new versioning scheme. Minecraft is obfuscated up to and including 1.21.11, meaning that the first unobfuscated versions will be 26.1 and its snapshots. An easy way to remember it is that MC versions are obfuscated up until the change to the new versioning scheme.
Line 16: Line 16:
 Unobfuscated versions will no longer require any obfuscation mappings or remapping, meaning that MC code will be targetable in roughly the same ways as any other Java library present at runtime and not loaded before Mixin. Unobfuscated versions will no longer require any obfuscation mappings or remapping, meaning that MC code will be targetable in roughly the same ways as any other Java library present at runtime and not loaded before Mixin.
  
-==== Are mods Obfuscated? ====+==== Modded targets ====
  
 The short answer is no, mods are not obfuscated. //However// an important thing to note is that obfuscated methods will still need remapping even if targeting an override within a non-obfuscated class. This is typically seen with MC method overrides in another mod. The short answer is no, mods are not obfuscated. //However// an important thing to note is that obfuscated methods will still need remapping even if targeting an override within a non-obfuscated class. This is typically seen with MC method overrides in another mod.
  
  
-===== Writing Mixins and Obfuscation =====+===== How obfuscation affects Writing Mixins =====
  
 ==== The Mixin Refmap and the Annotation Processor ==== ==== The Mixin Refmap and the Annotation Processor ====
drafts/mixin_obfuscation.1767005984.txt.gz · Last modified: 2025/12/29 10:59 by gauntrecluse