Salta ai contenuti

Checklist delle funzionalità

I sistemi normalmente offerti da un emulatore completo di server Ultima Online e lo stato di Moongate per ciascuno. Completa lo Stato dell’implementazione, che descrive più in dettaglio cosa funziona oggi. La Roadmap indica in quale ordine vengono realizzati i sistemi mancanti.

✅ completato · 🟡 parzialmente completato · ❌ non ancora realizzato

278 sistemi: ✅ 110 completati, 🟡 90 parzialmente completati, ❌ 78 non ancora realizzati.

Copertura: 40% dei sistemi completati, 56% contando un sistema parzialmente completato come metà.

Le fondamenta (rete, login, persistenza, scripting, dati del mondo) sono pronte, e così il ciclo di gioco classico (combattimento, magia, abilità, creazione, venditori); restano le case, il giocare insieme (gruppo, chat) e le regole moderne.

Sistema Moongate Note
Account ✅ Creazione, elenco e verifica dalla console e dall’API di amministrazione; livelli di accesso
Login ed elenco server ✅ Server di login e realm di gioco separati, oppure un unico processo autonomo
Selezione, creazione ed eliminazione dei personaggi ✅ L’eliminazione è ritardata e lo staff può annullarla
Messaggio del giorno ✅ Pergamena nativa Updates o journal privato, configurabile con ultima.show_motd_gump; variabili dei template esistenti e ripiego Unicode
Versioni del client e cifratura ✅ Politiche di cifratura compatibili con POL; l’Enhanced Client effettua il login, crea un personaggio ed entra nel mondo, il resto è parziale
Server ping UDP ✅ Restituisce i ping su UDP 12000, come ModernUO
Keepalive e client inattivi ✅
Ban IP e firewall 🟡 Gli intervalli bannati sono rifiutati da ogni listener - un singolo indirizzo o un CIDR, IPv4 o IPv6, con motivo e scadenza, tramite l’API di amministrazione; nessun limite di connessioni né protezione dal flood
Ban ed espulsione degli account ❌
Negoziazione delle funzionalità dell’assistente (Razor) ❌
Stato dello shard per gli elenchi pubblici di shard ❌
Logout sicuro nelle locande e nelle case ❌ Un personaggio lascia il mondo quando la sua sessione si chiude
Password con hash ✅
Limiti ai tentativi di login e protezione dal flooding di connessioni ❌
Protocollo proxy (indirizzo reale del client dietro un proxy) ❌
Filtro dei pacchetti per fase di login 🟡 I pacchetti sconosciuti vengono rifiutati; nessun filtro per fase
Hook dei pacchetti: sostituire o estendere qualsiasi pacchetto 🟡 I plugin aggiungono pacchetti in ingresso in C#; non dagli script
Registrazione delle azioni sospette (risposte contraffatte, rilasci fuori portata) ❌ Le azioni fuori portata vengono rifiutate, non registrate come sospette
Statistiche di rete per client ❌
Uno o più personaggi nel mondo per account 🟡 Uno per account, non configurabile
Script di login e logout 🟡 Eventi di script quando un personaggio entra nel mondo o lo lascia
Filtro delle parole oscene 🟡 Nomi vietati alla creazione del personaggio; nessun filtro sul parlato

Sistema Moongate Note
Creazione: razze, professioni, oggetti iniziali, città iniziali ✅ Lettere iniziali personalizzate salvate nella stessa transazione di creazione
Statistiche ✅ Generate casualmente, memorizzate e impostate dagli script; un’abilità riuscita le aumenta secondo la regola classica di ModernUO, fino a 100 ciascuna e 225 complessivi, con i blocchi della finestra di stato
Abilità 🟡 Memorizzate, mostrate nella finestra delle abilità e impostate dagli script; utilizzate, verificate e incrementate, con i blocchi della finestra delle abilità (aumento, diminuzione, bloccata). Funzionano anche i blocchi delle statistiche della finestra di stato
Rigenerazione di punti vita, mana e stamina ✅ Un punto alla volta, ai ritmi classici di ModernUO; mana in base a intelligenza e Meditation, dimezzato nella trance della Meditation; ritmi per mobile dagli script
Titoli 🟡 Titoli di fama e karma nella paperdoll; nessun titolo di abilità
Fama e karma 🟡 Impostati dallo staff (.fame, .karma) e tramite l’API di amministrazione; il karma scende a ogni omicidio; resuscitare un fantasma (con un ankh, un guaritore o una benda) toglie un decimo della sua fama; nient’altro li aumenta o riduce
Notorietà (innocente, criminale, assassino) 🟡 Colore del nome dal template del mobile, grigio mentre il mobile è criminale, rosso da cinque uccisioni segnalate; un innocente è grigio per il giocatore che ha combattuto, o che lo ha combattuto, finché lo scontro vive
Crimini, timer criminale e conteggio degli omicidi 🟡 Flag criminale con relativo timer, salvato con il mobile; attaccare un innocente o saccheggiare il cadavere di uno rende criminali, a meno che chi depreda non abbia combattuto il proprietario; lo stesso vale per chi prende dal cadavere di una creatura nel tempo del diritto di bottino senza averlo guadagnato. Una vittima segnala i suoi assassini in un gump: uccisioni e omicidi a breve termine, cinque rendono assassino con il nome rosso, dimenticati con il tempo (8 e 40 ore). Ancora niente furti o altri crimini
Fame e sete ✅ Entrambe da 0 a 20 e in diminuzione nel tempo: un giocatore affamato non recupera punti vita, uno assetato non recupera stamina; il cibo si mangia, le bevande si bevono un sorso alla volta
Veleno 🟡 Quattro livelli e uno letale, colpi a intervalli, barra verde, salvato con il personaggio; pozioni di veleno e antidoti; Poisoning porta un veleno su lame e cibo, e un colpo lo passa; ancora niente mostri velenosi
Nascondersi e furtività 🟡 Hiding nasconde un giocatore fino al suo primo passo, Stealth gli lascia fare alcuni passi inosservato; colpire o lanciare incantesimi lo rivela, parlare o essere colpiti non ancora
Morte, cadaveri, fantasmi e resurrezione 🟡 Un NPC o un giocatore muore in combattimento, con .kill o mobile.kill: cadavere con ciò che trasportava, animazione e suono di morte, decadimento dopo 7 minuti. Un giocatore resta come fantasma (nascosto ai vivi se non in modalità guerra, sentito come oOo, senza combattere, usare abilità o sollevare oggetti) e viene resuscitato a un ankh o da un guaritore (per un decimo della sua fama), con .resurrect o mobile.resurrect. Niente ossa
Protezione dei giovani giocatori ❌
Denunce di omicidio e bacheche delle taglie 🟡 Il gump di denuncia che una vittima riceve dopo la morte funziona, con i conteggi che aggiunge; niente taglie né bacheche
Virtù ❌
Barra di stato ✅ Nome, statistiche, punti vita, mana, stamina, oro, peso
Stato esteso (resistenze, fortuna, limiti) 🟡 Con resistances accesa la barra di stato mostra le resistenze vere, armatura compresa, e un client dalla 7.0.30 riceve la barra di versione 6 (pacchetto 0x11) all’ingresso e dopo: le cinque resistenze massime (70 per un giocatore), il massimo della probabilità di difesa (45) e la fortuna (la prop luck); la barra viene inviata di nuovo quando un pezzo viene indossato, tolto o lasciato cadere, e quando il giocatore muore o risorge. Con l’interruttore spento la barra è quella classica. I bonus (probabilità di difesa, di colpire, velocità del colpo, danno, costo di reagenti e di mana, danno degli incantesimi, velocità e recupero dei lanci) mostrano 0: per ora niente li dà. I blocchi delle statistiche sono realizzati, vedi Statistiche
Privilegi dello staff (spostare qualsiasi cosa, vedere i nascosti, invulnerabilità) 🟡 Gli oggetti a terra e i mobile nascosti sono mostrati solo allo staff, e .go porta un game master ovunque; nessuno spostamento universale o invulnerabilità
Volo dei gargoyle ❌
Costo del movimento e consumo di stamina in base al peso ✅ Correre costa un punto ogni 16 passi; in sovraccarico, ogni passo costa 5 o più, e senza stamina il passo viene rifiutato. Chi è in sella non spende stamina per correre
Polymorph e incognito ✅ Gli incantesimi di Magery: Polymorph assume uno dei diciotto corpi scelti da un elenco, Incognito un colore e un nome casuali; entrambi sono conservati con il mobile e ripresi al login, e finiscono con il loro tempo o con una morte
Esperienza e livelli (opzionali) ❌
Fazioni ❌
Armi Slayer ❌
Rinominare animali e personaggi ✅ I personaggi si rinominano tramite l’API di amministrazione con le regole della creazione; un pet viene rinominato dal suo proprietario dal suo menu, con le regole di un nome
Selezione del volto ❌

