Clarus Victoria

Next Run · Mod

Guida alle mod di Next Run

Panoramica dettagliata sul funzionamento delle mod di Next Run, sulla struttura dei file e sui componenti del gioco. Salva questo link per avere risposte rapide quando crei e pubblichi le tue mod.

1. Generale

Questo documento descrive il sistema di mod di Next Run: come installarle, creare le tue mod e condividerle con altri giocatori.

2. Sistema di mod

Dopo aver avviato il gioco e aver cliccato "Gioca" e "Crea partita", viene eseguita la scansione della cartella Mods all'interno della directory del gioco. Ogni sottocartella di questa directory è considerata una mod se contiene il file modinfo.json.

2.1. Steam Workshop, installazione e pubblicazione delle mod

Se avvii il gioco dal client Steam, nel menu "Gioca" troverai il pannello "Mod" con i seguenti pulsanti:

  • Steam Workshop
  • Cartella delle mod
  • Pubblica
  • Manuale

2.1.1. Steam Workshop

Apre Steam Workshop all'interno del client Steam. Per scaricare una mod devi iscriverti. Il download parte automaticamente; se la mod è grande può richiedere tempo. Lo stato del download è visibile nel client Steam.

2.1.2. Cartella delle mod

Apre la cartella delle mod del tuo gioco.

2.1.3. Pubblica

Il gioco analizza automaticamente la cartella Mods e pubblica su Steam Workshop tutte le mod di cui sei autore.

  • Se la mod è nuova, viene generato automaticamente uno steam_id.
  • Se la mod esiste già, viene aggiornata.
  • Durante il caricamento l'aspetto del pulsante di pubblicazione cambia.
  • La mod viene pubblicata solo se il contenuto è cambiato.
  • La modifica del file modinfo.json non è considerata una modifica del contenuto.
  • Le mod pubblicate diventano disponibili ai giocatori di tutto il mondo. Steam Workshop non è l'unico modo per distribuire le mod: puoi condividerle direttamente inserendo la cartella della mod nella directory Mods.

2.2. File JSON

Tutti i dati e i testi del gioco utilizzano JSON. A differenza del testo semplice, i dati devono essere racchiusi tra parentesi graffe {}.

Riferimenti alla sintassi JSON:

Consigliamo di seguire gli esempi di file presenti nel gioco.

2.3. Struttura dei file

Ogni mod segue la struttura di cartelle del gioco. Questi file aggiungono nuovo contenuto o modificano quello esistente. I file JSON aggiungono o modificano singoli elementi del gioco. I file di altri formati (png, ogg) vengono sostituiti per intero.

Esempio: se crei il file data/game.json e modifichi l'entità "Warrior" (classe di gioco), verrà modificata solo questa classe, mentre le altre entità in game.json resteranno invariate. Se aggiungi il file portrait_warrior_front.png, sostituirà completamente l'immagine corrispondente nel gioco perché ha lo stesso nome.

All'interno di una mod esistono file e cartelle obbligatorie e facoltative. La struttura standard è la seguente:

  • Nome della cartella della mod (può essere qualsiasi, non è il nome della mod)
  • modinfo.json
  • preview.png
  • data/
  • icons/
  • sounds/
  • texts/
  • tiles/

Per una comprensione migliore, esamina gli esempi del gioco e le mod esistenti. Qui sotto trovi una descrizione dettagliata di ogni cartella e file.

2.3.1. modinfo.json

File di metadati della mod. Alcuni di questi campi sono usati da Steam Workshop durante la pubblicazione.

  • title — nome della mod, visualizzato su Steam.
  • version — versione della mod.
  • description — descrizione della mod.
  • tags — tag per la navigazione in Steam Workshop.
  • order — ordine di caricamento delle mod. Se più mod modificano gli stessi dati, la mod con un valore di order maggiore sovrascrive quella con valore minore.
  • steam_id — non va indicato manualmente, è generato automaticamente durante la pubblicazione.
  • created_time — data di creazione.
  • changed_time — data di modifica.
  • È possibile aggiungere altri campi, ma saranno utilizzati solo all'interno del file. L'autore della mod viene determinato automaticamente tramite Steam Workshop.

2.3.2. preview.png

Immagine (icona) della mod per Steam Workshop. Risoluzione consigliata: 256x256 o 512x512. Il rapporto deve essere quadrato. Sono ammessi PNG trasparenti o JPG.

