Next generation of PvPGN server
Find a file
2020-01-06 20:18:14 -08:00
cmake/Modules Removed local FindLua.cmake, CMake will now use its built-in FindLua.cmake 2019-12-15 17:54:43 -08:00
conf Create versioncheck entries for StarCraft and StarCraft: Brood War 1.18.0 2018-06-26 02:43:55 -07:00
docs Add versioncheck.md to docs/ 2018-04-26 01:37:02 -07:00
files Added ad000002.smk to installation 2018-05-17 22:27:51 -07:00
lib/fmt Fix compilation 2018-07-27 04:40:16 -07:00
lua Update quiz.lua 2016-08-18 09:40:05 +03:00
man Removed Makefiles 2014-08-12 17:08:46 +02:00
scripts Update validate.bat script - English should not be checked 2014-07-17 18:17:17 +04:00
src Merge pull request #394 from BNETDocs/develop 2020-01-04 02:53:21 +01:00
.gitignore Update .gitignore 2018-01-04 02:24:54 -08:00
.travis.yml Update .travis.yml to use Ubuntu Bionic, remove redundant packages 2019-12-15 22:00:56 -08:00
appveyor.yml Update appveyor.yml 2020-01-06 20:18:14 -08:00
CMakeLists.txt Improve CMake files 2018-07-27 06:53:26 -07:00
config.h.cmake Improve CMake files 2018-07-27 06:53:26 -07:00
ConfigureChecks.cmake Fixed file existence check in CMake 2018-07-28 18:15:47 -07:00
CREDITS
LICENSE Rename COPYING to LICENSE 2017-08-07 22:19:27 -07:00
NEWS
README.DEV Update README.DEV 2015-03-23 01:33:40 -07:00
README.md Add StarCraft and StarCraft: Brood War 1.18.0 versioncheck entry 2018-07-09 14:36:28 -07:00
UPDATE
version-history.txt •Corrected language errors 2014-04-13 10:56:51 -07:00

Player vs Player Gaming Network - PRO

PvPGN is a free and open source cross-platform server software that supports Battle.net and and Westwood Online game clients. PvPGN-PRO is a fork of the official PvPGN project, whose development stopped in 2011, and aims to provide continued maintenance and additional features for PvPGN.

License (GPL version 2) Language (C++) Language (Lua) Github Releases (by Release)

Compiler (Microsoft Visual C++) Compiler (LLVM/Clang) Compiler (GCC)

Build Status Build status

Deleaker helps us find memory leaks.

Tracking

By default, tracking is enabled and is only used for the purpose of sending informational data (e.g. server description, homepage, uptime, amount of users) to tracking servers. To disable tracking, set track = 0 in conf/bnetd.conf.

Supported Clients

  • WarCraft 2: Battle.net Edition: 2.02a, 2.02b
  • WarCraft 3: Reign of Chaos*: 1.13a, 1.13b, 1.14a, 1.14b, 1.15a, 1.16a, 1.17a, 1.18a, 1.19a, 1.19b, 1.20a, 1.20b, 1.20c, 1.20d, 1.20e, 1.21a, 1.21b, 1.22a, 1.23a, 1.24a, 1.24b, 1.24c, 1.24d, 1.24e, 1.25b, 1.26a, 1.27a, 1.27b, 1.28, 1.28.1, 1.28.2, 1.28.4, 1.28.5
  • WarCraft 3: The Frozen Throne*: 1.13a, 1.13b, 1.14a, 1.14b, 1.15a, 1.16a, 1.17a, 1.18a, 1.19a, 1.19b, 1.20a, 1.20b, 1.20c, 1.20d, 1.20e, 1.21a, 1.21b, 1.22a, 1.23a, 1.24a, 1.24b, 1.24c, 1.24d, 1.24e, 1.25b, 1.26a, 1.27a, 1.27b, 1.28, 1.28.1, 1.28.2, 1.28.4, 1.28.5
  • StarCraft: 1.08, 1.08b, 1.09, 1.09b, 1.10, 1.11, 1.11b, 1.12, 1.12b, 1.13, 1.13b, 1.13c, 1.13d, 1.13e, 1.13f, 1.14, 1.15, 1.15.1, 1.15.2, 1.15.3, 1.16, 1.16.1, 1.17.0, 1.18.0
  • StarCraft: Brood War: 1.08, 1.08b, 1.09, 1.09b, 1.10, 1.11, 1.11b, 1.12, 1.12b, 1.13, 1.13b, 1.13c, 1.13d, 1.13e, 1.13f, 1.14, 1.15, 1.15.1, 1.15.2, 1.15.3, 1.16, 1.16.1, 1.17.0, 1.18.0
  • Diablo: 1.09, 1.09b
  • Diablo 2: 1.10, 1.11, 1.11b, 1.12a, 1.13c, 1.14a, 1.14b, 1.14c, 1.14d
  • Diablo 2: Lord of Destruction: 1.10, 1.11, 1.11b, 1.12a, 1.13c, 1.14a, 1.14b, 1.14c, 1.14d
  • Westwood Chat Client: 4.221
  • Command & Conquer: Win95 1.04a (using Westwood Chat)
  • Command & Conquer: Red Alert: Win95 2.00 (using Westwood Chat), Win95 3.03
  • Command & Conquer: Red Alert 2: 1.006
  • Command & Conquer: Tiberian Sun: 2.03 ST-10
  • Command & Conquer: Tiberian Sun Firestorm: 2.03 ST-10
  • Command & Conquer: Yuri's Revenge: 1.001
  • Command & Conquer: Renegade: 1.037
  • Nox: 1.02b
  • Nox Quest: 1.02b
  • Dune 2000: 1.06
  • Emperor: Battle for Dune: 1.09