Sistema Moongate Note
Modalità guerra, corpo a corpo e tempi dei colpi 🟡 Un giocatore combatte a pugni o con l’arma che impugna: timer del colpo, probabilità di colpire tramite abilità, danno con tactics, forza, anatomy e armatura del bersaglio, suoni e animazioni
Tiro con l’arco ✅ Gli NPC e i giocatori che impugnano un arco o una balestra sparano dalla sua portata, con la freccia che vola verso il bersaglio; un giocatore consuma una freccia o un dardo a ogni colpo, deve stare fermo un secondo e ritrova il 40% delle munizioni a terra
Armi e armature: danno, armatura, durabilità, resistenze 🟡 L’arma impugnata e l’armatura indossata da un giocatore determinano tempi dei colpi, probabilità di colpire, danno e riduzione del danno subito; l’arma e l’armatura di un giocatore si consumano; la parata dello scudo è la riga successiva; le resistenze sono un interruttore a parte
Parata 🟡 Lo scudo blocca prima, come la regola classica prima di AOS: chi ne indossa uno tira la sua Parry dietro una probabilità di (Parry − il valore dello scudo × 2) / 100, mai sotto l’1%, e un tiro passato toglie metà del valore da un colpo e tutto da una freccia, col brillio del blocco 0x37B9; i template degli scudi hanno i loro valori classici (buckler 7, heater 23…). Niente parata con l’arma (quella è AOS), e un NPC non para
Mosse speciali delle armi 🟡 Dietro special_moves (spenta di serie): le icone del client scelgono la mossa dell’arma in mano (0xD7), si chiedono 70 o 90 punti dell’abilità con l’arma e il mana, il mana si spende quando il colpo va a segno (doppio entro 3 secondi da un’altra mossa), e la tabella delle tredici mosse si legge da weapon_abilities.toml. Nove delle tredici mosse sono fatte: Armor Ignore, Bleed Attack, Concussion Blow, Crushing Blow, Disarm, Dismount, Double Strike, Mortal Strike e Paralyzing Blow; vedi Mosse speciali delle armi
IA di combattimento degli NPC 🟡 monster.lua su ogni creatura malvagia o caotica in UOX3 (circa 200 template): notano un giocatore o un cittadino, gli si avvicinano, lo combattono e fanno la guardia quando lo perdono, gli incantatori da lontano (vedi Incantesimi dei mostri), e le guardie cittadine li attaccano. Gli animali passeggiano e rispondono se colpiti, quelli paurosi fuggono. Se feriti scappano (sotto il 20% dei punti vita, mai i non morti o gli elementali). Gli arcieri sparano dalla portata del loro arco
Guardie nelle regioni sorvegliate 🟡 Un giocatore che dice “guards” fa arrivare una guardia accanto a ciascun criminale nelle vicinanze: appare, pronuncia la sua battuta e se ne va. Le guardie presenti nelle città notano autonomamente un criminale e lo raggiungono (guard.lua). Un NPC criminale viene ucciso con un colpo e lascia il cadavere; un giocatore criminale viene solo raggiunto: le guardie non puniscono ancora i giocatori. Le guardie chiamate a Ilshenar e Malas sono arcieri: sparano dalla portata del loro arco. Le guardie delle terre selvagge (guard_outsider, guard_outsider_archer) sono per i luoghi fuori dalle città: combattono davvero i mostri, e si possono ferire e uccidere
Incantesimi dei mostri ✅ Una creatura il cui template ha spell_circles (99 template dal SPATTACK di UOX3, 113 creature con quelli che ne derivano: 90 con lo script monster lanciano, lich, demoni, maghi, draghi; destrieri senza mana, maghi venditori e creature senza script no) lancia gli incantesimi a bersaglio singolo di Magery contro chi combatte fino a 12 caselle di distanza, con il proprio mana e la propria Magery: prima si cura e si guarisce, poi veleno, maledizioni, paralisi, prosciugamento del mana e danno secondo la scelta del mago classico, con una pausa tra un lancio e l’altro. Niente evocazioni, campi o incantesimi di viaggio
Abilità speciali dei mostri 🟡 Il sanguinamento, come il Bleed Attack classico: una creatura il cui template ha bleed_chance (il dire wolf un colpo su cinque, il lupo grigio uno su dieci) fa sanguinare la vittima di un colpo andato a segno — cinque colpi da due secondi, il danno che rallenta, sangue sotto di lei a ogni colpo — e la benda la fascia. Niente soffio, niente sassi, niente ragnatele
Danno elementale e resistenze 🟡 Dietro resistances (spenta di serie): le cinque resistenze di un mobile (quelle di un NPC dal suo template, quelle di un giocatore dall’armatura che indossa, armor_resistances.toml) attenuano il danno del loro elemento, tenute a 70 per un giocatore e a 100 per un NPC; un colpo in mischia è fisico, un tick di veleno è veleno, e quattordici incantesimi dichiarano il loro elemento. Niente potenziamenti o maledizioni di resistenza, e la finestra di stato non le mostra ancora
Elenchi degli aggressori e timeout degli attacchi ✅ Elenchi di due minuti di chi ha agito contro chi, per giocatori e NPC: la regola del crimine, il rapporto di omicidio, i nomi grigi di uno scontro e i diritti sul bottino del cadavere di un giocatore li leggono; il danno inflitto decide per due minuti chi depreda il cadavere di una creatura
Sangue sul colpo ✅ Un colpo che fa danno lascia sangue a terra che sparisce dopo qualche secondo; il blood_hue di una creatura lo colora o, a -1, lo impedisce (ultima.combat.blood_*)
Numeri del danno sopra le teste ✅ Il danno di un colpo appare sopra chi lo subisce (ultima.combat.display_damage_numbers)

