Source Dedicated Server Guide
By Drocona
Welcome to Planet Half-Life’s very own source-powered dedicated
server guide! In this article, I will explain how to install, configure
and run the Source dedicated server. I’ve tried to be as clear and
detailed as possible, and I’ve included pictures of just about
everything that I discuss. I will start with the minimum requirements
and then move to the installation of a classic Counter-Strike: Source
dedicated server. The rest of the article deals with other server
sundries such as admin etiquette, plug-ins, etc. If you have any
further questions after reading this guide, you are always free to visit
the Source Dedicated Server Community forums and ask for help—that's what we're there for!
Table of Contents
Requirements [top]
Servers use a lot of bandwidth (internet connection speed), memory
and CPU/processor power. Because of this, not everyone can run a server;
the most common bottleneck is the internet connection (usually isn’t
fast enough). I will list a few things that are important for hosting a
server—you should have at least the minimum requirements listed below—if
you don’t there is no guarantee (and a high chance) that the server
will not run optimally.
Today’s computers are capable of running most servers, but you should
always take into consideration just what you want to host and to what
level. There are limitations on everything and some machines might not
even be able to run the server at all.
Processor/CPU power: To run a Source dedicated server you
need at least a 1.0Ghz Intel CPU or equivalent. This will run a basic
server with 20 slots at a good level of performance.
Memory: To run a normal server you will need at least 512MB
RAM, you might need to restart the server every once in a while to clean
up the memory. 1GB is enough to run over 60 player slots total.
Bandwidth: Bandwidth is used a lot—more specifically, upload
bandwidth. Here is a list of how fast your connection must be to run a
certain number of players at lowest settings. (When talking about
bandwidth for servers we always talk about upload, not download.) Note: these numbers are theoretical, your results may vary slightly!
Upload Speed (Kbps) |
Player Limit |
240 |
6 |
320 |
8 |
400 |
10 |
480 |
12 |
560 |
14 |
640 |
16 |
720 |
18 |
800 |
20 |
880 |
22 |
960 |
24 |
1120 |
28 |
1280 |
32 |
1440 |
36 |
1600 |
40 |
These values are calculated with the following formula: (5,000 * player number * 8) / 1,000
Windows Server Installation [top]
If you meet all the minimum requirements, you can proceed with the
installation of your server! I will start by downloading the so-called HLDS Update Tool.
This is a command line program that is capable of installing the
server. There is currently no other way to install a dedicated server.
Next,
before installing the tool, choosing an installation folder is very
handy. Most people use C:\SRCDS but you can use whatever you like. For
this tutorial I will be using F:\SRCDS. It’s very convenient to make
folders in this fashion: place the main SRCDS folder on drive F (or
whichever drive you’d like as mentioned above). Inside the SRCDS folder,
make a folder called Updater. This folder will be used for for the
installation/update program.
The next thing to do is to install the program itself. Simply start
it up by double clicking the downloaded hldsupdatetool.exe file. Click
"Next” on the screen that pops up, read the Subscriber Agreement and
click "I Agree”. On the next window you will be asked where you would
like to install the update tool—use the "Updater” folder that you
created in the last step.
When you’re done click "Next”. You will be taken to the next window
that tells you everything is ready to install.
If you filled in the destination folder correctly click "Next”. If you
made an error simply click "Back” and correct it. It will install the
files and a new window will pop up asking you which region you’re
located in. Select the region you are in (or closest to, if yours isn’t
listed). For instance, I select Europe since I’m in The Netherlands.
Click "Next” to continue.
On the next window, you will be asked if you would like to
participate in the mailing lists. You can ask questions and receive
information on everything that has something to do with the SRCDS and
the original HLDS. Be mindful, if you choose to use it you get like 10
e-mails a day. It’s a choice you’ll have to make. If you want to
participate click "Mailing List Information”, if you don’t want to,
click "Next”.
You will now be asked if you want to read the readme. Select or
deselect it as you wish—I will explain everything you need to know about
it. Click "Finish” to finish the installation. You should have the
following files in the "Updater" folder now:
Now all is set to install the actual server! To begin installation,
the update tool must be used to execute specific commands, as previously
mentioned. These commands can be given by making a shortcut or a batch
file. I will explain how to make a shortcut, since it’s the easiest and
quickest way to do what you want to do.
Start
by making a shortcut to HldsUpdateTool.exe. Right-click somewhere in
the folder and go to New⇒Shortcut. In the window that pops up, click the
"Browse” button and navigate to F:\SRCDS\Updater\HldsUpdateTool.exe (or
whichever folder your tool is in) and double-click it.
The next thing to fill in is the name of the shortcut; I call it
Install-Update since that is its function. Having done that, you can
finish up the shortcut and go to the next step.
As mentioned before, the update tool needs commands to run. Right
click the Install-Update shortcut and select "Properties”. If you’re not
already on the "Shortcut” tab, click it in the new window. The commands
will be added in the box called "Target”. Currently, it should read:
"F:\SRCDS\updater\HldsUpdateTool.exe”. Commands will be added behind
this line. Add the following commands behind the already-present text:
-command update -game "Counter-Strike Source" -dir F:\SRCDS
-command update entry is to tell the program to install or update the files that you need.
-game "Counter-Strike Source" will tell the program to install the files for CS:Source.
-dir F:\SRCDS tells the program where to install the actual server.
Well, that was the hard part, now to start downloading the necessary
files. The server in this demonstration will be installed at F:\SRCDS
with CS:Source files.
To start the download process, simply double-click the shortcut and a
command prompt window will pop up. This window will report everything
that the tool is doing. First, the tool will check to see if there are
any updates to it, and if so will install them. After that, it will
start installing the server.
It will download all the needed files from the Valve servers; this
will take approximately 1 hour depending on your internet connection
speed (it takes almost exactly 1 hour on a 3Mbit connection). The total
download size is approximately 1 gigabyte.
It’s possible that an error will show up while downloading, causing
the installation to abort. If this happens, the screen will disappear.
It’s not a big deal however, as all you have to do is click the shortcut
again and it will continue from where it stopped. Of course, you can
also use this feature to purposely interrupt the installation progress
and continue at a different time.
Even though our demonstration server is for CS: Source, the tool will
also download a few necessary hl2 files, so don’t freak out when this
happens. When it’s finished, the SRCDS folder should look like this:
If the srcds.exe is missing, it means that the install procedure
didn’t complete. Click the shortcut again to continue the installation
until it finishes. If srcds.exe still doesn’t show up, you will have to
add another command to the shortcut "Target” box at the very
end:–verify_all. Make sure there is a space between the last command and
this one. It’ll look like this:
Now that the updater has finished the installation, everything is in
place to start up the server. In order to do this, the server needs
commands just like the update tool shortcut; a shortcut to srcds.exe
will do all the work. I call the shortcut "Run SRCDS”. It’ll show up
next to the srcds.exe file as shown in the picture below.
In order to make it work, commands have to be added to make the
server act the way we want it to act. First, I will explain what
commands are available, what they do and whether or not they are
optional. This is just a quick explanation; some of these commands will
be drilled into further later on.
-console: This command will tell the server to run in
console mode. It’s the main mode for the SRCDS. It has a lot of
advantages when compared to the GUI version that some people tend to
use. Console runs with less resources and more control.
-game: This command tells the server which game to run. You
have to specify the name of the folder the game is using. We will use
"cstrike” because that’s what CS:Source is called on the server.
-tickrate: This will set the tickrate the server will use.
This is a somewhat advanced command; a server runs at a default of 33.
Changing this will result in different quality—you shouldn’t set this
below 33. If you put in a higher number (up to 100, which is the
maximum) the server will use much more resources (memory,
bandwidth and CPU) and when ran at 100, the resource requirement will be
tripled. I will use the default 33 tickrate.
-ip: This is an optional command, however it’s strongly
suggested that you use it. It tells the server what the IP address is,
so it will "listen” to that IP.
-port: This command is also optional, it’s used to bind a
port to the server. The default port is 27015 which I will use too. When
you run multiple servers you should set server 2 to 27016 etc.
-maxplayers: This will set the maximum amount of players that can join and play the server at the same time.
+map: This command tells the server what map to load when it starts up, if you don’t use this the server will idle and do nothing.
Those are the base commands to use when running a server. You can add more if you’d like, but they are not needed.
Now I will explain how to fill in every command and how to set the tickrate, maxplayers and ip.
The tickrate is one of the core commands to set the quality of the
game. Each tick represents 1 update per second. As I said before 33 tick
is the default and pretty much the minimum value that you can get away
with. 33 ticks means that the server will send 33 updates per second to
each client that is in game. If you set the tickrate to 50, it will send
50… and so on. Most servers use 33, 66 and 100, I have no idea why,
because you can use any number you like, but that’s usually the way it’s
done. I will use 33 tick because my connection is not fast enough to
run higher tickrate with a decent amount of players.
So far, this is our commandline:
F:\SRCDS\srcds.exe -console -game cstrike -tickrate 33
-console because the server will run in console mode.
-game cstrike because we want a CS:Source game.
-tickrate 33 because it’s the default and normal tickrate suitable for every server.
The (internal) IP address of the server is what you want to enter
next. If your server is not behind a router, then your internal IP and
external IP will be the same. In this case, all you need to do to find
out your IP is to visit this website. If you are behind a router, you should use the following method to obtain your internal IP instead.
Click "Start” and then in the menu choose "Run...” A box will pop up—type CMD. Next press "OK” or hit the return/enter key.
A black window will open. In this window type "ipconfig” and hit return/enter. It will look like this:
The number with the yellow box around it is your IP (if you're not
behind a router, then this is also your external IP). If it shows as
192.168.0.xx (like mine), this means you are behind a router and will
need to use the website above to find the IP to give to your friends and
whoever else you want to join your server. But for now, enter this
internal IP into your commandline:
F:\SRCDS\srcds.exe -console -game cstrike -tickrate 33 -ip 192.168.0.81 -port 27015
-ip including the IP-address that shows up for you (for me that’s 192.168.0.81).
-port 27015 to bind the server to port 27015 (the default port).
The next command to enter is the -maxplayers command. This one is a
little tricky since it requires 3 things. One is the amount of bandwidth
you have, two is how many players you wish to host and three is the
sv_maxrate setting we come to later on in the configuration file.
For now I set it to 10, as I know my connection can run 10 players (I
have 512 kbps). I will explain this in full detail in the server
configuration part.
Now here’s the final commandline to run the server:
F:\SRCDS\srcds.exe -console -game cstrike -tickrate 33 -ip 19.155.2.10 -port 27015 -maxplayers 10 +map de_dust2
I use de_dust2 as a startup map, but you can enter any map you’d like here.
The commands are entered and the shortcut is ready. Double-click the
shortcut to make the server run for the first time. A console will open
and after a few seconds (depending on how fast your pc is) the server
will be loaded. It should look like this:
As you can see, there are a few errors in there. The first one is
Error: Material… This error should be ignored; errors like this do
nothing to the server whatsoever so it’s safe to just let them be. The
second error is "couldn’t exec server.cfg”. This will be explained in
the configuration part.
The following part only applies to servers that are behind a
router/gateway. Because you are not directly connected to the internet,
the first machine that the internet signal comes into contact with
(usually the router) has to forward the data to the server machine. This
is what we call port forwarding. If you incorrectly (or don’t at all)
forward ports there is a high chance that the server will not be
available on the internet (meaning no-one can join except you). Since
there are loads of different setups and routers, I can’t cover each one.
Instead, I will list the ports that have to be opened to run a server
on the internet.
UDP 1200 (Friends Network)
UDP 27000 to 27015 (Gameport)
UDP 27020
TCP 27030 to 27039
TCP 27015 (SRCDS Rcon port)
Note: as some of the ports above are in ranges (27000-27015 for
example), you should enter them individually (27000, 27001, etc) on the
port forward table. There have been several issues with port ranges on
some routers. If you don’t know how to do this with your router, please
visit portforward.com to find out how.
You can check if your server is online on gametiger.net or you can add the external IP (found on whatismyip.com)
to the steam server favorites list. When you are behind a
router/gateway, you can’t simply give people the IP of the server that
you got from the ipconfig table and tell them to join. In this case, you
have to give them the external IP found at whatismyip.com.
Server Configuration [top]
Remember
the server.cfg error when you first started up the server? That’s the
main configuration file for the server. Every variable like start money,
server name, passwords, bots and bandwidth settings go in the file
called server.cfg. This file does not exist yet, and that’s why
the error pops up. It should be made in the cfg folder of the server,
which is located at F:\SRCDS\cstrike\cfg.
Create this file using notepad—simply right-click in the folder and
select New⇒Text Document. Don’t name it anything yet; just open it.
Next, click File⇒Save as… Type "server.cfg” in the filename box (including the "”). Save the file in the cfg folder.
The next thing to do is to enter all of the variables to configure
the server with; this will take ages to do. That’s why I’ve included my
own server.cfg
so you can use it instead! It has all of the main variables set to
have your server run very well. If you want to make your own server.cfg
that’s totally fine of course—just take a look at the full cvar list
as of January 2007. It’s a mess (a grand total of approximately 1,500
variables), but you can find every available cvar in it, most with an
included explanation of what it does.
One of the most important things to keep in mind while writing the server.cfg is the syntax. It is very simple actually:
// means the server will ignore everything behind // on that line, so
if you want to stop using a variable, put // in front of it (also
useful for making comments)
Every variable has to be put on its own line, or else it will not be read and/or give an error.
If you have spaces somewhere (the name of the server for example), be sure to write it between quotes.
Here are some explanations on the most important variables:
sv_maxupdaterate 100: This variable sets the maximum amount
of updates the server will send to each client per second. If you set
this to 100, your server will run optimally because the tickrate
automatically adjusts this value. Having a tickrate of 33 will make this
variable 33 as well. Thus, a setting of 100 for this variable is more
or less a "one size fits all.”
sv_minupdaterate 20: This variable is the opposite of
maxupdaterate. During the years I’ve been hosting servers, I’ve found
out that when the updates drop below 20 per second, clients start to
experience lag. That’s why we set this to 20; just like maxupdaterate,
this value fits all servers.
sv_maxrate: This variable probably has the most impact on
the quality of the server performance. It’s the maximum amount of data
sent to one client per second. If you don’t have a great connection, you
can set this variable to make your server run perfectly. As I explained
above, this has something to do with the maxplayers of the server. To
calculate this variable we use a formula; it’s simple and 90% accurate.
Bandwidth (in kbps) * 128 / Maxplayers = sv_maxrate
For me it would be like this: 512 * 128 / 10 = 6553.6
The maximum number you can set this variable to is 30000. If the
outcome of the formula is higher than this number, just set the variable
to 30000.
Now, what does this have to do with maxplayers? Well, with a maxrate
below 5000, the server starts experiencing "choke”. Choke refers to the
number of packets there are in line (waiting) to be received or sent by
the server. As you can imagine, this is a bad thing to have high values
of (or any amount, really)! Thus, if the above formula gives a maxrate
below 5000, you should lower the maxplayers value.
Now when you start up the server by clicking the shortcut, the
"couldn’t exec server.cfg” error shouldn’t appear. The next thing to set
is the Message of the Day (MOTD). It’s located in the cstrike folder as
motd.txt. You can open and edit it with notepad—this file is a bit
tricky because it’s written in HTML, so you’ll need to know basic HTML
before you can edit this. If you don’t know HTML, you can find
everything on this website.
Here are some basics on editing the MOTD:
Between the <pre> and <pre> tags you can write anything
that you like (delete the standard text that’s currently there). If you
wish to put a return/enter in it you have to type <br>.
It’s also possible to redirect to a website. In order to do this,
delete everything between <head> and </head> and replace it
with this:
<title>MOTD name here</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Refresh" content="0" url="http://www.mywebsite.com">
The mapcycle file is pretty easy to change. It’s called mapcycle.txt,
and just like the MOTD it’s located in the cstrike folder. You can
simply delete or add maps to this. Just make sure that every map has
its own line in the file. Also make sure you spell each map name
correctly. You can view all available maps in the file called
maplist.txt.
Server Administration [top]
RCon stands for Remote Console, and it’s used by all major games
(Quake, HL etc). As the name says, you can use the console of the server
from the client. On the server console you can change all settings of
the game, manage players and talk to everyone in-game.
There are a few things to set before RCon is usable. First of all,
you have to open the server.cfg and set the rcon_password variable to
something. I will set it to "dude”. Save the server.cfg and exit the
document. The rest is done in-game (while playing in the server).
In order to log into RCon, you have to open your own console in-game.
This can be done by pressing ~ (tilde, the key next to 1). If nothing
happens, don’t worry; the console is disabled by default. To enable it
go to options, click the "Keyboard” tab, and then the "Advanced…”
button. The console can be enabled here by selecting the checkbox
"Enable developer console (~)”.
Once the console is enabled, join your server and open ‘er up (press ~
silly!). You will be taken to the main menu of CS:Source and a window
called "Console” will pop up. This is where it’s possible to log into
RCon. To log in, type "rcon_password dude” (replace "dude” with your
own password, specified in the server.cfg). If there is no response from
the server in the console, it means the password is correct.
Now,
to send commands to the server console, type "rcon
<commandhere>”. Typing rcon signals the server to execute whatever
command follows rcon. I will make the server say "hi” to everyone in
the game by typing "rcon say hi”. The console will return "autokick is
disabled for ” because you are recognized as an administrator
of the server. Next, the console will list "Console: hi” twice. The
first instance is a direct return from the server (which only you can
see), and the second instance is the text that everyone sees in-game: Console: hi
As
long as you stay in-game, you only have to type the rcon_password once.
Now let’s add a bot to the game. Type "rcon bot_add” to make a bot
join. You will see what’s to the right in the console.
Note: If the console disappears when you type something, hold down the ALT key when you type the first character into it.
Below is a list of the most-used commands to administrate your server:
Command |
Explanation |
rcon_password <password> |
To authenticate with the server to start using RCon. |
rcon <commandhere> |
The main command to execute commands on the server. |
say <text> |
Say something in-game as Console: <text> |
changelevel <map> |
Change the level of play (Example: de_dust2) |
stats |
This will show a table with CPU usage and stuff on the
server. |
restartgame <x> |
This will restart the game (NOT the server) in <x>
seconds. |
quit |
This terminates the server. |
writeid |
Saves all the banned SteamID’s. |
writeip |
Saves all the banned IP-addresses. |
For the following commands, information is needed from the server
(like unique steam ID’s, user ID and IP-addresses of the persons
playing). You can use the "status” command to get a list of players and
their info.
Command |
Explanation |
kickid <number> |
Kick someone from the game, using the UserID or SteamID. |
banid <x> <y> kick |
Ban <x> in minutes (0=permanent) <y> User or
SteamID. |
addip <x> <z> kick |
Ban by IP <x> same as above <z> IP-address
of player. |
removeid <p> |
Remove ban for <p> by SteamID. |
removeip <q> |
Remove ban for <q> by IP-address. |
Additionally, you can execute all variables that are set in the
server.cfg or which are available in the SRCDS. For instance, you can
change the gravity or set friendly fire on/off. (e.g. setting
"sv_gravity 400" would create a moon-like atmosphere on your server (800
being the normal gravity value.)
Note: These values are reset on map changes since every time the
map changes the default server.cfg will be loaded. Also, some values
don’t get set immediately and need a server restart to become effective.
There are also faster and easier ways to administrate your server.
This is made possible by plug-ins. One of the most popular plug-in is
the Mani Admin Plugin. It changes gameplay, adds voting capabilities, sounds, "billboards” and—most importantly—easy administration.
They have excellent support at the forums (also located on that
website) and all documentation is there. If you have any problems,
simply look it up in the documentation or ask at the forums.
To
install the plug-in, open the package (.zip) with a program like
WinZip, WinRar or WinAce (all free compression tools). There are 4
folders in there (as of build 1.2 BETA-R): addons, cfg, materials and
sounds. These folders are also present in the SRCDS\cstrike folder.
Installing this plug-in is as easy as extracting the files, adding a
line to the server.cfg and making a .vdf file to load it into the
server.
Simply press the extract button and extract the package into
SRCDS\cstrike. If it asks to overwrite, click "yes” or "yes to all”.
Now all that’s left to be done is creating the .vdf file. This can be
done manually or with the CreateVDF.exe supplied by Mani.
Manual: Browse to the addons folder located in SCRDS\cstrike. Create a new text document, open it and put this in it:
"Plugin"
{
"file" "../cstrike/addons/mani_admin_plugin"
}
Next, save as "mani_admin_plugin.vdf” (including the quotation marks).
Mani’s CreateVDF.exe tool:
Browse to the addons folder located in SRCDS\cstrike and double-click
CreateVFD.exe. Select cstrike from the drop down menu. Press "Save VDF,”
and save on the window that pops up. It’s that easy!
That .vdf file will load the plugin into the server. Now there’s one
more thing to do—load the mani configuration at startup. To do this,
open the server.cfg located in SRCDS\cfg and add the following lines at
the end of the file:
//----------------------------------//**ManiLoad**\-----------------------------
---------\
exec mani_server.cfg
Save before you exit and Mani Admin Plugin should now be working.
Sample Modification Installation [top]
To
install a mod, special files are needed. These files have to be
acquired from the mod makers, in this case Goldeneye: Source. GE:S’s
files can be downloaded from their website, and as with everything, the latest version should be downloaded.
Mostly, the files come in a .zip. They contain a folder with the mod
name or an abbreviation thereof. In this case, the folder is called
gesource. The next thing to do is to extract the gesource folder to the
server folder (where the cstrike and hl2 folders are located on your
hard drive already). That’s pretty much everything that has to be done
to install a mod; any additional steps will be mentioned in a guide,
documentation or the readme that comes bundled with the mod files.
The SRCDS folder should look like the above now. Just like every
server, it needs to be configured (as discussed previously). The
configuration file can be found in the same place as always—the cfg
folder. Most mod developers include a server.cfg (unlike the installer
of the CS:S dedicated server), including the variables special to the
mod.
The path to put/make the server.cfg is in this case SRCDS\gesource\cfg (not
cstrike\cfg). In the case of Goldeneye: Source, the server.cfg is
there, but the mod variables are not included. These variables can be
found on the developer’s website 90% of the time.
The following variables are available according to their website (for
descriptions look at this page):
ge_weaponloadout
ge_ltk 0
ge_itemloadout
ge_goldengun 1
ge_gameplay deathmatch
ge_allowjump 1
ge_roundtimer 300
ge_paintball 1
ge_teamplay 0
ge_startarmed 0
I’ve included a premade server.cfg for this mod, so you don’t have to do all the work again.
The next step is to make a shortcut and add commands to start up the
server. The easiest way to do this is to simply copy the shortcut "Run
SRCDS”. It will show as "Copy of Run SRCDS”; rename it to something you
like. I use "Run GES SRCDS”.
There are a few things that need to be adjusted in this shortcut, so
go to its properties and find the "Target” box. It should show this
(with the exception of the IP matching yours instead, of course):
F:\SRCDS\srcds.exe -console -game cstrike -tickrate 33 -ip 19.155.2.10 -port 27015 -maxplayers 10 +map de_dust2
To make the server run the mod we have to change the –game parameter to
the mod name. In this case we change it to –game gesource.
We also have to change the +map parameter since the mod doesn’t have
the map de_dust. To see a list of available maps, simply open up
maplist.txt and pick one. Set the +map parameter to a map you like; I
will set it to +map ge_facility. When you’re done, the parameter line
should look like this:
F:\SRCDS\srcds.exe -console -game gesource -tickrate 33 -ip 19.155.2.10 -port 27015 -maxplayers 10 +map ge_facility
That’s all there is to it! Double-click the new shortcut and the server will start up.
Note: as you can see, there are a lot of material errors; just like the normal CS:S server, these can be ignored.
Another mod you can install easily is Hidden: Source.
It’s the easiest installation I’ve found so far, in fact. It’s similar
to the GE: S installation, with the exception that the folder isn’t
called "gesource”, but "hidden”. This mod has everything included in the
package—the configuration is set up, ready for you to edit it to what
you like. It’s a great mod to play with friends or with a clan, and is
quite user-friendly, so I strongly suggest it for you who want to host a
custom mod on your servers.
Public Relations [top]
Having a well-performing server (no lag issues) doesn’t guarantee
having a busy server! There are many more variables a responsible (and
successful) server administrator must keep in mind. One of these is the
map cycle. Who will join your CS:S server if you run cs_havana? Well,
pretty much nobody! So, what maps should we run to get a good amount of
players into our server, and how do we keep them amused? Read on, o’
loyal PHL’ers!
There are a few ways to get in-the-know as far as what the "hype”
levels are, which ones are good to attract people, which ones are
considered most fun, and which ones are good for adding variety to the
player’s experience. The easiest way to find all this out is to open up
the Steam server list and sort it by map name. Scroll through the
servers, paying attention to the amount of players playing each map. As
you all probably know, de_dust2 is a level that literally pulls people
into the server (almost every server in the list is full). What you will
notice too is that hardly any server runs cs_havana, and the ones that
do run it are empty 95% of the time.
Below, I’ve constructed a map cycle that should help get some people
into your server, and subsequently keep most of them playing for a
self-sustaining period of time.
1. De_dust2: This level should be set as the startup map.
80% of the players join de_dust maps. It’s the most hyped level there
is—people can play it all day and everyone knows it.
2. Cs_office: Office is a nice map too. It’s one of the
most-played levels after the dust maps. it gets placed after de_dust2
because it is almost the opposite of it gameplay-wise. It has small
hallways which are good variation to the vast expanses of de_dust2.
Also, the setting of the map is a nice change from the dust style. There
are of course a small amount of folks who don’t like it that much, but
most of the players will stay in-game (at the very least to wait the
level out).
3. De_piranesi: This is a pretty well-balanced map. It also
provides some nice rush spots, the bomb spots are in well-balanced
places, and there is enough stuff around to provide decent cover. It
will definitely not hurt your server to include this one in your map
cycle.
4. Cs_italy: This map has many facets. There are many ways
to approach the target, and many options to choose from as far as how to
win rounds. It is also popular with people that like smg’s and sniper
rifles. It’s a pretty immersive level and you can get really get into
the role of either the counter-terrorists or the terrorists.
5. De_dust: By the time all of the maps are finished, you
may have lost some players along the way. Dust will pull in a good
amount of players again; it has the same effect as dust (if a slight bit
less). Mostly referred to as camping map, it can actually provide for
totally fragalicious chaos!
6. De_aztec: This map, like office, offers a nice variation
on style. It has both a water-logged area underneath, and a nice
jungle-setting above. Aztec is a rather neutral map; some people like
it, some people don’t at all. Most players will stay in-game though, and
this is what we’re after.
7. Map of your choice here: This is a spot you can fill with
cs_compound, cs_militia or de_port. Compound is decent (with the right
players), but most clients will leave if it’s all camping. Militia for
many players is very laggy, but the map is great for people with a
computer capable of running it, and these players often can play the map
for hours at a time. Port also seems to lag for many due to big open
spaces. It doesn’t really matter which of the three maps you put in
here—it’s a matter of personal taste, really. After this map finishes,
the cycle starts over with dust2 and players will join again.
You might be asking yourself, "Why not just have dust maps since they
are the only guaranteed player-attracter?” An important thing to keep
in mind with regards to the map cycle is to maintain a level of
variation of the maps. You should never have three maps of the same
type (de/cs), or only have one map style on the server 24/7. Even
though these maps initially might bring in players, the game gets boring
after a while and people will leave due to staleness. Most maps have
some players that like them, and each different map you put up will
provide a different type of gameplay, thus keeping the game fresh.
Another good idea is to allow people vote for the next map (made
possible with the Mani plug-in installed), although you have to make
sure you configure the settings correctly. The same map mustn’t run over
and over again. When this happens, 40% of the players will leave. You
have to make sure that you have a good amount of players in-game and
never let the server get empty. If it’s empty for a long time, switch
back to dust2 or dust to fill it up again.
Of course, the above map cycle doesn’t have to be used word-for-word.
It’s the basic setup that is important and which has proven worthy for
two years now for me. What’s the most important to do is to pick a set
of maps, split it into 2 groups like I did (first group is 2-4, second
is 6 and 7) and then add a popular map at the beginning of each group
(i.e. dust maps).
This way, you can provide the maximum amount of variation, while at
the same time reducing the number of players that leave your server. At
the end of the cycle, you can put in a map of your choice which will
make your server a bit unique; unusual maps like militia or port will
spice the server up, but you will also lose some players. That’s why you
do it at the end—so a popular map fills the server up again immediately
after.
Some maps are horrible or less popular. I suggest that you don’t
choose any of these unless you are really adamant about running them.
Some might be 50/50 while others aren’t worthy at all.
De_cbble: This is a 50/50 map. A lot of players will leave half-way through, leaving only the people who like it a lot.
De_chateau: This map simply is not popular—most servers run empty on this map.
Cs_havana: This map is the true server horror! Run this and you have a 90% chance everyone leaves.
De_prodigy: A 50/50 map, same as cbble.
De_train: The hype is gone for this map; it used to score pretty well, but now most servers end up empty.
De_tides: Simply put, this map is way too small and doesn’t provide enough possibilities.
The
final touch to make your server a success is good moderation.
Moderation may doesn’t seem very important when you first think of it,
but it can honestly be the maker or breaker. When things go
wrong, moderators should help out: when there are cheaters, they should
take care of it, when people are demanding a different map, they should
change to it, etc. There are a few things to keep in mind when striving
to be a good administrator/moderator. It’s not an easy task, can be
time-consuming, and most of the time will be spent helping and
explaining things to clients. These points should be acknowledged and
accepted by anyone who is seriously considering a position moderating
your server.
Administrators/moderators should ideally be around all the time.
Obviously, if the server is empty they aren’t necessary, but as soon as
there are clients, there should at least be 1 admin or moderator. This
means that there needs to be someone "on call” all day long, which is
impossible for one person to do. Thus, you need a set of administrators
and moderators to keep the server moderated all the time in shifts. In
the beginning this is not an easy task, as you are essentially on your
own when initially create the server.
Choosing administrators and moderators is very time-consuming. There
are a lot of things a potential admin or mod needs to have to be a
successful candidate for the position.
They should be friendly. They should always be open to ideas,
feedback and suggestions. They should often chat with the players and
have fun. When doing this, it will create a good mood in the server and
establishes a good repore with the clients. People are more likely to
play on your server if they recognize faces and feel friendly towards
other players, rather than playing in a server full of silent strangers!
They should be knowledgeable. They should know how the server works
and how most things in the game work. A good example of this is
knowledge of the ability to shoot through walls in CS:S, as it is indeed
possible (Quote from Valve Developer: Weapons are able to shoot through walls not thicker than 1 brick).
General things about the game must be known by moderators in order to
give advice to people that ask for it and to accurately determine if
players are cheating or not (and to diffuse situations involving false
accusations).
They should be helpful. When someone asks something, it might be the
easiest thing to figure out in the world, but as a moderator one should
answer it respectfully anyway. Always remember, "There are no dumb
questions, only dumb answers”. Answering the question like, "OMG stupid
noob go learn the game!” or in some other snotty fashion will alienate
players quicker than you can snap your fingers.
The person should be neutral during fights—they should never pick a
side. If someone thinks there is something wrong with the server, they
should be listened to and talk to about it. Maybe that person knows
much more about servers than you’d think! An answer like, "Nothing’s
wrong with the server! Get lost—it’s you.” will give the impression
that the server administrators and moderators do not care what the
players think. Remember that running a server is similar to running a
business, in that "customers” should always be given consideration, as
they are what make your server. When there is a fight, a responsible
moderator will listen to both sides before making a decision.
Respect is extremely important, and yet is where 60-70% of the admins
and mods go wrong! They think because they are the admins, they can do
everything they like. Well, technically this is true, but with this
attitude, one will find themselves "self-appointed king” of an empty,
failed server! An attitude that one is always equal to every
player that joins the server is necessary. When something goes wrong, a
moderator has the power to correct it, but should always stick to the
server rules and not flaunt their power. If people are allowed to swear
according to the rules and someone swears at a moderator, they shouldn’t
kick or ban the player just because they can and just because the
insult happened to be aimed at them personally. This is one of the most
important things to keep in mind when you are an admin or mod; never
ever abuse your powers or use it in your favor unfairly!
If you stick to these five rules of engagement, you are guaranteed to
have the most ideal administration setup there is. Your server will
likely be populated every day, with players enjoying themselves and with
the helpful staff around.
One other thing to keep in mind is how to choose your staff. This
will (and should) take months to complete. To get a good working staff
you will have to look at players that join your server and get to know
them personally. Which ones always come back? Regular players are very
valuable and can be good candidates for moderation positions.
You will most often find the best mods/admins in the mid-skilled
range. This is because they know the game fairly well and they don’t go
crazy about getting shot, calling people cheaters all the time.
Mid-skilled players also tend to lack the elitism that plagues much of
the higher-echelon community (not to mention, higher-skilled players are
often too busy with clan matches and what-not to dedicate the needed
time to be an excellent server moderator).
This will mean that in the beginning, you won’t have any staff other
than yourself. If you happen to already know people who are up to the
task, you can of course add them as mods/admins. However, never add
friends or other people whom you know unless you are sure they can do
the job responsibly. The same goes for clan members. It might sound
antisocial, but they often make bad (even the worst) staff members.
A common rule that is used by many server administrators is the following:
People who ask to be admin or mod are not up to the task. You
will run into a lot of these players while hosting a server. Simply
ignore them and always keep in mind: people who ask for it don’t get it.
Only players who want the ego trip will ask for the position, and that
is the last type of staff member you want to have.
Advanced Tips and Tricks [top]
There is a lot more you can do with your server than initially meets
the eye. You can change gravity, slow objects down and tons of other
things. I will explain a few here that are the handiest or might be fun
modes for your server.
Batch file: You can start up and automatically restart your
server with a batch file. It can be used instead of the shortcut if you
prefer it. You can "program” your own functions into it as well. This .bat file
is an example batch file I’ve created which will restart the server
should it crash and simultaneously records any crashes into a log file.
If you want to use it, you’ll have to change the file paths to the
correct location for your own server. Batch files are also handy for
updating your server.
FPSbooster or WMP: Here’s a trick to boost the FPS of your
server. Higher FPS will make the game run smoother. The higher the
better, as long as you keep it below 800 (when you go above 800, you
will most likely find a lot of unexplainable server issues. It’s the
high FPS, I’m tellin’ you!). The secret to this trick is to simply open
Windows Media Player (and keep it open) while your server runs. It will
boost the fps to the max value set by fps_max. WMP uses a relatively
high amount of resources though, which is why I prefer the
srcdsfpsboost.exe program. It’s only 37kb and does the job perfectly!
Grab the file here.
Matrix Mode: Matrix mode is rather easy to explain. When
you shoot stuff or kill someone, it/they will move slowly, ala the
matrix style. It can be pretty neat to have. I’ve included a .cfg file
to accomplish this. Simply place it in the cfg folder of the server,
and then open up the server.cfg and add the line "exec server.cfg”
somewhere. To turn matrix mode on, type "mms” in the console once
in-game. The readme for this mode can be found in the cfg file itself.
Afterdeath Mode: Afterdeath mode is the same as matrix mode,
only reversed! Instead of things flying away from the shooter,
everything will fly towards the shooter. It mostly scares the crap out
of people; I’ve seen a lot of clients freak out when this mode is
enabled. The mode is included in the matrixmode.cfg. Simply install like
said above and you’re done. The readme can also be found within
matrixmode.cfg. To turn this mode on, type "mmsad” in the console (Note: you can’t run matrix mode and afterdeath mode at the same time)
BOT names and sounds: Are those standard bot names and
sounds getting boring? No problem—you can open botprofile.db and
botchatter.db with notepad (located in the SRCDS\cstrike folder) and
edit them to your heart’s content. You can change whatever you like:
names, weapon setups, skill levels and even make them use different
radio sounds. Be sure to make a backup before editing the files just in
case!
Titles.txt: This file is located in SRCDS\cstrike\scripts,
and with it you can change labels and what-not in the game (you could
call the terrorists "Wimps” and counter-terrorists "Douche Bags” if you
wanted to). Make sure you make a backup here too!
Debugging: Did your server crash without you knowing what
the problem was? When a server crashes, .mdmp files are made in the main
folder. You can open these with Microsoft Visual Studio .NET 2003 and
see what’s wrong (Thanks to Manofphat for this tip).
Sv_downloadurl: If you have web space, you can use this
variable to let people download custom maps and sounds from the web
server instead of the game server itself. This will improve speed a lot;
it can go as much as 50x faster. If your website is
http://www.mywebsite.com for example, you’d make a cstrike folder on
your website at http://www.mywebsite.com/cstrike. Then you would set the
variable like so: sv_downloadurl http://www.mywebsite.com/cstrike. The
next thing you will need to do is upload all of the custom maps and
sounds you will be using on the server to the cstrike folder. Maps go
into http://www.mywebsite/cstrike/maps and sounds in
http://www.mywebsite/cstrike/sounds.
Surf settings: Do you like surf maps? If you want to host a
surf server you have to add something to the configuration—simply
running the surf map isn’t enough. It’s rather easy to do though; simply
add the following command to the server.cfg: sv_airaccelerate 100. You
can also raise it a bit (up to 200) to make surfing easier.
Comments ():
|