* Start rewrite, add vcpkg * Simple vcpkg manifest, will almost certainly need tweaking * Remove cmake ext we wont be using anymore * Update vcpkg to no longer be from 2022, update cmake lists (wip) * Add finds to the toplevel cmakelists * WIP, luabind and perlbind build. Common only partially builds. * Fix common build. * shared_memory compiles * client files compile * Tests and more cmake version updates * World, had to swap out zlib-ng for now because it wasn't playing nicely along side the zlib install. May revisit. * UCS compiles now too! * queryserv and eqlaunch * loginserver works * Zone works but is messy, tomorrow futher cleanup! * Cleanup main file * remove old zlibng, remove perlwrap, remove hc * More cleanup * vcpkg baseline set for CI * Remove pkg-config, it's the suggested way to use luajit with vcpkg but it causes issues with CI and might be a pain point for windows users * Actually add file * Set perlbind include dir * Perl link got lost * PERL_SET_INTERP causes an issue on newer versions of perl on windows because a symbol is not properly exported in their API, change the lines so it's basically what it used to be * Remove static unix linking, we dont do automated released anymore and this was tightly coupled to that. Can explore this again if we decide to change that. * Remove unused submodules, set cmake policy for boost * Fix some cereal includes * Improve some boilerplate, I'd still like to do better about getting linker stuff set. * Going through and cleaning up the build. * Fix world, separate out data_buckets. * add fixes for other servers * fix zone * Fix client files, loginserver and tests * Newer versions of libmariadb default to tls forced on, return to the default of not forcing that. auto_login were breaking on linux builds loginserver wasn't setting proper openssl compile flag * Move set out of a giant cpp file include. * Convert show * convert find * Add uuid to unix builds * Remove some cpp includes. * Restructure to remove more things. * change db update manifest to header change build yml * Move world CLI include cpps to cmake. * Move zone cli out of source and into cmake * Sidecar stuff wont directly include cpp files now too. * Fix uuid-dev missing on linux runner * Reorg common cmake file * Some cleanup * Fix libsodium support (oops). Fix perl support (more oops) * Change doc --------- Co-authored-by: KimLS <KimLS@peqtgc.com>
EQEmulator Server Platform
EQEmulator - A Fan-Made Project Honoring a Legendary MMORPG
EQEmulator is a passion-driven, open source server emulator project dedicated to preserving and celebrating the legacy of a groundbreaking classic MMORPG.
For over two decades and continuing, EQEmulator has served as a fan tribute, providing tools and technology that allow players to explore, customize, and experience the legendary game's iconic gameplay in new ways. This project exists solely out of deep admiration for the original developers, artists, designers, and visionaries who created one of the most influential online worlds of all time.
We do not claim ownership of the original game or its assets. All credit and respect belong to the original creators and Daybreak Game Company, whose work continues to inspire generations of players and developers alike.
EQEmulator has for over 20 years and always will be a fan-based, non-commercial open-source effort made by players, for players—preserving the legacy of the game while empowering community-driven creativity, learning and joy that the game and its creators has so strongly inspired in us all.
Technical Overview & Reverse Engineering Effort
EQEmulator represents over two decades of collaborative reverse engineering, building the server from the ground up without access to the original source code. This effort was achieved entirely through community-driven analysis, network protocol decoding, and in-game behavioral research.
💡 How We Did It
Reverse Engineering Every system, packet, opcode, and game mechanic has been reconstructed through countless hours of live packet sniffing, client disassembly, and in-game experimentation by dedicated contributors over the years.
No proprietary code or server sources were ever used.
All implementations are the result of clean-room engineering.
🛠️ Technology Stack
C++ Core Engine
- High-performance networking and gameplay logic built in C++
- Cross-platform support for Linux and Windows
MySQL / MariaDB Backend
- Fully structured schema with over 200+ tables
- Supports content customization, expansions, and custom worlds
Scripting Engine
- Native support for Perl and Lua scripting
- Powerfully extendable for quests, NPC behaviors, and custom events
Open Source Content Database
- Includes ProjectEQ’s world data up through Dragons of Norrath
- 100% customizable to create entirely new game worlds
🚀 Why It Matters
🧬 EQEmulator stands as a technical preservation project, ensuring that the magic of classic and custom servers lives on for future generations of players, tinkerers, and game designers.
We humbly acknowledge and thank the original developers for creating one of the most influential online experiences in gaming history.
🧑💻🖥️ Supported Clients
| Titanium Edition | Secrets of Faydwer | Seeds of Destruction | Underfoot | Rain of Fear |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
📚 Resources
| Resource | Badges | Link |
|---|---|---|
| EQEmulator Docs | docs.eqemu.io | |
| Discord Community | Join Discord | |
| Latest Release | View Releases | |
| License | View License | |
| Build Status | View Build Status | |
| Docker Pulls | Docker Hub | |
| Contributions | Closed PRs & Issues |
🛠️ Getting Started
If you want to set up your own EQEmulator server, please refer to the current server installation guides. We've had 100,000s of players and developers use our guides to set up their own servers, and we hope you will too!
🗂️ Related Repositories
| Repository | Description |
|---|---|
| ProjectEQ Quests | Official quests and event scripts for ProjectEQ |
| Maps | EQEmu-compatible zone maps |
| Installer Resources | Scripts and assets for setting up EQEmu servers |
| Zone Utilities | Utilities for parsing, rendering, and manipulating EQ zone files |