Sistema Moongate Note
Lancio degli incantesimi: mana, reagenti, fallimento, resistenza 🟡 Magery: le parole di potere, un ritardo del cerchio in cui il lanciatore sta fermo, il cursore di mira, reagenti e mana, la finestra di Magery di un libro o di una pergamena, il fallimento che fa perdere i reagenti, il recupero, e il danno che rovina un lancio sopra il primo cerchio; dall’icona dell’incantesimo, da una macro o da una pergamena. Resisting Spells indebolisce un incantesimo dannoso. Le regole di viaggio delle regioni sono lette da Teleport, Recall, Mark e Gate Travel. Magic Reflection rimanda il primo incantesimo dannoso che ha per bersaglio chi la porta. Anche le creature li lanciano, vedi Incantesimi dei mostri
Incantesimi di magery ✅ Tutti i 64 incantesimi, ognuno uno script in scripts/spells: gli otto cerchi, Reactive Armor e — con lo stato di lucchetto e trappola dei forzieri — anche Magic Trap, Magic Untrap, Magic Lock e Unlock; i 64 sono in spells.toml. Campi di fuoco, pietra, veleno, paralisi ed energia, Teleport, Telekinesis, Recall, Mark e Gate Travel con le rune (.mark_rune; .add_spell e .add_reagents riempiono un libro e uno zaino), le creature evocate che combattono per il lanciatore, Dispel, Incognito, Polymorph, Invisibility e Resurrection ci sono. Gli scribi scrivono le pergamene con Inscription; le quattro pergamene di Magic Lock, Unlock, Magic Trap e Magic Untrap si possono scrivere e lanciare
Necromancy 🟡 La scuola senza cerchi, come quella di ModernUO: ogni incantesimo porta il proprio mana e la propria abilità minima in spells.toml, si lancia con Necromancy e scala con Spirit Speaking. Sedici dei diciassette ci sono, ognuno uno script in scripts/spells: Pain Spike (una ferita diretta da Spirit Speaking, di cui una parte torna dieci secondi dopo), Poison Strike (uno scoppio intorno al bersaglio, metà a una casella e un terzo a due, che risparmia il gruppo del lanciatore), Curse Weapon (l’arma in mano beve metà delle sue ferite per un po’), Blood Oath (il danno del lanciatore contro chi è legato è un quinto peggiore, e la ferita torna al lanciatore), Mind Rot (gli incantesimi del maledetto costano un quarto di mana in più per un po’), Strangle (round di fumi che mordono più forte quanto meno stamina resta) e le quattro forme di common/necromancy.lua: Horrific Beast e Lich Form (un corpo per una settimana, il lich che paga un punto vita ogni due secondi e mezzo per il suo), Vampiric Embrace (un corpo e una tinta che nessun veleno prende) e Wraith Form (dal 5 al 20 percento di ogni ferita bevuto come mana), ognuna finita da un secondo lancio, un’altra forma o una morte — e le tre evocazioni sul sistema dei seguaci: Animate Dead (da un cadavere indicato sale un non-morto da Necromancy e Spirit Speaking del lanciatore, che decade punto vita per punto vita, tre al massimo), Summon Familiar (il gump dei cinque famigli, uno alla volta per un giorno) e Vengeful Spirit (un revenant che dà la caccia a una vittima sola finché non è morta o non è passato il suo tempo). Il libro del negromante (0x2253, id 100–116) va col pacchetto dei contenuti più nuovo; le sue pergamene esistono. Gli ultimi tre: Evil Omen (la prossima ferita del maledetto un quarto peggiore, il suo prossimo veleno di un livello più alto, e il primo dei due lo spende), Wither (un gelo attorno al lanciatore, cinque caselle di bersagli indiretti validi, i malvagi feriti più forte dal loro karma) e Exorcism, che chiede una maestria di Spirit Speaking e un lanciatore dentro uno spawn di campioni (1072112, 1072111) e porta ogni giocatore morto entro 18 caselle del suo altare al santuario più vicino. Corpse Skin resta fuori per sempre, solo offset di resistenza
Spawn dei campioni ✅ Il classico endgame degli shard, come il Canned Evil di ModernUO: sei spawn di champions.toml — l’Orda dei Parassiti a Despise (Barracoon), il Terrore Empio a Deceit (Neira), il Sangue Freddo a Destard (Rikktor), l’Abisso nel dungeon del Fuoco (Semidar), l’Aracnide a Covetous (Mephitis) e il Signore della Foresta nel bosco di Yew (Lord Oaks). Uno spawn si sveglia quando un giocatore entra, tiene in vita la sua onda e conta le uccisioni, un teschio rosso sull’anello dell’altare per ognuno dei suoi livelli e quattro bianchi per il progresso, il campione sull’altare all’ultimo; la sua morte addormenta lo spawn per mezz’ora, e altrettanto senza una uccisione fa tornare un livello indietro. Non provato in game
Libri degli incantesimi, pergamene e bacchette 🟡 Un libro che contiene fino a 64 incantesimi, si apre con un doppio clic, prende l’incantesimo di una pergamena lasciata su di esso; una pergamena si lancia dallo zaino, senza reagenti e una se ne consuma in caso di successo. Niente bacchette. Gli scribi scrivono le pergamene con l’Inscription; le quattro pergamene di Magic Lock, Unlock, Magic Trap e Magic Untrap si possono scrivere e lanciare
Campi ed evocazioni ✅ I campi degli incantesimi (pietra, fuoco, veleno, paralisi, energia) e le creature che chiamano: spiriti di lama, un vortice di energia, un animale a caso, i quattro elementali e un demone, ciascuno un seguace del lanciatore che lo sorveglia e se ne va con il suo tempo, il suo padrone o un Dispel. Vedi Magery
Regole magiche delle regioni (no recall, no gate) ✅ I flag recall_in, recall_out, gate_in, gate_out, teleport_in, teleport_out e mark delle regioni sono letti da Recall, Gate Travel, Teleport e Mark
Chivalry 🟡 I primi quattro dei dieci incantesimi, ciascuno uno script in scripts/spells e in spells.toml: Cleanse By Fire (cura il veleno del bersaglio e brucia il lanciatore), Close Wounds (cura da 7 a 39), Consecrate Weapon (marca l’arma impugnata per alcuni secondi, cosa che nessuna regola legge ancora: non ci sono resistenze) e Sacred Journey (a una runa marcata, come Recall). Lanciati con Chivalry dal libro del paladino, senza reagenti: si spendono punti di decima e la potenza viene dal karma e dall’abilità. Niente dà ancora punti di decima (nessun santuario), e gli altri sei incantesimi (Remove Curse, Dispel Evil, Divine Fury, Enemy of One, Holy Light, Noble Sacrifice) non sono realizzati
Bushido ❌
Ninjitsu ❌
Spellweaving ❌
Mysticism ❌
Maestrie delle abilità ❌
Parole di potere ✅ Ogni incantesimo di spells.toml porta il suo mantra, pronunciato sopra la testa del lanciatore all’inizio del lancio; una creatura lancia in silenzio

