Vai al contenuto

Datapack

Oggetti, ricette, incantesimi, regole sui requisiti, imprese, titoli, traduzioni e impostazioni del mondo di MineDnD stanno in un normale datapack di Minecraft dentro il mondo. MineDnD Studio li modifica tutti con dei moduli; questa pagina descrive il formato dei file.

<mondo>/datapacks/<il_tuo_pacchetto>/
├── pack.mcmeta
└── data/<namespace>/
    ├── items/             ← oggetti MineDnD (qualsiasi sottocartella)
    │   └── weapons/flame_sword.json
    ├── recipe/            ← come si fanno: banco da fabbricazione o alambicco
    │   └── weapons/flame_sword.json
    ├── enchantment/       ← incantesimi personalizzati (formato di Minecraft)
    │   └── holy_strike.json
    ├── crafting_requirements/  ← punteggi necessari per creare, distillare, piazzare o usare le cose
    │   └── redstone_torch.json
    ├── tags/potion/       ← tag di pozioni, per regole su gruppi di pozioni (facoltativo)
    ├── advancement/       ← imprese, e i progressi che sbloccano le ricette
    ├── title/             ← titoli, sbloccati dalle imprese
    └── lang/              ← traduzioni, un file per lingua
        ├── en_us.json
        └── it_it.json

Le impostazioni del mondo vanno in data/minednd/settings.json (vedi Impostazioni del mondo).

Il datapack Default Content è un esempio completo e funzionante: datapacks/default-content (namespace minednd; tutto ciò che contiene è elencato in Contenuti predefiniti). Copia un file qualsiasi nel tuo pacchetto come punto di partenza.

Nel pacchetto Default Content Mostra
Spada Fiammeggiante, Pugnale del Veleno, Arco del Ranger, Bastone del Mago Requisiti sulle armi; incantesimi personalizzati e di Minecraft; indistruttibile
Anello della Forza, Amuleto della Salute, Tomo del Pensiero Lucido Bonus nella mano secondaria; il tomo (+2 INT) sblocca il bastone (INT 13)
Stivali Elfici, Cintura della Forza dei Giganti, Scudo della Fede, Mantello della Protezione Bonus per slot dell'armatura; cuoio tinto; attribute_modifiers di Minecraft
Colpo Sacro, Colpo Velenoso, Piè Veloce Incantesimi: danni, effetto al colpo con una condizione su FOR/DES, attributo mentre è indossato
Attacco Furtivo, Pelle di Pietra, Rimprovero Infernale, Scurovisione, Richiamo della Tempesta Stati dell'entità, protezione, reazione quando si è colpiti, effetti a ogni tick, condizioni meteo
Pozioni (Forza del Gigante delle Colline, Eroismo, …) minecraft:potion_contents con effetti propri, distillate nell'alambicco (minednd:brewing)
data/minecraft/tags/enchantment/ Far comparire gli incantesimi personalizzati nel tavolo per incantesimi, nei bottini e negli scambi
crafting_requirements/ Regole su id di ricetta, oggetto, lista di oggetti e tag di oggetti; stessi punteggi per più azioni; punteggi diversi per azione; solo uso (perla di ender); pozioni per livello (brewing/, con i tag di pozioni in tags/potion/)

pack.mcmeta per Minecraft 26.3:

{ "pack": { "description": "La mia campagna", "min_format": 121, "max_format": 121 } }
Campo Valore
pack.description Testo mostrato nella schermata Pacchetti dati e in /datapack list: una stringa o un componente di testo ({ "translate": … })
pack.min_format, pack.max_format I formati di pacchetto dati con cui funziona: 121 per Minecraft 26.3

Il tuo primo datapack

Un pacchetto completo, passo per passo: un oggetto (una spada che rallenta ciò che colpisce), i suoi nomi in due lingue, una ricetta che si sblocca quando raccogli l'ingrediente, e una regola che chiede Forza per crearla. Ogni file è JSON semplice; copiali così come sono, poi modificali. Il pacchetto finito è anche in datapacks/example nel repository.

<mondo>/datapacks/my_campaign/
├── pack.mcmeta
└── data/my_campaign/
    ├── items/weapons/frost_blade.json
    ├── lang/en_us.json
    ├── lang/it_it.json
    ├── recipe/weapons/frost_blade.json
    ├── advancement/recipes/weapons/frost_blade.json
    └── crafting_requirements/frost_blade.json

1. Il pacchetto. Crea la cartella my_campaign nella cartella datapacks del mondo (dove si trova: Il datapack Default Content), con pack.mcmeta:

{ "pack": { "description": "La mia campagna", "min_format": 121, "max_format": 121 } }

2. L'oggetto, data/my_campaign/items/weapons/frost_blade.json. Il suo id è il percorso: my_campaign:weapons/frost_blade.

{
  "category": "weapons",
  "stack": {
    "id": "minecraft:iron_sword",
    "count": 1,
    "components": {
      "minecraft:item_name": { "translate": "item.my_campaign.frost_blade", "fallback": "Frost Blade" },
      "minecraft:lore": [
        { "translate": "item.my_campaign.frost_blade.lore", "fallback": "Cold to the touch", "italic": true, "color": "gray" }
      ],
      "minecraft:rarity": "rare",
      "minednd:stat_bonus": { "bonuses": { "str": 1 }, "slot": "mainhand" },
      "minednd:requirements": { "str": 12 },
      "minednd:active_ability": {
        "type": "imbue",
        "name": { "translate": "ability.my_campaign.frost_strike", "fallback": "Frost Strike" },
        "right_click": false,
        "duration": 10,
        "damage": 2,
        "cooldown": 300,
        "effects": [{ "id": "minecraft:slowness", "level": 2, "seconds": 5 }]
      }
    }
  }
}

Una spada di ferro con nome e descrizione, +1 FOR quando è in mano, i poteri spenti sotto FOR 12, e un'abilità sul tasto V: il prossimo colpo entro 10 secondi fa 2 danni in più e rallenta il bersaglio. Ogni parte è spiegata più sotto (Oggetti, Bonus alle caratteristiche, Requisiti degli oggetti, Abilità degli oggetti).

3. I nomi, data/my_campaign/lang/en_us.json e data/my_campaign/lang/it_it.json:

{
  "item.my_campaign.frost_blade": "Frost Blade",
  "item.my_campaign.frost_blade.lore": "Cold to the touch",
  "ability.my_campaign.frost_strike": "Frost Strike"
}
{
  "item.my_campaign.frost_blade": "Lama del Gelo",
  "item.my_campaign.frost_blade.lore": "Fredda al tatto",
  "ability.my_campaign.frost_strike": "Colpo gelido"
}

4. La ricetta, data/my_campaign/recipe/weapons/frost_blade.json: una spada di ferro con quattro ghiacci blu intorno.

{
  "type": "minednd:crafting_shaped",
  "category": "equipment",
  "pattern": [" I ", "ISI", " I "],
  "key": { "I": "minecraft:blue_ice", "S": "minecraft:iron_sword" },
  "result": { "item": "my_campaign:weapons/frost_blade" }
}

5. Quando compare la ricetta, data/my_campaign/advancement/recipes/weapons/frost_blade.json: nel ricettario la prima volta che il giocatore ha del ghiaccio blu (Sbloccare le ricette).

{
  "parent": "minecraft:recipes/root",
  "criteria": {
    "has_blue_ice": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [{ "items": "minecraft:blue_ice" }] } },
    "has_the_recipe": { "trigger": "minecraft:recipe_unlocked", "conditions": { "recipes": "my_campaign:weapons/frost_blade" } }
  },
  "requirements": [["has_the_recipe", "has_blue_ice"]],
  "rewards": { "recipes": ["my_campaign:weapons/frost_blade"] }
}

6. Chi può crearla, data/my_campaign/crafting_requirements/frost_blade.json: FOR 12 (Regole sui requisiti).

{ "recipes": ["my_campaign:weapons/frost_blade"], "requirements": { "str": 12 } }

7. Provalo. Nel mondo (con i comandi attivi): /reload, poi

  • /dnd info: file/my_campaign è nell'elenco con 1 oggetto, 1 regola e 1 ricetta;
  • /dnd give @s my_campaign:weapons/frost_blade: la spada, con il suo tooltip;
  • /dnd stats set @s str 12: i suoi poteri si risvegliano (il tooltip diventa verde); colpisci un mob dopo aver premuto V.

Qualcosa non va? Vedi Trovare gli errori.

Le basi del JSON

  • Il tuo namespace: la cartella sotto data/ (my_campaign qui sopra). Lettere minuscole, cifre, _, - e .. Usa il tuo, mai minednd o minecraft (a meno che tu non voglia sostituire i loro file, vedi Ordine di caricamento e sostituzioni).
  • Gli id vengono dai percorsi: data/<namespace>/items/weapons/frost_blade.json è l'oggetto <namespace>:weapons/frost_blade; lo stesso per ricette, regole, progressi e titoli nelle loro cartelle.
  • Gli id di Minecraft sono minecraft:iron_sword, minecraft:speed, …; i tag iniziano con #: #minecraft:planks. Nel gioco i tooltip avanzati (F3 + H) mostrano gli id degli oggetti.
  • JSON semplice: virgolette doppie intorno a chiavi e testi, virgole tra le voci ma non dopo l'ultima, niente commenti, UTF-8. Un editor che controlla il JSON (VS Code, o un validatore JSON online) trova quasi tutti gli errori.
  • I testi sono componenti di testo: "Frost Blade", { "text": "Frost Blade", "color": "aqua" }, oppure { "translate": "<chiave>", "fallback": "<inglese>" } per un testo nella lingua di ogni giocatore (Traduzioni).
  • I campi facoltativi si possono omettere: prendono il valore predefinito scritto in ogni tabella qui sotto.

I campi e i valori dei file sono in inglese, come in tutti i datapack di Minecraft. Per esempio le caratteristiche si scrivono str (FOR), dex (DES), con (COS), int (INT), wis (SAG), cha (CAR).

Tutti i tipi di file

