Skip to content

Splintertree

An educational open-source MMO server emulator for the Classic era. Rust workspace, microservice architecture, NATS message bus, PostgreSQL persistence.

Educational project

Splintertree is built and published for research and learning. The project ships no Blizzard data, does not operate any public realms, and does not recommend running public realms with it. World of Warcraft is © Blizzard Entertainment, Inc. — Splintertree is not affiliated with or endorsed by Blizzard.

  • Quick start


    Spin up the cluster locally with Docker Compose to read the code in motion — entirely on your own machine.

    Get started

  • Modding


    Hot-loadable .rcmod bundles. YAML-driven content, Python scripting, server-pushed UI — the most interesting part of the codebase to read.

    Modding guide

  • Architecture


    Sixteen Rust crates over a NATS bus. One process per (map_id, instance_id) — maps scale horizontally without cluster restarts.

    Read more

  • Scripting


    Two paths in the same world worker — embedded Python with ~22 AC-style base classes, plus AzerothCore-compatible Smart AI rules.

    Scripting overview

What the codebase explores

Microservice-first emulation. Sixteen Rust crates over a NATS bus, not a single binary monolith. Per-instance map workers — one process per (map_id, instance_id), hot-spawned by the orchestrator. A multi-replica orchestrator behind a NATS queue group with PostgreSQL advisory-lock coordination — no single point of failure even in a research deployment.

Multi-tenant primitives from day one. The cluster is designed so a single instance could host multiple realms with cross-realm matchmaking (BG / arena / LFR) and cross-realm transfers that preserve session state. Built as an exercise in distributed-systems design — not as an invitation to point at the open internet.

Modding as the content layer. The Splintertree core stays content-neutral. Every gameplay rule, balance tweak, custom NPC, new item, custom HUD, or schema change ships as a self-contained .rcmod bundle — a useful pattern study independent of the game domain.

What Splintertree is not

  • Not a way to play World of Warcraft. The repository contains no Blizzard assets, DBC tables, MPQs, or game-content text. Bringing the project up does not give you a playable game.
  • Not an operated service. There is no Splintertree-run server, no public realm list, no account registration, no support channel for players.
  • Not recommended for public hosting. Running an emulator open to the internet has legal, security, and operational implications well beyond what this educational project is set up to advise on.

Source on GitHub Architecture overview