Back to the site

PvPGN Installation Guide

Minimal Requirements

1 core
PvPGN is not multithreaded, but additional cores may be useful to handle database or web server)

256MB (required value for the compilation); a running server without users use ~3MB

Windows / Linux (theoretically on any POSIX compatible system)
PvPGN was designed for x86 systems. It will work on x64 but it will not utilize all features of 64 bit processor.

Installation on Windows

a) Download the latest automated build from the web site.
b) Use Magic Builder to build PvPGN from sources accordingly to your SQL database version.

A difference from PvPGN.exe and PvPGNConsole.exe is the first is better for debugging, because you see in real time
what is happening, and the second is for production, because it does not consume additional resources for graphical interface.

You can install/uninstall a Windows service:
  PvPGNConsole.exe -s install
  PvPGNConsole.exe -s uninstall

Installation on Linux (Debian)

1) Install required dependencies

sudo apt-get -y install build-essential clang libc++-dev git cmake zlib1g-dev liblua5.1-0-dev libmysql++-dev
2) Download the latest source code and unpack archive
tar xf master.tar.gz
3) Switch to the directory with source and create a new directory "build"
cd pvpgn-server-master
mkdir build
cd build
4) Configure and compile
cmake -D WITH_MYSQL=true -D WITH_LUA=true ../
make && make install
5) Run
Configs are in /usr/local/etc/pvpgn/
Logs, files, scripts are in /usr/local/var/pvpgn/


By default PvPGN is ready to work with default configuration and it allows to connect with all game clients.

Below are general options in bnetd.conf that you should pay attention for to run a server in production.

Also do not forget edit text files in "i18n" (motd, termsofservice, news).

There are configuration files described below that belong to the whole server or to specified game clients.


Warcraft 3

Starcraft, Warcraft 2

Diablo 2

Westwood Online

Lua Scripting

Lua is enabled if PvPGN was compiled with cmake flag WITH_LUA=true.
All the *.lua scripts from /var/lua/ and subdirectories are loaded at once when server starts.

Note: Lua is experimental and unfinished. It works and you can successfully use it, but it may cause performance issues with lots of connections (hundreds or may be thousands, it depends on used scripts).
More info can be found on forums, for example here