Il nome mod è usato per riferirsi a una mod e ognuna di esse dovrebbe averne uno unico. Questi possono includere lettere, numeri e trattini bassi, e un buon nome dovrebbe descrivere brevemente cosa fa la mod (è anche consigliato rinominare la cartella della mod con il nome di quest’ultima). Per scoprire se un nome è disponibile, prova a cercarlo su content.minetest.net.
lamiamod
├── init.lua (necessario) - Viene eseguito al lancio del gioco.
├── mod.conf (consigliato) - Contiene la descrizione e le dipendneze.
├── textures (opzionale)
│ └── ... qualsiasi texture o immagine
├── sounds (opzionale)
│ └── ... qualsiasi file audio
└── ... qualsiasi altro tipo di file o cartelle
Solo il file init.lua è necessario in una mod per eseguirla quando si avvia un gioco; tuttavia è consigliato anche mod.conf, e altri componenti potrebbero essere richiesti a seconda di quello che si vuole fare.
Questo file è utilizzato per i metadati della mod, che includono il suo nome, la descrizione e altre informazioni.
Per esempio:
name = lamiamod
description = Aggiunge X, Y, e Z
depends = mod1, mod2
Una dipendenza è quando (all’avvio) una o più mod vengono richieste da un’altra mod. I motivi sono vari: potrebbe per esempio aver bisogno di parti del loro codice, degli oggetti, o in generale di risorse che queste forniscono.
Ci sono due tipi di dipendenze: forti e opzionali. Entrambe richiedono che la mod richiesta venga caricata prima, con la differenza che se la dipendenza è forte e la mod non viene trovata, l’altra non verrà caricata, mentre se è opzionale, verranno semplicemente caricate meno funzionalità.
Le dipendenze sono specificate in un elenco separato da virgole in mod.conf.
depends = mod1, mod2
optional_depends = mod3
Le mod possono essere raggruppate in pacchetti che permettono di confezionarne e spostarne più alla volta. Sono comodi se si vogliono fornire più mod a chi gioca, ma non si vuole al tempo stesso fargliele scaricare una per una.
pacchettomod1
├── modpack.lua (necessario) - segnala che è un pacchetto mod
├── mod1
│ └── ... file mod
└── mymod (opzionale)
└── ... file mod
Attenzione che un pacchetto mod non equivale a un gioco. I giochi hanno una propria struttura organizzativa che verrà spiegata nel loro apposito capitolo.
Segue un esempio che mette insieme tutto ciò discusso finora:
lamiamod
├── textures
│ └── lamiamod_nodo.png
├── init.lua
└── mod.conf
print("Questo file parte all'avvio!")
core.register_node("lamiamod:nodo", {
description = "Questo è un nodo",
tiles = {"lamiamod_nodo.png"},
groups = {cracky = 1}
})
name = lamiamod
descriptions = Aggiunge un nodo
depends = default
Questa mod ha come nome “lamiamod”. Ha due file di testo: init.lua e mod.conf.
Lo script stampa un messaggio e poi registra un nodo – che sarà spiegato nel prossimo capitolo.
C’è una sola dipendenza, la mod default, che si trova solitamente in Minetest Game.
C’è anche una texture in textures/ per il nodo.