Build Status:
Linux/MAC:
Windows:
Repository Status:
Mangos is an open source project written in C++. It's fast, runs on multiple platforms and stores game data in MySQL or MariaDB. It also has optional support for SOAP.
If you liked the fourth incarnation of World of Warcraft and still want to play it, this is the branch for you. We provide an authentication server where you can manage your users, and a world server which serves game content just like the original did back then.
It aims to be 100% compatible with the final version of CATA World of Warcraft, namely patch 4.3.4.
The code is C++17, built strictly (GNU extensions off; the C parts are C11).
Every push is built by GitHub Actions with both GCC and Clang on Linux, and by
AppVeyor with MSVC on Windows, as the badges above show. The two compilers are not
redundant: their standard libraries do not leak the same headers, so a missing #include
can pass on one and fail on the other. We do love green builds, and working things.
The server supports a wide range of operating systems, and various compiler platforms. In order to do that, we use various free cross-platform libraries and use CMake (v3.18+) to provide a cross-platform build system which adapts to your chosen operating system and compiler.
Currently we support running the server on the following operating systems:
- Windows, 32 bit and 64 bit. Windows Server 2008 (or newer) or Windows 8 (or newer) is recommended.
- Linux, 32 bit and 64 bit. Any distribution whose compiler does C++17 -- in practice Debian 10 or newer, Ubuntu 18.04 LTS or newer. Older releases cannot build this at all, whatever their package versions.
- BSD, 32 bit and 64 bit. FreeBSD, NetBSD, OpenBSD are recommended.
Of course, newer versions should work, too. In the case of Windows, matching server versions will work, too.
Building the server is currently possible with these compilers:
-
Microsoft Visual Studio 32 bit and 64 bit. All editions of Visual Studio from 2015 upwards are officially supported (although support for 2015 and 2017 are end of life.)
-
GCC, 32 bit and 64 bit. Version 8 or newer, for complete C++17 support. This is one of the two compilers the Linux CI builds with.
-
Clang, 32 bit and 64 bit. The Clang compiler can be used on any supported operating system, and is the other CI compiler.
The server stands on the shoulders of several well-known Open Source libraries plus a few awesome, but less known libraries to prevent us from inventing the wheel again.
Please note that Linux and Mac OS X users should install packages using their systems package management instead of source packages.
-
Git / Github for Windows: This version control software allows you to get the source files in the first place.
-
MySQL / MariaDB: These databases are used to store content and user data.
-
Recast: In order to create navigation data from the client's map files, Recast is used to do the dirty work. It provides functions for rendering, pathing, etc.
-
Stormlib: Provides an abstraction layer for reading from the client's data files.
-
Zlib/Zlib for Windows provides compression algorithms used in both MPQ archive handling and the client/server protocol.
-
Bzip2/Bzip2 for Windows provides compression algorithms used in MPQ archives.
-
OpenSSL/OpenSSL for Windows provides encryption algorithms used when authenticating clients.
-
utf8cpp: UTF-8 handling for names and chat, where a wrong answer is a disconnect rather than a crash.
-
Lua: the runtime the optional Eluna scripting engine is built on. On Unix it links GNU Readline; that dependency exists only when Eluna is enabled.
Recast, Stormlib, utf8cpp, Lua, Zlib and Bzip2 are included in the standard distribution as we rely on specific versions. ACE and G3D are gone -- the networking is the C++ standard library, and the geometry is our own.
- Doxygen: If you want to export HTML or PDF formatted documentation for the Mangos API, you should install this.
We have a small, but extremely friendly and helpful community managed by MadMax and Antz.
Our discord/forum motto is:
'Be nice or Be somewhere else'Any trolling or unpleasantness is swiftly dealt with !!
We welcome anyone who is interested in enjoying older versions of wow or contributing and helping out !
We also have a Discord server where many of us hang out and discuss Mangos related stuff.
The repository of as much information as we can pack in. Details regarding the Database, file type definitions, packet definitons etc.
Found an issue or something which doesn't seem right, please log it in the relevant section of the Bug Tracker.
Installation instructions for various operation systems can be found here.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full license is included in the file LICENSE.
We have all put in hundreds of hours of time for free to make the server what it
is today.
All we ask is that if you modify the code and make improvements, please have
the decency to feed those changes back to us.
In addition, as a special exception, permission is granted to link the code of Mangos with the OpenSSL project's OpenSSL library (or with modified versions of it that use the same license as the OpenSSL library), and distribute the linked executables. You must obey the GNU General Public License in all respects for all of the code used other than OpenSSL.
World of Warcraft, and all related art, images, and lore are copyright Blizzard Entertainment, Inc.