Sistema Moongate Note
Usare e incrementare un’abilità 🟡 Un’abilità viene usata dalla finestra delle abilità (scripts/skills/<skill>.lua), verificata da skill.check e incrementata con la formula di ModernUO; ne sono fornite 22 in scripts/skills (Hiding, Stealth, Snooping, Stealing, Begging, Anatomy, Animal Lore, Animal Taming, Meditation, Tracking, le abilità del bardo e altre), e le abilità di raccolta, artigianato e campeggio si usano dai loro oggetti — un attrezzo, una canna, un legnetto; le statistiche aumentano con le abilità
Raccolta: estrazione mineraria, taglio della legna, pesca 🟡 Pesca con una canna: acqua entro 4 caselle, 8 secondi, un pesce, una vecchia calzatura o niente in base all’abilità; i pesci di un luogo si esauriscono per zona e ritornano (harvest.toml). Taglio della legna con un’ascia in mano: un albero entro 2 caselle, da uno a tre colpi, 10 tronchi in base all’abilità, la legna di un luogo che si esaurisce allo stesso modo. Estrazione con un piccone o una pala: minerale di nove metalli dalla roccia di montagne e grotte, fuso in lingotti a una forgia. I tronchi si segano in assi con l’ascia, e una lama stacca legnetti da un albero. Un luogo è di uno fra sette tipi di legno, ognuno con la sua abilità richiesta, un maestro trova cose rare insieme ai tronchi, e un’ascia colpisce più forte con il Lumberjacking. Nove metalli, dal ferro alla valorite, una vena per zona; niente prese speciali
Motore di creazione: menu, ricette, risorse, qualità ✅ Il gump di creazione, le ricette in data/crafts, i materiali contati nello zaino e nelle sue borse, la probabilità e i tipi di legno, oggetti eccezionali e marchio del creatore, attrezzi che si consumano e ricrea l’ultimo, ciò a cui un mestiere deve stare vicino (un’incudine e una forgia), condivisi da tutti i mestieri; vedi Falegnameria e Fabbro. Un’arma eccezionale colpisce un quinto più forte e un pezzo d’armatura eccezionale dà 8 in più; un oggetto eccezionale è non comune, uno con il marchio raro. Riparazione dallo stesso gump, vedi Riparare e migliorare gli oggetti
Mestieri: forgiatura, sartoria, carpenteria, meccanica, alchimia, cucina, iscrizione, fabbricazione di archi e frecce, cartografia ✅ Falegnameria: un attrezzo nello zaino apre il gump di creazione, 42 ricette da UOX3 in data/crafts, create da assi comuni o da un tipo di legno che colora l’oggetto; una probabilità su due al minimo dell’abilità, certezza al massimo, metà dei materiali persa in un fallimento. Oggetti eccezionali con il marchio del creatore a 100, attrezzi che si consumano, ricrea l’ultimo. Fabbro: 66 ricette a un’incudine e una forgia, di tutte le ere, in ferro o in otto metalli colorati che colorano l’oggetto. Sartoria: 50 ricette di stoffa e cuoio con un kit da cucito. Meccanica: 59 ricette dai lingotti, nel metallo scelto. Archi e frecce: 9 ricette, archi dalle assi, frecce e dardi da aste e piume. Cucina: 31 ricette, cottura al forno vicino a un forno, barbecue vicino a un fuoco. Cartografia: otto mappe disegnate attorno al cartografo secondo l’abilità. Alchimia: venti pozioni da reagenti e una bottiglia vuota. Inscription: 64 pergamene, una per ogni incantesimo, da reagenti e una pergamena vuota, con l’incantesimo in un libro portato e il mana del suo cerchio
Riparare e migliorare gli oggetti 🟡 Un artigiano ripara armi e armature che si consumano dal gump di creazione (Repair item); niente pergamene di riparazione, niente riparatori NPC, niente miglioramento
Addomesticamento e conoscenza degli animali ✅ Animal Taming doma circa 75 creature con un tentativo di tre o quattro volte; Animal Lore apre un gump di due pagine su una creatura: statistiche, armatura, danno, lealtà, skill, il cibo che mangia e il taming che richiede. Veterinary è una riga a parte
Guarigione e veterinaria 🟡 La benda pulita cura un giocatore o una creatura (Healing e Anatomy, Veterinary e Animal Lore) e resuscita un fantasma; antidota un paziente avvelenato dietro un cancello di 60 punti di entrambe le abilità e ne fascia uno che sanguina, e nessun punto vita torna; sul cadavere di un animale legato resuscita l’animale (Veterinary e Animal Lore a 80)
Scassinamento, rimozione delle trappole 🟡 Il grimaldello scassina un oggetto chiuso (i forzieri del tesoro dei dungeon nascono chiusi); le trappole — un’esplosione o un veleno del livello del forziere — armano gli stessi forzieri e scattano all’apertura, uno scoppio e spese; la rimozione delle trappole le disarma, chiedendo 50 punti di Lockpicking e Detect Hidden, e il forziere non fa scoppiare nulla alla prossima apertura. Le porte si chiudono e si aprono con la loro chiave
Frugare e rubare 🟡 Snooping apre lo zaino di un altro mobile con un doppio clic; Stealing prende un oggetto di un contenitore o dello zaino di una creatura, come la modalità classica di ModernUO (un giocatore solo con la gilda dei ladri); niente fazioni o sigilli, niente artefatti rubabili, l’oggetto rubato non torna alla vittima
Inseguimento, individuazione dei nascosti, medicina legale, parlare con gli spiriti 🟡 Individuazione dei nascosti e medicina legale funzionano: l’individuazione trova i nascosti e nomina «[trapped]» sopra un forziere trappolato scelto direttamente, entro un decimo dell’abilità in caselle, e Remove Trap lo disarma; niente gilda dei ladri. Tracking chiede animali, mostri, NPC umani o giocatori ed elenca i 12 più vicini entro 10 passi e 10 in più ogni 10 punti di skill, dal più vicino; quello scelto riceve la freccia delle missioni e un testo con distanza e direzione. La freccia non è provata con un client reale e non segue la preda; niente regola degli elfi, niente bonus di pedinamento. Spirit Speak fa capire ai vivi le parole di un fantasma da 15 secondi a 3 minuti, e per sempre a 100; niente cura di AOS, niente rivelazione degli spiriti nascosti
Abilità del bardo: musicalità, pacificazione, provocazione, discordanza 🟡 I nove strumenti si suonano con un doppio clic (Musicianship) e si consumano con le abilità del bardo (da 350 a 450 usi); Peacemaking calma una creatura o tutte quelle nel raggio e Provocation mette due creature l’una contro l’altra, e Discordance abbassa forza, destrezza e intelligenza di una creatura finché il bardo suona, come in ModernUO senza resistenze: su una creatura pesa sui colpi solo la forza, e le sue abilità non vengono abbassate; non provato con un client
Abilità di conoscenza: anatomia, conoscenza delle armi, identificazione degli oggetti, valutazione dell’intelligenza, identificazione dei sapori 🟡 Anatomia e valutazione dell’intelligenza leggono le caratteristiche di un bersaglio; Arms Lore legge la condizione e il valore di un’arma o di un pezzo di armatura, del giocatore o a terra entro 2 caselle, con i testi del client; Item Identification mostra ciò che mostra un clic su un oggetto o un mobile e si allena su armi e armature; identifica gli oggetti marcati unidentified (nulla li marca ancora); Taste Identification trova il veleno del cibo che porta la prop poison.level — la imposta Poisoning — e dice il tipo di una pozione
Meditazione 🟡 Meditation mette un giocatore in una trance meditativa che dimezza l’attesa del suo mana, finché non fa un passo, riceve un colpo, attacca, lancia un incantesimo o usa un’altra abilità; l’armatura blocca la trance e una mano deve essere libera; non provato con un client
Mendicità 🟡 Begging supplica una moneta o due a un NPC umano — un decimo della sua borsa, da 10 a 14 secondo la fama del mendicante — al prezzo di karma, come quella di ModernUO prima di ML; una borsa vuota, chi ha fama cattiva e chi è a cavallo vengono rifiutati; non provato con un client
Campeggio 🟡 Camping accende un falò su un legnetto col doppio clic — portato o entro 2 caselle, provato da 0 a 100 — che brucia cento secondi, illumina la notte ed è un calore per cucinare, e finisce da solo; niente giaciglio, niente logout immediato; non provato con un client
Pastorizia 🟡 Herding fa camminare un animale selvatico addomesticabile dove il bastone punta — il tiro cavalca la sua difficoltà di addomesticamento — un passo a think finché non è arrivato; un combattimento viene prima e la camminata riprende dopo; non provato con un client
Avvelenamento 🟡 Poisoning porta una pozione di veleno su una lama a una mano o un pezzo di cibo — il tiro sulla finestra della pozione, 20 karma a riuscita — e le cariche della lama passano a chi è colpito finché non finiscono; un avvelenatore maldestro può avvelenarsi da solo; non provato con un client
Smembrare i cadaveri 🟡 Un coltello, un pugnale o una spada lavora il cadavere di una creatura entro 2 passi, una sola volta (non quello di un giocatore, di un animale domestico o di una creatura evocata), dalle tabelle di smembramento di templates/carves/ che un template di mobile nomina con carve; l’hook on_carving e l’evento corpse_carved sono in Hook degli script. Esistono sei tabelle (gli animali da fattoria e lo scarabeo di fuoco) e le 100 di carve.dfn di UOX3 (moongate-convert uox-carves) per le altre creature; il torso e gli arti degli umani non sono realizzati
Regioni delle risorse (minerali, legna, pesci per area, rigenerazione) 🟡 Pesci, legna e minerale si esauriscono per area e tornano (harvest.toml); le aree stanno in memoria e dopo un riavvio ripartono piene
Lavorazione delle risorse: fusione, telai, filatoi, pelli 🟡 Il minerale si fonde in lingotti in una fucina e i tronchi si segano in assi; niente telai, filatoi o pelli
Classi e limiti delle abilità (totale abilità, totale statistiche) 🟡 Il totale delle abilità si ferma a ultima.skills.total_cap (700.0) e il totale delle statistiche a ultima.skills.stat_cap (225), entrambi riducendo ciò che è impostato in diminuzione; nessuna classe
Oggetti di allenamento: manichini, bersagli per borseggio, bersagli per tiro con l’arco 🟡 I manichini rispondono al colpo e fanno salire l’abilità dell’arma fino a 25, e i bersagli per il tiro con l’arco prendono le frecce e danno il punteggio; niente bersagli per borseggio, niente freccette