* 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. * 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.

Support

Create an issue if you have any questions, suggestions, or anything else to say about PvPGN-PRO. Please note that D2GS is not part of the PvPGN project and is therefore unsupported here. Set loglevels = fatal,error,warn,info,debug,trace in bnetd.conf before obtaining logs and posting them.

Development

Submit pull requests to contribute to this project. Utilize C++11 features and adhere to the C++ Core Guidelines whenever possible.

Building

See docs/ports.md for operating systems and compilers that have been confirmed to work with PvPGN. Any operating system that supports WinAPI or POSIX, and any C++11 compliant compiler should be able to build PvPGN. The CMake files have been hardcoded to reject compilers older than Visual Studio 2015 and GCC 5.1.

Windows

Use Magic Builder.

Alternatively, use cmake to generate the .sln project and build it from Visual Studio.

cmake -g "Visual Studio 14 2015" -H./ -B./build

This will generate .sln in build directory.

Linux in general

Do not blindly run these commands. The main problem with older distributions is installing CMake 3.2.x and GCC 5, so external repositories are used in the examples.

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 install

Ubuntu 16.04

sudo apt-get -y install build-essential git cmake zlib1g-dev
git clone https://github.com/pvpgn/pvpgn-server.git
cd pvpgn-server && cmake -G "Unix Makefiles" -H./ -B./build
cd build && make

Ubuntu 14.04

sudo apt-get -y install build-essential zlib1g-dev git
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get -y update
sudo apt-get -y install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo add-apt-repository -y ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get -y install cmake
git clone https://github.com/pvpgn/pvpgn-server.git
cd pvpgn-server && cmake -G "Unix Makefiles" -H./ -B./build
cd build && make

Debian 8

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 && make

CentOS 7

sudo yum -y install epel-release centos-release-scl
sudo yum -y install git zlib-devel cmake3 devtoolset-4-gcc*
sudo ln -s /usr/bin/cmake3 /usr/bin/cmake
git clone https://github.com/pvpgn/pvpgn-server.git
cd pvpgn-server
CC=/opt/rh/devtoolset-4/root/usr/bin/gcc CXX=/opt/rh/devtoolset-4/root/usr/bin/g++ cmake -G "Unix Makefiles" -H./ -B./build
cd build && make

Fedora 25

sudo dnf -y install gcc-c++ gcc make zlib-devel cmake git
git clone https://github.com/pvpgn/pvpgn-server.git
cd pvpgn-server
cmake -G "Unix Makefiles" -H./ -B./build
cd build && make

FreeBSD 11

sudo pkg install -y git cmake
git clone https://github.com/pvpgn/pvpgn-server.git
cd pvpgn-server
cmake -G "Unix Makefiles" -H./ -B./build
cd build && make

Full instructions: Русский | English

License

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.