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_campaignqui sopra). Lettere minuscole, cifre,_,-e.. Usa il tuo, maiminedndominecraft(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_namediminecraft:custom_name: appare nel colore della rarità e non in corsivo (custom_namesembra un nome dato con l'incudine). stack: uno stack di Minecraft, esattamente come in/giveo 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> }: caratteristichestr,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 suaminednd:active_ability, tutti i suoi incantesimi (Infinità, Indistruttibilità, Ripristino, Efficienza, protezione, …) eminecraft:unbreakablesono 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 eventualiminecraft:attribute_modifiersrestano. 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_clicknon 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_requirementscon"applies_to": ["use"]) si controllano prima, come per ogni clic destro. - Un potenziamento più recente dello stesso attributo sostituisce quello vecchio; un nuovo
imbuesostituisce 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 diimbue. - 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 |
patternekeyfunzionano esattamente come inminecraft: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.countfacoltativo (1-99, predefinito 1).category(facoltativo): la scheda del ricettario:equipment,building,redstoneomisc(predefinito).show_notification(facoltativo, predefinitotrue): 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"]incrafting_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_changedper oggetto (un id o un"#tag"), tutti in un solo gruppo di requisiti: ne basta uno.has_the_recipecompleta 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/advancemente/recipefunzionano 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
limitedCraftingsia 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_potionolingering_potion) e la pozione che contiene (potion_contents.potions: un id di pozione comeminecraft: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 initems/. 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:brewingnormale funziona per una pozione personalizzata scritta per intero inoutput(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 invenom_strike.json. - A differenza di
minednd:requirementssugli 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 sottodata/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 sonominecraft: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; conitems, 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 regolerecipes,placeeusevalgono per l'oggetto risultante della ricetta.requirements, in una di due forme:- Stessi punteggi per ogni azione:
{ "int": 12, "wis": 10 }(uno qualsiasi trastr,dex,con,int,wis,cha), applicati a ogni azione diapplies_to. - Punteggi per azione:
{ "craft": {…}, "place": {…}, "use": {…} }, elencando solo le azioni da limitare.applies_tonon 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;
usedecide 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.
/reloadapplica 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
discoveredestatisticcontano ciò che è stato fatto prima che il progresso esistesse.repeatecookedcontano da quando il progresso c'è. L'avanzamento direpeatè salvato per giocatore. - Esperienza d'avventura: i progressi danno l'esperienza della loro cornice (
advancement_task/_goal/_challenge), tranne quelli che contano ripetizioni (un criteriominednd:repeatominednd: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": truetiene 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 minimomin_…. Un coefficiente di0disattiva quell'effetto. Esempio:melee_damage_per_modifier: 0.2fa 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_modifier0–20 di salute (2 = 1 cuore),min_health_bonus−19–0,hunger_per_modifier0–1,max_hunger_multiplier1–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 resetper rifarne uno). - Esperienza (esperienza d'avventura: i giocatori salgono di livello giocando; separata da quella di Minecraft):
enabled(predefinitofalse):truefa 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_curvesceglie la forma; con L il livello che si lascia (1 per 1 → 2), il passaggio L → L+1 costa:level_curveCosto di L → L+1 Usa linearbase + increase × (L − 1): la stessa esperienza in più a ogni livellolevel_xp_base,level_xp_increaseexponential(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_growthlogarithmicbase × (1 + growth × ln L): sale in fretta, poi si appiattiscelevel_xp_base,level_xp_growthpowerbase × L^growth(2 = quadratica)level_xp_base,level_xp_growthformulauna tua espressione di levellevel_xp_formulatablei costi elencati, in ordine; oltre la fine si ripete l'ultimo level_xp_tableIntervalli:
level_xp_base1–1.000.000,level_xp_increase0–1.000.000,level_xp_growth0–100,level_xp_tablefino a 100 costi da 1 a 1.000.000.000 (una curvatablelo vuole nello stesso file). Una formula può usare numeri,+ - * / %,^(potenza), parentesi,e,pieln(anchelog),log10,log2,sqrt,exp,abs,floor,ceil,round,min(a, b),max(a, b),pow(a, b), es.1000 + 500 * ln(level)o300 * level^2; una formula che a qualche livello fino a 100 non dà un numero (comeln(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_capimpedisce alle farm di sostituire l'avventura. Sono stime da un modello di quanto in fretta un giocatore tipico trova cose nuove: regolalevel_xp_baseper spostare il livello 2,level_xp_growthper i livelli successivi. - Di default l'esperienza viene dalle prime volte (i valorinew_…qui sotto), dai progressi e un po' dalle uccisioni successive. Ripetere non supera il limite giornaliero. - Uccisioni:new_mobper la prima uccisione di ogni tipo di mostro ostile, piùper_kill_healthper punto della sua salute massima (0–100;passive_kills: trueconta anche gli animali). Le uccisioni successive di un tipo dannorepeat_kill_healthper punto di salute massima (0–100, predefinito 0.25: zombi 5 XP;repeat_kills: falsele disattiva).per_vanilla_xpper ogni punto di esperienza di Minecraft raccolto dalle sfere (0–100, predefinito 0). Uccisioni successive e sfere insieme danno al massimodaily_xp_capXP 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_mobuccide ogni tipo di mostro (più l'esperienza in base alla salute) 25 new_biomeentra in ogni bioma 15 new_deathmuore per ogni causa, cioè tipo di danno (annegamento, lava, caduta, un creeper, …) 25 new_dimensionentra in ogni dimensione, tranne quella in cui parte 100 new_structureentra in ogni struttura; le varianti nei tag di Minecraft #village,#mineshaft,#ocean_ruin,#shipwreck,#ruined_portal,#abandoned_campcontano una volta40 new_blockscava 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_craftcrea o fonde ogni oggetto (banco da fabbricazione, fornace, tagliapietre, banco da forgiatura, …); gli oggetti MineDnD contano per il loro id 3 new_foodmangia o beve ogni oggetto (cibo, pozioni, latte, miele) 5 new_effectriceve ogni effetto di stato 10 new_tame/new_breedaddomestica / alleva ogni tipo di animale 30 / 15 new_catchpesca ogni oggetto 10 new_brewprende ogni tipo di pozione da un alambicco 10 new_tradecommercia con ogni professione di villico (e con il mercante ambulante) 15 new_enchantmentottiene 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": trueper ripartire da zero). I nomi di strutture e dimensioni vengono dalle chiavi di linguastructure.<namespace>.<percorso>edimension.<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 setdanno o impostano l'esperienza a mano, anche conenabledafalse. - Requisiti:creative_exempt(predefinitotrue) fa ignorare ai giocatori in creativa le regoleplaceeuse. -/reloadapplica le modifiche; salute, velocità e danni dei giocatori online si aggiornano subito. - Ogni valore ha il suo predefinito nella mod: un mondo senzasettings.jsonin 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 settingsmostra 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 testofallbacknel 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.
/reloadle aggiorna subito. - I nomi delle chiavi li scegli tu; la convenzione è
item.<namespace>.<nome>eenchantment.<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.