Sistema Moongate Note
Template, nomi, equipaggiamento e bottino degli NPC ✅ Vestiti e con il loro bottino alla comparsa
Comportamento da script ✅ Script Lua per i mobile: on_think, on_speech, on_spawn, on_mobile_in_range, on_death, on_drag_drop
Inattività lontano dai giocatori ✅ Gli NPC pensano solo vicino a un giocatore
Movimento casuale 🟡 wander.lua mantiene gli NPC generati nella loro area di origine
Parole chiave del parlato e risposte 🟡 Le parole chiave del client raggiungono on_speech in qualsiasi lingua; i banchieri rispondono a bank, balance, withdraw e check, e alla parola deposit, che non ha una parola chiave; i venditori rispondono a vendor buy e vendor sell
Creature acquatiche e anfibie ✅ Compaiono sull’acqua e nuotano
Tipi di IA (venditore, guardia, guaritore, animale, mostro, incantatore) ✅ Script Lua per banchiere, negoziante, guardia, guaritore, stalliere, animale e mostro (scripts/mobiles); gli incantatori sono i mostri il cui template ha spell_circles, vedi Incantesimi dei mostri
Ricerca del percorso, inseguimento e fuga 🟡 Ricerca del percorso A*; uno script porta un NPC in un luogo o dietro qualcuno con npc.walk_to, passando dalle porte chiuse che apre e aggirando quelle a chiave e i mobili. Le creature ferite scappano da uno scontro (20% dei loro punti vita, 10% gli animali) e gli animali paurosi da un colpo; un NPC che vaga non apre porte, e i mobile non bloccano il percorso. Uno script fa camminare il client di un giocatore verso un punto con mobile.pathfind_to (pacchetto 0x38)
Animali e seguaci: comandi, lealtà, legame 🟡 La abilità Animal Taming doma circa 75 creature dei dati, con un limite di 5 seguaci mostrato nella finestra di stato. Un animale segue il padrone e obbedisce a come, follow, stay, stop, guard, kill, attack e release, da solo o con all, a meno che la poca lealtà o la skill del padrone lo faccia rifiutare. La lealtà scende col tempo, il cibo trascinato su un animale la ripristina e a 0 torna selvatico. Il cibo lega un animale al padrone dopo una settimana, e solo un animale legato si resuscita dal cadavere con una benda. Niente fame oltre a questo. I seguaci entro 3 caselle vanno col padrone attraverso un moongate, un portale o un teletrasporto, e quelli legati con Recall e Sacred Journey. Il padrone clicca l’animale per i suoi comandi, lo rinomina dalla barra di stato e dà a un massimo di cinque giocatori gli ordini follow, stay e stop
Cavalcature 🟡 Cavalcature: un game master dà un cavallo, un lama o uno struzzo con tame; il suo proprietario ci sale con un doppio clic e ne scende con un doppio clic su di sé, oppure muore, e corre il doppio più veloce. Chi è in sella non può estrarre, pescare né usare Stealth, e un teletrasporto può rifiutarlo. La stalla degli addestratori di animali custodisce gli animali di un giocatore, e le statuette eteree danno una cavalcatura senza creatura, mentre una pietra della cavalcatura nello zaino porta in sella e fa scendere al doppio clic successivo. Chi è in sella colpisce con le animazioni dell’attacco in sella. Niente bola
Eventi di script per gli NPC (parlato, portata, danno) ✅ Parlato, portata, morte (on_death, on_mobile_killed), salute e mana bassi, e il combattimento e la vita dell’NPC: on_damage e on_heal (lo script può cambiare il numero), can_die, on_attack (può annullare il colpo), on_hit, on_miss, on_combat_start, on_combat_end, on_resurrect, on_tame, on_release, on_enter_region e on_leave_region; vedi Hook degli script
Raccolte di nomi ✅ Elenchi di nomi per tipo e genere
Bisogni: cibo, pascolo, desideri ❌
Azioni speciali delle creature (soffio, lancio di rocce, ragnatele) ❌
Ritorno a casa quando si perdono 🟡 Gli NPC generati tornano a piedi nella loro area di origine
Statuette degli animali (riduzione degli animali) ❌
Boss Peerless e paragoni ❌
Accampamenti (briganti, orchi, prigionieri) ❌

Sistema Moongate Note
Venditori: acquisto, vendita, rifornimento ✅ La finestra del negozio, la merce e le tabelle di vendita dei negozi di ModernUO, oro dello zaino poi della banca, tutto o niente tra le righe che lo script del venditore ha ammesso, il rifornimento orario e la rivendita di ciò che i giocatori hanno venduto, pagata di più per un oggetto più raro; lo script di un venditore può rifiutare una riga e sapere quando è conclusa (can_buy, can_sell, on_bought, on_sold); vedi Venditori
Banchiere e cassetta di banca ✅ La parola chiave bank in qualsiasi lingua del client; aperta mentre il giocatore resta fermo; saldo, prelievo e deposito tramite parlato; limite di oggetti; vedi Banca
Stalliere, veterinario 🟡 Lo stalliere (stablemaster.lua) custodisce e restituisce gli animali di un giocatore, vedi Cavalcature; nessun NPC veterinario (una benda e l’abilità curano gli animali)
Istruttori delle abilità 🟡 Venditori e guaritori insegnano le abilità che hanno a 60,0 o più, in cambio di oro trascinato su di loro; vedi Abilità
Guaritori che resuscitano 🟡 Un fantasma che si avvicina a un guaritore riceve l’offerta di tornare in vita; i guaritori malvagi non sono ancora posizionati nel mondo
Venditori dei giocatori ❌
Mercenari 🟡 I dieci mercenari di ModernUO stanno a Jhelom: la paga si sente parlando o dal menu contestuale, l’oro rilasciato su uno lo assume per due seguaci, prende la paga ogni 30 minuti e se ne va quando l’oro finisce; nessun mercenario in altre città
Missioni di scorta ❌
Maestri di gilda ✅ I dodici maestri di gilda di ModernUO insegnano il loro mestiere, accettano membri per la loro gilda con parole e oro, e sono collocati dagli spawn di ModernUO; vedi Abilità
Ordini di produzione in massa ❌