Cartella (sotto data/<namespace>/) Cosa Riferimento
items/**/*.json Oggetti MineDnD Oggetti, con i componenti bonus, requisiti, abilità
recipe/**/*.json Ricette di creazione (minednd:crafting_shaped), di distillazione (minednd:brewing), e qualsiasi ricetta di Minecraft Ricette, Ricette di distillazione
advancement/**/*.json Imprese (con i trigger di MineDnD) e sblocchi delle ricette Imprese, Sbloccare le ricette
enchantment/*.json Incantesimi (formato di Minecraft, più la condizione minednd:ability_scores) Incantesimi
crafting_requirements/**/*.json Regole sui requisiti: punteggi per creare, distillare, piazzare, usare Regole sui requisiti
title/*.json Titoli Titoli
tags/<tipo>/*.json Gruppi di id: pozioni, blocchi, oggetti, incantesimi… Tag
lang/<lingua>.json Traduzioni Traduzioni
settings.json (solo in data/minednd/) Impostazioni del mondo Impostazioni del mondo

Ordine di caricamento e sostituzioni

I pacchetti di un mondo hanno un ordine. /dnd info li elenca dalla priorità più bassa alla più alta; nella schermata Pacchetti dati vince quello in cima alla colonna Selezionati.

Quando due pacchetti hanno un file allo stesso percorso:

File Cosa succede
Oggetti, ricette, regole sui requisiti, incantesimi, progressi, titoli Si usa il file del pacchetto più in alto, gli altri si ignorano
Traduzioni (lang/<lingua>.json) Si usa il file del pacchetto più in alto per intero: le sue chiavi sostituiscono l'altro file, non si aggiungono
Tag (tags/…) Uniti: i valori di tutti i pacchetti si sommano, a meno che un file non dica "replace": true
data/minednd/settings.json Uniti chiave per chiave: il pacchetto più in alto vince per ogni valore che imposta

Quindi: - Per cambiare un file di un altro pacchetto (es. il Default Content), copialo nel tuo pacchetto allo stesso percorso (stesso namespace e stesse cartelle) e metti il tuo pacchetto sopra. - I tuoi testi vanno nei file di lingua del tuo namespace (data/my_campaign/lang/en_us.json): i file di namespace diversi si caricano tutti. Sostituire data/minednd/lang/en_us.json sostituirebbe tutti i testi inglesi del pacchetto. - Spostare un pacchetto più in alto: /datapack disable "file/my_campaign" e poi /datapack enable "file/my_campaign" last (last = priorità più alta, first = più bassa; funzionano anche before/after un altro pacchetto). Oppure trascinalo nella schermata Pacchetti dati. - Togliere qualcosa non si fa sostituendo (un file può solo sostituire un file). Una regola si toglie sostituendola con punteggio 1; per il resto, elimina il file dalla tua copia del pacchetto (Usarne solo una parte).

Oggetti

File: data/<namespace>/items/**/*.json. Prima della 0.3.0 questa cartella si chiamava gm_items: la mod la legge ancora (con un avviso nel log), e MineDnD Studio la sposta per te.

L'id dell'oggetto è il percorso del file: data/my_campaign/items/weapons/flame_sword.json → my_campaign:weapons/flame_sword (usato da /dnd give).

{
  "category": "weapons",
  "stack": {
    "id": "minecraft:iron_sword",
    "count": 1,
    "components": {
      "minecraft:item_name": { "translate": "item.my_campaign.flame_sword", "fallback": "Flame Sword" },
      "minecraft:lore": [
        { "translate": "item.my_campaign.flame_sword.lore", "fallback": "Forged in the Plane of Fire", "italic": true, "color": "gray" }
      ],
      "minecraft:rarity": "rare",
      "minecraft:enchantments": { "minecraft:fire_aspect": 2, "my_campaign:holy_strike": 1 }
    }
  }
}
Campo Obbligatorio Valore
category no (predefinito misc) Testo libero: raggruppa gli oggetti nella scheda creativa e in /dnd catalog list. Il pacchetto Default Content usa weapons, armor, accessories, tomes, tools, potions
stack sì L'oggetto, come stack di Minecraft:
stack.id sì L'oggetto base, un id di oggetto di Minecraft (minecraft:iron_sword). Decide modello, danni di base, durabilità e come si usa
stack.count no (predefinito 1) 1–99: quanti ne danno /dnd give e le ricette (il count di una ricetta lo moltiplica)
stack.components no Componenti, "<id del componente>": <valore>: qualsiasi componente di Minecraft (come in /give e nelle tabelle del bottino) più i tre di MineDnD: minednd:stat_bonus, minednd:requirements, minednd:active_ability

Componenti di Minecraft usati spesso sugli oggetti MineDnD (i formati completi sono sulla pagina Data component format della Minecraft Wiki):

Componente Valore Per
minecraft:item_name componente di testo Il nome (nel colore della rarità, non in corsivo)
minecraft:lore lista di componenti di testo Le righe sotto il nome
minecraft:rarity common, uncommon, rare, epic Colore del nome
minecraft:enchantments { "<id incantesimo>": <livello> } Incantesimi (di Minecraft o di un datapack)
minecraft:enchantment_glint_override true / false Il luccichio incantato senza (o nonostante) incantesimi
minecraft:attribute_modifiers lista di { "type", "id", "amount", "operation", "slot" } Armatura, danni, velocità… sempre attivi, anche sotto i requisiti
minecraft:unbreakable {} Non perde mai durabilità (spento sotto i requisiti)
minecraft:dyed_color intero RGB, es. 3949738 Colore dell'armatura di cuoio
minecraft:potion_contents { "potion": …, "custom_color": …, "custom_effects": [ { "id", "amplifier", "duration" } ] } Gli effetti delle pozioni (duration in tick)
minecraft:max_stack_size 1–99 Grandezza dello stack
minecraft:item_model un id di modello Un altro aspetto (un resource pack può aggiungere modelli)
  • Nomi e descrizioni: usa { "translate": "<chiave>", "fallback": "<testo inglese>" } perché compaiano nella lingua di ogni giocatore (vedi Traduzioni). Funziona anche un testo semplice come "Flame Sword", ma è uguale per tutti.
  • Meglio minecraft:item_name di minecraft:custom_name: appare nel colore della rarità e non in corsivo (custom_name sembra un nome dato con l'incudine).
  • stack: uno stack di Minecraft, esattamente come in /give o nelle tabelle del bottino. Funziona qualsiasi componente di Minecraft: nomi, descrizioni, incantesimi, attribute_modifiers, unbreakable, dyed_color, item_model, ...
  • Ogni oggetto del catalogo riceve in automatico minecraft:custom_data → minednd_catalog_id, così la mod lo riconosce in seguito.
  • Un file rotto viene saltato e scritto nel log (Skipping item ... nel log del server); il resto si carica comunque.

Bonus alle caratteristiche

Il componente minednd:stat_bonus:

"minednd:stat_bonus": {
  "bonuses": { "str": 2, "con": 1 },
  "slot": "offhand"
}
Campo Obbligatorio Valore
bonuses sì { "<caratteristica>": <bonus> }: caratteristiche str, dex, con, int, wis, cha; ogni bonus un numero intero da −10 a 10
slot no (predefinito any) Dove deve stare l'oggetto perché il bonus conti: any (ovunque addosso o in mano), hand (in una mano), mainhand, offhand, armor (qualsiasi slot dell'armatura), head, chest, legs, feet (body e saddle sono per gli animali e non valgono mai per i giocatori)
- I bonus compaiono nel tooltip dell'oggetto, e nella scheda personaggio come [+2] accanto al punteggio.
- Il componente funziona anche fuori dal catalogo, es. /give @s minecraft:stick[minednd:stat_bonus={bonuses:{str:2}}].

Requisiti degli oggetti

Il componente minednd:requirements:

"minednd:requirements": { "str": 12 }
  • { "<caratteristica>": <minimo> }: caratteristiche str, dex, con, int, wis, cha; ogni minimo un numero intero da 1 a 30. I poteri dell'oggetto funzionano quando il punteggio effettivo di chi lo tiene (base + bonus degli altri oggetti) è almeno quello.
  • Se chi lo tiene non li soddisfa, l'oggetto funziona come il suo oggetto base semplice: il suo minednd:stat_bonus, la sua minednd:active_ability, tutti i suoi incantesimi (Infinità, Indistruttibilità, Ripristino, Efficienza, protezione, …) e minecraft:unbreakable sono inattivi (una Spada Fiammeggiante è solo una spada di ferro; un Arco del Ranger consuma frecce e si consuma). Le statistiche proprie dell'oggetto base (danni d'attacco, armatura) e gli eventuali minecraft:attribute_modifiers restano. Nient'altro viene bloccato. Gli oggetti che nessuno porta (in una cassa, in un'incudine) tengono i loro incantesimi, quindi incudini e mole funzionano come sempre.
  • Le pozioni (ampolle normali, da lancio e persistenti) non hanno una versione semplice a cui tornare: sotto i loro requisiti non si possono bere né lanciare, e sopra la barra rapida compare "Per usare questo oggetto serve: …".
  • Il tooltip mostra "Requisiti:" con ogni punteggio in verde (soddisfatto) o in rosso (no), più una riga di avviso quando l'oggetto è inattivo.
  • I requisiti contano i bonus degli altri oggetti equipaggiati (es. un Anello della Forza aiuta a raggiungere FOR 12), anche di oggetti che hanno a loro volta dei requisiti, una volta soddisfatti (una Cotta di Maglia Elfica, DES 13, +1 DES, aiuta a raggiungere la DES 14 di un Arco del Ranger). Il bonus di un oggetto non conta mai per sé stesso, e gli oggetti non possono sbloccarsi a vicenda in un ciclo: ognuno deve essere soddisfatto senza l'altro.

Abilità degli oggetti

Il componente minednd:active_ability. Il clic sinistro è sempre l'attacco normale dell'oggetto. Questo componente gli dà un potere:

  • in mano (principale o secondaria): con il clic destro, o con il tasto abilità (V di default);
  • indossato (elmo, corazza, gambali, stivali): con il tasto equipaggiamento (G di default). Usa il primo pezzo indossato, dalla testa ai piedi, il cui potere è pronto; per i pezzi indossati right_click non conta.

Entrambi i tasti si cambiano in Opzioni → Comandi → MineDnD.

"minednd:active_ability": {
  "type": "fireball",
  "damage": 4,
  "scaling": { "ability": "int", "per_modifier": 1.5 },
  "fire_seconds": 3,
  "cooldown": 30,
  "hunger_cost": 3
}

Tipi

type Cosa fa Campi che usa
fireball Un dardo di fuoco vola dritto dove guardi, colpisce la prima creatura, non rompe mai i blocchi, si spegne in acqua o dopo 5 s damage, fire_seconds, speed, effects (sul bersaglio)
throw Una copia magica dell'arma vola via, colpisce la prima creatura, poi torna indietro attraversando i blocchi (l'oggetto vero resta in mano) damage, fire_seconds, speed, range, effects
buff Effetti e potenziamenti degli attributi su di te (e sugli alleati con allies) per duration secondi: Velocità, Rapidità, scavare al 200%, più portata… effects, attributes, duration, allies, radius
imbue I tuoi prossimi hits colpi (mischia, frecce, incantesimi) entro duration secondi fanno damage danni in più e aggiungono effetti, fuoco, contraccolpo, fulmini damage, hits, duration, effects, fire_seconds, knockback, lightning
heal Ti ridà heal di salute (e agli alleati), e se vuoi toglie gli effetti negativi (Veleno, Avvizzimento, Lentezza…) heal, cure, allies, radius, effects (su chi è curato)
area Un'onda intorno a te: danni, contraccolpo, fuoco ed effetti sulle creature entro radius (non i giocatori, non i tuoi animali) damage, radius, knockback, fire_seconds, effects
blink Ti teletrasporta nel punto libero più lontano dove guardi, fino a range blocchi. Se non c'è dove andare non succede nulla e non si spende nulla range
leap Ti lancia dove guardi (almeno un po' verso l'alto); niente danni da caduta finché non atterri speed
lightning Un fulmine sulla creatura o sul blocco che guardi, fino a range blocchi, più damage danni alle creature colpite. Se non c'è nulla a portata non si spende nulla range, damage, effects

Campi

Campo Predefinito Intervallo Significato
type (obbligatorio) vedi sopra
name il nome del tipo testo Come il tooltip chiama il potere, es. { "translate": "ability.my_campaign.misty_step", "fallback": "Misty Step" }.
right_click true true, false Oggetti in mano. true: il clic destro usa il potere, al posto del clic destro normale. false: l'oggetto tiene il suo clic destro normale (mangiare, tendere un arco, parare con lo scudo…) e il potere si usa con il tasto abilità (prima la mano principale, poi la secondaria).
damage 4 0–100 Danni (2 = un cuore): del proiettile, dell'onda di area, in più sui colpi di imbue e con lightning.
heal 4 0–100 Salute che ridà un heal (2 = un cuore).
scaling nessuno { "ability": "wis", "per_modifier": 1 }: aggiunge a damage e heal per_modifier × il modificatore di chi lo usa (punteggio 14 → +2, 8 → −1), mai sotto 0. per_modifier va da −20 a 20, predefinito 1.
fire_seconds 0 0–60 Incendia ciò che viene colpito.
speed 1.5 0.1–5 Velocità del proiettile (una freccia a piena tensione è circa 3); leap: quanto forte vieni lanciato.
range 16 1–64 Blocchi: prima che un throw torni indietro, di un blink, di un lightning.
duration 10 1–600 Secondi che dura un buff, o che un imbue aspetta i suoi colpi.
radius 5 1–32 Blocchi intorno a te: l'onda di area, e gli alleati di buff e heal.
knockback 0 0–10 Spinta di area e imbue (circa 0.5 = Contraccolpo I).
hits 1 1–20 Quanti colpi carica un imbue.
allies false buff e heal raggiungono anche gli altri giocatori entro radius.
cure false heal toglie anche gli effetti negativi.
lightning false imbue: ogni colpo caricato fa cadere un fulmine sul bersaglio.
effects nessuno fino a 16 Effetti di pozione: { "id": "minecraft:poison", "level": 2, "seconds": 6 }. level 1–10 (1 = Veleno I), seconds 1–600; senza seconds un effetto dura la duration (buff, heal) o 5 secondi (su ciò che viene colpito).
attributes nessuno fino a 16 buff: modificatori degli attributi per duration secondi: { "id": "minecraft:block_break_speed", "amount": 1.0, "operation": "add_multiplied_base" } (+100% = scavare al 200%). operation: add_value, add_multiplied_base (predefinito), add_multiplied_total, come negli attribute_modifiers di Minecraft.
cooldown 20 0–1200 Tick (20 = 1 secondo) prima dell'uso successivo, mostrati nella barra rapida.
durability_cost 0 0–100 Durabilità consumata per uso (solo per oggetti con durabilità; Indistruttibilità vale).
hunger_cost 0 0–40 Sfinimento per uso, il consumo di fame di Minecraft (4 = un punto fame). Con la barra della fame vuota il potere non si può usare.

Esempi

{ "type": "buff", "name": { "text": "Frenesia del minatore" }, "right_click": false, "duration": 5, "cooldown": 600,
  "attributes": [{ "id": "minecraft:block_break_speed", "amount": 1.0 }] }
{ "type": "buff", "name": { "text": "Passo rapido" }, "duration": 10, "cooldown": 400,
  "effects": [{ "id": "minecraft:speed", "level": 2 }] }
{ "type": "imbue", "name": { "text": "Colpo velenoso" }, "right_click": false, "duration": 10, "damage": 2,
  "effects": [{ "id": "minecraft:poison", "level": 2, "seconds": 6 }], "cooldown": 300 }
{ "type": "heal", "name": { "text": "Cura ferite" }, "heal": 6, "scaling": { "ability": "wis" }, "cure": true, "cooldown": 600, "hunger_cost": 4 }
{ "type": "area", "name": { "text": "Onda tonante" }, "radius": 5, "damage": 4, "knockback": 1.5, "cooldown": 300 }
{ "type": "blink", "name": { "text": "Passo velato" }, "range": 9, "cooldown": 200 }

Attributi utili per buff: minecraft:block_break_speed (scavare), minecraft:mining_efficiency (come Efficienza), minecraft:movement_speed, minecraft:attack_damage, minecraft:attack_speed, minecraft:jump_strength, minecraft:safe_fall_distance, minecraft:step_height, minecraft:block_interaction_range e minecraft:entity_interaction_range (portata), minecraft:scale (dimensioni), minecraft:armor, minecraft:knockback_resistance, minecraft:oxygen_bonus, minecraft:luck.

Come si comportano le abilità

  • Con il clic destro l'abilità sostituisce il clic destro normale dell'oggetto: per cibo, archi, scudi, armature e altri oggetti il cui clic destro conta, usa "right_click": false.
  • Segue minednd:requirements: sotto quei punteggi il potere è sopito e un messaggio dice quali mancano.
  • In creativa non costa durabilità né fame (la ricarica vale comunque).
  • Il tooltip mostra "Clic destro: …", "Premi V: …" o "Indossato, premi G: …" (i tasti che i giocatori hanno davvero impostato), cosa fa il potere con i punteggi attuali e i costi.
  • Le regole sull'uso (crafting_requirements con "applies_to": ["use"]) si controllano prima, come per ogni clic destro.
  • Un potenziamento più recente dello stesso attributo sostituisce quello vecchio; un nuovo imbue sostituisce i colpi caricati non ancora usati. Potenziamenti, colpi caricati e la protezione dalle cadute di un balzo finiscono quando il giocatore esce dal gioco o muore.
  • I danni fatti dal potere stesso (area, lightning) non consumano i colpi di imbue.
  • Gli effetti seguono le regole di Minecraft: i non morti (zombi, scheletri, …) ignorano Veleno e Rigenerazione, quindi contro di loro un colpo velenoso fa solo i suoi danni; Lentezza o Debolezza funzionano su tutto.
  • Esempi nel pacchetto Default Content: items/weapons/wizard_staff.json (palla di fuoco, cresce con INT, costa fame), items/weapons/flame_sword.json (lancio, cresce con FOR, fuoco, costa durabilità), items/weapons/ranger_bow.json (palla di fuoco con il tasto abilità, così l'arco si tende ancora con il clic destro).

Ricette

File: data/<namespace>/recipe/**/*.json. Un oggetto MineDnD si crea nel banco da fabbricazione con una ricetta di tipo minednd:crafting_shaped. È una ricetta con forma di Minecraft il cui risultato indica l'oggetto MineDnD, così l'oggetto si definisce una volta sola, in items/:

{
  "type": "minednd:crafting_shaped",
  "category": "equipment",
  "pattern": ["CGC", "GSG", "CBC"],
  "key": {
    "C": "minecraft:copper_ingot",
    "G": "minecraft:glowstone_dust",
    "S": "minecraft:golden_sword",
    "B": "minecraft:blaze_rod"
  },
  "result": { "item": "minednd:weapons/sun_blade" }
}
Campo Obbligatorio Valore
type sì minednd:crafting_shaped
pattern sì Da 1 a 3 stringhe di 1–3 caratteri, le righe della griglia; uno spazio è uno slot vuoto
key sì { "<carattere>": <ingrediente> } per ogni carattere della forma: un id di oggetto, "#<tag di oggetti>" o una lista di id
result.item sì L'oggetto MineDnD che produce: <namespace>:<percorso in items/>
result.count no (predefinito 1) 1–99
category no (predefinito misc) Scheda del ricettario: equipment, building, redstone, misc
group no Testo libero: le ricette con lo stesso gruppo condividono uno slot nel ricettario
show_notification no (predefinito true) L'avviso "nuove ricette" quando si sblocca
  • pattern e key funzionano esattamente come in minecraft:crafting_shaped: fino a 3 righe di fino a 3 caratteri, uno spazio è uno slot vuoto, e ogni carattere corrisponde a un id di oggetto, a un tag di oggetti ("#minecraft:planks") o a una lista di oggetti.
  • result.item: l'id dell'oggetto (<namespace>:<percorso in items/>). result.count facoltativo (1-99, predefinito 1).
  • category (facoltativo): la scheda del ricettario: equipment, building, redstone o misc (predefinito).
  • show_notification (facoltativo, predefinito true): l'avviso "nuove ricette" quando la ricetta si sblocca (vedi Sbloccare le ricette qui sotto).
  • L'oggetto creato è l'oggetto del catalogo così com'è al momento della creazione (nome, incantesimi, bonus, requisiti, abilità). Se il catalogo non ha quell'oggetto, la ricetta non crea nulla.
  • Evita la forma e gli ingredienti di una ricetta di Minecraft: quando due ricette corrispondono alla stessa griglia, se ne usa solo una.
  • Le regole sui requisiti possono limitare queste ricette come tutte le altre: "recipes": ["minednd:weapons/sun_blade"] in crafting_requirements (l'id della ricetta è il percorso del file). Per oggetto risultante corrispondono all'oggetto base (es. minecraft:golden_sword).
  • MineDnD Studio modifica le ricette nella pagina dell'oggetto (Ricetta: una griglia 3x3, o il modulo di distillazione qui sotto) e tiene il file accanto al nome dell'oggetto.
  • Il pacchetto Default Content ha 53 ricette di creazione e 4 di distillazione (vedi Contenuti predefiniti): quasi tutte migliorano l'oggetto base semplice con ingredienti speciali.

Sbloccare le ricette

Le ricette di creazione si sbloccano come in Minecraft: una ricetta compare nel ricettario di un giocatore (con l'avviso "nuove ricette") la prima volta che ottiene uno dei suoi ingredienti chiave. È un progresso di Minecraft senza visualizzazione, in data/<namespace>/advancement/recipes/<percorso della ricetta>.json, che ha come ricompensa la ricetta:

{
  "parent": "minecraft:recipes/root",
  "criteria": {
    "has_blaze_powder": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [{ "items": "minecraft:blaze_powder" }] } },
    "has_magma_cream": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [{ "items": "minecraft:magma_cream" }] } },
    "has_the_recipe": { "trigger": "minecraft:recipe_unlocked", "conditions": { "recipes": "minednd:weapons/flame_sword" } }
  },
  "requirements": [["has_the_recipe", "has_blaze_powder", "has_magma_cream"]],
  "rewards": { "recipes": ["minednd:weapons/flame_sword"] }
}
  • Un criterio inventory_changed per oggetto (un id o un "#tag"), tutti in un solo gruppo di requisiti: ne basta uno. has_the_recipe completa il progresso per chi ha già la ricetta (es. da /recipe give), come in Minecraft.
  • Funziona qualsiasi trigger (es. minecraft:player_killed_entity, o un trigger delle imprese di MineDnD): è un progresso normale, e /advancement e /recipe funzionano come sempre.
  • Una ricetta di creazione che nessun progresso sblocca è nel ricettario di tutti fin dall'inizio (all'accesso e dopo /reload), come prima: i datapack fatti per le versioni precedenti funzionano ancora.
  • Il ricettario mostra solo le ricette: chiunque metta gli ingredienti giusti crea l'oggetto, sbloccato o no (come in Minecraft, a meno che la regola di gioco limitedCrafting sia attiva). Per limitare la creazione usa le regole sui requisiti.
  • Le ricette del pacchetto Default Content si sbloccano con il loro ingrediente speciale (es. polvere di blaze o crema di magma → Spada Fiammeggiante, una scheggia di risonanza → Pugnale dell'Ombra).
  • Aggiornare un mondo: i giocatori entrati prima di questa versione avevano tutte le ricette MineDnD. Al primo accesso perdono quelle che non hanno ancora sbloccato (una volta sola); quelle di cui portano gli ingredienti tornano subito.
  • Le ricette di distillazione non si sbloccano: l'elenco delle ricette dell'alambicco mostra sempre tutte le pozioni, come in Minecraft.
  • MineDnD Studio lo modifica nella sezione Ricetta dell'oggetto (Sbloccata da) e tiene il file accanto alla ricetta.

Ricette di distillazione

Tipo di ricetta minednd:brewing. Da Minecraft 26.3 la distillazione è fatta di dati: ogni pozione di Minecraft viene da una ricetta minecraft:brewing (data/minecraft/recipe/brewing/*.json nel jar di Minecraft). Una ricetta minednd:brewing funziona allo stesso modo nell'alambicco, ma il suo risultato indica un oggetto MineDnD, e anche la sua ampolla può esserlo:

{
  "type": "minednd:brewing",
  "input": { "item": "minecraft:potion", "potion_contents": { "potions": "minecraft:strong_healing" } },
  "reagent": { "item": "minecraft:ghast_tear" },
  "result": { "item": "minednd:potions/potion_of_superior_healing" }
}
Campo Obbligatorio Valore
type sì minednd:brewing
input sì Le ampolle: { "item": <ampolla>, "potion_contents": { "potions": <pozione> } }, dove <ampolla> è minecraft:potion, minecraft:splash_potion o minecraft:lingering_potion e <pozione> un id di pozione, una lista di id o "#<tag di pozioni>"; oppure { "catalog_item": "<id oggetto MineDnD>" }
reagent sì L'ingrediente sopra: { "item": <id, lista o "#<tag di oggetti>"> }
result.item sì L'oggetto MineDnD che produce (un'ampolla per ogni ampolla dentro)
  • input: cosa va nei tre slot delle ampolle, nel formato di Minecraft: un'ampolla (minecraft:potion, splash_potion o lingering_potion) e la pozione che contiene (potion_contents.potions: un id di pozione come minecraft:awkward, una lista o un tag di pozioni). Oppure { "catalog_item": "<id dell'oggetto MineDnD>" }: un'ampolla di quell'oggetto MineDnD, per distillare una pozione personalizzata da un'altra.
  • reagent: l'ingrediente sopra, nel formato di Minecraft ({ "item": "minecraft:ghast_tear" }; vanno bene anche una lista o un tag di oggetti). Qualsiasi oggetto, anche quelli che Minecraft non usa mai per distillare. Se ne consuma uno per distillazione.
  • result.item: l'oggetto MineDnD che produce, esattamente come definito in items/. Un'ampolla dentro, un'ampolla fuori.
  • La distillazione dura 20 secondi e consuma polvere di blaze, come in Minecraft. La versione da lancio o persistente di una pozione personalizzata è un altro oggetto con la propria ricetta.
  • Evita una coppia ampolla e ingrediente che Minecraft (o un'altra ricetta) usa già: ne funzionerebbe solo una. Studio te lo segnala.
  • Anche una ricetta minecraft:brewing normale funziona per una pozione personalizzata scritta per intero in output (formato di Minecraft), ma così non può usare regole sui requisiti per id MineDnD, né partire da un oggetto MineDnD.
  • I giocatori vedono tutte le ricette di distillazione del mondo, di Minecraft e personalizzate, nell'elenco delle ricette dell'alambicco (il pulsante del ricettario): vedi Distillare in gioco qui sotto.
  • Le pozioni del Default Content: Guarigione Superiore (Pozione di cura II + lacrima di ghast), Forza del Gigante delle Colline (Pozione di forza II + blocco di ferro), Eroismo (Pozione strana + mela d'oro), Invisibilità (Pozione di visione notturna + carota d'oro).

Incantesimi

File: data/<namespace>/enchantment/*.json. Sono incantesimi di Minecraft fatti di dati, nel formato di Minecraft; MineDnD aggiunge una condizione (più sotto). L'id dell'incantesimo è il percorso: data/my_campaign/enchantment/fleetfoot.json → my_campaign:fleetfoot.

{
  "description": { "translate": "enchantment.my_campaign.fleetfoot", "fallback": "Fleetfoot" },
  "supported_items": "#minecraft:enchantable/foot_armor",
  "weight": 1,
  "max_level": 2,
  "min_cost": { "base": 15, "per_level_above_first": 10 },
  "max_cost": { "base": 45, "per_level_above_first": 10 },
  "anvil_cost": 4,
  "slots": ["feet"],
  "effects": {
    "minecraft:attributes": [
      {
        "id": "my_campaign:enchantment.fleetfoot",
        "attribute": "minecraft:movement_speed",
        "amount": { "type": "minecraft:linear", "base": 0.1, "per_level_above_first": 0.1 },
        "operation": "add_multiplied_base"
      }
    ]
  }
}
Campo Obbligatorio Valore
description sì Il nome: un componente di testo, meglio { "translate": "enchantment.<namespace>.<nome>", "fallback": … }
supported_items sì Gli oggetti su cui va: un id di oggetto, una lista, o un tag come #minecraft:enchantable/weapon, …/melee_weapon, …/sword, …/bow, …/crossbow, …/trident, …/mace, …/mining, …/head_armor, …/chest_armor, …/leg_armor, …/foot_armor, …/armor, …/fishing, …/durability
primary_items no Gli oggetti per cui lo offre il tavolo per incantesimi (predefinito: supported_items)
weight sì 1–1024: quanto spesso viene scelto (Minecraft: 10 comune, 5 non comune, 2 raro, 1 molto raro)
max_level sì 1–255
min_cost, max_cost sì { "base": <n>, "per_level_above_first": <n> }: i livelli del tavolo per incantesimi a cui compare
anvil_cost sì Costo di base per applicarlo con l'incudine
slots sì Dove deve stare l'oggetto perché gli effetti funzionino: any, mainhand, offhand, hand, head, chest, legs, feet, armor, body, saddle
exclusive_set no Incantesimi con cui non si combina: un id, una lista o un tag di incantesimi
effects no Cosa fa: componenti di effetto (minecraft:damage, minecraft:post_attack, minecraft:attributes, minecraft:armor_effectiveness, minecraft:knockback, minecraft:tick, minecraft:damage_protection, minecraft:block_experience, …), ognuno con il suo formato

I componenti di effetto e i loro formati sono quelli di Minecraft: vedi la pagina Enchantment definition della Minecraft Wiki, e i 24 file del pacchetto Default Content (elencati in Incantesimi) come esempi funzionanti.

Dove si trova lo decidono i tag di incantesimi di Minecraft, in data/minecraft/tags/enchantment/ (aggiungi l'id del tuo incantesimo ai loro values, con "replace": false):

Tag L'incantesimo…
#minecraft:in_enchanting_table esce dal tavolo per incantesimi
#minecraft:non_treasure conta come incantesimo normale (per il tavolo e gli incantesimi casuali)
#minecraft:treasure è un incantesimo tesoro: mai dal tavolo per incantesimi
#minecraft:on_random_loot compare sul bottino incantato (casse, pesca)
#minecraft:tradeable compare sui libri incantati dei bibliotecari
#minecraft:on_mob_spawn_equipment, #minecraft:on_traded_equipment compare sull'equipaggiamento dei mob / su quello scambiato dai villici
#minecraft:curse è una maledizione (nome rosso, resta con la mola)
  • Gli incantesimi personalizzati compaiono nella scheda creativa MineDnD come libri incantati (uno per livello).
  • Non compaiono nel tavolo per incantesimi a meno che tu non li aggiunga anche al tag di Minecraft #minecraft:in_enchanting_table.
  • Dagli un nome traducibile: "description": { "translate": "enchantment.my_campaign.holy_strike", "fallback": "Holy Strike" }.

Il pacchetto di esempio contiene tre incantesimi da cui partire:

File Tipo Cosa fa
holy_strike.json minecraft:damage Danni extra contro i non morti
venom_strike.json minecraft:post_attack Avvelena il bersaglio, solo se chi attacca ha FOR 12 e DES 12
fleetfoot.json minecraft:attributes +10% di velocità di movimento per livello quando indossato ai piedi

Requisiti di caratteristica negli incantesimi

La condizione minednd:ability_scores funziona nei requirements di qualsiasi effetto (e nelle tabelle del bottino e nei predicati):

"requirements": {
  "type": "minednd:ability_scores",
  "entity": "attacker",
  "min": { "str": 12, "dex": 12 }
}
Campo Obbligatorio Valore
type sì minednd:ability_scores
min sì { "<caratteristica>": <minimo> }: caratteristiche str, dex, con, int, wis, cha, ognuna 1–30; devono valere tutte
entity no (predefinito attacker) Di chi i punteggi: attacker (chi impugna l'arma, negli effetti d'attacco), this (chi tiene l'oggetto incantato, negli effetti che girano su di lui: minecraft:tick, minecraft:attributes, protezione…), direct_attacker, attacking_player, target_entity, interacting_entity (come nelle condizioni del bottino di Minecraft)
  • Usa i punteggi effettivi (base + bonus degli oggetti).
  • Le entità che non sono giocatori (es. un mostro che tiene l'arma) non hanno caratteristiche D&D e passano sempre.
  • Si combina con altre condizioni usando minecraft:all_of, come in venom_strike.json.
  • A differenza di minednd:requirements sugli oggetti, non compare nei tooltip: scrivilo nella descrizione dell'oggetto se i giocatori devono saperlo.

Regole sui requisiti

File: data/<namespace>/crafting_requirements/**/*.json. I punteggi di caratteristica che servono a un giocatore per creare una ricetta o distillare una pozione e, se vuoi, per piazzare o usare un oggetto (bere o lanciare una pozione). Le cose che nessun file indica non hanno requisiti.

{
  "recipes": ["minecraft:redstone_torch"],
  "requirements": { "int": 12, "wis": 10 }
}
{
  "items": "minecraft:anvil",
  "applies_to": ["craft", "place"],
  "requirements": { "str": 13 }
}

Pozioni, per la pozione che contengono (in qualsiasi ampolla) o solo in alcune ampolle:

{
  "potions": ["minecraft:healing", "minecraft:strong_healing"],
  "requirements": { "wis": 12, "int": 10 }
}
{
  "items": "minecraft:splash_potion",
  "potions": "#minednd:harmful",
  "applies_to": ["craft", "use"],
  "requirements": { "int": 12 }
}

Punteggi diversi per ogni azione:

{
  "items": "minecraft:enchanting_table",
  "requirements": {
    "craft": { "int": 14 },
    "place": { "int": 12 },
    "use": { "int": 12, "wis": 10 }
  }
}
  • recipes (facoltativo): id di ricette, di creazione o di distillazione. L'id di una ricetta di Minecraft è il nome del suo file nel jar di Minecraft sotto data/minecraft/recipe/: di solito il nome dell'oggetto (minecraft:redstone_torch), ma alcuni oggetti hanno più ricette con altri id (es. minecraft:red_dye_from_poppy). Le ricette di distillazione di Minecraft sono minecraft:brewing/<ampolla>_<pozione>_<ingrediente>, es. minecraft:brewing/potion_awkward_ghast_tear. L'id di una ricetta MineDnD è il percorso del suo file, es. minednd:potions/potion_of_heroism.
  • items (facoltativo): indica ogni ricetta il cui risultato è questo oggetto, una lista di oggetti o un tag di oggetti ("#minecraft:planks"). Comodo quando un oggetto ha più ricette.
  • potions (facoltativo): pozioni, per ciò che contiene l'ampolla: un id di pozione (minecraft:healing), una lista o un tag di pozioni ("#minednd:harmful"). Le versioni prolungate e potenziate sono pozioni a parte (minecraft:long_poison, minecraft:strong_healing). Da solo vale per pozioni, pozioni da lancio, persistenti e frecce intinte che le contengono; con items, solo per quegli oggetti (es. le pozioni da lancio di veleno, non quelle da bere).
  • Serve almeno uno tra recipes / items / potions. Un file può elencare molte ricette.
  • applies_to (facoltativo, predefinito ["craft"], solo con la forma a punteggi uguali): cosa limita la regola. Uno qualsiasi tra:
  • craft: farlo: creare la ricetta (banco da fabbricazione, griglia dell'inventario; i fabbricatori la rifiutano), o distillare la pozione (alambicco).
  • place: piazzare l'oggetto come blocco. Il blocco resta in mano.
  • use: usare l'oggetto (clic destro: mangiare, bere, lanciare, ...) e interagire con il suo blocco piazzato (es. aprire un tavolo per incantesimi). Le interazioni bloccate non fanno nulla, quindi si possono ancora piazzare blocchi contro di esso. Per le regole recipes, place e use valgono per l'oggetto risultante della ricetta.
  • requirements, in una di due forme:
  • Stessi punteggi per ogni azione: { "int": 12, "wis": 10 } (uno qualsiasi tra str, dex, con, int, wis, cha), applicati a ogni azione di applies_to.
  • Punteggi per azione: { "craft": {…}, "place": {…}, "use": {…} }, elencando solo le azioni da limitare. applies_to non si usa con questa forma. I punteggi sono quelli effettivi (contano i bonus degli oggetti).
  • I punteggi sono numeri interi da 1 a 30; almeno una caratteristica per ogni azione limitata.
  • Se più file corrispondono alla stessa ricetta o allo stesso oggetto, vale il minimo più alto per ogni caratteristica.
  • Un file che non rispetta queste regole viene saltato, e il log dice perché: a rule needs "recipes", "items" or "potions", "applies_to" can't be combined with requirements per action, "applies_to" needs at least one of craft, place, use, "requirements" needs at least one ability score for each action.

In gioco:

  • Creare: vale per il banco da fabbricazione e per la griglia 2x2 dell'inventario. Quando il giocatore non ha i requisiti, lo slot del risultato resta vuoto e sopra la barra rapida compare "Per creare questo oggetto serve: Intelligenza 12, Saggezza 10".
  • Piazzare e usare: l'azione viene bloccata con "Per piazzare questo blocco serve: ..." / "Per usare questo oggetto serve: ...". I giocatori in creativa sono esentati da piazzare e usare (es. un operatore che costruisce il mondo); creare è limitato per tutti.
  • I tooltip degli oggetti elencano i requisiti per azione ("Per creare: Intelligenza 14", "Per piazzare: ..."), in verde quando il giocatore li soddisfa, in rosso quando no.
  • I blocchi già piazzati nel mondo restano dove sono; use decide se i giocatori possono interagirci.
  • Il ricettario elenca comunque la ricetta (non può sapere dei requisiti); semplicemente non dà risultato.
  • I fabbricatori non creano ricette con requisiti, perché non c'è un giocatore da controllare (altrimenti aggirerebbero il requisito).
  • Solo creazione e distillazione: fornaci, banchi da forgiatura e tagliapietre non sono limitati.
  • /reload applica le modifiche.

Distillare in gioco

  • L'alambicco distilla una pozione con requisiti solo per chi la distilla: il giocatore che per ultimo ha messo o tolto le ampolle, l'ingrediente o la polvere di blaze. Decidono i suoi punteggi, mentre è online. Le ampolle che non può distillare restano come sono (le altre dell'alambicco si distillano lo stesso), e quando prepara l'alambicco sopra la sua barra rapida compare "Per distillare questa pozione serve: Saggezza 12, Intelligenza 10".
  • Un alambicco riempito solo dalle tramogge, o il cui distillatore è offline, non distilla pozioni con requisiti (come un fabbricatore con ricette con requisiti).
  • I tooltip delle pozioni dicono "Per distillare: …" (e "Per usare: …" per bere o lanciare), in verde o in rosso per il giocatore.
  • L'alambicco ha un elenco delle ricette, che si apre con il pulsante del ricettario: tutte le pozioni del mondo (di Minecraft, di MineDnD e dei datapack), con schede per pozioni, da lancio, persistenti e personalizzate, una casella di ricerca e un filtro per ciò che il giocatore può distillare ora. Passando sopra una pozione si vede cosa va nelle ampolle e sopra, e i suoi requisiti; cliccandola la ricetta compare sbiadita negli slot dell'alambicco (clicca di nuovo per gli altri modi di distillarla), e cliccando un'ampolla sbiadita si vede a sua volta come distillare quell'ampolla. Un'ampolla grigia vuol dire che i punteggi del giocatore sono troppo bassi; uno slot rosso che mancano gli ingredienti.

Livelli di distillazione predefiniti

Il pacchetto Default Content (crafting_requirements/brewing/, con i tag di pozioni #minednd:effects, #minednd:enhanced e #minednd:harmful) dà un livello a ogni pozione di Minecraft. Le regole si sommano: vince il punteggio più alto per ogni caratteristica.

Pozioni Per distillare
Acqua, Strana, Ordinaria, Densa (qualsiasi ampolla) Niente
Pozioni con effetti (#minednd:effects) SAG 10
Versioni potenziate (II) e prolungate (#minednd:enhanced), pozioni da lancio con effetti SAG 12, INT 10
Pozioni persistenti con effetti SAG 13, INT 12
Pozioni dannose (#minednd:harmful: veleno, danno, debolezza, lentezza) INT 11; persistenti: INT 13
Guarigione Superiore / Forza del Gigante delle Colline / Eroismo / Invisibilità SAG 14 INT 12 / SAG 13 INT 13 / SAG 14 CAR 12 / SAG 13 INT 14

Per cambiare un livello, metti nel tuo pacchetto un file con lo stesso percorso (es. data/minednd/crafting_requirements/brewing/splash_potions.json): sostituisce quello del Default Content (il tuo pacchetto deve stare sopra, vedi ordine di caricamento). Per eliminare un livello, sostituiscilo con punteggi di 1 (una regola ha bisogno di almeno un punteggio), o elimina il file dalla tua copia del pacchetto Default Content.

Tag

File: data/<namespace>/tags/<tipo>/<nome>.json, il tag #<namespace>:<nome>. Formato di Minecraft:

{ "replace": false, "values": ["minecraft:poison", "minecraft:long_poison", "#minednd:harmful"] }
Campo Obbligatorio Valore
values sì Id e altri tag dello stesso tipo; { "id": "<id>", "required": false } salta un id che non esiste (di un'altra mod)
replace no (predefinito false) true: scarta ciò che i pacchetti più in basso hanno messo in questo tag, invece di aggiungerlo

<tipo> è la cartella del tipo di id: potion, block, item, entity_type, enchantment, worldgen/biome, damage_type, … I tag che MineDnD legge per nome:

Tag Tipo Usato per
#minednd:first_time_xp block Blocchi che danno esperienza d'avventura la prima volta che si scava ognuno (new_block); vuoto senza il pacchetto Default Content
#minecraft:in_enchanting_table, #minecraft:treasure, … enchantment Dove si trova un incantesimo (Incantesimi)
qualsiasi tag di pozioni, es. #minednd:effects, #minednd:enhanced, #minednd:harmful (Default Content) potion potions nelle regole sui requisiti, input delle ricette di distillazione, of di minednd:discovered con brew

Un tag si può usare ovunque un campo dica "o un #tag": items delle regole, ingredienti, of, target, condizioni dei titoli…

Imprese

File: data/<namespace>/advancement/**/*.json. Le imprese sono progressi di Minecraft: il gioco le mostra nella schermata dei progressi (in una scheda propria se crei una radice), con la notifica e il messaggio in chat. Funziona qualsiasi trigger di Minecraft; MineDnD aggiunge trigger per ciò che Minecraft non sa contare. Il pacchetto Default Content ha una scheda MineDnD (minednd:minednd/..., 27 progressi, alcuni nascosti) che sblocca i titoli iniziali. L'id è il percorso: data/my_campaign/advancement/quests/dragon.json → my_campaign:quests/dragon.

Un file di progresso (formato di Minecraft; tutti i dettagli sulla pagina Advancement definition della Minecraft Wiki):

Campo Obbligatorio Valore
parent no Il progresso da cui dipende. Senza genitore è la radice di una nuova scheda
display no Come appare; senza display è invisibile (come gli sblocchi delle ricette)
display.icon sì (in display) { "id": "<id oggetto>" } (anche count, components)
display.title, display.description sì (in display) Componenti di testo, meglio { "translate": … }
display.frame no (predefinito task) task, goal o challenge: la cornice, il messaggio e l'esperienza d'avventura che dà (advancement_task / _goal / _challenge nelle impostazioni)
display.background solo la radice La texture di sfondo della scheda, es. minecraft:block/stone
display.show_toast, display.announce_to_chat no (predefinito true) La notifica e il messaggio in chat
display.hidden no (predefinito false) Non si vede (né i suoi figli) finché non è completato
criteria sì { "<nome>": { "trigger": "<id trigger>", "conditions": { … } } }: cosa deve succedere
requirements no (predefinito: tutti i criteri) Una lista di liste di nomi di criteri: ogni lista interna ne vuole uno
rewards no experience (esperienza di Minecraft), recipes (id di ricette), loot (id di tabelle del bottino), function

I trigger di MineDnD, per criteria (funziona anche qualsiasi trigger di Minecraft):

Trigger Condizioni Si completa quando
minednd:discovered kind, min (1–10.000), of facoltativo (id o #tag) il giocatore ha min prime volte diverse di tipo kind: biome, mob, death, dimension, structure, block, craft, food, effect, tame, breed, catch, brew, trade, enchantment (es. "of": ["#minecraft:is_nether"] conta solo i biomi del Nether)
minednd:statistic stat (un tipo di statistica: minecraft:mined, killed, crafted, used, custom, …), target (un id, o un #tag i cui membri si sommano), min la statistica raggiunge min ("stat": "minecraft:mined", "target": "#c:ores", "min": 300)
minednd:cooked item facoltativo (condizioni sull'oggetto), food (true: solo cibo) il giocatore prende risultati cotti da una fornace, un affumicatore o un altoforno, o il cibo che ha messo su un fuoco da campo finisce di cuocere
minednd:level min il personaggio raggiunge quel livello
minednd:ability_score ability facoltativo (str, dex, …; qualsiasi se manca), min il punteggio proprio del personaggio (non i bonus degli oggetti) raggiunge min
minednd:repeat count (1–1.000.000), of (qualsiasi criterio: {"trigger": …, "conditions": …}) of è successo count volte (cooked conta ogni oggetto)
{
  "parent": "minednd:minednd/archer_2",
  "criteria": {
    "cows": {
      "trigger": "minednd:repeat",
      "conditions": {
        "count": 1000,
        "of": {
          "trigger": "minecraft:player_killed_entity",
          "conditions": {
            "entity": { "type": "minecraft:entity_properties", "entity": "this", "predicate": { "minecraft:entity_type": "minecraft:cow" } },
            "killing_blow": { "direct_entity": { "minecraft:entity_type": "#minecraft:arrows" }, "tags": [{ "id": "#minecraft:is_projectile", "expected": true }] }
          }
        }
      }
    }
  },
  "display": {
    "icon": { "id": "minecraft:leather" },
    "title": { "translate": "advancements.minednd.cow_slayer.title" },
    "description": { "translate": "advancements.minednd.cow_slayer.description" },
    "frame": "challenge",
    "hidden": true
  }
}

Riferimento dei trigger

Ogni trigger di MineDnD accetta anche un player facoltativo: condizioni sul giocatore (condizioni del bottino, come nei trigger di Minecraft), es. "player": [{ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { "location": { "dimension": "minecraft:the_nether" } } }].

minednd:discovered: quante cose diverse di un tipo il giocatore ha fatto per la prima volta.

Campo Obbligatorio Valore
kind sì Uno dei tipi qui sotto
min sì 1–10.000 cose diverse
of no Conta solo queste: una lista di id e/o #tag di quel tipo (es. ["#minecraft:is_nether"] per i biomi)
kind Una per ogni… Id e tag in of
biome bioma visitato biomi: minecraft:plains, #minecraft:is_ocean
mob tipo di creatura uccisa (le ostili; anche gli animali con l'impostazione passive_kills) tipi di entità: minecraft:zombie, #minecraft:undead
death causa di morte tipi di danno: minecraft:drown, minecraft:lava, minecraft:fall, #minecraft:is_fire
dimension dimensione visitata (conta anche quella di partenza) dimensioni: minecraft:the_nether, minecraft:the_end
structure tipo di struttura in cui si entra; le varianti contano una volta come la loro famiglia (minecraft:village, minecraft:mineshaft, minecraft:ocean_ruin, minecraft:shipwreck, minecraft:ruined_portal, minecraft:abandoned_camp) strutture: minecraft:stronghold, minecraft:village, o tag di strutture
block blocco di #minednd:first_time_xp scavato blocchi: minecraft:diamond_ore, #c:ores
craft oggetto creato o fuso (gli oggetti MineDnD con il loro id) oggetti, tag di oggetti
food cibo o bevanda assaggiati oggetti, tag di oggetti
effect effetto di stato ricevuto effetti: minecraft:speed (niente tag)
tame, breed tipo di animale addomesticato / allevato tipi di entità, tag di entità
catch oggetto pescato oggetti, tag di oggetti
brew tipo di pozione presa da un alambicco pozioni: minecraft:strong_healing, #minednd:harmful
trade professione di villico con cui si commercia (e il mercante ambulante) professioni: minecraft:librarian; minecraft:wandering_trader
enchantment incantesimo ottenuto dal tavolo per incantesimi incantesimi, tag di incantesimi

minednd:statistic: una statistica di Minecraft (la schermata Statistiche) raggiunge un valore.

Campo Obbligatorio Valore
stat sì Il tipo di statistica, qui sotto
target sì Cosa conta, un id o un #tag (un tag somma tutti i suoi membri)
min sì 1 o più
stat target è Esempio
minecraft:mined un blocco o tag di blocchi #minecraft:logs, #c:ores
minecraft:crafted, minecraft:used, minecraft:broken, minecraft:picked_up, minecraft:dropped un oggetto o tag di oggetti minecraft:bow usato
minecraft:killed, minecraft:killed_by un tipo di entità o tag di entità minecraft:zombie, #minecraft:undead
minecraft:custom una statistica personalizzata (niente tag) minecraft:walk_one_cm, minecraft:jump, minecraft:fish_caught, minecraft:play_time (tick), minecraft:deaths, minecraft:mob_kills, minecraft:damage_dealt (decimi di cuore)

minednd:cooked: il giocatore prende risultati cotti da una fornace, un affumicatore o un altoforno, o il cibo che ha messo su un fuoco da campo finisce di cuocere.

Campo Obbligatorio Valore
item no Solo questi risultati: condizioni sull'oggetto, come in Minecraft ({ "items": "minecraft:cooked_beef" }, { "items": "#minecraft:fishes" })
food no (predefinito false) true: solo cibo

minednd:level: min (1–100, obbligatorio): il livello del personaggio.

minednd:ability_score: il punteggio proprio del personaggio (non i bonus degli oggetti).

Campo Obbligatorio Valore
ability no (qualsiasi) str, dex, con, int, wis, cha
min sì 1–30

minednd:repeat: un altro criterio, N volte.

Campo Obbligatorio Valore
of sì Qualsiasi criterio: { "trigger": "<id trigger>", "conditions": { … } }, un trigger di Minecraft o di MineDnD che scatta per un giocatore (uccisioni, oggetti, effetti, minednd:cooked, …)
count sì 1–1.000.000 volte (minednd:cooked conta ogni oggetto preso)
  • Cosa conta: le prime volte sono registrate in ogni mondo (anche con l'esperienza d'avventura disattivata), e le statistiche di Minecraft dall'inizio del mondo, quindi discovered e statistic contano ciò che è stato fatto prima che il progresso esistesse. repeat e cooked contano da quando il progresso c'è. L'avanzamento di repeat è salvato per giocatore.
  • Esperienza d'avventura: i progressi danno l'esperienza della loro cornice (advancement_task / _goal / _challenge), tranne quelli che contano ripetizioni (un criterio minednd:repeat o minednd:statistic): premiali con un titolo.
  • Mostrare l'avanzamento: un criterio è fatto o no, quindi "37/50" non si vede. Crea invece catene di soglie (25 → 45 → 60 biomi), ognuna con il suo progresso, come fa la scheda del Default Content.
  • Nascoste: "hidden": true tiene un progresso fuori dalla scheda finché non è completato.

Titoli

File: data/<namespace>/title/*.json. Un titolo è una ricompensa indossata sopra la testa. Si sblocca quando il suo progresso è completato (e si blocca di nuovo se viene revocato); un giocatore ne indossa uno alla volta, scelto nella scheda personaggio o con /dnd title, e valgono solo gli effetti del titolo indossato. Il pacchetto Default Content ne ha dieci: Il Minatore, L'Ammazzazombie, L'Arciere, L'Esploratore, Il Taglialegna, Il Pescatore, Il Mastro Cuoco, L'Alchimista, Il Sopravvissuto e (nascosto) Lo Sterminatore di Mucche.

{
  "name": { "translate": "title.minednd.miner", "color": "gray" },
  "description": { "translate": "title.minednd.miner.description" },
  "unlocked_by": "minednd:minednd/miner_2",
  "effects": [
    { "type": "enchantment_level", "enchantment": "minecraft:fortune", "level": 1, "item": "#minecraft:pickaxes", "blocks": "#c:ores" }
  ]
}
Campo Obbligatorio Valore
name sì Componente di testo mostrato sopra la testa: traducibile, con un color
description no Componente di testo: cosa dà, nel tooltip della scheda personaggio
unlocked_by sì L'id del progresso che lo sblocca
effects no Una lista di effetti, qui sotto; valgono solo quelli del titolo indossato

L'id del titolo è il percorso: data/my_campaign/title/dragonslayer.json → my_campaign:dragonslayer (per /dnd title wear). Negli effetti, item (oggetti), target (tipi di entità) e blocks (blocchi) sono condizioni facoltative: un id, un #tag o una lista; senza, l'effetto vale per tutto.

type dell'effetto Campi Mentre è indossato
enchantment_level enchantment, level (1–255), item, target, blocks facoltativi l'oggetto conta come se avesse quell'incantesimo a quel livello: Saccheggio (uccisioni), Fortuna (blocchi), Fortuna del mare (pesca); un livello vero più alto vince, i due non si sommano
damage_bonus amount (0.1 = +10%), item, target facoltativi più danni (mischia, frecce, tridenti) contro target / con item
ability_bonus ability, amount (−10–10) un bonus a un punteggio, come quello di un oggetto (conta per i requisiti)
xp_bonus amount, sources facoltativo (lista) più esperienza d'avventura da queste fonti (tutte se manca): un tipo di prima volta (biome, mob, death, dimension, structure, block, craft, food, effect, tame, breed, catch, brew, trade, enchantment), advancement, kill (uccisioni successive) o vanilla_xp
break_speed amount, blocks facoltativo rompe quei blocchi più in fretta
hunger amount (−0.05 = 5% più lenta) la fame cala più in fretta o più lentamente
max_health amount (2 = 1 cuore) salute massima in più
potion_duration amount le pozioni che il giocatore beve durano di più

I valori sono decimali da −1 a 10 (0.1 = +10%), tranne ability_bonus (interi da −10 a 10) e max_health (interi da −19 a 100, in punti salute). Un file di titolo rotto viene scritto nel log e saltato.

Impostazioni del mondo

File: data/minednd/settings.json. Come i punteggi di caratteristica cambiano il mondo, come progrediscono i personaggi (e salgono di livello giocando) e come si comportano le regole sui requisiti, per ogni mondo. Ogni campo è facoltativo: ciò che manca usa il valore predefinito, quindi una campagna scrive solo ciò che cambia:

{
  "abilities": { "strength": { "melee_damage_per_modifier": 0.2 } },
  "progression": { "points_per_level": 5 }
}

Il file completo con tutti i valori predefiniti:

{
  "abilities": {
    "strength": {
      "melee_damage_per_modifier": 0.10,
      "min_melee_damage_multiplier": 0.5,
      "log_speed_per_modifier": 0.15,
      "min_log_speed_multiplier": 0.5
    },
    "dexterity": {
      "speed_per_modifier": 0.04,
      "min_speed_multiplier": 0.75,
      "attack_rate_per_modifier": 0.08,
      "min_attack_rate_multiplier": 0.7
    },
    "constitution": {
      "health_per_modifier": 2,
      "min_health_bonus": -10,
      "hunger_per_modifier": 0.07,
      "min_hunger_multiplier": 0.25,
      "max_hunger_multiplier": 1.5
    },
    "intelligence": {
      "xp_per_modifier": 0.10,
      "min_xp_multiplier": 0.5
    }
  },
  "progression": {
    "starting_score": 10,
    "points_per_level": 3,
    "max_level": 20,
    "max_score_from_points": 20
  },
  "experience": {
    "enabled": false,
    "level_curve": "exponential",
    "level_xp_base": 3000,
    "level_xp_increase": 150,
    "level_xp_growth": 1.05,
    "level_xp_formula": "3000 * 1.05^(level - 1)",
    "level_xp_table": [],
    "per_vanilla_xp": 0.0,
    "per_kill_health": 0.5,
    "passive_kills": false,
    "repeat_kills": true,
    "repeat_kill_health": 0.25,
    "daily_xp_cap": 60,
    "advancement_task": 25,
    "advancement_goal": 75,
    "advancement_challenge": 200,
    "death_loss": 0.0,
    "new_mob": 25,
    "new_biome": 15,
    "new_death": 25,
    "new_dimension": 100,
    "new_structure": 40,
    "new_block": 10,
    "new_craft": 3,
    "new_food": 5,
    "new_effect": 10,
    "new_tame": 30,
    "new_breed": 15,
    "new_catch": 10,
    "new_brew": 10,
    "new_trade": 15,
    "new_enchantment": 20
  },
  "requirements": {
    "creative_exempt": true
  }
}
  • Effetti delle caratteristiche: sono 1 + coefficiente × modificatore, mai sotto il minimo min_…. Un coefficiente di 0 disattiva quell'effetto. Esempio: melee_damage_per_modifier: 0.2 fa fare a FOR 20 (+5) danni ×2,0 invece di ×1,5. Intervalli: coefficienti 0–10, minimi 0–1 (velocità d'attacco 0,1–1), health_per_modifier 0–20 di salute (2 = 1 cuore), min_health_bonus −19–0, hunger_per_modifier 0–1, max_hunger_multiplier 1–10.
  • Progressione: starting_score (1–30) per i nuovi personaggi e gli azzeramenti, points_per_level (0–100), max_level (1–100), max_score_from_points (1–30, D&D: 20). Le modifiche valgono da ora in poi: i personaggi esistenti tengono punteggi e punti (usa /dnd reset per rifarne uno).
  • Esperienza (esperienza d'avventura: i giocatori salgono di livello giocando; separata da quella di Minecraft):
  • enabled (predefinito false): true fa guadagnare esperienza giocando. Finché è disattivata, solo un operatore dà livelli ed esperienza (/dnd level add, /dnd xp add), e le fonti qui sotto sono ignorate. L'esperienza di Minecraft funziona sempre come al solito.
  • Curva dei livelli: quanto costa ogni livello. level_curve sceglie la forma; con L il livello che si lascia (1 per 1 → 2), il passaggio L → L+1 costa:

    level_curve Costo di L → L+1 Usa
    linear base + increase × (L − 1): la stessa esperienza in più a ogni livello level_xp_base, level_xp_increase
    exponential (predefinita) base × growth^(L − 1): ogni livello una percentuale fissa in più del precedente (1.05 = +5%; sotto 1 = più economico) level_xp_base, level_xp_growth
    logarithmic base × (1 + growth × ln L): sale in fretta, poi si appiattisce level_xp_base, level_xp_growth
    power base × L^growth (2 = quadratica) level_xp_base, level_xp_growth
    formula una tua espressione di level level_xp_formula
    table i costi elencati, in ordine; oltre la fine si ripete l'ultimo level_xp_table

    Intervalli: level_xp_base 1–1.000.000, level_xp_increase 0–1.000.000, level_xp_growth 0–100, level_xp_table fino a 100 costi da 1 a 1.000.000.000 (una curva table lo vuole nello stesso file). Una formula può usare numeri, + - * / %, ^ (potenza), parentesi, e, pi e ln (anche log), log10, log2, sqrt, exp, abs, floor, ceil, round, min(a, b), max(a, b), pow(a, b), es. 1000 + 500 * ln(level) o 300 * level^2; una formula che a qualche livello fino a 100 non dà un numero (come ln(level - 1) al livello 1) rende il file non valido. I costi sono arrotondati e almeno 1. Con i valori predefiniti: 3000, 3150, 3308, … 7220 per 19 → 20. - Bilanciamento dei valori predefiniti: il livello 2 dopo circa 3–4 giorni di gioco (a ~2 ore al giorno), ogni livello successivo un po' più lungo del precedente (circa 6, 8, 9 … giorni), il livello 20 un obiettivo a lungo termine (intorno ai 300+ giorni di gioco). Le prime volte danno la maggior parte dell'esperienza all'inizio e poi diventano rare, quindi le uccisioni successive (repeat_kills) tengono raggiungibili i livelli alti; daily_xp_cap impedisce alle farm di sostituire l'avventura. Sono stime da un modello di quanto in fretta un giocatore tipico trova cose nuove: regola level_xp_base per spostare il livello 2, level_xp_growth per i livelli successivi. - Di default l'esperienza viene dalle prime volte (i valori new_… qui sotto), dai progressi e un po' dalle uccisioni successive. Ripetere non supera il limite giornaliero. - Uccisioni: new_mob per la prima uccisione di ogni tipo di mostro ostile, più per_kill_health per punto della sua salute massima (0–100; passive_kills: true conta anche gli animali). Le uccisioni successive di un tipo danno repeat_kill_health per punto di salute massima (0–100, predefinito 0.25: zombi 5 XP; repeat_kills: false le disattiva). per_vanilla_xp per ogni punto di esperienza di Minecraft raccolto dalle sfere (0–100, predefinito 0). Uccisioni successive e sfere insieme danno al massimo daily_xp_cap XP per giorno di Minecraft giocato (20 minuti, contati dal tempo del mondo, quindi dormire non lo azzera; 0–1.000.000, predefinito 60, 0 = nessun limite). advancement_task, advancement_goal, advancement_challenge: i progressi mostrati nella schermata dei progressi. - Prime volte, ognuna contata una volta per giocatore (0–100.000; 0 la disattiva):

    Impostazione La prima volta che un giocatore… Predefinito
    new_mob uccide ogni tipo di mostro (più l'esperienza in base alla salute) 25
    new_biome entra in ogni bioma 15
    new_death muore per ogni causa, cioè tipo di danno (annegamento, lava, caduta, un creeper, …) 25
    new_dimension entra in ogni dimensione, tranne quella in cui parte 100
    new_structure entra in ogni struttura; le varianti nei tag di Minecraft #village, #mineshaft, #ocean_ruin, #shipwreck, #ruined_portal, #abandoned_camp contano una volta 40
    new_block scava ogni blocco del tag di blocchi #minednd:first_time_xp (nel pacchetto Default Content: #c:ores, detriti antichi, ametista, sculk, generatori di mostri, sabbia e ghiaia sospette, …; senza un pacchetto che riempie il tag nessun blocco dà questa esperienza) 10
    new_craft crea o fonde ogni oggetto (banco da fabbricazione, fornace, tagliapietre, banco da forgiatura, …); gli oggetti MineDnD contano per il loro id 3
    new_food mangia o beve ogni oggetto (cibo, pozioni, latte, miele) 5
    new_effect riceve ogni effetto di stato 10
    new_tame / new_breed addomestica / alleva ogni tipo di animale 30 / 15
    new_catch pesca ogni oggetto 10
    new_brew prende ogni tipo di pozione da un alambicco 10
    new_trade commercia con ogni professione di villico (e con il mercante ambulante) 15
    new_enchantment ottiene ogni incantesimo dal tavolo per incantesimi 20

    Ciò che un giocatore ha già fatto è salvato con il giocatore: cambiare questi valori non paga mai due volte. Per scegliere i blocchi, aggiungi o sostituisci il tag in un datapack (data/minednd/tags/block/first_time_xp.json, "replace": true per ripartire da zero). I nomi di strutture e dimensioni vengono dalle chiavi di lingua structure.<namespace>.<percorso> e dimension.<namespace>.<percorso> (altrimenti dall'id in parole). - death_loss (0–1): la parte di esperienza verso il prossimo livello persa alla morte (0.5 = metà). I livelli non si perdono mai. - /dnd xp add / /dnd xp set danno o impostano l'esperienza a mano, anche con enabled a false. - Requisiti: creative_exempt (predefinito true) fa ignorare ai giocatori in creativa le regole place e use. - /reload applica le modifiche; salute, velocità e danni dei giocatori online si aggiornano subito. - Ogni valore ha il suo predefinito nella mod: un mondo senza settings.json in nessun pacchetto usa i valori qui sopra. Nemmeno il pacchetto Default Content li cambia. Copia il file completo qui sopra come punto di partenza; il tuo pacchetto ha bisogno solo dei valori che cambia, es. { "experience": { "enabled": true } }. - /dnd info settings mostra in gioco ogni valore diverso da quello predefinito e quale pacchetto l'ha impostato. - Se più pacchetti hanno questo file, vengono uniti chiave per chiave nell'ordine dei pacchetti dati del mondo: il pacchetto più in alto vince per le chiavi che imposta, e le chiavi che nessun pacchetto imposta tengono il loro predefinito. - Un file non valido (un valore fuori intervallo, un errore di battitura in un valore) viene saltato per intero: il log del server indica il pacchetto e il motivo, e gli altri file valgono comunque. - MineDnD Studio ha una pagina Impostazioni del mondo: ogni valore spiegato, una tabella punteggio → effetto, la curva dell'esperienza e dei preset.

Traduzioni

Metti un file per lingua in data/<namespace>/lang/, con i codici di lingua di Minecraft (en_us, it_it, es_es, fr_fr, de_de, ...). Stesso formato dei file di lingua di un resource pack:

data/my_campaign/lang/en_us.json

{
  "item.my_campaign.flame_sword": "Flame Sword",
  "item.my_campaign.flame_sword.lore": "Forged in the Plane of Fire",
  "enchantment.my_campaign.holy_strike": "Holy Strike"
}

data/my_campaign/lang/it_it.json

{
  "item.my_campaign.flame_sword": "Spada Fiammeggiante",
  "item.my_campaign.flame_sword.lore": "Forgiata nel Piano del Fuoco",
  "enchantment.my_campaign.holy_strike": "Colpo Sacro"
}

  • Ogni giocatore vede la propria lingua (Opzioni → Lingua). Le chiavi mancanti ricadono su en_us, poi sul testo fallback nel JSON dell'oggetto o dell'incantesimo.
  • Di solito i datapack non possono contenere traduzioni: MineDnD le carica sul server e le manda a ogni giocatore con la mod, così un solo datapack contiene tutto. /reload le aggiorna subito.
  • I nomi delle chiavi li scegli tu; la convenzione è item.<namespace>.<nome> e enchantment.<namespace>.<nome>.
  • Qualsiasi componente di testo può usare queste chiavi, es. /tellraw @a {"translate":"my_campaign.quest.intro"}.

Ricaricare

Modifica Come applicarla
Aggiungere o modificare oggetti o ricette /reload: la scheda creativa e i ricettari si aggiornano da soli (i nuovi progressi di sblocco valgono dal prossimo cambio d'inventario)
Aggiungere o modificare traduzioni /reload
Aggiungere o modificare regole sui requisiti /reload
Cambiare le impostazioni del mondo /reload
Aggiungere o modificare incantesimi Riavviare il server (limite di Minecraft)

Trovare gli errori

Un file con un errore viene saltato, e il gioco dice perché nel suo log:

Dove giochi Il log
Giocatore singolo, launcher di Minecraft .minecraft/logs/latest.log (le impostazioni del launcher possono anche aprire la finestra dell'output)
Modrinth App l'istanza → ⋯ → Apri cartella → logs/latest.log
Server la console, e logs/latest.log nella cartella del server

Cercaci il nome del file. Cosa segnala MineDnD:

Messaggio Significa
Skipping item <id>: <motivo> Il file dell'oggetto è sbagliato; <motivo> indica il campo (es. No key id in MapLike, Value 120 outside of range)
Skipping crafting requirement <file>: <motivo> Una regola sui requisiti è sbagliata
Skipping translation file <file>: <motivo> Un file di lingua non è un semplice elenco di "chiave": "testo"
Skipping title <id>: <motivo> Un titolo è sbagliato
Invalid minednd:settings.json in pack <pacchetto>, skipped: <motivo> Tutto il file delle impostazioni di quel pacchetto viene ignorato
<file> is in the old gm_items folder: rename the folder to items Un pacchetto fatto per MineDnD prima della 0.3.0

Ricette, progressi, tag e incantesimi li segnala Minecraft stesso (es. Couldn't parse data file … o Failed to parse …, con l'id del file). Un incantesimo rotto può impedire a un mondo di caricarsi: in giocatore singolo il gioco propone di caricarlo senza i datapack del mondo; correggi il file e caricalo di nuovo normalmente.

Problemi comuni:

Problema Controlla
Il pacchetto non è in /datapack list pack.mcmeta deve stare direttamente nella cartella del pacchetto (o in cima allo zip), non una cartella più giù
Il pacchetto è in rosso / "fatto per un'altra versione" min_format/max_format in pack.mcmeta: 121 per Minecraft 26.3
/dnd give dice che l'oggetto è sconosciuto L'id è il percorso del file (<namespace>:weapons/frost_blade), e il log può dire perché il file è stato saltato
L'oggetto mostra item.my_campaign.frost_blade Manca la chiave di traduzione: un errore nella chiave, o il file di lingua non è in data/<namespace>/lang/
La ricetta non crea nulla result.item non corrisponde all'id di un oggetto; oppure una ricetta di Minecraft usa la stessa forma
Una regola non fa nulla L'id della ricetta o dell'oggetto; le regole su piazzare e usare non valgono in creativa (creative_exempt)
Una modifica non si vede /reload dopo aver salvato; gli incantesimi richiedono di riaprire il mondo
La tua modifica a un file del Default Content viene ignorata Il tuo pacchetto deve stare sopra (Ordine di caricamento), esattamente allo stesso percorso

/dnd info è il controllo più veloce: ogni pacchetto in uso, dalla priorità più bassa alla più alta, con quanti oggetti, incantesimi, regole e ricette aggiunge e quanti suoi file sono sostituiti da un pacchetto più in alto.