Configurazione
ShadowEdit
L'editor di mondi e il generatore in un jar solo: si scolpisce e si genera.
Dove sono i file
plugins/ShadowEdit/ Il plugin li crea al primo avvio e li aggiorna da solo alle nuove versioni, senza toccare le tue modifiche.
Applicare le modifiche
/shadowedit reload Rilegge i file senza riavviare il server.
Nessuna impostazione trovata
Prova con un’altra parola, oppure cerca in tutti i plugin.
Impostazioni
I file che decidono come si comporta il plugin. Si parte da qui.
config.yml
Impostazioni generali 83 impostazioni
config.ymlplugins/ShadowEdit/config.yml Note del file
Qui stanno solo le impostazioni valide per tutto il server. Tutto il resto ha il suo
file: lang/<locale>.yml le traduzioni palettes/*.yml le palette di materiali brushes/*.yml i preset dei pennelli salvati schematics/ le tue costruzioni worlds/<pack>/ i pack di mondi
AGGIORNAMENTI: quando una nuova versione cambia questo file, un file di lingua o una delle palette e dei pennelli inclusi, viene portato alla nuova versione per te. Tutto quello che hai cambiato o aggiunto viene mantenuto; le impostazioni che non hai mai toccato prendono i nuovi default. Il tuo file precedente resta in backup/<date>/, e se qualcosa non è stato possibile portarlo (un'opzione che non esiste più, un valore di tipo diverso) lo trovi in PORTING-<version>.txt, con cosa fare. I pack di mondi non vengono aggiornati: /sedit pack reset <name> riporta quello incluso.
L'UNICO NUMERO CHE CONTA
performance.tps-floor. È la promessa che questo plugin fa al server: sotto questa soglia, tutto si ferma e aspetta. Alzala a 19 e il plugin è più lento e più educato; abbassala a 15 ed è più veloce e più aggressivo. Non c'è nessun altro posto in cui si regola il carico.
COLORI - scritti alla maniera di Minecraft, con &
&0-&9 &a-&f colori &l grassetto &o corsivo &n sottolineato &#ff8800 un colore esatto &r torna normale
I tag più ricchi ci sono ancora, per quello che & non sa fare:
<gradient:#7a5cff:#39d0ff>ShadowEdit</gradient>
Documentazione completa: docs/
config-version1core3 chiaviserver-id"creator-1"Un nome per questo server. Riservato a più server che condividono un database: questa versione non lo usa ancora (vedi STORAGE più sotto).
language"en_US"La lingua usata quando non se ne conosce una migliore.
follow-client-localetrueOgni giocatore vede la lingua del proprio client, quando quel file esiste.
Prestazioni - il governor
Ogni lavoro pesante che fa questo plugin - un //set di venti milioni di blocchi, un mondo in pregenerazione, una schematic da incollare - chiede a UN SOLO oggetto quanto tempo può prendersi in questo tick. Quell'oggetto è il governor, e questi sono i suoi numeri.
Continua a leggere
tpsFactor = (tps - tps-floor) / (tps-target - tps-floor)
playerScale = 1 - min(online / players-full-load, 1) * player-weight
idle = online == 0 ? idle-boost : 1
budget = tick-budget-ms * tpsFactor * playerScale * idle
(mai più di 45 ms, qualunque siano i moltiplicatori)A tps-floor il fattore è zero, e zero vuol dire che il plugin non fa NIENTE finché il server non si riprende: nessun blocco scritto, nessun chunk richiesto. È questo, e non le buone intenzioni, che rende la promessa sui TPS una promessa. Con ShadowOptimizer installato, anche il suo freno di emergenza (o un verdetto di salute POOR/CRITICAL) ci ferma per un momento.
Le modifiche grandi non leggono mai il mondo sul main thread: i chunk che servono vengono caricati in modo asincrono, copiati, e la modifica viene calcolata sui worker thread. Solo ciò che è piccolo e già caricato (fino a 65,536 blocchi: un clic di brush, una stanza) viene fatto sul momento.
performance8 chiavitick-budget-ms8.0Quanto tempo per tick, al massimo, per TUTTO quello che fa questo plugin.
tps-floor18.0Sotto questo valore il plugin si ferma del tutto. La promessa.
tps-target19.5Sopra questo valore usa tutto il budget.
players-full-load40Con questo numero di giocatori online il peso dei giocatori è al massimo.
player-weight0.6Quanto contano i giocatori. 0 = per niente, 1 = moltissimo.
idle-boost4.0Moltiplicatore quando il server è vuoto: la pregenerazione usa la macchina.
worker-threads-1Il pool di calcolo. -1 = (core di questa macchina) - 1.
max-blocks-per-tick120000Un tetto rigido, anche quando il budget ne permetterebbe di più.
Editor
editor22 chiaviwand"GOLDEN_AXE"La bacchetta di selezione. Click sinistro = primo punto, click destro = secondo.
brush-tool"BLAZE_ROD"L'item a cui rispondono i brush quando il brush non ne indica uno.
sculpt-tool"DIAMOND_HOE"L'item a cui risponde la modalità sculpt.
max-selection-blocks-1Il limite di blocchi predefinito per operazione, per i giocatori che non hanno il permesso shadowedit.limit.blocks.<n>. -1 = nessun limite. Il permesso vince quando un giocatore ne ha uno; //limit può solo abbassarlo.
confirm-over-blocks1000000Sopra questo valore un'operazione chiede prima una conferma.
brush-max-blocks200000Un singolo clic del pennello non può superare questo valore.
brush-max-radius64E non può essere più grande di questo. C'è anche un permesso: shadowedit.limit.radius.<n>
max-history-entries25Quanti passi di annullamento vengono tenuti per giocatore. L'edizione free ne tiene al massimo 25 qualunque cosa dica qui; con una chiave, fino a 200.
history-to-disk-over250000Sopra questo numero di blocchi una modifica va subito in un file compresso in data/history/. Quelle più piccole seguono quando il server si ferma (e dieci minuti dopo che il giocatore è uscito), così //undo funziona anche dopo un riavvio. Vengono conservati anche il contenuto delle chest, i cartelli e gli spawner.
history-retention-days14Le scritture sono sempre ordinate per chunk: vale un fattore tre su un //set grande, ed è ciò che permette al plugin di caricare un chunk alla volta, in modo asincrono, invece di tutti insieme sul thread principale.
relight"DEFERRED"NONE | DEFERRED | IMMEDIATE Il server ricalcola da solo la luce di ogni blocco che scrive. Questo si limita a rimandare i chunk toccati ai giocatori che li vedono, una volta finita l'operazione, per i client che mostrano ancora le vecchie ombre: DEFERRED manda otto chunk ogni due tick, IMMEDIATE tutti insieme, NONE niente (la banda minima).
physics-at-endtrueAlla fine di una modifica, dà ad acqua e lava il loro aggiornamento di flusso e fa cadere sabbia, ghiaia e cemento in polvere, un po' per tick (al massimo 20,000 blocchi per modifica). false = tutto resta esattamente come piazzato, come lo lascia WorldEdit.
snapshot-max-blocks40000000Il numero massimo di blocchi che un'operazione può leggere in una volta (la selezione più il margine che serve ai blocchi vicini). Oltre questo il comando rifiuta e lo dice: dividi il lavoro, o alza questo valore se il server ha la memoria (circa 4 byte per blocco, più 48 per ogni blocco modificato).
progress-after"400ms"Quanto deve durare un'operazione prima che compaia la boss bar.
selection-particlestrueIl contorno della selezione, disegnato con le particelle e mai con i blocchi: un plugin che disegna con i blocchi è quello che lascia barriere invisibili sul server di qualcuno per sempre.
selection-color"#39d0ff"selection-refresh-ticks15Ogni quanto viene ridisegnato il contorno. Una particella di polvere vive poco più di un secondo, quindi ridisegnarlo due volte al secondo disegna solo lo stesso contorno sopra se stesso - e ogni punto è un pacchetto.
selection-max-points240Il tetto di punti per tutto il box, distribuiti sui dodici spigoli in proporzione alla lunghezza di ciascuno.
Ogni punto è un pacchetto a un giocatore. Prima era 600 ogni 10 tick, cioè 1200 pacchetti al secondo per ogni builder con una selezione in mano - su un server di build con venti builder, 24000 al secondo di solo contorno. Alzalo se le tue selezioni sono enormi e hai la banda; il contorno non diventa più leggibile, solo più fitto.
selection-view-range40Fino a che distanza vale ancora la pena mandare un punto, in blocchi.
Il client non disegna le particelle dust oltre circa 32 blocchi, quindi tutto ciò che è oltre è un pacchetto mandato per qualcosa che nessuno può vedere. 40 lascia un margine, perché il taglio si misura dai piedi del giocatore.
horizon-range300Fin dove arriva una bacchetta o un pennello.
fuzzy-max-blocks2000000Il tetto per la selezione magica (blocchi collegati).
Comandi
commands1 chiaveworldedit-aliases"auto"Gli alias brevi in stile WorldEdit: //set, //pos1, //brush.
auto - li registra, a meno che non sia installato WorldEdit o FAWE force - li registra comunque false - mai
"auto" è la risposta giusta: a un server che ha già WorldEdit non vanno tolti i suoi comandi.
Schematic
schematics3 chiavicache-size64Quante schematic analizzate restano in memoria. Sfogliare una cartella di mille file non la riempie: questo è un conteggio, non una dimensione.
max-volume64000000Un file più grande di così non è una struttura, è una mappa.
allowed-entities[item_frame, glow_item_frame, painting, armor_stand, item_display, block_display, text_display, boat, chest_boat, minecart, chest_minecart]+8
Quali entità può ricreare un paste. Un .schem arriva da internet passando per un admin che non l'ha scritto: senza questa lista, qualcuno potrebbe far comparire cento creeper innescati.
Mondi
Edizione gratuita: fino a due mondi gestiti, vuoti (void) o vanilla. Con una chiave: quanti ne vuoi, e mondi generati da un pack. Un mondo da pack non viene mai aperto senza chiave: resta su disco, intatto, e si riapre appena una chiave è attiva.
worlds8 chiaviauto-loadtrueRiapre i mondi gestiti all'avvio, prima che qualcun altro li apra senza un generatore.
unload-empty-after"10m"Scarica un mondo gestito in cui non c'è nessuno. 0 per mai.
default-border0Un bordo per i mondi nuovi. 0 = nessuno.
read-only[ ]Mondi in cui non si può modificare niente, qualunque cosa dicano i permessi.
delete-retention-days7Un mondo cancellato viene rinominato, non rimosso: hai questo numero di giorni per cambiare idea prima che la cartella sparisca davvero.
void-platformtrueIl mondo vuoto: una piattaforma di vetro allo spawn, così nessuno cade appena arriva.
void-platform-block"GLASS"void-biome"the_void"Pack
Guardare i pack (/sedit pack list, info, problems) è gratis. Creare mondi da questi, copiarli e resettarli richiede una chiave.
packs1 chiaveallow-commandsfalseSe una struttura può eseguire comandi quando viene generata. FALSE di default: un pack scaricato da internet non deve poter eseguire niente.
Salvataggio dati
Niente da fare: al primo avvio compare un database H2 locale in data/creator.mv.db. Nessun utente, nessuna password, niente da installare.
Continua a leggere
Se hai un MySQL e lo preferisci, imposta enabled: true e compila i campi. Le tabelle si creano da sole alla prima connessione. (Un MySQL esterno è una funzione Premium; senza chiave il plugin resta sul file locale e lo dice in console, che per un solo server è comunque la scelta giusta.)
Più server su un solo database: non ancora supportato. Ogni server aprirebbe i mondi gestiti dall'altro e ne riprenderebbe le pregenerazioni. Dai a ogni server il suo database (o table-prefix).
Il database si chiama ancora "shadowcreator", come le tabelle (scr_) e il file locale: è il nome dei dati, che non è cambiato quando il plugin è stato rinominato.
storage5 chiavitable-prefix"scr_"fallback-to-localtruestorage.mysql7 chiavienabledfalsehost"127.0.0.1"port3306database"shadowcreator"username"root"password""parameters"useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8"storage.pool5 chiavimaximum-pool-size10minimum-idle2connection-timeout-ms10000idle-timeout-ms600000max-lifetime-ms1800000storage.h21 chiaveauto-serverfalseLicenza
La chiave va in license.yml, non qui: una richiesta di supporto che dice "mandami la tua config" non deve portarsi dietro la licenza di qualcuno.
license2 chiavigrace-days7Giorni di tolleranza prima di scendere all'edizione free quando un abbonamento è appena scaduto, o quando il legame con l'host non corrisponde a niente di ciò che vediamo (molto più spesso un NAT che un ladro).
resolve-public-iptrueChiede al servizio licenze ShadowMC (/ip) quale indirizzo pubblico ha questo server: dietro NAT è l'unico modo per riconoscerlo. Risponde con l'indirizzo che vede, e del server non viene inviato niente. Solo con una licenza installata: un server senza chiave non chiede niente a nessuno. false = non chiedere mai.
UI
ui2 chiaviconfirm-timeout"30s"Per quanto tempo resta valido il pulsante [ Conferma ] di una modifica enorme.
chat-timeout"30s"Quanto aspetta un menu che tu scriva una risposta in chat.
Debug
debug2 chiavilog-sqlfalseprofilertrueCronometra ogni comando e modifica per /sedit diag. Non costa quasi niente.
bStats (statistiche d'uso anonime, https://bStats.org)
Cosa viene inviato, ogni 30 minuti: un id casuale del server (serverUuid, non derivato da nulla), la versione del plugin, le versioni di Minecraft/Paper e di Java, il sistema operativo e il numero di core, la modalità online, quanti giocatori sono online (solo un numero) e il tipo di licenza (free/premium/creator). NESSUN dato dei giocatori: niente nomi, niente UUID, niente indirizzi, niente mondi.
Continua a leggere
false disattiva solo questo plugin. enabled: false in plugins/bStats/config.yml disattiva ogni plugin bStats sul server in una volta.
metrics1 chiaveenabledtrueLingue
I testi che il plugin mostra ai giocatori, un file per lingua.
lang/
Testi e messaggi 2 file
lang/plugins/ShadowEdit/lang/ Tutti i messaggi che il plugin mostra ai giocatori, un file per lingua. Le chiavi non sono elencate una per una: qui ci sono i file, quanti testi contengono e i segnaposto che usano.
| File | Lingua | Testi |
|---|---|---|
lang/en_US.yml riferimento | English | 918 |
lang/it_IT.yml | Italiano | 918 |
Segnaposto più usati
Il plugin li sostituisce con il valore giusto: vanno lasciati scritti così.
<prefix><label><world><name><count><value><blocks><pattern><pack><radius><id><size><amount><biome>
Gruppi di messaggi
prefix1command14edit40selection46pattern17mask10clipboard7schem17history12brush83palette13navigation8flora2world49pack17pregen15genesis25general6status24help228license46confirm6prompt2menu218effect4structure8
Altro
Contenuti pronti, esempi, importazioni: i file che si copiano e si modificano come modello.
brushes/
Brushes 5 file
brushes/plugins/ShadowEdit/brushes/ 5 file con la stessa forma. Qui sotto 2 esempi per intero, uno per ogni forma diversa; gli altri sono elencati per nome.
cliff.ymlhill.ymlmixed-forest.ymlmountain.ymlpath.yml
Esempio brushes/mountain.yml
Note del file
Il pennello che alza una montagna in meno di un minuto. Raggio grande, falloff netto: è il falloff che fa la differenza tra una montagna e una cupola.
typestampradius48.0strength0.8falloffSHARPpattern"stone"range300options5 chiavistamp"mountain"height"40"palette"alpine"erosion"5"talus"44" Esempio brushes/mixed-forest.yml
Note del file
Foresta mista. La distanza minima e il limite di pendenza sono ciò che fa la differenza tra un bosco e una spruzzata di alberi.
typeforestradius16.0strength0.5falloffSMOOTHpattern"oak_log"range250options4 chiavitree"oak"density"0.14"spacing"4"max-slope"28" palettes/
Palettes 6 file
palettes/plugins/ShadowEdit/palettes/ 6 file con la stessa forma. Qui sotto quello più commentato, per intero, come modello; gli altri sono elencati per nome.
alpine.ymlbeach.ymldesert.ymlmeadow.ymlnether.ymlrock.yml
Esempio palettes/alpine.yml
Palette alpina
Note del file
Questa è la palette che spiega tutte le altre, quindi è commentata riga per riga.
Gli strati si applicano DALL'ALTO, partendo dal primo blocco non d'aria e scendendo. Ognuno occupa la sua profondità; uno strato che non si applica - perché l'altezza o la pendenza sono sbagliate - occupa comunque la sua profondità, e il successivo va sotto. Senza questa regola, la neve che non si applica spingerebbe l'erba su di un blocco proprio dove doveva esserci la roccia nuda.
min-slope / max-slope sono in GRADI e sono le righe che contano: decidono dove si vede la roccia nuda invece dell'erba, ed è la differenza tra una montagna e una collina dipinta di bianco in cima.
name"Alpine"layers[{ blocks: snow_block, depth: 2, above-y: 165, max-slope: 38 }, { blocks: "4:stone,2:andesite,1:cobblestone,1:gravel", depth: 4, min-slope: 38 }, { blocks: grass_block, depth: 1, max-slope: 32 }, { blocks: "6:dirt,1:coa …+4
blocksNeve, solo in alto e solo dove non è troppo ripido: la neve non si posa su una parete verticale, e metterla lì comunque fa sembrare di gesso l'intera catena.
blocksRoccia nuda sulle rupi. Quattro blocchi, perché uno solo lascia vedere la terra appena qualcuno scava.
blocksErba nelle conche, e da nessun'altra parte.
blocksLa terra sotto l'erba.
blocksE poi pietra, fino in fondo. -1 vuol dire "fino al fondo".
worlds/
Worlds 74 file
worlds/plugins/ShadowEdit/worlds/ 74 file con la stessa forma. Qui sotto 4 esempi per intero, uno per ogni forma diversa; gli altri sono elencati per nome.
end/biomes/azure-fields.ymlend/biomes/chorus-forest.ymlend/biomes/crystal-shores.ymlend/biomes/deep-void.ymlend/biomes/end-barrens.ymlend/biomes/obsidian-spires.ymlend/biomes/shattered-isles.ymlend/biomes/void-gardens.ymlend/caves/default.ymlend/effects/default.ymlend/noise/caves.ymlend/noise/detail.ymlend/noise/terrain.ymlend/ores/default.ymlend/ores/extra.ymlend/pack.ymlend/regions/default.ymlend/spawns/default.ymlend/structures/default.ymlnether/biomes/ash-plains.ymlnether/biomes/basalt-spires.ymlnether/biomes/blackstone-ridges.ymlnether/biomes/crimson-groves.ymlnether/biomes/crystal-hollow.ymlnether/biomes/glowstone-caverns.ymlnether/biomes/magma-sea.ymlnether/biomes/soul-marsh.ymlnether/biomes/warped-groves.ymlnether/caves/default.ymlnether/effects/default.ymlnether/noise/caves.ymlnether/noise/detail.ymlnether/noise/terrain.ymlnether/ores/default.ymlnether/ores/extra.ymlnether/pack.ymlnether/regions/default.ymlnether/spawns/default.ymlnether/structures/default.ymloverworld/biomes/alpine-peaks.ymloverworld/biomes/alpine-slopes.ymloverworld/biomes/badlands.ymloverworld/biomes/birch-forest.ymloverworld/biomes/crystal-hollows.ymloverworld/biomes/dark-woods.ymloverworld/biomes/deep-dark-halls.ymloverworld/biomes/deep-ocean.ymloverworld/biomes/desert.ymloverworld/biomes/dripstone-caverns.ymloverworld/biomes/forest.ymloverworld/biomes/frozen-ocean.ymloverworld/biomes/fungal-depths.ymloverworld/biomes/lush-caverns.ymloverworld/biomes/magma-caves.ymloverworld/biomes/meadow.ymloverworld/biomes/ocean.ymloverworld/biomes/plains.ymloverworld/biomes/river.ymloverworld/biomes/snowy-taiga.ymloverworld/biomes/sunflower-plains.ymloverworld/biomes/swamp.ymloverworld/biomes/taiga.ymloverworld/caves/default.ymloverworld/effects/default.ymloverworld/noise/caves.ymloverworld/noise/detail.ymloverworld/noise/terrain.ymloverworld/ores/default.ymloverworld/ores/extra.ymloverworld/pack.ymloverworld/regions/default.ymloverworld/spawns/default.ymloverworld/structures/surface.ymloverworld/structures/underground.yml
Esempio worlds/overworld/noise/terrain.yml
Il terreno dell'overworld
Note del file
Questo file fa due cose: dice QUALE noise alimenta ciascuno dei sei parametri, e dice come quei parametri diventano un'altezza.
I sei parametri stanno in detail.yml e in questo file. Tre fanno la FORMA (continentalness, erosion, peaks-and-valleys), tre fanno il BIOMA (temperature, humidity, weirdness). È grazie a questa separazione che puoi cambiare la mappa dei biomi senza toccare il rilievo, e viceversa.
quale noise per quale parametro
continentalness"continentalness"erosion"erosion"peaks-valleys"peaks-valleys"temperature"temperature"humidity"humidity"weirdness"weirdness"density-3d"density"Il noise 3D, che è ciò che permette sporgenze, archi naturali e grotte che si aprono sul fianco di una collina. Senza, il terreno è una mappa di altezze e sopra la tua testa non c'è mai niente.
density-scale11.0Quanto è "ripido" il passaggio da pieno a vuoto. Più basso = pareti più verticali.
density-weight0.85Quanto il noise 3D può piegare la superficie. Sopra 1.2 il mondo comincia a sembrare formaggio.
Le spline
Una spline è una frase scritta come una lista di punti. Passa ATTRAVERSO i punti (Catmull-Rom), quindi "a -0.15 voglio altezza 66" dà davvero altezza 66.
height-spline[[-1, -58], [-0.7, -42], [-0.45, -24], [-0.19, 58], [-0.15, 66], [0.05, 72], [0.3, 80], [0.55, 96], [0.8, 128], [1, 168]]+7
La continentalness fissa l'altezza di base.
I due punti vicino a -0.19 e -0.15 non sono un errore: sono la PIATTAFORMA CONTINENTALE. Due punti quasi alla stessa x con altezze diverse fanno un gradino, ed è quel gradino che rende una costa una costa invece di una rampa che scende per duecento blocchi.
erosion-spline[[-1, 82], [-0.75, 62], [-0.5, 44], [-0.2, 26], [0.1, 14], [0.45, 7], [1, 2]]+4
L'erosione stabilisce QUANTO RILIEVO è permesso in quel punto.
È il parametro che produce le pianure in mezzo a un continente: dove l'erosione è alta il terreno è piatto anche se la continentalità direbbe montagna. Alzare l'ultimo punto (a -1) alza le montagne senza toccare nient'altro.
peaks-spline[[-1, -0.75], [-0.55, -0.35], [-0.15, -0.05], [0.15, 0.15], [0.5, 0.55], [0.8, 0.88], [1, 1]]+4
Peaks and valleys distribuisce quel rilievo. Sotto lo zero ci sono le valli, sopra le creste; la curva è ripida in cima perché le vette devono essere poche e aguzze.
I fiumi
Un fiume qui non è un bioma: è una FORMA, e deve scorrere in discesa.
max-terrain-height è la riga che conta: sopra quell'altezza l'effetto si spegne. Senza, trovi canali d'acqua ad altezza duecento, ed è l'errore che la gente nota prima di ogni altro.
rivers7 chiavienabledtruenoise"river"threshold0.855Quanto devi essere vicino alla linea del fiume. Più alto = fiumi più stretti e più rari.
width7.0depth5bank-smooth9Le sponde: senza questa sfumatura il fiume è un canyon d'acqua con pareti alte tre blocchi.
max-terrain-height105 Esempio worlds/overworld/structures/surface.yml
Le strutture di superficie
Note del file
COME UNA STRUTTURA TROVA IL SUO POSTO
Non "a caso per chunk": su una griglia con uno scarto casuale, esattamente come fa Minecraft. Tre cose che il puro caso non ti dà: la distanza minima viene rispettata senza doverla cercare, la distribuzione è davvero uniforme, senza grumi e senza deserti, ed è deterministica - lo stesso seed mette il borgo nello stesso posto, ed è questo che permette di pregenerarlo e ritrovarlo.
rarity: "1 / 1600" si legge come una distanza in BLOCCHI: circa una ogni 1600 blocchi. È l'unico numero che quasi tutti cambiano.
COME SI APPOGGIA AL TERRENO
Non scrivi mai un'altezza. Decide terrain.fit:
AUTO guarda il terreno e sceglie una delle opzioni qui sotto.
Lascialo su AUTO se non hai un motivo.
PLATFORM livella l'impronta all'altezza mediana. Per un
edificio con il pavimento piatto.
FOUNDATION lascia stare il terreno e prolunga l'edificio
verso il basso finché non lo incontra. Per torri e pilastri.
CARVE scava nel pendio. Per tutto ciò che è incassato in una collina.
BLEND alza e abbassa il terreno lungo il bordo in modo che si
raccordi alla struttura. Il più lento, e il più bello da vedere.
NONE la scrive esattamente dove gli viene detto e nient'altro.margin è quanti blocchi attorno all'impronta vengono raccordati. Margini piccoli lasciano uno scalino; sopra 8 circa inizi a notare che il terreno viene appiattito.
LOOT è il nome di una tabella, e l'estrazione dalla tabella avviene quando la chest viene APERTA, non quando viene generata: così una chest che nessuno trova mai non costa niente, e il contenuto segue le tabelle del server stesso.
hermit-tower8 chiaviname"Hermit's Tower"object"watchtower"biomes[meadow, alpine-slopes, alpine-peaks, taiga, snowy-taiga]+2
hermit-tower.placement3 chiavirarity"1 / 1400"jitter0.65min-distance-any220hermit-tower.position3 chiavimodeSURFACEanchorBOTTOM_CENTERrotationRANDOM_90hermit-tower.terrain7 chiavifitFOUNDATIONFOUNDATION e non PLATFORM: una torre su un pendio deve farsi crescere una base più alta sul lato a valle, non appiattire il pendio.
max-slope34max-height-difference14clear-above6margin3palette"rock"remove-floatingtruehermit-tower.contents2 chiaviloot[{ at: "marker:top", table: "minecraft:chests/stronghold_corridor", chance: 1 }, { at: CHEST, table: "minecraft:chests/simple_dungeon", chance: 0.8 }]+1
spawners[{ at: SPAWNER, mob: skeleton, delay: […], cou…]hermit-tower.gameplay1 chiavediscovery-message"structure.found.hermit-tower"hermit-tower:
ruined-tower, forest-shrine, bandit-campforest-ruins7 chiaviname"Forest Ruins"object"ruin-pillars"biomes[forest, birch-forest, dark-woods, plains, taiga, meadow]+3
forest-ruins.placement3 chiavirarity"1 / 700"jitter0.8max-per-chunk1forest-ruins.position5 chiavimodeSURFACEy-offset-1-1: le rovine sprofondano di un blocco nel terreno. Una rovina appoggiata esattamente sulla superficie sembra un modellino posato su un tavolo.
anchorBOTTOM_CENTERrotationRANDOMmirrorRANDOMforest-ruins.terrain5 chiavifitBLENDmax-slope24max-height-difference9clear-above3margin5forest-ruins.contents1 chiaveloot[{ at: CHEST, table: "minecraft:chests/simple_…]desert-ruins8 chiaviname"Buried Ruins"object"desert-ruin"biomes[desert, badlands]desert-ruins.placement3 chiavirarity"1 / 1500"jitter0.6min-distance-any260desert-ruins.position4 chiavimodeSURFACELa parte visibile sono quattro blocchi di macerie; tutto il resto sta appeso sotto. L'ancora quindi è in cima, non in fondo.
anchorTOP_CENTERy-offset-1rotationRANDOM_90desert-ruins.terrain6 chiavifitCARVEmax-slope20max-height-difference10clear-above2margin3palette"desert"desert-ruins.contents2 chiaviloot[{ at: CHEST, table: "minecraft:chests/desert_…]spawners[{ at: SPAWNER, mob: husk, delay: […], count:…]desert-ruins.gameplay1 chiavediscovery-message"structure.found.desert-ruins"mountain-hamlet8 chiaviname"Hamlet"object"hamlet"biomes[plains, sunflower-plains, meadow, forest, alpine-slopes]+2
mountain-hamlet.placement3 chiavirarity"1 / 3200"Raro apposta: un borgo ogni ottocento blocchi smette di essere una scoperta e diventa scenografia.
jitter0.5min-distance-any700mountain-hamlet.position2 chiavimodeSURFACErotationRANDOM_90mountain-hamlet.terrain7 chiavifitPLATFORMUn villaggio intero deve stare su un terreno piano: PLATFORM, un ampio margine, e un limite di pendenza abbastanza basso da non finire mai su una collina.
max-slope12max-height-difference12clear-above8margin8palette"meadow"remove-floatingtruemountain-hamlet.contents2 chiaviloot[{ at: CHEST, table: "minecraft:chests/village…]mobs[{ mob: "minecraft:villager", at: "marker:spawn", count: […] }, { mob: "minecraft:iron_golem", at: "marker:spawn", count: […] }, { mob: "minecraft:cat", at: "marker:spawn", count: […] }]+2
mountain-hamlet.gameplay1 chiavediscovery-message"structure.found.hamlet"mine-entrance7 chiaviname"Mine Entrance"object"mine-entrance"biomes[meadow, alpine-slopes, taiga, snowy-taiga, badlands, plains, forest]+4
mine-entrance.placement3 chiavirarity"1 / 1200"jitter0.7min-distance-any200mine-entrance.position4 chiavimodeSURFACEL'ancoraggio è la cima: il pozzo sotto è quello che deve raggiungere le grotte, e il castelletto è quello che deve poggiare sul terreno.
anchorTOP_CENTERy-offset-3rotationRANDOM_90mine-entrance.terrain5 chiavifitFOUNDATIONmax-slope28max-height-difference14clear-above6margin3mine-entrance.contents2 chiaviloot[{ at: CHEST, table: "minecraft:chests/abandon…]spawners[{ at: SPAWNER, mob: cave_spider, delay: […],…]shipwreck7 chiaviname"Shipwreck"object"shipwreck"biomes[ocean, deep-ocean, frozen-ocean]shipwreck.placement3 chiavirarity"1 / 1000"jitter0.8min-distance-any150shipwreck.position3 chiavimodeOCEAN_FLOORrotationRANDOMmirrorRANDOMshipwreck.terrain6 chiavifitFOUNDATIONSu un fondale l'adattamento deve essere delicato: una piattaforma sotto un relitto si vede da molto lontano attraverso l'acqua.
max-slope30max-height-difference8clear-above0margin2remove-floatingfalseshipwreck.contents1 chiaveloot[{ at: "marker:loot", table: "minecraft:chests/shipwreck_treasure", chance: 1 }, { at: CHEST, table: "minecraft:chests/shipwreck_supply", chance: 0.9 }]+1
floating-island8 chiaviname"Floating Island"object"floating-island"biomes[meadow, alpine-peaks, alpine-slopes, plains]floating-island.placement3 chiavirarity"1 / 6000"La cosa più rara del pack. Vederne una deve significare qualcosa.
jitter0.4min-distance-any1200floating-island.position3 chiavimodeFLOATINGy-offset46Sopra il terreno, non sopra il livello del mare: su una montagna resta sopra la montagna.
rotationRANDOM_90floating-island.terrain4 chiavifitNONEclear-above0margin0remove-floatingfalsefloating-island.contents1 chiaveloot[{ at: CHEST, table: "minecraft:chests/end_cit…]floating-island.gameplay1 chiavediscovery-message"structure.found.floating-island" Esempio worlds/overworld/noise/detail.yml
I noise dell'overworld
Note del file
Ogni noise ha un nome, e il resto del pack lo richiama per nome.
Le due manopole che contano:
scale più PICCOLO = forme più GRANDI. 0.0008 sono i continenti, 0.05 i
sassolini.
warp sposta il punto di campionamento con un altro noise. Da solo
vale metà del realismo: senza, le creste corrono parallele
e si vede che sono generate; con il warp serpeggiano e
si biforcano.i tre parametri di forma
continentalness7 chiaviI continenti. Scala minuscola: una massa di terra deve durare per migliaia di blocchi.
typesimplexscale0.00075octaves4persistence0.5lacunarity2.13Non esattamente 2.0: con una lacunarità intera i massimi delle ottave cadono sempre negli stessi punti, e su una mappa grande si vede come una griglia.
salt11continentalness.warp2 chiavinoise"warp-large"strength340.0erosion7 chiaviQuanto rilievo è ammesso. Più grande della continentalness: una regione erosa è più piccola di un continente.
typesimplexscale0.0014octaves3persistence0.45lacunarity2.07salt23erosion.warp2 chiavinoise"warp-medium"strength160.0peaks-valleys7 chiaviLe creste. Ridged, perché è quello che produce spigoli invece di gobbe: è la differenza tra montagne e grandi colline.
typeridgedscale0.0034octaves4persistence0.52lacunarity2.11salt37peaks-valleys.warp2 chiavinoise"warp-medium"strength90.0i tre parametri climatici
Scale diverse l'una dall'altra, e volutamente non multiple: temperatura e umidità sulla stessa scala produrrebbero una scacchiera di biomi.
continentalness:
temperature, humidity, warp-mediumweirdness4 chiaviLa weirdness divide le varianti: è lei che decide tra betulle e querce a parità di clima.
typesimplexscale0.0021octaves2salt89i noise di servizio
warp-large4 chiaviI due warp. Scale molto diverse: uno sposta i continenti, l'altro increspa i bordi.
typesimplexscale0.00042octaves2salt101river5 chiaviI fiumi. Il valore che usa il terreno è 1 - |questo|, cioè una linea sottile dove il noise attraversa lo zero.
typesimplexscale0.0016octaves2salt107river.warp2 chiavinoise"warp-medium"strength120.0density6 chiaviLa densità 3D: sporgenze e archi.
typesimplexscale0.0095octaves3persistence0.42lacunarity2.09salt109alpine-detail5 chiaviDettaglio delle montagne: canaloni e ghiaioni.
typeridgedscale0.021octaves3persistence0.5salt113dune-detail4 chiaviDettaglio delle dune.
typebillowscale0.016octaves2salt127mesa-detail4 chiaviLe terrazze delle badlands.
typesimplexscale0.011octaves2salt131clumping4 chiaviRaggruppamento degli alberi: senza, cadono come sale su un tavolo.
typesimplexscale0.013octaves2salt137surface-wobble4 chiaviIl bordo frastagliato tra gli strati di superficie.
typesimplexscale0.08octaves1salt139region4 chiaviQuale regione climatica. Qui ce n'è una sola, ma il noise è già al suo posto per chi ne vuole due.
typesimplexscale0.00031octaves1salt149 Esempio worlds/overworld/pack.yml
Shadow Overworld
Note del file
Un overworld realistico: come sarebbe un mondo vanilla se qualcuno avesse passato una settimana a sistemarne il rilievo.
Ogni file di questo pack è commentato. Se stai leggendo perché vuoi cambiare qualcosa, le tre modifiche che danno più risultato per il tempo speso sono, in ordine:
1. biomes/*.yml -> surface: le palette di superficie cambiano l'aspetto del mondo più di qualsiasi altra cosa. 2. structures/*.yml -> rarity: mettere le TUE schematic in objects/ e dichiararle qui è il passo che rende il mondo tuo. 3. noise/terrain.yml -> erosion-spline: alzare il suo ultimo punto alza le montagne senza rompere nient'altro.
Dopo ogni modifica: /sedit pack reload overworld
pack-version1id"overworld"name"Shadow Overworld"author"ShadowMC"description"Real mountains, rivers that run downhill, an underground with a plan."dimensionOVERWORLDmin-y-64I limiti di altezza. -64/320 sono quelli di Minecraft dalla 1.18: cambiarli vuol dire un mondo che non si può più aprire con un pack diverso.
max-y320sea-level63sea-block"water"seed2 chiavimodeRANDOMRANDOM: ogni mondo creato da questo pack ha il suo seed. FIXED: ogni mondo di questo pack è lo STESSO mondo.
value0spawn3 chiavimodeSEARCHSEARCH cerca a spirale partendo dall'origine una colonna solida, fuori dall'acqua, in uno dei biomi elencati. Senza la lista si accontenta della prima colonna solida, e spesso è una scogliera.
search-radius3000require-biome[plains, meadow, forest, sunflower-plains]vanilla4 chiaviCosa lasciar fare a Minecraft.
Le strutture vanilla sono spente perché un villaggio vanilla dentro un mondo custom si nota subito: è l'unica cosa che sembra venire da un altro gioco. Le nostre stanno in structures/.
structuresfalsedecorationsfalsemobstrueLo spawn naturale dei mob resta attivo: le NOSTRE regole si aggiungono, non lo sostituiscono.
bedrocktrueperformance2 chiavicache-columns4096structure-search-chunks2