Sistema Moongate Note
Template e creazione degli oggetti ✅ Template TOML con ereditarietà
Spostamento, impilamento, divisione e unione ✅
Indossare: livelli e armi a due mani ✅ Nessun requisito di forza ancora
Contenitori del personaggio ✅
Contenitori a terra, limiti di peso e di oggetti ✅ Un contenitore a terra si apre entro due caselle; gli oggetti possono essere estratti e inseriti, e i giocatori intorno li vedono entrare e uscire; massimo 125 oggetti e fino al limite di stone del contenitore (400 in assenza di un limite); le pile si uniscono all’interno
Tooltip e nomi con un clic ✅ Nome, peso, rarità, benedetto e maledetto, eccezionale e artefice, usi rimasti; danno e velocità di un’arma, armatura di un pezzo e forza richiesta da un pezzo e la sua durabilità
Oggetti a terra e relativo decadimento ✅
Oggetti da script ✅ Script Lua per gli oggetti: uso, equipaggiamento, rimozione, raccolta, rilascio, creazione, oscurità, un giocatore che vi cammina sopra, parlato nelle vicinanze
Tabelle del bottino ✅ Generato nello zaino di ogni NPC comparso, nei forzieri del tesoro e nei contenitori cittadini, e dagli script con item.add_loot
Porte ✅ Apertura e chiusura; porte doppie collegate; una porta chiusa blocca il passaggio, lo staff la attraversa; umani e mostri che camminano verso un luogo aprono quelle non a chiave
Serrature e chiavi ✅ Le porte chiuse a chiave si aprono per un giocatore che porta la loro chiave
Luci ✅ Accensione e spegnimento; i lampioni si accendono di notte
Pozioni e cibo 🟡 Il cibo si mangia: fame, stamina, suono e gesto. Le bevande si bevono a sorsi, lasciando una brocca o un bicchiere vuoto; nessun riempimento, nessuna ubriachezza. Le pozioni di cura, rinvigorimento, forza, agilità, visione notturna, veleno e antidoti si bevono, con una mano libera, e lasciano una bottiglia; le pozioni esplosive si lanciano ed esplodono su un’area
Libri 🟡 Creazione da parte dello staff con .book e pergamene leggibili da template di testo TOML, variabili del destinatario congelate, titolo/autore/testo salvati e allegati alle lettere ritirabili una sola volta; 62 libri di lore in otto lingue, che aprono il libro del client con copertina e pagine; libri in cui il giocatore scrive, uno per ogni nuovo personaggio; copia e firma dei libri non realizzate
Mappe e mappe del tesoro 🟡 Le mappe si aprono sulla loro area, con un percorso fino a 50 puntine; le 33 mappe pronte; un modulo Lua map; la cartografia le disegna. Niente mappe del tesoro o SOS per ora
Rune, recall e portali 🟡 Una runa di recall viene marcata dall’incantesimo Mark (.mark_rune per lo staff), e Recall, Gate Travel e Sacred Journey vi portano, leggendo le regole di viaggio delle regioni, vedi Magery; nessun runebook (l’oggetto esiste, nulla lo apre)
Moongate e teletrasporti 🟡 Teletrasporti attivati camminandoci sopra e quelli che rispondono a una parola, anche tra mappe, posizionati da .decorate con quelli del mondo e dei dungeon di ModernUO; moongate pubblici con un gump di destinazione; moongate semplici con una destinazione (.moongate); i portali di Gate Travel durano 30 secondi; nessun viaggio con i moongate secondo le fasi lunari
Tinture e vasche per tintura 🟡 Le tinture danno alla vasca il colore scelto nel selettore del client, la vasca lo trasferisce a ciò che è tingibile, come gli abiti; nessuna vasca per pelle, mobili, nera o metallica
Parrucchiere, tintura per capelli e kit di travestimento ❌
Scambio sicuro ✅ Rilascia un oggetto su un altro giocatore entro 2 caselle per una finestra di scambio: un contenitore a testa, due spunte, lo scambio negli zaini; annullare, la morte e l’uscita restituiscono tutto; niente platino né impostazione per rifiutare
Oggetti magici e proprietà degli oggetti ❌
Bottino magico casuale e artefatti ❌
Imbuing e reforging ❌
Pergamene del potere, pergamene delle statistiche e soulstone ❌
Giochi (scacchi, dama, backgammon) ❌
Piante e agricoltura ❌
Trappole ed enigmi dei dungeon ❌
Forzieri dei dungeon e delle città che si riempiono di nuovo 🟡 I forzieri del tesoro dei dungeon di ModernUO, livelli da 1 a 4: una regione di spawn ne crea uno con oro e bottino, decade e ne compare uno nuovo. Le casse, i forzieri, i barili e le librerie cittadini si riempiono quando vengono aperti, ogni 60–90 minuti, dalle 35 tabelle di ModernUO. I forzieri dei dungeon nascono chiusi e trappolati, quelli cittadini no
Messaggi in bottiglia e tesori pescati ❌
Attributi degli oggetti: benedetto, maledetto, newbie, assicurato 🟡 Benedetto e maledetto nei tooltip; nessuna regola sottostante
Atti e riconversione in atti ❌
Bende ✅ La benda pulita cura e rianima; vedi Guarigione e veterinaria
Strumenti musicali 🟡 I nove strumenti si suonano con un doppio clic (Musicianship) e si consumano con le abilità del bardo (da 350 a 450 usi); nessuno strumento slayer o eccezionale, nessuna creazione di strumenti; non provato con un client
Strumenti di navigazione: sestante, cannocchiale, orologi 🟡 Gli orologi indicano la parte del giorno e l’ora del luogo in cui si trovano (clock.lua); nessun sestante o cannocchiale
Barili di pozioni e atti per merci ❌
Cestini ❌
Cristalli di comunicazione ❌
Pietre degli oggetti (distributori) ❌
Pietre e anelli incisi ✅ Una pietra che l’architetto vende per 10000 monete d’oro: chi la compra ne è il proprietario, la posa a terra e ci scrive un titolo e un testo con write; chiunque la legge con un doppio clic e solo il proprietario la solleva, vedi Pietre incise. Un gioielliere incide un anello o una fede nuziale con un testo di 60 caratteri per 500 o 1000 monete d’oro, mostrato nel suo tooltip, vedi Anelli incisi
Cannoni ❌
Talismani e proprietà dei gioielli ❌
Controlli di integrità e rilevamento degli orfani ❌

Sistema Moongate Note
Mappe, elementi statici e multi dai file del client ✅ MUL e UOP
Controlli del movimento e della linea di vista ✅ Movimento: terreno, elementi statici e oggetti a terra (una porta chiusa, una cassa); linea di vista: terreno ed elementi statici. Mobile e multi non sono ancora inclusi in nessuno dei due
Settori delle mappe e portata visiva ✅
Giorno e notte ✅ Per mappa e longitudine, con le fasi lunari; .globallight, .time
Illuminazione di dungeon e prigioni ✅
Meteo per regione ✅ Pioggia, neve, temporali con tuoni, asciutto al chiuso; nessun danno meteorologico
Stagioni ✅ Per mappa e regione, rotazione facoltativa con i giorni di gioco; .season
Regioni 🟡 Individuate per ogni giocatore; impostano meteo, musica, stagione e illuminazione dei dungeon, e il giocatore legge il luogo in cui entra o che lascia e se è protetto dalle guardie, e le guardie delle città agiscono di conseguenza; nessuna regola per le case
Musica delle regioni ✅ Il brano della regione, altrimenti quello della mappa; .music
Regole delle regioni: sicura, no PvP, no case, logout istantaneo ❌
Politica cittadina (sindaci, tasse) ❌
Decorazione del mondo ✅ Posizionata da .decorate, con le insegne dei negozi e le porte cittadine lette dalla mappa
Regioni di spawn ✅ Su ogni mappa: dati UOX3, quelli di ModernUO per New Haven, Malas, Tokuno e TerMur; primo popolamento rapido, .initial_spawn, rigenerazione, terra e acqua; anche regioni di oggetti, come i forzieri del tesoro; vedi Spawn degli NPC
Oggetti spawner ❌
Case: posizionamento, insegna, proprietari, amici e ban ❌
Blocco degli oggetti nelle case, contenitori sicuri e decadimento ❌
Componenti aggiuntivi delle case (forge, telai, mobili composti) ❌
Barche ❌
Cambi e regole delle facet ❌
Suoni ambientali ❌
Più mappe contemporaneamente ✅ Ogni mappa di maps.toml
Fasi lunari ✅ Trammel e Felucca sull’orologio di gioco, come il cannocchiale di ModernUO; .time, world.moon in Lua
Progettazione personalizzata delle case ❌
Inattività dei settori ✅ Gli NPC lontani dai giocatori non hanno alcun costo
Importazione ed esportazione del mondo ❌
Salvataggi paralleli e incrementali del mondo 🟡 Vengono scritte solo le snapshot cambiate, in una transazione in background; non paralleli

