Getting Started

Getting Started

Firelands (firelands-next) is a WoW Cataclysm 4.3.4 private-server emulator (client build 15595) built with modern software engineering: hexagonal architecture, test-driven development, and C++20 throughout.

Repository: github.com/FirelandsProject/firelands-next

What Firelands Provides

FeatureDetail
Auth serverSRP-6a authentication, realm list, optional REST login
World serverCharacter gameplay, spells, combat, gossip, GM tools
Three databasesfirelands_auth, firelands_characters, firelands_world
Lua scriptingServer-side customization without recompiling
GM commandsIn-game . commands and FTXUI interactive console
DevTools CLIAccount and realm management from the terminal

Tech Stack

LanguageC++20
BuildCMake 3.10+ + Ninja (required)
NetworkingBoost.Asio (C++20 coroutines)
DatabaseMySQL / MariaDB 8
Auth cryptoSRP-6a, OpenSSL
Configyaml-cpp (authserver.yaml, worldserver.yaml)
Loggingspdlog 1.14.1
TestingGoogleTest 1.14.0 + GMock
ScriptingLua 5.4.7
Console UIFTXUI 5.0.0
ArchivesStormLib 9.26 (extractors / vmap)
DeployDocker Compose + GitHub Actions

Architecture Overview

Firelands follows Hexagonal Architecture (Ports & Adapters). Dependencies flow inward:

Infrastructure → Application → Domain → Shared
src/
├── shared/           # Config, logging, crypto, DBC, wire formats
├── domain/           # Entities, world model, repository ports
├── application/      # Use cases, services, application ports
├── infrastructure/   # MySQL, ASIO, Lua, DBC stores
├── auth/             # Auth server executable
├── world/            # Game server executable
└── tools/            # FirelandsDevTools

See Architecture for full layer definitions, all ports, adapters, and domain entities.

Servers

ServerBinaryDefault portPurpose
Authbuild/bin/auth3724SRP login, realm list, REST (8081)
Worldbuild/bin/world8085Gameplay, characters, Lua, GM console
DevToolsbuild/bin/FirelandsDevToolsCLI account/realm tool

Quick Start

git clone https://github.com/FirelandsProject/firelands-next
cd firelands-next
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
ninja -C build auth world
docker-compose up -d db
./build/bin/auth
./build/bin/world

Full setup details: Developer Setup.

Documentation

Core guides

Module deep-dives

Gameplay & staff

Tooling & data pipeline