ModernUO [](https://muo.gg/discord) [](https://muo.gg/reddit/) [](https://muo.gg/twitter)
=====
##### Ultima Online Server Emulator for the modern era!
[](https://github.com/modernuo/ModernUO/blob/master/LICENSE)
[](https://github.com/modernuo/ModernUO/stargazers)
[](https://github.com/modernuo/ModernUO/issues)
[](https://github.com/modernuo/ModernUO/actions)
[](https://dev.azure.com/modernuo/modernuo/_build/latest?definitionId=1&branchName=main)
## Requirements
#### Supported Operating Systems
[](https://www.microsoft.com/en-US/evalcenter/evaluate-windows-server-2022)

[](https://www.debian.org/distrib/)
[](https://ubuntu.com/download/server)
[](https://alpinelinux.org/downloads/)
[](https://getfedora.org/en/server/download/)
[](https://access.redhat.com/downloads)
[](https://www.centos.org/download/)
[](https://almalinux.org/get-almalinux/)
[](https://get.opensuse.org/)
[](https://www.suse.com/download/sles/)
[](https://linuxmint.com/download.php)
[](https://archlinux.org/download/)
#### Required Frameworks
##### All Operating Systems
[](https://dotnet.microsoft.com/download/dotnet/10.0)
##### Windows
[](https://aka.ms/vc14/vc_redist.x64.exe)
#### Hardware
| Use | vCPU | RAM | Storage |
|---|---|---|---|
| Development / test | 2 **dedicated** | 2 GB | SSD |
| Small live shard (< 50 concurrent) | 4 dedicated | 4 GB | NVMe |
| Medium (50–200) | 4–8 | 8 GB | NVMe |
| Large (200+) | 8+, high clock | 16 GB+ | NVMe |
Game logic is single-threaded, so **single-core clock speed matters more than core count**, and
**dedicated vCPU matters more than either** — burstable or shared plans throttle once credits run
out, which is the most common cause of unexplained lag spikes. Save size drives RAM more than
player count does.
See [dev-docs/server-requirements.md](dev-docs/server-requirements.md) for the reasoning and tuning
options.
#### Development
[](https://git-scm.com/downloads)
[](https://dotnet.microsoft.com/download/dotnet/10.0)
#### Supported IDEs
## Getting Started
- Install prerequisite [requirements](https://github.com/modernuo/ModernUO#requirements)
- Clone this repository (or download the [latest](https://github.com/modernuo/ModernUO/archive/refs/heads/main.zip)):
- `git clone https://github.com/modernuo/ModernUO.git`
- Open `ModernUO.sln` to start developing
## Building/Publishing
#### Interactive Mode (Recommended for new users)
Run `./publish.cmd` (Windows) or `./publish.sh` (Linux/macOS) with no arguments to launch the guided build tool. It will:
- Check prerequisites (.NET SDK, native libraries)
- Walk you through configuration and platform selection
- Build and publish the server to the `Distribution` directory
- Show deployment instructions for cross-compiled builds
#### Command Line
```shell
./publish.cmd [release|debug] [os] [arch]
```
- `os` - [Supported operating systems](https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md)
- `win` - [Windows](https://learn.microsoft.com/en-us/dotnet/core/install/windows)
- `osx` - [macOS](https://learn.microsoft.com/en-us/dotnet/core/install/macos)
- `linux` - [Linux](https://learn.microsoft.com/en-us/dotnet/core/install/linux)
- `arch`
- `x64` - Intel/AMD 64-bit
- `arm64` - ARM 64-bit
## Linux Prerequisites
### Fedora, CentOS, RHEL, AlmaLinux, Rocky, etc
```shell
dnf upgrade --refresh -y
# RHEL-family distributions (CentOS Stream, AlmaLinux, Rocky, RHEL) need CRB and EPEL enabled.
# Fedora skips this block.
dnf install -y dnf-plugins-core
dnf config-manager --set-enabled crb
dnf install -y epel-release
# Prerequisites
dnf install -y findutils libicu libdeflate libargon2 tzdata
```
### Ubuntu, Debian, etc
```shell
apt-get update -y
# The ICU runtime package carries the ABI version in its name (libicu74, libicu76, …) and has no
# stable alias, so match it by pattern rather than pinning a release-specific name.
apt-get install -y '^libicu[0-9]+$' libdeflate0 libargon2-1 tzdata
```
Only the runtime libraries are needed — the `-dev`/`-devel` packages are not. Run
`./build-tool --check-prereqs` to check the current machine and print the exact packages your
release needs.
`zstd` is not listed because ZstdNet bundles `libzstd` for every platform, and `liburing` is not
listed because IORingGroup issues `io_uring` syscalls directly.
If the shard's configured time zone is a legacy alias such as `US/Eastern`, Debian 12 and Ubuntu
24.04 also need `tzdata-legacy`. See [Platform Prerequisites](dev-docs/platform-prerequisites.md)
for what each dependency is for and what breaks without it.
## OSX Requirements
```shell
brew install icu4c libdeflate argon2
```
## Running the Server
- Follow the [publish](https://github.com/modernuo/ModernUO#buildingpublishing) instructions
- The `Distribution` directory is portable — copy it to your production server for deployment
- Run `ModernUO.exe` or `dotnet ModernUO.dll` from the `Distribution` directory
- On first run, the server will prompt you to configure game data file locations
## Troubleshooting / FAQ
- See [FAQ](./FAQ.md)
## Want to sponsor?
Thank you for supporting us! You can find out how by visiting the [sponsors](./SPONSORS.md) page.
## Collaborators
[](https://github.com/kamronbatman)
[](https://github.com/mark1145)
## Thanks
- RunUO Team & Community
- [Voxpire](https://github.com/Voxpire), the ServUO Team & Community
- [Karasho](https://github.com/andreakarasho), [Jaedan](https://github.com/jaedan) and the ClassicUO Community
Development Tools & Plugins provided with ♥ by


## Code Signing Policy
Free code signing provided by [SignPath.io](https://about.signpath.io), certificate by [SignPath Foundation](https://signpath.org).
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it
### Teams & Roles
Approvers & Committers: [Development Team](https://github.com/orgs/modernuo/teams/development-team)