Sistema Moongate Note
Parlato locale ✅ Giocatori e NPC sentono ciò che viene detto nelle vicinanze
Gruppi 🟡 Il gruppo di al massimo dieci giocatori, creato con i pulsanti del client: invito con un bersaglio, accettazione o rifiuto entro 30 secondi, abbandono e rimozione, il membro successivo in lista prende la guida quando il capo se ne va, chat di gruppo pubblica e privata, il modulo Lua party e gli eventi party_*. Un personaggio lascia il gruppo al logout e un riavvio scioglie ogni gruppo. I membri vedono le barre degli altri, e ClassicUO disegna sulla sua mappa del mondo i membri fuori vista (la query 0xF0). Gli incantesimi che colpiscono un punto risparmiano i membri e le creature che possiedono. I segnaposto dell’Enhanced Client e la condivisione del bottino non sono ancora realizzati
Gilde ✅ Un atto della pietra di gilda fonda una gilda sulla pietra posata; il gump della pietra mostra l’elenco dei membri, il capo per primo, e dà fedeltà, titoli, statuto, sito, colore, espulsione e dimissioni; la fedeltà elegge il capo; guerra e alleanza sono la doppia dichiarazione delle due gilde, arancione e verde nella notorietà, e attaccare un nemico non è un crimine; vedi Gilde
Finestra della chat 🟡 Le chat di gilda e di alleanza funzionano (parlato di tipo 0x0D e 0x0E, 128 caratteri, le sentono solo i membri online), accanto alla chat di gruppo; il pulsante della chat (0xB5) riceve in risposta le chat che funzionano. La finestra Alt+C classica, con canali, moderatori e voce, e una chat globale o dello staff non sono costruite
Bacheche ✅ Ogni bacheca ha i propri messaggi, in discussioni con risposte; l’autore o un game master li rimuove; le discussioni scadono alcuni giorni dopo l’ultima risposta e una bacheca piena elimina la discussione più vecchia, entrambi configurabili nelle impostazioni; gli script pubblicano, elencano e rimuovono con il modulo board; vedi Bacheche
Duelli, arene e tornei ❌
Profilo del personaggio ✅ Il testo che un giocatore scrive sul suo personaggio, letto con il pulsante Profilo del paperdoll e modificato nella stessa finestra: 511 caratteri tenuti in una proprietà del personaggio, solo il proprio da modificare, quello di un altro giocatore da leggere entro 12 caselle, con il titolo del paperdoll e l’età del personaggio; profile.get e profile.set per gli script; vedi Profilo. Il blocco del profilo è escluso
Finestra dei suggerimenti ❌
Freccia e pulsante delle missioni 🟡 La freccia delle missioni (pacchetto 0xBA) si mostra su un punto e si toglie con arrow.show e arrow.clear; la usa Tracking. Il pulsante Quest del paperdoll (0xD7 0x32) apre il giornale delle quest. Non provata con un client reale; il server non segue un bersaglio e non legge il clic del client sulla freccia
Missioni 🟡 Una quest è un file Lua eseguito da un solo motore (Quest): un NPC che la dà (doppio clic o la voce Quests del menu contestuale), obiettivi di uccisione (anche in una regione), raccolta, parlata, abilità, consegna e scorta, ognuno anche contro il tempo (una quest che scade fallisce e aspetta nel giornale), o uno qualsiasi di essi, con il credito al gruppo, ricompense (oro, oggetti, abilità, fama, karma, flag), catene, ritardi di ripetizione, un giornale dal pulsante Quest del paperdoll (con un Abandon che chiede conferma), testi come numeri di messaggio da 40000. Cinque quest di esempio a New Haven, e 224 delle 257 quest di Mondain’s Legacy di ModernUO, migrate da un convertitore, con i loro 99 NPC (mandanti e destinatari delle consegne) nei posti dove li mette ServUO (Heartwood, il Sanctuary, New Haven, Malas, Ilshenar); gli NPC insegnano le loro abilità a pagamento e dicono una frase a un giocatore che si avvicina e ha una quest da prendere. Non costruiti: la freccia di quest per un obiettivo; le altre 33 quest di ModernUO sono ancora da migrare
Modalità del parlato: parlare, sussurrare, urlare, emote ✅ Un sussurro si sente a 1 casella, un urlo a 18, parlato ed emote a 15; gli script di NPC e oggetti sanno come è stato detto

Sistema Moongate Note
Oro ✅ Oro iniziale e bottino degli NPC; si spende dai venditori, dagli istruttori e dai capigilda, si custodisce in banca
Banca e assegni bancari ✅ Cassetta di banca con limite di oggetti; saldo, prelievo, deposito e assegno tramite parlato; assegni incassati con doppio clic nella cassetta; oro e assegni consegnati al banchiere vengono depositati; criminali rifiutati; vedi Banca
Costi e limiti delle case ❌
Oro condiviso nell’account ❌
Ricerca dei venditori e aste ❌
Ricompense dei veterani ❌

Sistema Moongate Note
Comandi con livelli di accesso ✅ Dalla console (completamento di comandi e argomenti con TAB, cronologia con Su/Giù) e in gioco; vedi Comandi
Salvataggio del mondo ✅ Periodico e allo spegnimento, con .save
Comando di riavvio ✅ restart ferma il server come shutdown e termina il processo con exit code 75, perché systemd, Docker o Kubernetes lo riavviino; un mgserver nudo resta fermo
Task a orario, spegnimento ed eventi stagionali ✅ data/schedule.toml: task per ora, giorno o settimana (spegnimento con avvisi, messaggio, funzione Lua), eventi per data con interruttore dello staff e hook on_start/on_end, in un fuso orario a scelta; GetSchedule fornisce il calendario attraverso l’API di amministrazione; vedi Calendario
Eventi festivi 🟡 Feste: Halloween (dal 24 ottobre al 15 novembre), dove i negozianti rispondono a “trick or treat” con una caramella o uno scherzo, e Natale (dal 24 dicembre al 1° gennaio), con palle di neve da lanciare e un regalo all’accesso una volta a stagione; entrambi decorano le città principali finché sono attivi
Backup del database ✅ Esportazioni SQL a rotazione, pianificate e con .sql_backup; ripristino con psql
Console ✅
Configurazione del server ✅ moongate.toml, validato all’avvio
Regole per epoca (classiche o moderne) ❌ Un insieme di regole, prima quello classico; vedi la Roadmap
Impostazioni delle regole di gioco (combattimento, magia, rigenerazione, crimini) 🟡 Combattimento, rigenerazione, crimini, animali, banca e altri hanno la propria sezione in moongate.toml; la magia arriva con il suo sistema
Amministrazione degli account 🟡 Console e API di amministrazione: blocchi, ban con un motivo e una scadenza
Amministrazione remota 🟡 API gRPC con TLS; nessun pannello web
Metriche e diagnostica ✅ Metriche del processo e dei plugin; GetMetrics fornisce l’ultima istantanea attraverso l’API di amministrazione
Ricaricamento a caldo 🟡 Script Lua; non dati o template
Coda di richieste ai GM (page) ✅ Un giocatore chiama un game master dal menu Help (genere e una riga, una richiesta alla volta, una pausa); lo staff smaltisce la coda dal gump .pages: andare dal giocatore, prendere in carico, rispondere, chiudere; la risposta arriva al giocatore online o al login successivo; la coda si può anche leggere e smaltire attraverso l’API di amministrazione; vedi Aiuto
Menu di aiuto e menu per personaggi bloccati ✅ Il pulsante Help apre un menu: «Sono bloccato» porta un personaggio alla città di partenza più vicina dopo un’attesa, con una pausa; comandi utili; regole del server; vedi Aiuto
Prigioni ✅ Un gump elenca le celle e i detenuti; pene in giorni reali, multa in oro e nota di rilascio alla fine, una cassa di pane e acqua in ogni cella; un giocatore offline viene incarcerato per nome e sconta la pena dal login successivo; la prigione si può anche leggere, e i suoi detenuti graziare, attraverso l’API di amministrazione; vedi Prigione
Elenco dei presenti ❌
Strumenti dello staff: gump delle proprietà, menu di aggiunta, comandi di area 🟡 Il gump dei luoghi nominati, .go, con i 558 luoghi di ModernUO, e .gmtools, un gump con barra laterale di strumenti: forza il meteo, imposta la stagione della mappa, mostra l’ora, imposta la luce e accende o spegne gli eventi stagionali (amministratori), .items, un gump che cerca i template degli oggetti per nome, id o grafica con un’immagine e li dà o li mette a terra, e .npcs, lo stesso per i template dei mobile, con l’immagine del body e un pulsante che crea (un menu di aggiunta); i template si possono anche cercare e leggere attraverso l’API di amministrazione, che scrive quelli che ha creato; nessun gump delle proprietà o comando di area
Luoghi nominati e menu di viaggio per lo staff ✅ .go <place> e il gump go, con i 558 luoghi di ModernUO da data/locations.toml
Pagine web di stato ❌
Segnalazioni di bug 🟡 Rapporti delle eccezioni pronti per una issue; nessuna segnalazione in gioco
Registrazione nei log ✅ Log strutturati con livelli; GetRecentLogs fornisce le voci più recenti attraverso l’API di amministrazione
Log dei pacchetti per client ❌ L’opzione --log-packets viene analizzata ma non usata
Log dei comandi ❌
Console remota (telnet) ❌ Al suo posto l’API gRPC
Dump dei crash e watchdog ❌
Servizio Windows ❌ Al suo posto immagini Docker

