Cos'è Mixin? Modding del bytecode di Minecraft (2026)

Mixin è la libreria di bytecode injection che permette ai mod di Minecraft di patchare le classi del gioco al momento del caricamento. Ecco cosa fa e perché i mod ne hanno bisogno.

Frameworksby trqUpdated June 4, 2026
Key takeaways
  • Mixin è una libreria Java che applica patch alle classi compilate di Minecraft al momento del caricamento.
  • I mod descrivono dove iniettare il codice, non l'aspetto del file, quindi le patch sopravvivono agli aggiornamenti del gioco.
  • Fabric si basa su Mixin e applica i mixin di ciascun mod durante il caricamento delle classi.
  • Non installi mai Mixin direttamente; il loader lo include.

Mixin è una libreria Java che consente a un mod di modificare le classi compilate di Minecraft durante il caricamento del gioco, senza modificare il codice sorgente originale. I mod scrivono piccole classi che indicano "aggiungi questo codice in questo punto in questo metodo di gioco", e Mixin le integra nel bytecode a runtime. Fabric lo utilizza come meccanismo di modding principale.

Dove si integra Opal

Opal è un mod per Fabric, quindi si basa su Mixin internamente. Non è necessario installare Mixin separatamente; la guida all'installazione spiega come far funzionare Opal e Fabric.

Come funziona Mixin

Mixin modifica le classi dopo la loro compilazione ma prima che la JVM le esegua. Una mod spedisce una classe Mixin che prende di mira una classe reale del gioco. Le annotazioni su quella classe indicano dove inserire il codice iniettato: l'inizio di un metodo, la fine, una specifica chiamata di metodo o un valore restituito. Quando Minecraft carica la classe di destinazione, Mixin riscrive il suo bytecode per inserire il codice della mod.

Questo è importante perché Minecraft non è progettato per essere esteso. Il gioco non ha punti di plugin ufficiali per la maggior parte dei comportamenti. Mixin offre alle mod un modo per entrare trattando il gioco compilato stesso come superficie di estensione.

Perché le mod lo usano invece di modificare il gioco

Ci sono due ragioni: compatibilità e aggiornamenti.

Modificare direttamente il codice sorgente del gioco significa spedire una copia modificata completa, su cui nessuno può costruire e che si rompe non appena il gioco viene aggiornato. Le patch di Mixin sono piccole e mirate, quindi molte mod possono patchare lo stesso gioco senza dover spedire ciascuna una fork completa.

Le patch descrivono anche dove iniettare piuttosto che come appare il file, quindi una mixin scritta per una versione spesso funziona ancora dopo un aggiornamento del gioco, a condizione che il metodo di destinazione esista ancora.

Come si integra con Fabric

Fabric è costruito su Mixin. Il loader legge la configurazione mixin di ogni mod, quindi passa le classi mixin elencate a Mixin affinché vengano applicate durante il caricamento delle classi. Una tipica mod Fabric è costituita principalmente dalle proprie classi più un numero limitato di mixin che agganciano i pochi metodi di gioco che deve modificare.

Punti di iniezione comuni

AnnotazioneCosa fa
@InjectEsegue il tuo codice in un punto scelto all'interno di un metodo di destinazione
@RedirectSostituisce una specifica chiamata di metodo all'interno del target
@ModifyArgModifica un argomento passato a una chiamata all'interno del target
@ModifyVariableRiscrive una variabile locale a metà metodo
@OverwriteSostituisce un intero metodo (ultima risorsa; si rompe facilmente)

@Inject è lo strumento predefinito perché è il meno invasivo e il più probabile che sopravviva a un aggiornamento del gioco. @Overwrite è evitato perché entra in conflitto con qualsiasi altra mod che tocca lo stesso metodo.

FAQ