GitPedia

OpenMU

This project aims to create an easy to use, extendable and customizable server for a MMORPG called "MU Online".

From MUnique·Updated June 18, 2026·View on GitHub·

This project aims to create an easy to use, extendable and customizable server for a MMORPG called "MU Online". The server supports multiple versions of the game, but the main focus is version of Season 6 Episode 3 using the ENG (english) protocol. Additionally, the long-term focus is on the [open source client](https://github.com/sven-n/MuMain) which supports a slightly extended network protocol. However, parts of the software can also be suitable for the development of other games, even for ot... The project is written primarily in C#, distributed under the MIT License license, first published in 2016. It has gained significant community traction with 1,072 stars and 533 forks on GitHub. Key topics include: games, hacktoberfest, mmorpg, mmorpg-server, mu.

Latest release: v0.9.0Version 0.9.0 - Tools Update
November 24, 2024View Changelog →

OpenMU Project

License
Codacy Badge
Ask DeepWiki
Discord chat

PlatformBuild Status
WindowsWindows Build Status
Linux (Docker)Docker Build Status
NuGet Packages
MUnique.OpenMU.NetworkNuGet Badge
MUnique.OpenMU.Network.PacketsNuGet Badge

This project aims to create an easy to use, extendable and customizable server
for a MMORPG called "MU Online".
The server supports multiple versions of the game, but the main focus is
version of Season 6 Episode 3 using the ENG (english) protocol. Additionally,
the long-term focus is on the open source client
which supports a slightly extended network protocol.
However, parts of the software can also be suitable for the development of
other games, even for other kind of games.

The code is a complete rewrite from scratch - it's not based on pre-existing
projects, and it's also explicitly not based on decompiled server sources or
their countless derivates.

There also exists a blog which may contain some valuable
information about this development.

Current project state

This project is currently under development without any release.
You can try the current state by using the available docker image, also
mentioned in the quick start guide.

Licensing

This project is released under the MIT license (see LICENSE file).

Used technologies

The project is mainly written in C# and targets .NET 10.0.

The servers admin panel is hosted on an embedded ASP.NET Core webserver (Kestrel)
and implemented as Blazor Server App.

At the moment the persistence layer uses the Entity Framework Core
and PostgreSQL as database. Additionally, it's
also possible to start it in a non-persistent in-memory mode.

The project is prepared to be hosted in a single process or distributed in multiple processes.
For the communication between the processes, we use Dapr.

Deployment

We provide Docker images and docker-compose files for easy deployment.
Please take a look at the deploy-folder of this project.

Contributions

Contributions are welcome if they meet the following criteria:

  • Language is english.

  • Code should be StyleCop compliant - this project uses the StyleCop.Analyzers
    for VS2022 so you should see issues directly as warnings.

  • Coding style (naming, etc.) and quality should fit to the current state.

  • No code copied/converted from the well-known decompiled source of the
    original server.

If you want to contribute, please create a new issue for the feature or bug (if
the issue doesn't exist yet) so we can see who is working on something and can
discuss possible solutions. If it's a small thing, you can also just send a
pull request without adding an issue.

Apart of that, contributions from non-developers are welcome as well. You can
test the server, submit issues or suggestions, packet descriptions or
documentations about the concepts and mechanics of the game itself. Please use
markdown files/syntax for this purpose.

If you have questions about that, don't hesitate to ask in our discord channel
or by submitting an issue.

How to contribute code

If you want to contribute code, please do the following steps:

  1. fork this project from the original MUnique OpenMU Project.
  2. create a feature branch from the master branch
  3. commit your changes to your feature branch
  4. please test your changes, don't send AI generated code without testing it yourself
  5. submit a pull request to the original master branch
  6. wait for the code review and merge :)

How to use

Please have a look at the quick start guide.

Gameplay differences to the original server

This project doesn't have the goal to copy the original MU Online server
behavior to 100 %. This is not entirely possible, because the original server
is written in another programming language and has a completely different
architecture.
With some points we make our life easier in this project, with other points we
try to improve the gameplay.

Calculations

The calculations of attribute values (like character damage decrement etc.) are
done with 32 bit float numbers and without rounding off, like the original
server does at some places.
E.g. distributed stat points always have effect, while in the original server
effects might get rounded down. For example, when 4 points of strength gives 1
base damage, the original server doesn't calculate a fraction of 1 damage for
3 points, while OpenMU calculates 0.75 damage. This damage
has then an effect in further calculations.

Countdown when changing character or sub-server

The original server uses a five second countdown when a player wants to change
his character or the sub-server. Maybe this was done for some performance
reasons, as the original server would then save the character/account data.
We think that's really annoying and see no real value in that, so we don't use
a countdown.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from MUnique/OpenMU via the GitHub API.Last fetched: 6/18/2026