2.3.3. data

Cartella con i file JSON dei dati. Contiene i file che modificano le entità esistenti del gioco o ne aggiungono di nuove. Puoi creare solo i file e i campi che devi modificare o aggiungere. Una descrizione dettagliata dei dati modificabili è riportata nella sezione 3.

2.3.4. icons

Cartella con le icone del gioco. Contiene la maggior parte delle immagini, esclusi GUI e tile. Si usano diversi formati e livelli standard per varie situazioni di gioco. Il gioco utilizza file PNG con sfondo trasparente.

2.3.5. sounds

Cartella con suoni e musica. Puoi aggiungere nuovi file o sostituire quelli esistenti. Il formato utilizzato è OGG.

2.3.6. texts

Cartella con i testi localizzati del gioco. Ogni file corrisponde a una lingua e utilizza lo standard IETF BCP-47 / ISO. Al momento sono supportate 13 lingue: ruRU.json, trTR.json, jaJP.json, koKR.json, zhTW.json, zhCN.json, plPL.json, ptBR.json, itIT.json, esES.json, frFR.json, deDE.json, enUS.json.

2.3.7. tiles

Cartella con le immagini dei tile. Si usano file PNG con sfondo trasparente. La dimensione standard di un tile è 256x384. I tile sono composti da più livelli, come terreno, oggetti, foreste, montagne, strade.

2.4. Sincronizzazione delle mod

Dopo aver ottenuto una mod, questa viene sincronizzata automaticamente con l'ultima versione pubblicata su Steam Workshop a ogni avvio del gioco.

Se sei l'autore della mod, la sincronizzazione non viene eseguita e i file della mod non vengono sovrascritti. È pensato per evitare di perdere le tue modifiche quando lavori alla mod dopo aver riavviato il gioco.

Se vuoi creare una mod basata su quella di qualcun altro, prima di riavviare il gioco devi:

  • Rinominare la cartella della mod con un nome diverso dal suo id.
  • Nel file modinfo.json, rimuovere i campi: "author", "created_time", "steam_id", "changed_time".

2.5. Unione dei dati

I file JSON dei dati dei mod e del gioco non vengono sostituiti, ma uniti.

Ordine di unione:

  • Le entità originali dai file JSON del gioco vengono prese come base.
  • I dati dei mod vengono applicati sopra. I mod vengono applicati in base alle priorità definite dal campo order nel file modinfo.json.

Durante l’unione ogni campo di ogni componente viene elaborato separatamente. Ad esempio, se un’entità ha "hideIfZero":true e deve diventare false, non basta rimuovere il campo: devi impostare esplicitamente "hideIfZero":false.

Le liste nel file list.json vengono unite allo stesso modo. Non è necessario duplicare ogni elenco con tutti i campi se devi aggiungere solo un elemento. Tuttavia gli elenchi che contengono solo dati semplici vengono sostituiti completamente, ad esempio RndGoodEvents e RndEvents.

3. Componenti

Il gioco Next Run è basato su un'architettura ECS. Tutto il gioco è composto da entità. Un'entità è un contenitore di componenti e contiene solo il campo id. Tutti gli altri dati sono descritti dai componenti e definiti nei file JSON.

Esempio di voce in un file JSON:

"Speed": {
    "Button": {"panel": "statsPanel","iconType": "btnBig","numText1Type": "total","icon": "arrow2"},
    "Tooltip": {"text": "Speed"},
    "Total": {"now": 25}
}

In questo esempio viene descritta l'entità "Speed" con tre componenti: Button — definisce l'aspetto e il comportamento del pulsante nel gioco; Tooltip — la descrizione del suggerimento; Total — il valore numerico dell'entità, in questo caso la velocità è 25.

Di seguito trovi una descrizione più dettagliata dei componenti e dei loro campi. Alcune proprietà dei componenti sono determinate automaticamente e non sono modificabili nei file JSON. Ad esempio, la difficoltà dello Sgombero dei dungeon dipende dal livello e da altri parametri calcolati dal gioco.

3.1. Button

