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, scritto come semplici file JSON. Questa pagina è il riferimento completo del loro formato.
<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
dnd5e; 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, maiminednd,dnd5eominecraft(a meno che tu non voglia sostituire i loro file, vedi Ordine di caricamento e sostituzioni). - Di chi è ogni namespace:
minedndè del motore (lì ci sono solo le impostazioni del mondo e i tag di aggancio#minednd:first_time_xpe#minednd:fletching_table);dnd5eè del Default Content, che è solo un datapack come il tuo. - 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 |
loot_injections/**/*.json |
Oggetti MineDnD aggiunti a tabelle del bottino esistenti (casse di Minecraft, mob, pesca…) | Bottino |
loot_table/**/*.json |
Tabelle del bottino (formato di Minecraft), che possono usare la voce minednd:catalog_item |
Bottino |
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 |
L'aspetto degli oggetti non è in un datapack: è un resource pack separato, vedi Aspetto personalizzato.
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 (il pacchetto Default Content li imposta tutti, quindi un pacchetto di impostazioni deve stare sopra) |
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/dnd5e/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); rinominala in items.
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, in /dnd catalog list e nell'elenco della scheda Infondi. Lì il suo nome è la traduzione minednd.category.<categoria> (altrimenti la categoria stessa). Il pacchetto Default Content usa weapons, armor, accessories, tomes, tools, potions, arrows, templates, food |
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 |
limit |
no | 0 o più: quanti se ne possono creare in modo naturale in un mondo; vedi Oggetti limitati. Senza, non c'è limite |
hidden |
no (predefinito false) |
true: un oggetto segreto, mostrato solo agli operatori e in modalità creativa; vedi Oggetti nascosti |
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.
Oggetti limitati¶
"limit": 3 (accanto a category) rende un oggetto raro: un mondo può crearne solo 3 in tutto, da qualsiasi giocatore.
{ "category": "accessories", "limit": 3, "stack": { "id": "minecraft:emerald", "components": { … } } }
- Cosa consuma il limite: la creazione, la forgiatura, il tavolo da arciere e l'infusione (contate quando si prende il risultato, anche con maiusc+clic), la distillazione (contata per ampolla) e il bottino (mai la cottura: vedi Ricette di cottura). Quando non ne restano, il risultato della creazione resta vuoto con "Amuleto dell'Inventore: in questo mondo non ne restano" sopra la barra rapida, e l'alambicco non distilla quell'ampolla. Con 1 rimasto e 3 ampolle nell'alambicco, se ne distilla una e le altre restano come sono.
- Le copie non tornano: una copia persa nella lava, scomparsa o consumata conta comunque.
- Gli operatori possono sempre crearne altre con
/dnd give; quelle copie si contano a parte e non consumano il limite. Le copie prese dalla scheda creativa non si contano. "limit": 0: solo gli operatori possono crearlo.- Gli oggetti limitati non vanno in
/dnd catalog chestsné nelle casse del mondo di esempio (lì chiunque potrebbe prenderli). I crafter non li creano: crearli resta una cosa che fa un giocatore. /dnd limited listmostra ogni oggetto limitato con quanti ne sono stati creati e quanti ne hanno dati gli operatori.- I conteggi si salvano con il mondo (
data/minednd/limited_items.dat). Cambiando unlimite facendo/reload, il nuovo limite vale per le copie già create: abbassarlo sotto di esse vuol dire solo che non ne restano. Un oggetto tolto dal pacchetto conserva il suo conteggio, nel caso torni.
Oggetti nascosti¶
"hidden": true (accanto a category) tiene segreto un oggetto. I giocatori non sanno che esiste finché non ne trovano uno:
- Non compare nella scheda creativa MineDnD, nell'elenco di ricette dell'alambicco, in
/dnd catalog chestsné nelle casse del mondo di esempio. - La sua ricetta non va nel ricettario: una ricetta di creazione senza un avanzamento di sblocco di solito c'è fin dall'inizio, ma non quella di un oggetto nascosto. Un avanzamento di sblocco aggiunto dal pacchetto la mostra comunque, come ogni altra. La ricetta funziona lo stesso per chi mette gli ingredienti giusti nella griglia o nell'alambicco.
- Il gioco non lo invia proprio ai client dei giocatori (nemmeno il suo id), né le regole sui requisiti che lo nominano: il
tooltip di un oggetto nascosto non elenca le sue regole ("Per usarlo: …"), anche se il server le applica comunque. I suoi
minednd:requirementssi vedono ancora. - Gli operatori e i giocatori in modalità creativa vedono tutto, oggetti nascosti compresi, subito dopo
/opo/gamemode creative(e non più dopo/deopo uscendo dalla creativa)./dnd givee/dnd catalog listfunzionano come sempre. - Un giocatore che ne trova uno (in una cassa, da un altro giocatore) ha in mano un oggetto normale, con nome, descrizione e tooltip.
- La documentazione dei contenuti generata dal pacchetto Default Content non include gli oggetti nascosti.
hiddenelimitsono separati: un oggetto può essere nascosto, limitato, entrambi o nessuno dei due.
Frecce con effetti¶
Una freccia che avvelena, rallenta o solleva ciò che colpisce è un oggetto MineDnD basato su minecraft:tipped_arrow, con
gli effetti in minecraft:potion_contents, come una pozione:
{
"category": "arrows",
"stack": {
"id": "minecraft:tipped_arrow",
"components": {
"minecraft:item_name": { "translate": "item.my_campaign.venom_arrow", "fallback": "Venom Arrow" },
"minecraft:potion_contents": {
"custom_color": 5149489,
"custom_effects": [
{ "id": "minecraft:poison", "amplifier": 1, "duration": 200 },
{ "id": "minecraft:slowness", "duration": 100 }
]
},
"minecraft:potion_duration_scale": 1
}
}
}
minecraft:potion_duration_scale: una freccia imbevuta dà solo 1/8 della durata di ogni effetto, come in Minecraft.1dà tutta laduration(in tick: 200 = 10 secondi);0.5la metà.- La tira qualsiasi arco o balestra. Raccolta di nuovo, è sempre lo stesso oggetto MineDnD.
- Creane diverse alla volta con il
result.countdi una ricetta (es. 8 frecce attorno a un ingrediente) e sblocca la ricetta da quell'ingrediente, come le frecce Velenosa, del Gelo e dell'Esilio del Default Content. - Solo
tipped_arrow: unaminecraft:spectral_arrowignorapotion_contents(fa solo brillare i bersagli). Per una freccia che fa brillare e fa altro, usa una freccia imbevuta conminecraft:glowingtra gli effetti. - Cosa non funziona sulle frecce:
- gli incantesimi: il gioco usa quelli dell'arco o della balestra, non della freccia;
minednd:requirements: spengono i poteri di un oggetto (incantesimi, bonus, abilità), e gli effetti di una freccia non lo sono, quindi non li fermano;- danni in più, fuoco, contraccolpo o fulmini all'impatto: nessun componente lo fa ancora per le frecce. L'abilità
imbuedell'arco li aggiunge ai tiri successivi. - Il Pack Editor segnala gli effetti su una freccia spettrale, e ricorda la scala della durata.
Cibo¶
Il cibo è un oggetto MineDnD basato su un cibo di Minecraft, con il suo minecraft:food (quanto sazia) e, per i
potenziamenti a tempo, minecraft:consumable con apply_effects:
{
"category": "food",
"stack": {
"id": "minecraft:honey_bottle",
"components": {
"minecraft:item_name": { "translate": "item.my_campaign.dwarven_stout", "fallback": "Dwarven Stout" },
"minecraft:lore": [
{ "translate": "potion.withDuration", "with": [{ "translate": "effect.minecraft.strength" }, "2:00"], "color": "blue", "italic": false }
],
"minecraft:food": { "nutrition": 2, "saturation": 2.0, "can_always_eat": true },
"minecraft:consumable": {
"animation": "drink",
"sound": "minecraft:entity.generic.drink",
"on_consume_effects": [
{ "type": "minecraft:apply_effects", "effects": [{ "id": "minecraft:strength", "amplifier": 0, "duration": 2400 }] }
]
}
}
}
}
| Componente | Valore |
|---|---|
minecraft:food |
nutrition (punti fame, 2 = una coscia), saturation, can_always_eat (si mangia anche sazi: bevande, bacche curative) |
minecraft:consumable |
consume_seconds (predefinito 1.6), animation (eat, drink), sound, has_consume_particles, on_consume_effects |
on_consume_effects |
{ "type": "minecraft:apply_effects", "effects": [ { "id", "amplifier", "duration" } ], "probability": 1.0 }: effetti per duration tick (2400 = 2 minuti; amplifier 0 = livello I). Anche minecraft:remove_effects, minecraft:clear_all_effects, minecraft:teleport_randomly, minecraft:play_sound |
- Scegli la base per ciò che lascia: una zuppa (
minecraft:mushroom_stew,rabbit_stew,beetroot_soup) lascia una ciotola e si impila fino a 1; unaminecraft:honey_bottlelascia una bottiglia di vetro e si impila fino a 16; pane, torte, carne e frutta non lasciano niente. Non usare una base che piazza un blocco quando la si usa (bacche dolci, bacche luminose, carote, patate). minecraft:consumablesostituisce quello della base, per intero: il "cura il veleno" della bottiglia di miele o gli effetti della mela d'oro spariscono, e i campi che ometti prendono il valore predefinito (1,6 s, suono del mangiare). Senza effetti non serve.- I giocatori non vedono gli effetti del cibo: Minecraft mostra gli effetti di una pozione, non quelli di un cibo.
Scrivili in
minecraft:lore, come sopra:potion.withDuration,potion.withAmplifiereeffect.minecraft.<effetto>sono testi del gioco, quindi tradotti in ogni lingua. - Cuocilo da un oggetto MineDnD crudo con una ricetta di cottura; il cibo del Default Content mostra ogni tipo.
Aspetto personalizzato (resource pack)¶
Un datapack decide cosa fa un oggetto; il suo aspetto viene da un resource pack, che il gioco di ogni giocatore
carica. Sono due pacchetti separati: il datapack va nella cartella datapacks/ del mondo, il resource pack in
resourcepacks/ del gioco (o lo invia il server, vedi sotto). In 26.3 il pack.mcmeta
di un resource pack indica il formato 97 (quello di un datapack è 121):
{ "pack": { "description": "My campaign: looks", "min_format": 97, "max_format": 97 } }
Un oggetto MineDnD ha sempre un oggetto base (stack.id): non esiste un oggetto "di niente". La base dà ciò che i
componenti non possono dare (un arco si tende, un tridente si lancia, una canna da pesca si getta); l'aspetto può essere
qualsiasi.
Collegare l'oggetto al suo aspetto¶
| Modo | Nell'oggetto | Con il resource pack | Senza |
|---|---|---|---|
| Con il suo id (consigliato) | niente: il resource pack ha assets/<namespace>/items/<percorso>.json, con il nome dell'oggetto (assets/my_campaign/items/elven_longbow.json per my_campaign:elven_longbow) |
il tuo modello | l'aspetto normale dell'oggetto base |
| Un modello tuo | "minecraft:item_model": "my_campaign:elven_longbow" |
il tuo modello | la scacchiera nera e viola del "modello mancante" (l'oggetto funziona comunque) |
| Un modello di Minecraft provvisorio | "minecraft:item_model": "minecraft:nether_star" |
— | quell'aspetto di Minecraft; nessun resource pack necessario |
- Con il suo id va bene per quasi ogni oggetto: chi non ha il resource pack vede l'oggetto base, e niente di
Minecraft viene sostituito, quindi più pacchetti di aspetto (quello del Default Content, il tuo, quello di un altro
autore) funzionano insieme. MineDnD usa il file di ogni oggetto MineDnD quando un resource pack ce l'ha, con le sue
proprietà (es.
swap_animation_scale). item_modelvince sull'id: un oggetto che lo imposta usa sempre quel modello. Un modello tuo senza il pacchetto sembra rotto: usalo quando il pacchetto c'è di sicuro (un modpack, un server che lo richiede).- Un modello di Minecraft provvisorio è comodo per un oggetto nuovo la cui grafica non è pronta, o per un aspetto che non ha bisogno di grafica.
- Il modo di Minecraft,
minecraft:custom_model_datacon unselectnella definizione dell'oggetto base (assets/minecraft/items/bow.json), funziona ancora, ma sostituisce il file dell'oggetto base: due pacchetti che lo fanno per lo stesso oggetto base si scontrano.
Cosa va nel resource pack¶
assets/my_campaign/items/elven_longbow.json la definizione del modello: quale modello, quando
assets/my_campaign/models/item/elven_longbow*.json i modelli (forme), es. esportati da Blockbench
assets/my_campaign/textures/item/elven_longbow*.png le texture (un .png.mcmeta accanto la anima)
Una definizione sceglie un modello, e può cambiarlo con lo stato dell'oggetto. Un arco, come quello di Minecraft, mostra un modello diverso mentre lo tendi:
{
"model": {
"type": "minecraft:condition",
"property": "minecraft:using_item",
"on_false": { "type": "minecraft:model", "model": "my_campaign:item/elven_longbow" },
"on_true": {
"type": "minecraft:range_dispatch",
"property": "minecraft:use_duration",
"scale": 0.05,
"fallback": { "type": "minecraft:model", "model": "my_campaign:item/elven_longbow_pulling_0" },
"entries": [
{ "threshold": 0.65, "model": { "type": "minecraft:model", "model": "my_campaign:item/elven_longbow_pulling_1" } },
{ "threshold": 0.9, "model": { "type": "minecraft:model", "model": "my_campaign:item/elven_longbow_pulling_2" } }
]
}
}
}
Questo è tutto il file, per entrambi i modi: assets/my_campaign/items/elven_longbow.json per collegarlo
con il suo id, o il percorso che nomina il suo item_model.
Per tipo di oggetto¶
| Oggetto | Il suo aspetto | Note |
|---|---|---|
| Spade, asce, strumenti, bacchette, bastoni | un modello | 2D o 3D (Blockbench); come si impugna è nel display del modello |
| Archi | using_item + use_duration: a riposo e 3 stadi di tensione |
come sopra |
| Balestre | select su minecraft:charge_type: none, arrow, rocket |
copia il crossbow.json di Minecraft |
| Armature, indossate | "minecraft:equippable": { "slot": "chest", "asset_id": "my_campaign:invulnerable" } nell'oggetto, e nel resource pack assets/my_campaign/equipment/invulnerable.json con la texture in textures/entity/equipment/humanoid/ (humanoid_leggings/ per i gambali) |
la sua icona è un normale modello d'oggetto; senza il resource pack l'armatura è invisibile addosso (l'asset_id non ha un aspetto a cui tornare) |
| Scudi | un modello normale | quello di Minecraft disegna i motivi degli stendardi: un modello personalizzato no |
| Tridenti, frecce | in mano e nell'inventario: il tuo modello | in volo il gioco li disegna come quelli di Minecraft |
Armi lanciate di MineDnD (l'abilità throw) |
il tuo modello, anche in volo | l'arma lanciata disegna il suo oggetto |
Oggetti nuovi¶
Per un oggetto che non somiglia a nessun oggetto di Minecraft (una reliquia, una maschera, un falcione), prendi una base
senza un comportamento suo, come minecraft:paper, e dagli il comportamento con i componenti:
| Per | Componenti |
|---|---|
| Un'arma da mischia | minecraft:weapon, minecraft:attribute_modifiers (danno e velocità d'attacco), minecraft:max_damage |
| Uno strumento | minecraft:tool |
| Uno scudo | minecraft:blocks_attacks |
| Qualcosa da indossare (una maschera, un mantello) | minecraft:equippable |
| Qualcosa da mangiare o bere | minecraft:consumable, minecraft:food |
| Un amuleto, una reliquia | minednd:stat_bonus, minednd:active_ability di MineDnD; minecraft:death_protection di Minecraft |
- Un oggetto MineDnD non è mai la sua base in una ricetta (vedi sopra), quindi la carta non diventa un libro. Ma il combustibile non è una ricetta: un bastone MineDnD brucia in una fornace. E non usare una base che piazza un blocco quando la usi (una barriera, un vuoto strutturale).
- Ciò che i componenti non danno richiede la base vera: tendere un arco, caricare una balestra, lanciare un tridente, gettare una canna. Blocchi nuovi, mob e l'aspetto dei proiettili in volo richiederebbero la mod stessa.
Cosa succede quando…¶
| L'oggetto del datapack | Il resource pack | I giocatori vedono |
|---|---|---|
usa item_model |
installato | l'aspetto personalizzato (anche se un file ha il suo id) |
usa item_model |
mancante | la scacchiera del "modello mancante"; l'oggetto funziona |
| è collegato con il suo id | installato | l'aspetto personalizzato |
| è collegato con il suo id | mancante | l'aspetto dell'oggetto base |
ha equippable con un suo asset_id |
mancante | indossata, niente: l'armatura è invisibile sul corpo (la sua icona segue le righe sopra) |
| (non esiste) | ha un modello per lui | niente: un resource pack non aggiunge mai oggetti |
Condividere il resource pack¶
- Modpack (
.mrpack): mettilo inoverrides/resourcepacks/e attivalo inoverrides/options.txt. - Server:
resource-pack=<URL per scaricarlo>eresource-pack-sha1=<il suo SHA-1>inserver.properties;require-resource-pack=truelo rende obbligatorio. Ai giocatori viene proposto quando entrano. - Mondo in singolo giocatore: un
resources.zipnella cartella del mondo si carica con quel mondo. - A mano: i giocatori mettono lo zip in
resourcepacks/e lo attivano in Opzioni → Pacchetti di risorse.
Il resource pack del Default Content (resourcepacks/default-content) è
un esempio funzionante del modo senza rotture: 91 oggetti, 57 definizioni di Minecraft sostituite, ognuna con quella di
Minecraft come ripiego.
Modelli e texture si fanno di solito con Blockbench (gratuito; modelli "Java Item"). Se usi quelli di qualcun altro, controlla che la licenza permetta di condividerli come farai tu (in un modpack, da un server): molte licenze dei negozi permettono di usare un modello sul proprio server ma non di passare i file ad altri.
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": "dnd5e: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>", una lista di id o un oggetto MineDnD, { "catalog_item": "<id oggetto MineDnD>" } |
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.- Un ingrediente può essere un oggetto MineDnD:
{ "catalog_item": "dnd5e:weapons/apprentice_wand" }. È l'unico modo in cui una ricetta ne accetta uno: un oggetto semplice non corrisponde mai a un oggetto MineDnD (vedi Gli oggetti MineDnD non sono il loro oggetto base qui sotto), quindi"minecraft:stick"non accetta una Bacchetta dell'Apprendista. 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": ["dnd5e:weapons/sun_blade"]incrafting_requirements(l'id della ricetta è il percorso del file). Per oggetto risultante corrispondono all'oggetto base (es.minecraft:golden_sword). - Il pacchetto Default Content ha 49 ricette di creazione, 5 di distillazione, 6 di forgiatura, 9 da arciere, 4 potenziamenti da arciere, 16 d'infusione e 5 di cottura (vedi Contenuti predefiniti): quasi tutte migliorano l'oggetto base semplice con ingredienti speciali.
Gli oggetti MineDnD non sono il loro oggetto base¶
Un oggetto MineDnD non viene mai usato come l'oggetto semplice da cui è fatto, in nessuna ricetta: quelle di Minecraft, di altre mod e di MineDnD stessa. Una Bacchetta dell'Apprendista non è un bastone, una Spada Fiammeggiante non è una spada di ferro. Quindi le ricette di Minecraft non possono trasformare gli oggetti MineDnD in altro (torce, librerie, un condotto), ripararli o unirli nella griglia, fonderli in pepite, potenziarli a netherite, decorarli con finiture, tingerli o distillarli in pozioni da lancio e persistenti.
- Una ricetta MineDnD chiede un oggetto MineDnD per id:
{ "catalog_item": "<id>" }in un ingrediente diminednd:crafting_shaped, o comeinputdi una ricettaminednd:brewing. Nessun altro tipo di ricetta ne accetta. - Il ricettario non prende gli oggetti MineDnD come ingredienti quando clicchi una ricetta (come Minecraft già salta gli oggetti incantati, danneggiati e rinominati): mettili nella griglia a mano.
- Ciò che non è una ricetta funziona come prima: incudini, mole, combustibile, compostiere, incantamenti.
- In un tipo di ricetta di Minecraft o di un'altra mod, l'ingrediente personalizzato di Fabric
{ "fabric:type": "minednd:catalog_item", "item": "<id>" }corrisponde anch'esso all'oggetto, ma quei tipi di ricetta rifiutano comunque gli oggetti MineDnD: usa un tipo di ricetta MineDnD.
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": "dnd5e:weapons/flame_sword" } }
},
"requirements": [["has_the_recipe", "has_blaze_powder", "has_magma_cream"]],
"rewards": { "recipes": ["dnd5e: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.
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": "dnd5e: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.
- 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).
Ricette di forgiatura¶
Tipo di ricetta minednd:smithing: una ricetta del banco da forgiatura che crea un oggetto MineDnD, di solito da un
modello di forgiatura MineDnD (un oggetto del tuo pacchetto basato su un modello di Minecraft, spesso
nascosto e limitato):
{
"type": "minednd:smithing",
"template": { "catalog_item": "my_campaign:templates/ember_edge" },
"base": { "catalog_item": "dnd5e:weapons/flame_sword" },
"addition": "minecraft:magma_cream",
"result": { "item": "my_campaign:weapons/ember_blade" }
}
| Campo | Obbligatorio | Valore |
|---|---|---|
type |
sì | minednd:smithing |
template |
no | Lo slot a sinistra: un id di oggetto, "#<tag di oggetti>", una lista di id o un oggetto MineDnD, { "catalog_item": "<id>" } |
base |
sì | Lo slot centrale, stesse forme |
addition |
no | Lo slot a destra, stesse forme |
result.item |
sì | L'oggetto MineDnD che crea |
result.count |
no (predefinito 1) | 1–99 |
- Prendere il risultato consuma un modello, una base e un'aggiunta, come in Minecraft.
- Il risultato è l'oggetto MineDnD esattamente come è definito, nuovo: incantesimi, danni, finiture e nome dell'oggetto base non passano (a differenza del potenziamento a netherite di Minecraft).
- Un oggetto semplice non corrisponde mai a un oggetto MineDnD (vedi sopra):
per usare un modello, una base o un'aggiunta MineDnD, indicali con
catalog_item. Un modello MineDnD basato suminecraft:netherite_upgrade_smithing_templatenon è più un modello di potenziamento a netherite: le ricette di Minecraft (il potenziamento e la ricetta per copiarlo) non lo accettano. - Un modello MineDnD non mostra le righe del tooltip del modello di Minecraft ("Si applica a: …", "Ingredienti: …") né i
suggerimenti del banco da forgiatura per i suoi slot: dagli un
minecraft:loreche dica a cosa serve. - Le regole sui requisiti limitano queste ricette come quelle di creazione (
"recipes": ["<id ricetta>"], o per oggetto risultante), e un risultato limitato conta quando lo si prende. - Il banco da forgiatura non ha un ricettario: queste ricette non si vedono da nessuna parte, i giocatori le scoprono provando.
Ricette da arciere¶
Un clic destro su un tavolo da arciere lo apre, con due schede:
- Impennaggio: una griglia 3×3, come quella del banco da lavoro, per frecce, archi e balestre. Il pulsante delle ricette elenca ciò che fa, con i punteggi di caratteristica che servono.
- Potenziamento: un modello, una base e un'aggiunta, come il banco da forgiatura, per archi e balestre leggendari.
Il tipo di ricetta minednd:fletching è una ricetta minednd:crafting_shaped che fa solo il tavolo da arciere (stessi
campi: pattern, key, result, category, group):
{
"type": "minednd:fletching",
"pattern": ["AAA", "AXA", "AAA"],
"key": { "A": "minecraft:arrow", "X": "minecraft:spider_eye" },
"result": { "item": "my_campaign:arrows/venom_arrow", "count": 8 }
}
Il tipo di ricetta minednd:fletching_upgrade è una ricetta minednd:smithing che fa solo la scheda Potenziamento del
tavolo da arciere (stessi campi: template, base, addition, result; modello, base e aggiunta si consumano, il
risultato è nuovo):
{
"type": "minednd:fletching_upgrade",
"template": { "catalog_item": "my_campaign:templates/oathbow_sigil" },
"base": { "catalog_item": "my_campaign:weapons/elven_longbow" },
"addition": "minecraft:echo_shard",
"result": { "item": "my_campaign:weapons/oathbow" }
}
- Anche le ricette a distanza di Minecraft: una ricetta di Minecraft il cui risultato è nel tag di oggetti
#minednd:fletching_tablefunziona anche nella griglia del tavolo da arciere (e resta nel banco da lavoro). Il tag del Default Content elenca archi, balestre e frecce (normali, spettrali, con effetti); aggiungine altri nel tuo pacchetto (data/minednd/tags/item/fletching_table.json). - Il banco da lavoro non fa mai le ricette
minednd:fletching, né il banco da forgiatura leminednd:fletching_upgrade. - Solo con delle ricette: in un mondo i cui datapack non hanno ricette da arciere, potenziamenti o oggetti nel tag, il tavolo da arciere resta il blocco semplice di Minecraft (i villici lo usano comunque).
- L'elenco: la scheda Impennaggio elenca tutte le ricette da arciere (e quelle di Minecraft nel tag), non solo quelle sbloccate, con in grigio ciò che il giocatore non può ancora fare. Le ricette con un oggetto nascosto restano segrete. I potenziamenti non sono elencati: i giocatori li scoprono, come i modelli di forgiatura. Le ricette da arciere non vanno nel ricettario.
- Gli slot della scheda Potenziamento accettano solo ciò che entra in qualche potenziamento: modelli a sinistra, basi al centro, aggiunte a destra.
- Le regole sui requisiti e i limiti valgono come nel banco da lavoro e in
quello da forgiatura (
"recipes": ["<id ricetta>"]o per oggetto risultante). - Un modello è un qualsiasi oggetto del tuo pacchetto, di solito nascosto e
limitato, basato su un modello di Minecraft e trovato nel bottino: dagli un
minecraft:loreche dica dove va.
Ricette d'infusione¶
Il tavolo da incantesimi ha due schede: Incanta, quella di Minecraft, e Infondi, che crea oggetti MineDnD (bacchette, bastoni, libri degli incantesimi, oggetti per la mano secondaria) da una base, un catalizzatore e lapislazzuli, in cambio di livelli di esperienza. Il pulsante del libro elenca ciò che crea, con il costo e i punteggi di caratteristica che servono.
{
"type": "minednd:imbuing",
"base": "minecraft:stick",
"catalyst": "minecraft:amethyst_shard",
"lapis": 1,
"levels": 5,
"result": { "item": "my_campaign:weapons/wand_of_magic_missiles" }
}
| Campo | Obbligatorio | Valore |
|---|---|---|
type |
sì | minednd:imbuing |
base |
sì | Lo slot a sinistra: un id di oggetto, "#<tag di oggetti>", una lista di id, o un oggetto MineDnD, { "catalog_item": "<id>" } |
catalyst |
no | Lo slot centrale, stesse forme; senza, lo slot centrale deve essere vuoto |
lapis |
no (predefinito 1) | 0–3: lapislazzuli nello slot a destra, consumati |
levels |
no (predefinito 5) | 1–30: livelli di esperienza pagati (niente in modalità creativa) |
result.item |
sì | L'oggetto MineDnD che crea |
result.count |
no (predefinito 1) | 1–99 |
- Prendere il risultato consuma una base, un catalizzatore e i lapislazzuli, e costa i livelli. Il costo si vede come quello dell'incudine: verde se il giocatore ha i livelli, rosso se no (e allora il risultato non si può prendere).
- Il banco da lavoro non fa mai le ricette
minednd:imbuing, e non vanno nel ricettario: la scheda Infondi le elenca tutte, quelle con un oggetto nascosto solo per chi può vederlo. - Gli slot della base e del catalizzatore accettano solo ciò che usa qualche ricetta.
- Le schede dell'elenco vengono dalle ricette: tutto, una scheda per ogni categoria degli oggetti che creano (le quattro con più ricette) e "Altro" per il resto.
- Solo con delle ricette: in un mondo i cui datapack non hanno ricette d'infusione, il tavolo da incantesimi non ha la scheda Infondi.
- Le regole sui requisiti e i limiti valgono come nel banco da lavoro. Il
Default Content divide l'infusione in livelli, come la distillazione:
crafting_requirements/imbuing/(basicINT 12,arcaneINT 13,divineINT 12 e SAG 13,masterINT 15 e SAG 12), oltre a INT 12 e SAG 10 che servono per il tavolo.
Ricette di cottura¶
Tipi di ricetta minednd:smelting (fornace), minednd:smoking (affumicatore) e minednd:campfire_cooking (falò): una
cottura che crea un oggetto MineDnD. I campi sono quelli di Minecraft, il risultato nomina l'oggetto MineDnD:
{
"type": "minednd:smoking",
"category": "food",
"ingredient": { "catalog_item": "my_campaign:food/seasoned_venison" },
"result": { "item": "my_campaign:food/roast_venison" },
"experience": 0.35,
"cookingtime": 200
}
| Campo | Obbligatorio | Valore |
|---|---|---|
type |
sì | minednd:smelting, minednd:smoking o minednd:campfire_cooking |
ingredient |
sì | Un id di oggetto, "#<tag di oggetti>", una lista di id, o un oggetto MineDnD, { "catalog_item": "<id>" } |
result.item |
sì | L'oggetto MineDnD che crea |
result.count |
no (predefinito 1) | 1–99 |
cookingtime |
no | Tick: predefinito 200 (10 s) in fornace o affumicatore, 600 (30 s) sul falò, come il cibo di Minecraft |
experience |
no (predefinito 0) | Esperienza data quando si prende il risultato da fornace o affumicatore (cibo di Minecraft: 0.35) |
category |
no (predefinito misc) |
Scheda del ricettario: food, blocks, misc |
group |
no | Le ricette con lo stesso gruppo condividono un posto nel ricettario |
- Un file per postazione: per cuocere la stessa cosa in fornace, affumicatore e sul falò servono tre ricette, come in
Minecraft (
roast_venison.json,roast_venison_from_smelting.json,roast_venison_from_campfire_cooking.json). - Non riusare un ingrediente di Minecraft sulla stessa postazione (il manzo crudo in fornace fa già la bistecca): si
userebbe solo una delle due ricette. Cuoci un oggetto MineDnD crudo (con
catalog_item), o qualcosa che Minecraft non cuoce (una mela, la carne marcia). - Un oggetto semplice non corrisponde mai a un oggetto MineDnD (vedi sopra):
un cibo crudo MineDnD basato su
minecraft:muttonnon diventa carne ovina cotta, solo con la tua ricetta. - I ricettari di fornace e affumicatore le mostrano, e si sbloccano come le ricette di creazione.
- Mai un oggetto limitato: fornaci e falò cuociono anche senza nessuno vicino, quindi un risultato limitato non si potrebbe contare: una ricetta così non cuoce niente. Neanche le regole sui requisiti valgono per la cottura.
Bottino¶
Gli oggetti MineDnD possono uscire dalle tabelle del bottino: casse, drop dei mob, pesca, archeologia, tutto ciò che una tabella del bottino riempie. In due modi:
Nelle tue tabelle del bottino¶
Tipo di voce minednd:catalog_item, accanto a minecraft:item di Minecraft, in qualsiasi tabella del bottino del tuo
pacchetto (data/<namespace>/loot_table/**/*.json, formato di Minecraft):
{
"pools": [
{
"rolls": 1,
"entries": [
{ "type": "minednd:catalog_item", "item": "dnd5e:weapons/vorpal_sword", "weight": 1 },
{ "type": "minecraft:item", "name": "minecraft:diamond", "weight": 9 }
]
}
]
}
| Campo | Obbligatorio | Valore |
|---|---|---|
item |
sì | L'oggetto MineDnD |
count |
no (predefinito 1) | 1–99 |
weight, quality, conditions, functions |
no | Come per minecraft:item |
Nelle tabelle esistenti: iniezioni nel bottino¶
File: data/<namespace>/loot_injections/**/*.json. Un'iniezione aggiunge un oggetto MineDnD a tabelle del bottino
esistenti, anche quelle di Minecraft, senza sostituirle, così funziona insieme ad altri datapack:
{ "tables": ["minecraft:chests/ancient_city", "minecraft:chests/end_city_treasure"], "item": "my_campaign:templates/ember_edge", "chance": 0.02 }
| Campo | Obbligatorio | Valore |
|---|---|---|
tables |
sì | Un id di tabella del bottino, o una lista: minecraft:chests/…, minecraft:entities/…, minecraft:gameplay/fishing/treasure, … |
item |
sì | L'oggetto MineDnD |
chance |
sì | 0–1: la probabilità ogni volta che la tabella viene tirata (es. ogni cassa), oltre a ciò che già dà |
count |
no (predefinito 1) | 1–99 |
- Le casse di Minecraft tirano il loro bottino la prima volta che vengono aperte (o che una tramoggia ne prende), non quando il mondo viene generato: un oggetto iniettato va a chi apre la cassa.
- Un oggetto limitato consuma il suo limite quando esce, in qualsiasi modo (
minednd:catalog_itemo un'iniezione, un giocatore o una tramoggia,/loot). Quando non ne restano non esce più, quindi le copie vanno ai primi giocatori abbastanza fortunati da trovarle. /loot give @s loot minecraft:chests/village/village_weaponsmithtira una tabella a mano: comodo per provare un'iniezione.- Non cambiare la quantità di un oggetto limitato con
minecraft:set_count(nella voce, nel suo pool o nella tabella): le funzioni agiscono dopo che il limite ha contato l'oggetto, quindi il conteggio sarebbe sbagliato. Usa ilcountdella voce. Il Pack Editor lo segnala. /reloadapplica subito iniezioni nuove o modificate. Più iniezioni nella stessa tabella tirano ognuna per conto suo.- Un file rotto viene saltato e scritto nel log (
Skipping loot injection …).
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.
Modificare gli incantesimi di Minecraft¶
Anche gli incantesimi di Minecraft sono dati, quindi un datapack può superarne i livelli: Protezione VI, Affilatezza X, Atterraggio morbido X… In due modi, dal più sicuro:
Livelli più alti solo sugli oggetti MineDnD. Scrivi il livello nell'oggetto: "minecraft:enchantments": { "minecraft:protection": 7 }
(1–255). Gli effetti dell'incantesimo seguono la sua formula (Protezione +1 punto per livello, Affilatezza +0,5 danni),
quindi il livello 7 è più forte del IV, e nient'altro cambia: tavoli per incantesimi, incudini e altri oggetti restano come
in Minecraft. Lo fanno la Spada Vorpal (Affilatezza VIII), la Corazza Infernale (Protezione dal fuoco VI), gli Stivali della
Caduta Morbida (Atterraggio morbido X) e l'Armatura dell'Invulnerabilità (Protezione XV) del Default Content.
Sostituire l'incantesimo. Un file con il percorso di Minecraft, data/minecraft/enchantment/<nome>.json, lo sostituisce.
Parti dal file di Minecraft (nel jar di Minecraft, data/minecraft/enchantment/, o sulla Minecraft Wiki) e alza
max_level. Questo esempio porta Protezione fino a VI, con i livelli V e VI che funzionano solo per chi la indossa con COS 14:
{
"description": { "translate": "enchantment.minecraft.protection" },
"supported_items": "#minecraft:enchantable/armor",
"weight": 10,
"max_level": 6,
"min_cost": { "base": 1, "per_level_above_first": 11 },
"max_cost": { "base": 12, "per_level_above_first": 11 },
"anvil_cost": 1,
"slots": ["armor"],
"exclusive_set": "#minecraft:exclusive_set/armor",
"effects": {
"minecraft:damage_protection": [
{
"effect": {
"type": "minecraft:add",
"value": { "type": "minecraft:clamped", "value": { "type": "minecraft:linear", "base": 1, "per_level_above_first": 1 }, "min": 0, "max": 4 }
},
"requirements": {
"type": "minecraft:damage_source_properties",
"predicate": { "tags": [{ "id": "#minecraft:bypasses_invulnerability", "expected": false }] }
}
},
{
"effect": {
"type": "minecraft:add",
"value": { "type": "minecraft:clamped", "value": { "type": "minecraft:linear", "base": -3, "per_level_above_first": 1 }, "min": 0, "max": 2 }
},
"requirements": {
"type": "minecraft:all_of",
"terms": [
{ "type": "minecraft:damage_source_properties", "predicate": { "tags": [{ "id": "#minecraft:bypasses_invulnerability", "expected": false }] } },
{ "type": "minednd:ability_scores", "entity": "this", "min": { "con": 14 } }
]
}
}
]
}
}
- Cosa cambia un
max_levelpiù alto: le incudini combinano fino a quel livello, e libri e bottino possono averlo. - I tavoli per incantesimi non offrono i nuovi livelli con i costi di Minecraft: la potenza di un tavolo arriva a circa
30, e un livello viene offerto solo se il suo
min_costè sotto la potenza (Protezione V: 1 + 4 × 11 = 45). Abbassamin_costper farli comparire. In sopravvivenza le incudini rifiutano una combinazione che costa 40 livelli o più ("Troppo costoso!"). - Nell'esempio, il primo effetto dà i livelli I–IV come in Minecraft (fermo a 4 punti con
minecraft:clamped), e il secondo aggiunge i livelli V–VI (linearda −3, fermo tra 0 e 2) solo quando chi la indossa ha COS 14 (minednd:ability_scores,"entity": "this"). - Gli incantesimi si caricano con il mondo: riavvia il mondo (o il server) dopo averli cambiati,
/reloadnon basta. Se due pacchetti sostituiscono lo stesso incantesimo, vince quello più in alto.
I livelli sopra il X hanno bisogno di un nome. Il gioco dà un nome ai livelli I–X; Protezione 11 appare come
"Protezione enchantment.level.11". Aggiungi i nomi alle traduzioni di un pacchetto:
"enchantment.level.11": "XI". Il Default Content ha da XI a XX, in inglese e in italiano. Chi non ha la mod vede la chiave.
Il limite della protezione. Gli incantesimi di protezione di tutto ciò che indossi si sommano in punti, e il gioco si ferma a 20 punti: l'80 % di danni in meno. Nessun datapack può superarlo.
| Incantesimo | Punti per livello | Da solo arriva all'80 % al |
|---|---|---|
| Protezione | 1 (qualsiasi danno) | XX |
| Protezione dal fuoco, dalle esplosioni, dai proiettili | 2 (solo quel danno) | X |
| Atterraggio morbido | 3 (solo le cadute) | VII |
Protezione IV su tutti e quattro i pezzi dà già 16 punti, quindi una Protezione più alta serve soprattutto con meno armatura. Il Pack Editor segnala un livello oltre il limite, e un livello sopra il X.
Cos'altro cresce: Affilatezza, Anatema, Flagello degli artropodi, Potenza, Efficienza, Indistruttibilità, Saccheggio e Fortuna continuano a crescere con il livello. Alcuni si fermano a un limite del gioco: Passo anfibio al III (velocità piena in acqua), Carica rapida intorno al V (ricarica istantanea), Passo felpato alla velocità piena da accovacciati.
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. Le regole guardano i punteggi base del giocatore: i bonus degli
oggetti e del titolo non contano (FOR 12 con un anello da +2 FOR non soddisfa FOR 13).
{
"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": "#dnd5e: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.dnd5e: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 ("#dnd5e: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, per la griglia 2x2 dell'inventario e per il banco da forgiatura. Quando il giocatore non ha i requisiti, lo slot del risultato resta vuoto e sopra la barra rapida compare "Per creare questo oggetto serve, senza bonus: Intelligenza 12, Saggezza 10".
- Piazzare e usare: l'azione viene bloccata con "Per piazzare questo blocco serve, senza bonus: ..." / "Per usare questo oggetto serve, senza bonus: ...". 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 i punteggi base del giocatore li soddisfano, 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, forgiatura e distillazione: fornaci 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 #dnd5e:effects, #dnd5e:enhanced e
#dnd5e: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 (#dnd5e:effects) |
SAG 10 |
Versioni potenziate (II) e prolungate (#dnd5e:enhanced), pozioni da lancio con effetti |
SAG 12, INT 10 |
| Pozioni persistenti con effetti | SAG 13, INT 12 |
Pozioni dannose (#dnd5e: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/dnd5e/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", "#dnd5e: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. #dnd5e:effects, #dnd5e:enhanced, #dnd5e: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": "dnd5e:achievements/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.dnd5e.cow_slayer.title" },
"description": { "translate": "advancements.dnd5e.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, #dnd5e: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.dnd5e.miner", "color": "gray" },
"description": { "translate": "title.dnd5e.miner.description" },
"unlocked_by": "dnd5e:achievements/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. Il pacchetto Default Content ha questo file con ogni valore, tutti predefiniti tranne l'esperienza
d'avventura (attiva, senza uccisioni ripetute): copialo per partire. 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,
"mining_speed_per_modifier": 0.10,
"min_mining_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,
"enchant_levels_per_modifier": 1.0,
"imbue_levels_per_modifier": 0.5,
"anvil_cost_per_modifier": 0.05,
"min_anvil_cost_multiplier": 0.5,
"max_anvil_cost_multiplier": 1.25
},
"wisdom": {
"harmful_effect_per_modifier": 0.10,
"min_harmful_effect_multiplier": 0.5,
"max_harmful_effect_multiplier": 1.25,
"potion_duration_per_modifier": 0.10,
"min_potion_duration_multiplier": 0.7,
"luck_per_modifier": 0.4,
"min_luck": -2
},
"charisma": {
"trade_discount_per_modifier": 0.05,
"max_trade_discount": 0.5,
"max_trade_markup": 0.15,
"barter_bonus_chance_per_modifier": 0.05,
"gossip_per_modifier": 0.10,
"min_gossip_multiplier": 0.5,
"golem_peace_min_score": 16,
"detection_per_modifier": 0.05,
"min_detection_multiplier": 0.5,
"max_detection_multiplier": 1.15
}
},
"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. - Effetti che scendono al salire del punteggio (fame, effetti dannosi, costo dell'incudine, prezzi degli scambi):
sono
1 − coefficiente × modificatore, tra i loromin_…emax_…(i punteggi bassi li fanno salire, fino almax_…).max_trade_discountemax_trade_markupdel Carisma sono frazioni: 0,5 = al massimo metà prezzo, 0,15 = al massimo il 15% in più. - Livelli (
enchant_levels_per_modifier,imbue_levels_per_modifier):coefficiente × modificatore, arrotondato verso lo zero: i livelli in più che un giocatore conta di avere per il requisito di un'offerta del tavolo per incantesimi, e i livelli tolti al costo di una ricetta d'infusione (mai sotto 1).luck_per_modifiersi aggiunge all'attributo fortuna di Minecraft, mai sottomin_luck(−1024–0). - Il resto del Carisma:
barter_bonus_chance_per_modifierè una probabilità (CAR 20 con 0,05: 25%) che un piglin dia un secondo giro del suo bottino di baratto;golem_peace_min_score(0–30, 0 = disattivato) è il punteggio di CAR da cui i golem di ferro non attaccano per l'opinione dei villici;gossip_…scala la buona opinione che i villici guadagnano (scambi, cure), edetection_…la distanza da cui i mostri ostili notano il giocatore (come accovacciarsi). - 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; il pacchetto Default Content lo mette atrue):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. Il pacchetto Default Content disattiva le uccisioni ripetute, quindi lì i livelli alti richiedono più tempo: abbassalevel_xp_growthper compensare. - 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, come fa il pacchetto Default Content).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.
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 |
Skipping loot injection <id>: <motivo> |
Un'iniezione nel bottino è sbagliata (es. chance sopra 1, tables vuoto) |
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.