PvPGN-PRO keeps a Battle.net gateway alive after upstream stopped in 2011
Next generation of PvPGN server
At a glance
- What is it?
- PvPGN-PRO is a fork of the PvPGN server, the C++ and Lua software that lets Westwood and Blizzard clients play on a server you control, and it exists because the original project's development stopped in 2011. It is a maintenance project with a hard compatibility ceiling, since the WarCraft 3 signature check and StarCraft 1.18 both fall outside what it can support.
- Who is it for?
- Adopt PvPGN-PRO when you are running a community or LAN-style lobby for the classic Battle.net and Westwood Online titles and you need a gateway you can administer yourself. Do not adopt it for anything that expects modern Battle.net, since StarCraft from patch 1.18 onward is excluded by protocol change and WarCraft 3 needs a client side modification to connect at all.
- Can I use it commercially?
- Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 67 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A fork of a project that stopped in 2011
PvPGN is free and open source cross-platform server software that supports Battle.net and Westwood Online game clients. PvPGN-PRO is a fork of the official PvPGN project, whose development stopped in 2011, and it aims to provide continued maintenance and additional features for PvPGN.
That single sentence explains the repository. The upstream code is a protocol implementation for a generation of games whose online services no longer exist in the form the clients expect, so the client software has to be pointed at a server the community runs. The original project froze; this fork is the part that still moves.
The technical profile is old and specific. The language is C++, with Lua used for scripting, and the README carries badges for the C++ and Lua languages along with the compiler families the project has been built with, Microsoft Visual C++, LLVM/Clang and GCC. The licence is GNU General Public License version 2. The homepage is pvpgn.pro.
The release history explains the version scheme. The tags are 1.99.8.0.0-rc1-PRO from 2021-11-28, 1.99.7.2.1 from 2018-07-15 and 1.99.7.2.0 from 2018-05-11. The repository is not archived and the last push was on 2026-08-17, so the code is being worked on years after the most recent tag.
The supported client list is the compatibility contract
The README spends most of its length on which clients are supported, and the list is the contract you should read before anything else.
For Battle.net it covers WarCraft 2: Battle.net Edition at 2.02a and 2.02b, WarCraft 3: Reign of Chaos and WarCraft 3: The Frozen Throne across a long version range from 1.13a up to 1.28.5, StarCraft from 1.08 through 1.18.0, and StarCraft: Brood War over the same span.
The Diablo branch lists Diablo at 1.09 and 1.09b, Diablo 2 and Diablo 2: Lord of Destruction from 1.10 through 1.14d.
The Westwood Online side is covered by the Westwood Chat Client at 4.221, and with it Command & Conquer from Win95 1.04a through Red Alert 2 at 1.006, Tiberian Sun and Firestorm at 2.03 ST-10, Yuri's Revenge at 1.001, Renegade at 1.037, Nox and Nox Quest at 1.02b, Dune 2000 at 1.06 and Emperor: Battle for Dune at 1.09.
The version granularity is the point. These are not version ranges in the modern sense, they are a list of the exact client builds known to work, which tells you the projects this server was written to serve and, by omission, everything it was never written for.
Two clients are excluded, and one of them needs a patch
The footnotes below the client list are the most important lines in the README, because they describe where the software cannot go.
WarCraft 3 clients are unable to connect to PvPGN servers without a client-side modification, through tools such as W3L, to disable server signature verification. This is not a limitation of the server, it is a consequence of the client refusing to talk to a server that is not Blizzard's, and the workaround lives on the player's machine.
StarCraft clients beginning with patch 1.18 will not be supported by PvPGN-PRO due to protocol changes. A 1.18.0 versioncheck entry is included for compatibility with bot software, which is a small and telling detail: the project keeps a stub of the newer protocol so that automated players can be version-checked, without implementing the rest of it.
Put together, the two footnotes define the project precisely. It is a server for the pre-1.18 Battle.net protocol, and for the WarCraft 3 community it depends on a community patch in order to be reachable at all.
Building it, and the compiler floor you cannot go below
The building section is practical and dated, which is another way of saying it is honest about the environment it expects. The README points to `docs/ports.md` for operating systems and compilers confirmed to work with PvPGN, and states that any operating system supporting WinAPI or POSIX, and any C++11 compliant compiler, should be able to build it. The CMake files have been hardcoded to reject compilers older than Visual Studio 2015 and GCC 5.1.
For Windows there is a Magic Builder project, and alternatively CMake generates the solution file:
cmake -g "Visual Studio 14 2015" -H./ -B./buildwhich writes the `.sln` into the `build` directory.
For Linux in general the README opens with a warning: do not blindly run these commands, because the main problem with older distributions is installing CMake 3.2.x and GCC 5, so external repositories are used in the examples. The sequence is:
apt-get install git install cmake make build-essential zlib1g-dev
apt-get install liblua5.1-0-dev #Lua support
apt-get install mysql-server mysql-client libmysqlclient-dev #MySQL support
cd /home
git clone https://github.com/pvpgn/pvpgn-server.git
cmake -D CMAKE_INSTALL_PREFIX=/usr/local/pvpgn -D WITH_MYSQL=true -D WITH_LUA=true ../
make
make installThere are also per distribution recipes for Ubuntu 16.04 and 18.04, for Ubuntu 14.04 with a toolchain PPA, for Debian 8 with a downloaded CMake 3.7 and clang, and one for CentOS 7. The Debian recipe shows the general shape, with the compiler passed through the environment:
sudo apt-get -y install build-essential zlib1g-dev clang libc++-dev git
wget https://cmake.org/files/v3.7/cmake-3.7.1-Linux-x86_64.tar.gz
tar xvfz cmake-3.7.1-Linux-x86_64.tar.gz
git clone https://github.com/pvpgn/pvpgn-server.git
cd pvpgn-server && CC=/usr/bin/clang CXX=/usr/bin/clang++ ../cmake-3.7.1-Linux-x86_64/bin/cmake -G "Unix Makefiles" -H./ -B./build
cd build && makeNote the two feature switches in the general Linux recipe, `WITH_MYSQL=true` and `WITH_LUA=true`. MySQL is the database backend, and Lua is the scripting layer, and both are optional.
Tracking is on unless you turn it off
One configuration note is worth isolating, because it is the kind of thing you want to know before rather than after.
By default, tracking is enabled, and is only used for the purpose of sending informational data to tracking servers. The README lists what that data is: server description, homepage, uptime and amount of users. To disable tracking, set `track = 0` in `conf/bnetd.conf`.
So the data is not user data and not gameplay data, it is the shape of your server, but it is sent somewhere by default. A community server operator who wants to keep the server's existence quiet has to change one line in one configuration file, and the README tells you the file and the key.
The repository layout supports the picture. There is a `conf/` directory for the configuration files, a `lua/` directory for the scripting layer, a `man/` directory for manual pages, `files/` for the data the server serves, `src/` and `lib/` for the C++ code, `cmake/` and `ConfigureChecks.cmake` and `config.h.cmake` for the build, `scripts/` for operational scripts, and `docs/` for the ports documentation the README points at.
Getting help, and the conventions the project asks for
Support runs through the repository's issue tracker, and the README asks for a specific format when you post. It asks you to create an issue with questions, suggestions or anything else you want to say, and it asks you to set `loglevels = fatal,error,warn,info,debug,trace` in `bnetd.conf` before obtaining logs and posting them. The rest of the log level list is the default, so the request is that you turn on the verbose end of it.
There is also a boundary worth stating. D2GS is not part of the PvPGN project and is therefore unsupported there. D2GS is the dedicated Diablo II game server, and it is a separate codebase with its own issues, so a D2GS problem is not a PvPGN problem.
On the development side, the README asks contributors to submit pull requests, to utilize C++11 features, and to adhere to the C++ Core Guidelines whenever possible. The 2011 vintage of the original code and the C++11 floor for new work are the interesting combination here: the fork is not rewriting the protocol layer, it is keeping a twenty year old codebase buildable and extending it within modern guidance.
The repository also carries the administrative surface of a long-lived project, with `CREDITS`, `NEWS`, `UPDATE`, `README.DEV`, `version-history.txt`, a `CHANGELOG` style history in `version-history.txt` and CI definitions in `.travis.yml` and `appveyor.yml`.
Editorial conclusion
Adopt PvPGN-PRO when you are running a community or LAN-style lobby for the classic Battle.net and Westwood Online titles and you need a gateway you can administer yourself. Do not adopt it for anything that expects modern Battle.net, since StarCraft from patch 1.18 onward is excluded by protocol change and WarCraft 3 needs a client side modification to connect at all. Verify first that the clients your players actually use are on the supported list, that your compiler and CMake are new enough for the build, that the database backend you intend to use is one of the supported options, and that you turn off the tracking setting in `conf/bnetd.conf` if you do not want your server's uptime reported.
Frequently asked questions
What is PvPGN-PRO and why does it exist?
PvPGN is free and open source cross-platform server software that supports Battle.net and Westwood Online game clients. PvPGN-PRO is a fork of the official PvPGN project, whose development stopped in 2011, and it aims to provide continued maintenance and additional features.
Can WarCraft 3 players connect to a PvPGN-PRO server?
Not without help. The README states that WarCraft 3 clients are unable to connect to PvPGN servers without a client-side modification, through tools such as W3L, to disable server signature verification. Automation also needs the server's signature checks relaxed.
Which StarCraft versions does PvPGN-PRO support?
StarCraft and StarCraft: Brood War from 1.08 through 1.18.0 are listed as supported, but the README adds that StarCraft clients beginning with patch 1.18 will not be supported due to protocol changes. A 1.18.0 versioncheck entry is included for compatibility with bot software.
How do I disable tracking in PvPGN-PRO?
Tracking is enabled by default and sends informational data such as the server description, homepage, uptime and amount of users to tracking servers. The README says to set `track = 0` in `conf/bnetd.conf` to disable it.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/pvpgn-pvpgn-server)Was this useful?