Descrive l'aspetto e il comportamento di un Pulsante nel gioco.

  • panel = string, pannello predefinito del pulsante. Tutti i pulsanti del gioco si trovano all'interno di pannelli e menu. Usa gli esempi per scegliere in quale pannello posizionare il pulsante.
  • icon = string, nome dell'icona del pulsante. Il nome dell'icona viene preso dalla cartella icons, file PNG.
  • iconType = string, tipo di pulsante, influenza dimensioni ed elementi sul pulsante. Opzioni: "btn" — pulsante semplice, "btnBig" — pulsante con valore in basso.
  • color = string, colore dello sfondo dell'icona, per esempio green, yellow. Elenco dei colori riconosciuti dal gioco: green, superGreen, lightGreen, darkGreen, red, superRed, darkRed, gray, lightGray, darkGray, lightBlue, blue, darkBlue, darkDarkBlue, grayYellow, yellow, pink, cyan, darkCyan, almostBlack, black, orange, darkOrange, lightViolet, purple, chartreuse, num, gameBack, blank, halfTrans, white, base.
  • numText1 = double, valore dell'icona.
  • numTextAdd = string, testo aggiuntivo al valore dell'icona, ad esempio il simbolo "%".
  • numText1Type = string, tipo di valore dell'icona, ad esempio level, total, duration.
  • numCustom = string, valore personalizzato dell'icona, ad esempio "∞".
  • numIcon = string, icona accanto al valore, ad esempio star per i livelli, coin per gli oggetti.
  • hotkey = string, tasto di scelta rapida.
  • hide = bool, se il pulsante è nascosto.
  • hideIfZero = bool, nasconde il pulsante se il campo Total.now del componente è pari a 0.
  • disabled = bool, se il pulsante è disattivato, per esempio alcuni menu all'inizio del gioco sono disabilitati.
  • interactable = bool, se il pulsante è interattivo, impostato su sì per impostazione predefinita. Esempio di pulsanti non interattivi: gli slot dell'inventario.
  • cantBeDeselect = bool, impedisce di togliere la selezione da questo pulsante.
  • cantBeSelect = bool, impedisce di selezionare il pulsante quando viene cliccato.
  • draggable = bool, se può essere trascinato con drag'n drop.
  • x = double, posizione X nell'interfaccia, usata per pulsanti senza pannelli, ad esempio gli slot dell'inventario.
  • y = double, analogo a X ma per la coordinata Y.
  • upMiniPred = string, nome dell'azione verificata per questa entità. Se l'azione è disponibile, appare una mini icona di suggerimento di tipo Miglioramento.
  • craftMiniPred = string, suggerimento analogo per l'azione Creazione.
  • raiseMiniPred = string, suggerimento analogo per l'azione Risveglio.

3.2. Tooltip

Descrive il contenuto della descrizione comandi di un pulsante.

  • text = string, nome dell'entità mostrato nel gioco.
  • dontShowDuration = bool, impedisce di mostrare il valore della durata dell'entità.
  • hideSources = bool, impedisce di mostrare le entità sorgenti che influenzano il valore di questa entità.
  • hideAsSubjTT = bool, impedisce di mostrare questo oggetto come sorgente per entità collegate.
  • desc = string, testo descrittivo, appare all'inizio della descrizione comandi.
  • desc2 = string, testo descrittivo, appare alla fine della descrizione comandi.
  • redDesc = string, testo descrittivo in rosso, appare alla fine.
  • totalTextAs = string, testo al posto di "Totale".
  • ttPos = string, posizione della descrizione comandi rispetto al pulsante, opzioni "top", "left".

3.3. GameClass

