Alex c84df0d5ba
Some checks are pending
Build / Linux (push) Waiting to run
Build / Windows (push) Waiting to run
Build Improvements (#5033)
* 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>
2025-12-13 19:56:37 -08:00
2025-10-29 22:22:23 -07:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2018-08-04 15:26:21 -04:00
2013-02-16 15:00:23 -08:00
2025-12-13 19:56:37 -08:00
2025-12-13 19:56:37 -08:00
2025-09-17 01:31:48 -05:00
2021-09-09 09:52:26 -05:00
2025-12-13 19:56:37 -08:00
2025-09-17 01:31:48 -05:00
2019-08-15 20:21:09 -05:00
2025-12-13 19:56:37 -08:00

EQEmulator Server Platform

EQEmulator - A Fan-Made Project Honoring a Legendary MMORPG

Contributors Discord Docs License Latest Release Release Date Github All Releases Build Status GitHub Issues or Pull Requests Docker Pulls Build Status Official


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 ProjectEQs 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 docs.eqemu.io
Discord Community Discord Join Discord
Latest Release Latest Release
Release Date
All Releases
View Releases
License License View License
Build Status Build Status View Build Status
Docker Pulls Docker Pulls Docker Hub
Contributions GitHub PRs 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!

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

Contributors

Description
Languages
C++ 93.4%
C 2.9%
C# 2.1%
Python 0.5%
Perl 0.3%
Other 0.5%