Dedicated Server Setup

From Empires Wiki
Revision as of 01:12, 21 March 2009 by Administrator (talk | contribs) (→‎Related Links: Changed Mani Admin Plugin to Sourcemod)
Jump to navigation Jump to search

Home > Dedicated Server Setup

Dedicated Server (Windows)

Downloading

First of all you need the HLDS Update Tool. This is what we use to update/download the server. You will also need Empires Dedicated Server from the Empires Download Page.

If you want to use SourceMod, make sure you download it before going any further.

Installing

  • First we need to download the SDS (Source Dedicated Server). To download we open up hldsupdatetool.exe and download the tool to an arbitrary location on your machine, for example:
C:\HL2DS
  • When you have finished installing the update tool open the install folder in a command prompt and type:
hldsupdatetool.exe -command update -game "tf" -dir C:\HL2DS  
  • If that doesnt work or your stuck or having trouble getting tf then you can go HERE for a more indepth tutorial on how to get it.
Tip Tip: Make sure you replace C:\HL2DS with your install path if it's different.

This will download all files necessary to host a Team Fortress 2 server (and Empires). And remember to "Go get yourself a cup of coffee." as valve said, this will take some time

  • Install the Empires Dedicated Server files to "C:\HL2DS\orangebox\empires" (use your own install path).
  • Create a shortcut of srcds.exe and place it where you want then go to properties of the shortcut. Add the following to the end of the shortcut target:
-game empires +maxplayers 14 -port 27015 -console +map emp_canyon -autoupdate

It sould look like this;

srcds.exe -game empires +maxplayers 14 -port 27015 -console +map emp_canyon -autoupdate
Tip Tip: You can adjust your port and maxplayers via the shortcut or the server.cfg file.

Configuration

Next, edit your mapcycle.txt and server.cfg files to your liking.

Warning  Warning: When editing your server.cfg remember to change your rcon_password and hostname directives!
rcon_password "pass"  //Your rcon password
hostname "Servername" //The name of your server

These are the most important settings to change, there are more in the cfg so test around what is best for you.

Starting

You should now be able to double-click your server shortcut, which will start up your dedicated server.

Dedicated Server (Linux)

Downloading

First of all you need the HLDS Update Tool. This is what we use to update/download the server. You will also need Empires Dedicated Server from the Empires Download Page.

Installing SDS

Now we have to extract the HLDS-Update-Tool.

  • Go to the homedir of the user who is designated to run the HL2-Server and create a subdir.
hl2usr@hl2srv ~ # mkdir hl2
  • Copy the HLDS-Update-Tool into your new subdir and chmod it to make it executable:
hl2usr@hl2srv ~/hl2 # chmod +x hldsupdatetool.bin
  • Run the binary:
hl2usr@hl2srv ~/hl2 # ./hldsupdatetool.bin
  • If you get a warning about not finding "compress", go grab the "ncompress" package on Redhat/Fedora:
hl2usr@hl2srv ~/hl2 # yum install ncompress
  • Now that you have finished extracting the Update-Tool you can use it to download all required files:
hl2usr@hl2srv ~/hl2 # ./steam -command update -game "tf" -dir .

Get yourself a cup of tea, coffee, soda, etc., and have a rest. Depending on your connection speed this can take some time

Installing Empires

Next, we have to extract the previously downloaded Empires-Server.

  • Copy the zip-file (something like empires_v1xxx_server.zip) to the folder where the HLDS-Update-Tool resides (~/hl2 in this example) and extract it:
hl2usr@hl2srv ~/hl2 # unzip empires_v1xxx_server.zip -d orangebox

This command creates the directory ~hl2/orangebox/empires and extracts all needed files into it.

Configuration

Before you can start your new Dedicated Server the servers config files have to be altered to satisfy your needs.

  • cd to the "orangebox/empires" subdir
  • Edit the file mapcycle.txt with your prefered text editor and add/remove the maps you like/don't like in your mapcycle
  • cd to the config dir of your Empires installation (~/hl2/orangebox/empires/cfg in this example)
  • Edit the server.cfg to your liking
Warning  Warning: When editing your server.cfg remember to change your rcon_password and hostname directives!
rcon_password "pass"  //Your rcon password
hostname "Servername" //The name of your server

Starting

Now your server should be ready for startup

  • cd to your Dedicated-Servers basedir (~/hl2 in this example)
  • Start the Server:
hl2usr@hl2srv ~/hl2 # ./srcds_run -game empires +maxplayers 14 -port 27015 -console +map emp_canyon -autoupdate
Tip Tip: Use a terminal multiplexer like Screen to be able to detach the HL2-Server Console and disconnect from your servers shell without terminating the HL2-Daemon
  • You can create a Bash-File in your Dedicated-Servers basedir to easily start your Empires-Server in a virtual Screen-Terminal:
File: empires.sh
#! /bin/bash
screen -A -d -m -S empires -t empires ./srcds_run -game empires +maxplayers 14 -port 27015 -console +map emp_canyon -autoupdate

Please note that if you wish to retain explicit control over when updates happen on your server you can omit the -autoupdate option.

  • Now make the Bash-File executable and run it:
hl2usr@hl2srv ~/hl2 # chmod +x empires.sh
hl2usr@hl2srv ~/hl2 # ./empires.sh

The Dedicated-Server now runs in the background. You can attach to the Screen-Terminal by typing:

hl2usr@hl2srv ~/hl2 # screen -r empires

You can detach from the Screen-Terminal and leave the server running by typing a Control-a followed by "d".

To stop the server, reattach to the Screen-Terminal and type Control-c.

If you intend to run multiple servers then you will need to set a unique value for the port used & the the Screen-Terminal name used via the -port & -S options in the above command.

Monitoring server resources

Bandwidth

For monitor server bandwidth you can use "iftop" which will display bandwidth consumption on a per port/connections basis. NB: This program needs to run as root.

Assuming your running empires on the default 27015 port the follow will filter to show only empires traffic:

 root@hl2srv ~/hl2 # iftop -P -f "port 27015"

A lightly loaded server with 4 active players and 7 recently departed:

                50.0Kb          100Kb           150Kb           200Kb      250Kb
└───────────────┴───────────────┴───────────────┴───────────────┴───────────────
oneltdhost.net:27015      <=> guru239.netsonic.fi:13765  43.1Kb  44.8Kb  44.5Kb
oneltdhost.net:27015      <=> 71-213-216-109.sxcy.:27005 41.1Kb  43.8Kb  41.2Kb
oneltdhost.net:27015      <=> cc300737-b.hnglo1.ov:27005 40.7Kb  42.2Kb  36.8Kb
oneltdhost.net:27015      <=> dynamic-acs-24-239-4:27011 27.7Kb  27.9Kb  33.7Kb
oneltdhost.net:27015      <=> host-091-097-139-118:49167    0b    175b     44b
oneltdhost.net:27015      <=> 120.139.76-8:netview-aix-8    0b      0b     44b
oneltdhost.net:27015      <=> ANice-754-1-3-:megaco-h248    0b      0b     44b
oneltdhost.net:27015      <=> host86-139-6-13.rang:64937    0b      0b     44b
oneltdhost.net:27015      <=> daruck-69-4.gimp.co:finger    0b      0b     44b
oneltdhost.net:27015      <=> c24-143-85-34.s:t1distproc    0b      0b     44b
oneltdhost.net:27015      <=> 213-67-55-231-no157.:57200    0b      0b     44b







────────────────────────────────────────────────────────────────────────────────
TX:             cumm:   824KB   peak:   88.7Kb  rates:   66.0Kb  69.9Kb  72.9Kb
RX:                     798KB           92.1Kb           86.6Kb  89.0Kb  83.5Kb
TOTAL:                 1.58MB            174Kb            153Kb   159Kb   156Kb

Furthermore, you can hit the "t" key to display each connection on a single line rather than show receive and transmit on two lines.

CPU/Disk

For CPU usage you can use top (default installed all linux distros), htop (enhanced 'top') or atop.

htop gives a very good "at-a-glance" showing overall CPU core load, memory usage and the top dozen or so processes.


  1  [||                        2.0%]     Tasks: 85 total, 2 running
  2  [||||||||                 23.3%]     Load average: 0.36 0.23 0.14
  Mem[||||||||||||||||||||845/3934MB]     Uptime: 10 days, 02:41:32
  Swp[|                    30/1913MB]

  PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