Descrive la meccanica di una classe di gioco.

  • text = string, nome della classe nel gioco.
  • portrait_back = string, immagine di sfondo alla selezione della classe 391x598.
  • portrait_front = string, immagine della classe alla selezione 411x620, trasparente.
  • figurine = string, immagine dell'avatar del personaggio sulla mappa 149x243.
  • doll = string, immagine in bianco e nero della classe nell'inventario 460x784.
  • bonusSkill1 = string, nome della prima abilità che riceve un bonus.
  • bonusSkillVal1 = double, entità del bonus 1.
  • bonusSkill2 = string, nome della seconda abilità che riceve un bonus.
  • bonusSkillVal2 = double, entità del bonus 2.
  • debuffSkill1 = string, nome della prima abilità che riceve una penalità.
  • debuffSkillVal1 = double, entità della penalità 1.
  • debuffSkill2 = string, nome della seconda abilità che riceve una penalità.
  • debuffSkillVal2 = double, entità della penalità 2.
  • gold = double, quantità di Oro iniziale della classe.
  • remains = double, numero di resti all'inizio.
  • equip = List<string>, elenco di oggetti iniziali da equipaggiare.
  • units = string, nome della creatura iniziale.
  • itemName = string, nome dell'oggetto nell'inventario all'inizio.
  • itemNum = double, quantità iniziale dell'oggetto nell'inventario.
  • learnList = string, elenco di incantesimi o progetti da apprendere, la lista si trova in list.json.
  • learnNum = double, numero di incantesimi o progetti che verranno appresi dalla lista.
  • lessTime = double, quanto è più breve il tempo tra le ondate dell'Inferno.
  • manaBonus = double, bonus al Mana, massimo e totale.
  • upgradeDexterityBonusMod = double, bonus agli oggetti migliorabili dato dall'abilità Destrezza.
  • skillPointsPerLevel = double, numero di punti abilità ottenuti a ogni salita di livello.
  • upgradeManaCostMod = double, bonus all'efficienza di miglioramento degli incantesimi.
  • freeRegion = bool, regione gratuita.
  • necroBonus = bool, gameplay e bonus del Negromante.
  • druidBonus = bool, gameplay e bonus del Druido.
  • stances = bool, presenza di posizioni/forme/ordini.
  • defStance = string, posizione predefinita.
  • notDemo = bool, classe non disponibile nella Versione demo.
  • notTutorial = bool, se la classe è disponibile nella modalità Tutorial.

3.4. GameMode

Descrive la meccanica di una modalità di gioco.

  • text = string, nome della modalità nel gioco.
  • back = string, immagine di sfondo alla selezione della modalità 391x598.
  • moreTime = double, quanto aumenta il tempo tra le ondate dell'Inferno.
  • lessTime = double, quanto diminuisce il tempo tra le ondate dell'Inferno.
  • woundChance = double, probabilità di ricevere una ferita.
  • notDemo = bool, modalità non disponibile nella Versione demo.
  • scenario = string, nome di una mappa separata per la modalità.
  • noHellAttacks = bool, nessun attacco dell'Inferno in questa modalità (come nella sabbia).
  • savesOnExitOnly = bool, in questa modalità si salva solo all'uscita dal gioco.

3.5. Biome

Determina la meccanica dei biomi.

  • frequency = double, frequenza con cui il bioma appare durante la generazione della mappa; più alto è il numero, più spesso appare. A 0 non viene generato. Il bioma Lava viene generato sempre come regione finale.
  • hexBase = string, tile di base per il bioma, viene generato come base sotto gli insediamenti.
  • music = string, nome del file del brano musicale del bioma.
  • hexPatterns = List<string>, elenco di schemi di oggetti nel bioma. Funziona come un mazzo di carte: gli schemi vengono mescolati e pescati casualmente; quando il mazzo è vuoto viene ricreato. Uno schema ha il formato nome_oggetto#nome_oggetto, il simbolo # separa gli oggetti.
  • mobLevel1 .. mobLevel8 = string, nomi delle creature generate nel bioma a seconda del livello della regione.

3.6. TileAsset

Determina l'aspetto di un oggetto sulla mappa di gioco.

  • tileMap = string, nome del livello LandTilemap — superficie terrestre, ObjectTilemap — oggetto comune, RoadTilemap — strada, ecc., la differenza è solo nell'ordine di sovrapposizione dei livelli.
  • rawSprite = string, immagine 256x384 per aggiungere l'immagine sulla mappa.
  • icon = string, icona da aggiungere sopra tutte le TileMap.
  • buttonIcon = bool, se prendere l'icona dal componente Button.
  • delLevel = double, livello di rimozione, quanto è difficile eliminare l'oggetto tramite un'azione.

3.7. Shop

Descrive la meccanica di un negozio.

  • slots = int, numero di slot del negozio.
  • type = string, nome dell'assortimento del negozio presente in list.json.

3.8. Item

Descrive la meccanica di un oggetto.

  • slot = string, nome dello slot di equipaggiamento.
  • stackable = bool, se l'oggetto può essere impilato in più di 1 per pila.
  • upgradable = bool, se l'oggetto può essere migliorato; la durata del miglioramento dipende dal livello.
  • upProgress = double, durata del miglioramento.
  • order = double, ordine dell'oggetto nel negozio, più piccolo è, più in alto appare.

