An emulator is a stand-in for the publisher's servers
When people say a private server runs on an emulator, they mean the server software is a re-creation. It listens to the official client, understands its messages and answers them the way the original service would. Wikipedia defines an emulator in general as 'hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest).' A game server emulator applies that idea to an online service.
This differs from the console emulators you may know. A console emulator runs old games locally; a server emulator runs the other side of an online connection. Our private servers directory lists servers by game, and the glossary defines the words used below.
“hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest).”
The parts of a server emulator
Almost every emulator project splits into the same pieces. Knowing them helps you ask operators sensible questions about stability and updates.
| Part | Job | Why it matters |
|---|---|---|
| Core (world or game server) | Runs rules, combat, movement and events | Quality of the core sets stability and accuracy |
| Login or auth server | Handles accounts and tokens | Security and account safety |
| Database | Stores characters, items, quests and spawns | Content accuracy lives here, plus backups |
| Client patch or launcher | Points the client at the new server | The usual place for malware worries |
| Web panel | Registration, rankings, donations, votes | Where most operator features are added |
The core and the database are separate on purpose. In the World of Warcraft emulation scene, many servers share an open-source core and differ mainly in database content, which is why two servers on the same version can behave differently. Wikipedia notes that private servers are often reverse-engineered 'using incomplete information', so missing mechanics are normal even on good projects.
Real emulator projects
Open-source emulators document themselves, which makes them the easiest to verify. The table summarises what each project says on its own repository or site.
| Project | Game | Language and license | Detail |
|---|---|---|---|
| MaNGOS | World of Warcraft | C++, open source | Branches Zero (Vanilla), One (TBC), Two (WotLK), Three (Cataclysm), Four (MoP); announced about August 2005 |
| CMaNGOS (mangos-classic) | World of Warcraft | GPL-2.0 | Goal stated as 'Doing Emulation Right!' |
| TrinityCore | World of Warcraft | C++, GPL-2.0 | Branches for 3.3.5a, Cataclysm Classic 4.4.2 and master; derived from MaNGOS |
| AzerothCore | World of Warcraft | C++, GPLv2 | Draws on MaNGOS, TrinityCore and SunwellCore |
| rAthena | Ragnarok Online | C++, GPL-3.0 | Needs MySQL or MariaDB 5 or newer |
| bancho.py | osu! | Python 3.11+, MIT | Developed mainly by the Akatsuki team |
| TravianZ | Travian | PHP 8.3, open source | Maintained clone of Travian T3.6 |
| PvPGN | Diablo 2 | Open source | Official development stalled in 2011; forks such as PvPGN-PRO continue |
Licenses matter to operators. The GPL licenses used by TrinityCore, CMaNGOS and rAthena carry conditions on sharing modified code, whereas bancho.py is MIT licensed, which is more permissive. The licenses cover the server code only. They say nothing about the publisher's client or assets, and those are a separate matter from the open-source terms.
Emulator versus custom server files
Not every game has an open-source emulator. Games such as MU Online, Silkroad Online, Metin2 and Aion usually run on server files that circulate privately, are modified by each operator, and rarely have public documentation. That has consequences for players.
Open-source core vs private server files
Open-source core
- Public issue tracker and changelog
- Many contributors, so fixes spread
- Easier to compare versions between servers
- Operators can be audited by the community
Private server files
- Little public documentation
- Depends on the operator's developers
- Stability and exploits vary widely
- Harder to know what the files contain
The distinction is visible in our hubs. Ragnarok and osu! servers often name their core, while MU Online, Silkroad and Metin2 servers tend to describe features and rates instead. Neither is automatically better, but the first group is easier to evaluate.
How the client finds the server
The client does not know it is talking to an emulator. Most clients read a server address from a config file, a launcher or a patched executable, and from then on they exchange the same kinds of messages they would with the official service. That is also why client and server versions must match exactly: if the client expects a message the core does not understand, the connection fails or the game behaves oddly.
| Game | How versions are labelled | Example |
|---|---|---|
| World of Warcraft | Client build number | 3.3.5a is build 12340 in TrinityCore's README |
| MU Online | Season and part | Season 6 Part 1 began on 7 Oct 2010 in Korea |
| Lineage II | Chronicle | Interlude was released in Korea on 13 Dec 2006 |
| Ragnarok Online | Episode, with or without Renewal | Renewal arrived on official servers in 2010 |
| osu! | Client release | Titanic and others offer legacy clients from 2008 to 2015 |
Our segment pages sort servers by these labels, for instance MU Season 6 and WoW Wrath of the Lich King. When a server says 'latest', ask which build it means.
Common problems with emulated servers
- Missing or inaccurate mechanics, since emulators are built from incomplete information.
- Exploits that duplicate items or gold, which can wreck an economy overnight.
- Crashes under load when the core was written for small populations.
- Abandoned projects where the lead developer leaves and no one can patch.
- Custom launchers that bundle more than a patcher.
What to ask an operator
- 1
Which core and version do you run?
A named, maintained core is a good sign.
- 2
Who maintains it?
One developer or a team? How fast are bug fixes?
- 3
Do you publish patch notes?
Regular notes show active work.
- 4
How is the database backed up?
Backups decide what survives a crash.
- 5
What does the launcher do?
It should only patch and start the client. See the safety guide.
Good operators answer these questions without fuss. Evasive answers on the core, the launcher or the backup routine are worth noting, especially if the server also asks for donations. A project that is open about its stack, such as one that links its repository or names its core and version in the Discord, is easier to trust and easier to compare against alternatives.
- MaNGOS announced
- ~Aug 2005
- PvPGN official development stalled
- 2011
- TrinityCore 3.3.5 client build
- 12340
Per its repository page
Forks continue
3.3.5a, from its README
For more on what to expect before you join, see how to join a private server and the selection guide. If you are interested in running your own, start from the community-building guide, and use each hub to study active examples.