Sistema Moongate Note
Motore di script ✅ Lua 5.2 isolato con un budget di istruzioni
Script associati ai template ✅ script_id sui template di oggetti e mobile
Più script su un oggetto, script per tipo di oggetto ❌
Eventi di script 🟡 Eventi di NPC, oggetti e personaggi, player_say e player_region_changed; e la morte di un mobile; gli eventi di danno, cura, attacco, colpo, combattimento, domatura e regione dell’NPC e quelli di eliminazione, decadimento, contenitore, uscita da una cella, vicinanza, tooltip e rilascio su un oggetto, gli on_bought e on_sold di un venditore e gli eventi sul bus item_created, item_deleted, mobile_created, mobile_deleted, mobile_died, pet_tamed, craft_succeeded e corpse_carved sono in Hook degli script; nessun evento di abilità
Eventi che possono rifiutare l’azione predefinita 🟡 Oggetti: on_use, can_pick_up, can_drop, can_equip, can_insert, can_drop_on, can_decay; NPC: on_damage, on_heal, on_attack e can_die; venditori: can_buy e can_sell; nessuno ancora per abilità (niente check_skill)
Eventi di ingresso e uscita dalle regioni ✅ player_region_changed per i giocatori; on_enter_region e on_leave_region nello script di un NPC; non per gli oggetti
API di script 🟡 npc, item, world, mobile, gump, bank, effect, moongates, locations, dice, localization, timer, events, engine, log, target, prompt, skill, commands, combat, craft, harvest, help, hue_picker, mount, npcguild, guild, pet, schedule, stable, trainer, vendor, jail, board, book, carve, arrow, cliloc, map, spell, bleed e champions; statistiche e abilità di un mobile vengono lette e scritte
Interrogazioni del mondo dagli script (oggetti vicini, visibili, per seriale) ✅ world.mobiles_in_range, world.items_in_range, world.players, world.line_of_sight, world.standing_z, world.region, world.is_occupied, world.carries, world.distance
Creare e spostare oggetti dagli script ✅ Creazione a terra o in uno zaino, bottino in un contenitore, spostamento, equipaggiamento, ricerca per template, consumo, eliminazione
Messaggi, cursore bersaglio e richieste dagli script ✅ npc.say, mobile.message, item.message, item.message_cliloc, target.pick, prompt.ask, gump
Timer di script ✅
Timer mantenuti da un oggetto e salvati con il mondo 🟡 Oggetti: item.start_timer e on_timer, mantenuti tra i riavvii; non sui mobile
Comandi dai plugin ✅ In C#; non da Lua
Contenuti definiti dai dati ✅ Template e file di dati TOML, validati all’avvio
Importazione dei contenuti di un altro emulatore ✅ Oggetti, bottino, NPC, nomi, oggetti iniziali, elenchi NPC e regioni di spawn UOX3; spawner, decorazione, insegne, teletrasporti, luoghi nominati e forzieri del tesoro ModernUO
Protezione dagli script fuori controllo ✅ Budget di istruzioni per ripresa e per blocco
Valori persistenti sugli oggetti ✅ Props su oggetti, NPC e giocatori, salvate insieme a essi
Dati globali persistenti degli script ✅ world.get_prop, world.set_prop: props dell’intero shard salvate con il mondo
Debugger di script per un IDE ❌ Solo definizioni per il completamento nell’editor
Profilazione degli script 🟡 Metriche degli script; nessun profilo per funzione
File, HTTP, SQL ed email dagli script ❌
Servizi TCP esterni gestiti dagli script ❌
Gump e finestre di dialogo da script ✅ Layout XML con callback Lua, slot e builder; vedi Il tuo primo gump
Hook che sostituiscono le regole fondamentali (verifica abilità, combattimento, decadimento) 🟡 Combattimento: lo script di un NPC cambia il danno e la cura, annulla un colpo e rifiuta una morte; lo script di un oggetto ne impedisce il decadimento (can_decay); lo script di un venditore rifiuta una riga di una vendita (can_buy, can_sell); nessuna verifica abilità
Messaggi di sistema sostituibili ✅ Ogni messaggio nei file data/messages

Sistema Moongate Note
Cursore bersaglio ✅
Messaggi localizzati ✅ 8 lingue; una lingua può essere suddivisa in data/messages/<language>/*.toml
Razze 🟡 Corpi e aspetti di umani, elfi e gargoyle; nessuna meccanica di gioco razziale
Gump ✅ Layout XML verificati da un XSD, script Lua, gump costruiti in Lua, gump concatenati, risposte verificate
Menu ❌
Menu contestuali 🟡 Il menu di un mobile o di un oggetto: Apri paperdoll e Apri zaino, e le voci che aggiunge uno script Lua (on_context_menu, on_context_menu_select), come Apri cassetta di sicurezza del banchiere; la scelta viene verificata rispetto al menu inviato. Le icone del client migliorato scelgono la voce con il suo testo. I venditori aggiungono Compra e Vendi, gli stallieri Stalla e Ritira tutto, un animale i suoi nove comandi per il padrone e tre per i suoi amici; ancora nessuna voce per addomesticamento o party
Barra dei buff ❌
Controlli della sequenza e della velocità di camminata ✅
Peso e sovraccarico ✅ Ciò che un mobile trasporta e può trasportare (40 e 3.5 per punto di forza) viene conteggiato e mostrato; un giocatore sovraccarico si stanca a ogni passo
Effetti temporanei (buff e debuff) 🟡 Bonus e maledizioni di forza, destrezza e intelligenza (pozioni e incantesimi) e visione notturna, a tempo, mai salvati; veleno, salvato; l’armatura di Protection e Reactive Armor, conservate con il mobile fino alla scadenza; una paralisi e un travestimento (Incognito, Polymorph), conservati con il mobile e ripresi all’accesso; ancora niente barra dei buff
Richieste di testo e input ✅ Prompt Unicode (0xC2), dagli script con il modulo prompt
Effetti visivi: movimento, fulmini, particelle ✅ Dagli script con il modulo effect; particelle per l’Enhanced Client
Suoni e musica ✅ Suoni dagli script, tuoni e musica delle regioni
Lingua del client ❌ Una lingua del server per tutti, tra le 8 fornite
Negozio e altri pannelli moderni del client ❌

Sistemi assenti dalla maggior parte degli emulatori:

  • Server di login e realm di gioco come processi separati, individuati tramite Redis, con ticket di trasferimento monouso.
  • Persistenza PostgreSQL con migrazioni versionate, applicate da mgctl migrate mentre il server è fermo, oppure dal server stesso all’avvio quando persistence.auto_apply_migrations è attivo.
  • Salvataggi del mondo che non fermano mai il gioco: circa 0.1 s sul ciclo di gioco per copiare 173.000 entità, poi solo le righe cambiate vengono scritte in background; vedi Un salvataggio non ferma il gioco.
  • Un’API di amministrazione gRPC con TLS.
  • Una prigione gestita da un gump: lo staff sceglie una cella e i giorni, e il server fa il resto, dalla multa e dalla nota di rilascio a fine pena al pane e all’acqua nella cella.
  • Plugin che aggiungono servizi, comandi, moduli Lua, metriche, entità e le proprie impostazioni.
  • Immagini Docker, un esempio con più realm e un chart Helm per Kubernetes.

Creato con ❤️ da Tom

Offrimi un caffè