3.9. Mob

Descrive la meccanica di una creatura.

  • hell = bool, creatura infernale. Penalità al Corruzione/induzione. Partecipa agli attacchi dell'Inferno. Bonus ai resti.
  • undead = bool, creatura non morta. Non può essere corrotta. Meccanica speciale di miglioramento.
  • type = string, tipo di creatura — "Warriors", "Defenders", "Mages", "Gatherers", "Crafters". Determina il colore dello sfondo, la probabilità di colpire il giocatore, il tipo di danno e il tipo di bottino.
  • upMob = string, in cosa si migliora la creatura.
  • upCostName = string, oggetto necessario per il miglioramento.
  • upCostNum = double, quantità di risorsa necessaria per il miglioramento, 1 per impostazione predefinita.

3.10. Dungeon

Descrive la meccanica di un dungeon.

  • magic = bool, dungeon magico. Influisce sul tipo di danno, bottino e addon.
  • boss = bool, dungeon finale.

3.11. Ruins

Descrive la meccanica delle rovine — luoghi per cercare oggetti.

3.12. Addon

Meccanica delle estensioni. Gli addon sono oggetti collocati in una casella con un dungeon o rovine, modificano i loro parametri e forniscono ricompense separate.

  • skill = string, nome dell'abilità che il giocatore riceverà dopo lo Sgombero del dungeon o l'ispezione delle rovine. Puoi indicare: "Random", "Strength", ecc.
  • unit = string, nome della creatura bonus al termine dell'azione. Puoi indicare "Random".
  • item = string, nome dell'oggetto bonus al termine dell'azione. Puoi indicare "Random".
  • phyChanceMulti = double, modificatore della probabilità di danno fisico durante lo Sgombero. Ad esempio del 50(%).
  • magChanceMulti = double, modificatore della probabilità di danno magico durante lo Sgombero. Ad esempio del 50(%).
  • progressMulti = double, quanto più a lungo richiede l'esecuzione di un'azione di tipo Sgombero o Ispezione. Ad esempio del 100(%).
  • dmgMulti = double, modificatore dell'entità del danno durante lo Sgombero. Ad esempio del 50(%).

3.13. Build

Indica che l'oggetto è una costruzione.

3.14. Center

Indicazione che l'oggetto è un insediamento.

  • captureProgress = double, sforzo necessario per catturare l'insediamento.
  • upProgress = double, sforzo necessario per migliorare l'insediamento.
  • upCostName1 = string, nome del primo oggetto necessario per l'upgrade.
  • upCostNum1 = double, quantità del primo oggetto necessaria per l'upgrade.
  • upCostName2 = string, analogo per il secondo oggetto.
  • upCostNum2 = double, analogo per il secondo oggetto.
  • upCostName3 = string, analogo per il terzo oggetto.
  • upCostNum3 = double, analogo per il terzo oggetto.
  • upProp = string, in quale insediamento si migliora.

3.15. Gatherable

Indica che l'oggetto può essere raccolto e fornisce risorse.

  • gather = string, nome della risorsa ottenuta.
  • deposit = bool, indica se la risorsa è un giacimento; in tal caso è possibile costruire una miniera.

3.16. AlliedForest

Definizione della meccanica e dei valori della Foresta alleata durante il gioco come Druido.

  • allyBonus = double, entità del bonus Foresta alleata.

3.17. Graveyard

Definisce la meccanica che rende l'oggetto un cimitero, rilevante quando si gioca come Negromante. Il valore dei resti generato è casuale.

  • now = double, valore corrente dei resti.
  • rndMin = double, valore minimo casuale dei resti.
  • rndMax = double, valore massimo casuale dei resti.
  • rndCeil = bool, arrotondamento verso l'alto del valore casuale.

3.18. Pred

