![]() |
VOOZH | about |
dotnet add package Moongate.UO.Data --version 1.4.0
NuGet\Install-Package Moongate.UO.Data -Version 1.4.0
<PackageReference Include="Moongate.UO.Data" Version="1.4.0" />
<PackageVersion Include="Moongate.UO.Data" Version="1.4.0" />Directory.Packages.props
<PackageReference Include="Moongate.UO.Data" />Project file
paket add Moongate.UO.Data --version 1.4.0
#r "nuget: Moongate.UO.Data, 1.4.0"
#:package Moongate.UO.Data@1.4.0
#addin nuget:?package=Moongate.UO.Data&version=1.4.0Install as a Cake Addin
#tool nuget:?package=Moongate.UO.Data&version=1.4.0Install as a Cake Tool
<p align="center"> <img src="images/moongate_logo.png" alt="Moongate logo" width="220" /> </p>
<p align="center"> <img src="https://img.shields.io/badge/platform-.NET%2010-blueviolet" alt=".NET 10"> <img src="https://img.shields.io/badge/scripting-Lua-yellow" alt="Lua Scripting"> <img src="https://img.shields.io/badge/license-GPL--3.0-blue" alt="GPL-3.0 License"> </p>
👁 CI
👁 Tests
👁 Coverage
👁 FOSSA Status
👁 Docker Image
Moongate v2 is a modern Ultima Online server built with .NET 10, deterministic game-loop processing, Lua scripting, and a chunk/sector-based spatial world model.
I am actively looking for contributors and reviewers.
CI workflow only, to keep feedback fast.main, with scheduled/manual execution for the heavier audits.GitHub Release Assets workflow.DISCORD_CHANGELOG_WEBHOOK_URL to enable changelog posting.CHANGELOG.md, include a generated contributors section, and are posted to Discord after
the GitHub release is created.NuGet Publish workflow.NUGET_KEY to enable publishing to nuget.org.Moongate.Templates, which provides dotnet new moongate-plugin, and
Moongate.TemplateValidator, which provides moongate-template.git clone https://github.com/moongate-community/moongate.git
cd moongate
dotnet run --project src/Moongate.Server -- --root-directory ~/moongate --uo-directory ~/uo
Run this every time you change shard template data under your Moongate root, especially ~/moongate/templates/items,
~/moongate/templates/mobiles, ~/moongate/templates/loot, ~/moongate/templates/factions,
~/moongate/templates/sell_profiles, or ~/moongate/data/containers.
Install the validator tool from nuget.org:
dotnet tool install --global Moongate.TemplateValidator
Run the validator:
moongate-template validate --root-directory ~/moongate
Each validation run prints the validator version and the target root directory before the validation summary.
Update an existing global installation:
dotnet tool update --global Moongate.TemplateValidator
If you are developing inside this repository and want to install from a locally packed artifact instead:
dotnet pack tools/Moongate.TemplateValidator/Moongate.TemplateValidator.csproj -o ./tools/Moongate.TemplateValidator/nupkg
dotnet tool install --tool-path ./artifacts/template-tool --add-source ./tools/Moongate.TemplateValidator/nupkg Moongate.TemplateValidator
Run the local installation:
./artifacts/template-tool/moongate-template validate --root-directory ~/moongate
Published docs: docs/articles/operations/template-validation.md
git clone https://github.com/moongate-community/moongate.git
cd moongate
docker build -t moongate:local .
docker run --rm -it \
-p 2593:2593 \
-p 8088:8088 \
-v "$HOME/moongate:/app/moongate" \
-v "$HOME/uo:/app/uo" \
moongate:local
Server port: 2593
UDP ping port: 12000
HTTP/UI API port: 8088
Transport encryption:
game.encryptionMode = "Both" in moongate.json.docs/articles/networking/client-encryption.mdDefault credentials: admin / password
Change them immediately from the server console with .password.
Player portal routes:
http://localhost:5173/portal/loginhttp://localhost:8088/portal/loginhttp://localhost:8088/portal/profilecd ui
npm install
npm run dev
UI default URL: http://localhost:8088/
plugins/<plugin-id>/ directorymoongate_data/templates/books/*.txt, with support for both read-only content and writable
books (0x93 header saves, 0x66 page saves)ui/) for item templates and server/admin workflows/portal/login, /portal/profile,
/api/portal/me, /api/portal/me/password)IWorldGenerator) and command-triggered runs (example: doors).Level and Experience from UOMobileEntity (they are not part of the base
UO mobile model).orion.lua) with speech loop (my cat is always hungry and always
looking for food).
docs/index.mddocs/articles/getting-started/docs/articles/architecture/docs/articles/scripting/create-your-first-content.mddocs/articles/scripting/create-your-first-systems.mddocs/articles/scripting/ including authored dialogues, quests, public moongates, scheduled events, starting loadout, and loot containersdocs/articles/persistence/docs/articles/networking/ including client encryption and the UDP ping serverdocs/articles/operations/ including template validation, in-game item admin commands, and help ticket workflowPublished docs: https://moongate-community.github.io/moongate/
benchmarks/Moongate.BenchmarksTeleportMapChangeBenchmark.HandleCrossMapTeleport_ColdDestinationTeleportMapChangeBenchmark.HandleSameMapTeleport_ColdDestination_WithSelfRefresh
2.850 ms, mean 4.284 ms, first cold outlier 19.939 ms, allocated 1.85 MB1.947 ms, mean 2.908 ms, first cold outlier 13.514 ms, allocated 1.22 MBNpcDialogueSchedulingBenchmark
2.729 us, mean 183.0 us, first cold outlier 2.133 ms, allocated 592 B1.170 ms, mean 1.258 ms, first cold outlier 2.169 ms, allocated 1552 B1.270 ms, mean 1.073 ms, first cold outlier 2.696 ms, allocated 1288 Btools/Moongate.Stressdocs/articles/operations/stress-test.mddocs/articles/networking/packet-handler-performance.mdMoongate v2 is inspired by the UO emulator ecosystem.
Special thanks:
Data imported/adapted from ModernUO distribution is used in selected world datasets (decoration, locations, signs).
Contributions are welcome. Please open an issue/discussion first for non-trivial changes.
CODE_CONVENTION.mdGPL-3.0. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 3 NuGet packages that depend on Moongate.UO.Data:
| Package | Downloads |
|---|---|
|
Moongate.Persistence
Snapshot and journal persistence implementations for Moongate runtime entities. |
|
|
Moongate.Network.Packets
Ultima Online packet contracts, packet registry, and protocol packet implementations for Moongate. |
|
|
Moongate.Server.Abstractions
Plugin-facing server contracts and registration attributes for Moongate. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.4.0 | 146 | 5/19/2026 |
| 1.3.0 | 156 | 4/3/2026 |
| 1.2.0 | 157 | 3/27/2026 |
| 1.1.0 | 140 | 3/24/2026 |
| 1.0.0 | 141 | 3/20/2026 |
| 0.1.0-develop.5 | 55 | 6/10/2026 |
| 0.1.0-develop.4 | 48 | 6/10/2026 |
| 0.1.0-develop.3 | 50 | 6/9/2026 |
| 0.1.0-develop.2 | 53 | 6/9/2026 |
| 0.1.0-develop.1 | 47 | 6/9/2026 |