27647 hl2       -3   0  161M 94724 12344 S 57.0  2.4 14:37.76 ./srcds_i486 -game
12337 daruck    20   0  468M  210M  3400 R  8.0  5.3 13h08:54 ./isagimp
27649 hl2       -3   0  161M 94724 12344 S  5.0  2.4  1:38.01 ./srcds_i486 -game
28030 hl2       20   0 14984  1160   912 R  1.0  0.0  0:04.71 htop
27997 hl2        0 -20 15464  3188  2424 S  0.0  0.1  0:02.20 atop
11298 named     20   0  177M 31556  2196 S  0.0  0.8 34:28.57 /usr/sbin/named -u
11296 named     20   0  177M 31556  2196 S  0.0  0.8 30:05.04 /usr/sbin/named -u
11295 named     20   0  177M 31556  2196 S  0.0  0.8 25:34.77 /usr/sbin/named -u
 2149 mysql     20   0  324M 41132  5068 S  0.0  1.0  2h02:27 /usr/libexec/mysql
 2163 mysql     20   0  324M 41132  5068 S  0.0  1.0 50:19.25 /usr/libexec/mysql
    1 root      20   0 10308   716   596 S  0.0  0.0  0:08.52 init [2]
  556 root      16  -4 12588   768   404 S  0.0  0.0  0:00.50 /sbin/udevd -d
 1668 root      20   0  6684   916   432 S  0.0  0.0  2:50.50 /sbin/dhclient -1
 1728 rpc       20   0 18660   624   424 S  0.0  0.0  0:00.63 rpcbind
 1748 root      20   0 21044  1316   564 S  0.0  0.0  0:00.15 pcscd
 1756 root      20   0 90636  1292   648 S  0.0  0.0  4:56.45 rsyslogd -m 0
F1Help  F2Setup F3SearchF4InvertF5Tree  F6SortByF7Nice -F8Nice +F9Kill  F10Quit


atop will give you the missing Hard disk activity monitor by way of the "DSK" line's "busy" percentage:

ATOP - oneltdhost         2008/12/31  12:38:24               10 seconds elapsed
PRC | sys   1.10s | user   5.76s | #proc    121 | #zombie    0 | #exit      0 |
CPU | sys      4% | user     21% | irq       0% | idle    174% | wait      0% |
cpu | sys      2% | user     19% | irq       0% | idle     78% | cpu001 w  0% |
cpu | sys      2% | user      1% | irq       0% | idle     97% | cpu000 w  0% |
CPL | avg1   0.19 | avg5    0.20 | avg15   0.12 | csw    18728 | intr    3847 |
MEM | tot    3.8G | free   93.8M | cache   2.9G | buff    4.4M | slab  306.0M |
SWP | tot    1.9G | free    1.8G |              | vmcom 972.8M | vmlim   3.8G |
DSK |         sda | busy      0% | read      12 | write      9 | avio    1 ms |
NET | transport   | tcpi     679 | tcpo     704 | udpi     805 | udpo     620 |
NET | network     | ipi     1498 | ipo     1332 | ipfrw      0 | deliv   1485 |
NET | eth0     0% | pcki    1498 | pcko    1332 | si  344 Kbps | so  279 Kbps |

  PID  SYSCPU  USRCPU  VGROW  RGROW  RDDSK  WRDSK  ST EXC S  CPU CMD     1/1
27647   0.73s   5.55s     0K     0K     0K     0K  --   - S  62% srcds_i486
 2149   0.07s   0.11s     0K     0K     0K     0K  --   - S   2% mysqld
28030   0.10s   0.03s     0K     0K     0K     0K  --   - S   1% cheese
27997   0.03s   0.00s     0K     0K     0K     0K  --   - R   0% and
11294   0.00s   0.01s     0K     0K     0K     0K  --   - S   0% biscuits
12336   0.00s   0.00s     0K     0K     0K     0K  --   - S   0% screen

Tip and Tricks

Modularise server.cfg settings

As the server.cfg (amongst others) can be overwritten during upgrade and you may wish to have your server run in different "modes" such as password protected clan match/practice, increase resource rates for "tank wars", etc it's best to treat your server.cfg as "read-only" and any default settings you wish to have place them in a unique filename e.g. myserver.cfg then add a single line to the end of server.cfg "exec myserver.cfg"

This way server.cfg will then run myserver.cfg and override any server.cfg settings. For example to set your server's hostname you'd add the following to myserver.cfg

hostname "My Empires Server"

In addition to myserver.cfg you can then create modified files to accommodate your various server "modes" which can either be called via

rcon exec tankwars.cfg

Or if you want this mode to automatically survive a map change/server restart, add another line to server.cfg below your "exec myserver.cfg" entry.


Related Links