Componente-azione. Sebbene gran parte delle funzionalità sia nel codice, alcune parti sono disponibili.

  • action = string, nome dell'azione che verrà eseguita quando l'azione viene completata.
  • local = bool, se è necessario essere nella stessa cella dell'oggetto per interagire.
  • attackPred = bool, azione di attacco, viene applicata automaticamente se viene usato un incantesimo di combattimento.
  • gatherPred = bool, azione di raccolta, viene applicata automaticamente se viene usato un incantesimo di Raccolta risorse.
  • craftPred = bool, azione di creazione, viene applicata automaticamente se viene usato un incantesimo durante il craft.
  • skill = string, abilità usata per eseguire l'azione; ad esempio per le azioni di attacco si usa l'abilità Attacco.
  • longPred = bool, l'azione non è immediata e richiede tempo.
  • repeat = bool, l'azione viene ripetuta finché non viene fermata.
  • noOwner = bool, l'azione non richiede la selezione di oggetti.
  • skipLongTooltip = bool, versione semplificata della descrizione comandi per l'azione.
  • onlyClass = string, azione di tipo posizione/forma/ordine disponibile solo per una determinata classe.

3.19. Total

Componente che definisce il valore numerico di un'entità, di solito una quantità.

  • now = double, valore corrente.
  • inc = double, incremento per turno.
  • max = double, valore massimo.
  • min = double, valore minimo.
  • rndMin = double, valore minimo del numero casuale.
  • rndMax = double, valore massimo del numero casuale, sostituisce now.
  • rndCeil = bool, arrotondamento verso l'alto nella generazione casuale.
  • overMax = bool, consente di superare il limite.
  • delIfZero = bool, elimina se il valore è pari a 0.
  • numPercent = bool, indica se il valore è una percentuale.

3.20. Level

Componente che definisce il Livello di un'entità.

  • now = double, valore corrente.
  • max = double, valore massimo.
  • min = double, valore minimo.
  • localLevelPlus = int, bonus al Livello locale, funziona solo per oggetti sulla mappa; il loro livello diventa pari al livello della regione più questo valore.

3.21. Duration

Componente che definisce la durata di un'entità.

  • now = double, valore corrente.
  • max = double, valore massimo.
  • min = double, valore minimo.
  • delIfZero = bool, elimina se il valore è pari a 0.

3.22. Mods

Componente-elenco di modificatori. Quando viene creato questo componente, viene generato un insieme di cambiamenti che influenzano altre entità. Quando l'entità viene eliminata, questi cambiamenti scompaiono.

  • radius = int, raggio di influenza della modifica, funziona solo sulla mappa.
  • objType = string, tipo di entità su cui viene applicata la modifica, per esempio "Stat", "Skill", "Prop", "Item", "ModableVal", "PropMod".
  • objName = string, nome dell'entità, per esempio "Speed".
  • objComp = string, componente su cui viene applicata la modifica, per esempio "Total", "Level".
  • objKey = string, campo del componente su cui viene applicata la modifica, per esempio "now", "inc", "max".
  • modType = string, modalità di influenza sul campo: "add", "mult", "addPerLevel", "multPerLevel".
  • now = double, valore del modificatore usato per il cambiamento.
  • subjTooltipText = string, nella descrizione dinamica verrà aggiunta l'indicazione del soggetto.
  • skipPerTooltip = bool, nella descrizione sostituisce PerLevel con Plus.
  • skipSubjTooltip = bool, ignora la descrizione per questo soggetto.

3.23. ModableVals

Componente-elenco di variabili globali del gioco. L'associazione a un'entità specifica è condizionale. Gran parte della logica di queste variabili è nel codice del gioco.

  • now = double, valore della variabile.

3.24. Slot

Componente che definisce l'entità come slot nell'inventario.

  • name = string, nome dello slot. Per inserire un oggetto in questo slot, il campo slot del componente Item deve coincidere.

3.25. Container

Definisce l'entità come contenitore con celle.

  • cells = int, numero di celle del contenitore.
  • cellsPanel = string, nome del pannello.

3.26. Tom

Definisce che l'entità è un tomo di incantesimi che può essere studiato per ottenere o migliorare un incantesimo.

  • cast = string, nome dell'incantesimo.

3.27. Cast

Definisce che l'entità è un incantesimo.

  • mana = double, costo in Mana dell'incantesimo.
  • predSkill = string, quando l'incantesimo viene attivato, quale tipo di azioni deve avviarsi; ad esempio per il tipo Attacco vengono avviate automaticamente le azioni di attacco.
  • notSkills = string, suggerimento su quale azione è necessaria per usare questo incantesimo.
  • attack = double, quanto accelera un'azione di tipo Attacco l'uso dell'incantesimo, è in pratica danno magico.
  • gather = double, quanto accelera un'azione di tipo Raccolta risorse.
  • craft = double, quanto accelera un'azione di tipo Creazione.
  • heal = double, quanto cura l'eroe del giocatore.
  • newEvent = string, nome dell'evento attivato dall'incantesimo, solitamente eventi di tipo bonus.
  • teleport = bool, teletrasporto nella posizione scelta.
  • explore = double, esplora questa cella e quelle adiacenti.

3.28. Blueprint

Meccanica dell'entità-progetto.

  • item = string, nome dell'oggetto che verrà creato.
  • build = string, nome della costruzione che verrà costruita.
  • costName1 = string, nome del primo oggetto necessario per la creazione.
  • costNum1 = double, quantità del primo oggetto necessaria per la creazione.
  • costName2 = string, analogo per il secondo oggetto.
  • costNum2 = double, analogo per il secondo oggetto.
  • costName3 = string, analogo per il terzo oggetto.
  • costNum3 = double, analogo per il terzo oggetto.

3.29. Cost

Componente-prezzo, definisce che l'entità può essere acquistata e venduta.

  • raw = double, prezzo base senza modificatori. I prezzi di acquisto e vendita sono calcolati a partire da questo valore.

3.30. Event

Componente per gli eventi.

  • uniq = bool, evento unico; la comparsa di un nuovo evento elimina quello precedente con lo stesso nome.
  • rndEvent = bool, evento casuale.
  • nextEvent1 = string, nome del primo evento che inizierà al termine di quello corrente.
  • nextEvent2 = string, nome del secondo evento che inizierà al termine di quello corrente.
  • castType = string, tipo di effetto potenziamento dell'incantesimo, sovrascrive lo stesso tipo.

3.31. Proc

Componente per il funzionamento dei proc (probabilità), ad esempio la probabilità di contrarre una malattia.

  • addEvent = string, evento che si attiva se il proc va a buon fine.

3.32. ProcMod

Componente che permette a un'entità di influenzare la probabilità dei proc.

  • proc = string, nome del proc influenzato da questo componente.
  • chance = double, intensità dell'influenza; parte della funzionalità è nel codice.
  • dependsLevel = bool, dipendenza dal Livello dell'entità.

3.33. Usable

Componenti monouso che forniscono un effetto, ad esempio le pozioni. Il componente viene attivato tramite l'azione Usa.

  • stat = string, nome della statistica influenzata dall'effetto.
  • skill = string, nome dell'abilità influenzata dall'effetto.
  • nowBonus = double, bonus che influisce sul campo Total.now del componente.
  • maxBonus = double, bonus che influisce sul campo Total.max del componente.
  • cure = bool, se l'oggetto cura dall'effetto Malattia.

3.34. Drankable

Componente che consente di bere un oggetto sulla mappa, ad esempio Lago, Oasi e simili.

3.35. Sphinx

Componente-quest sulla mappa, la Sfinge. I parametri vengono determinati automaticamente in base ai livelli della regione.

3.36. Living_tree

Componente-quest sulla mappa, l'Albero vivente. I parametri vengono determinati automaticamente in base ai livelli della regione.

3.37. Vision

Meccanismo di un oggetto sulla mappa che aumenta il raggio della mappa quando l'eroe del giocatore entra nella cella con l'entità.

  • explore = int, raggio di esplorazione. 1 — esplorazione normale, 2 — aumentata di una cella.

3.38. Remains

Descrizione di un'entità come componente dei resti. Permette di trasformare tali entità in non morti.

3.39. Audio_comp

Componente che consente di riprodurre suoni per una specifica entità a seconda del suo tipo.

  • click = string, suono alla pressione dell'entità, usato per azioni e incantesimi.
  • added = string, suono riprodotto alla creazione dell'entità, usato per gli eventi.
  • ambient1 = string, suono ambientale, traccia 1.
  • ambient2 = string, suono ambientale, traccia 2.
  • ambient3 = string, suono ambientale, traccia 3.
  • process = List<string>, elenco di nomi di suoni riprodotti mentre l'azione è in corso.
  • waits = List<double>, elenco di pause tra la riproduzione dei suoni.
  • finish = string, suono di fine azione.
  • rndProcess = bool, piccoli effetti casuali per i suoni durante la riproduzione.

3.40. Childs

Componente che crea ricorsivamente nuove entità.

  • list = List<Entity>, elenco di figli creati automaticamente e collegati all'entità specifica.

3.41. Preds

Componente che crea azioni per una specifica entità, anche se la maggior parte delle entità è definita nel codice del gioco.

  • list = List<string>.

3.42. Equip

Componente-flag che indica che l'oggetto può essere equipaggiato dall'eroe.

3.43. Res

Componente-indicatore che questa entità è una risorsa. Serve per descrizioni comandi, animazioni e riepiloghi di gioco.

3.44. TurnAct

Il componente indica che l'entità deve essere controllata a ogni tick del tempo di gioco, ad esempio per i componenti Total e Duration.

4. Liste

Il file list.json contiene una serie di sezioni di dati che non sono entità o componenti. Definiscono diverse liste per la generazione del contenuto di gioco.

4.1. RndGoodEvents

Elenco di buoni eventi casuali generati all'avvio del gioco.

4.2. RndEvents

Elenco di buoni e cattivi eventi casuali generati durante la partita.

4.3. Generator_dungeon_addons_physical

Elenco di addon generati per i dungeon con danno fisico.

4.4. Generator_dungeon_addons_magical

Elenco di addon generati per i dungeon con danno magico.

4.5. Generator_ruins_addons

Elenco di addon generati per le rovine.

4.6. Generator_settlement_levels

Elenco delle corrispondenze tra livelli di regione e nomi delle entità-insediamenti, ad esempio "lvl1":"Village" indica che in una regione di livello 1 viene generato un insediamento di tipo Village.

4.7. Generator_rar_metals

Elenco delle corrispondenze tra livelli di regione e nomi dei giacimenti, ad esempio "lvl2":"Deposit_tin" indica che in una regione di livello 2 viene generato un giacimento di stagno.

4.8. Generator_mages

Elenco delle corrispondenze tra livelli di regione e nomi dei maghi generati e che difendono le torri dei maghi, ad esempio "lvl3":"Priestesses" significa che in una regione di livello 3 vengono generate le Sacerdotesse.

4.9. LevelMobs_

Elenchi di creature per diversi livelli di regione che il giocatore riceve dopo aver liberato prigionieri durante lo Sgombero di un dungeon o l'ispezione delle rovine.

4.10. Crafter_start, Lord_start, Mage_start,

Varie liste di oggetti che diverse classi ottengono all'inizio nella componente GameClass, nel campo learnList. Il numero di oggetti generati è nel campo learnNum.

  • obj = string, nome dell'oggetto.
  • min = double, numero casuale minimo.
  • max = double, numero casuale massimo.
  • chance = double, probabilità di generare proprio questo oggetto.
  • Puoi creare altre liste e collegarle a diverse classi se servono altri progetti o incantesimi da apprendere.

4.11. Gold_

Questa lista definisce la quantità di Oro generata a seconda del livello della regione. L'Oro appare con probabilità del 50% in tutti i tipi di ricompense sulla mappa. Vedi il punto 4.10 per la sintassi.

4.12. Loot_-

Gruppo di liste che definisce la generazione delle ricompense in base al livello della regione. Si applica a creature, dungeon e rovine. Per le creature determina la probabilità di ottenere oggetti specifici con chance del 50%; per il restante 50% vengono usate le liste del punto 4.13. Vedi il punto 4.10 per la sintassi.

4.13. Warriors_, Defenders_, Mages_, Gatherers_, Crafters_

Gruppo di liste che definisce la generazione di ricompense in base al livello della regione e alla classe delle creature. Si applica solo alle creature. Queste liste sono un'estensione delle liste di tipo Loot_- e vengono usate nel 50% dei casi per generare ricompense dipendenti dalla classe, ad esempio per far trovare più spesso tomi e bastoni ai Maghi. Vedi il punto 4.10 per la sintassi.

4.14. Shop_, Books_

Liste per diversi livelli di regione, ad esempio Books5 o Shop6. Sono utilizzate per generare l'assortimento dei negozi. Vedi il punto 4.10 per la sintassi. Queste liste sono definite nel componente Shop, campo type, e per le torri vengono generate dal codice del gioco.

Next Run — guida alle mod