• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

Your Guide to Setting Up a HLDS

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

ps2cho

Member
Joined
Oct 13, 2004
A Guide to Setting up a Half Life Dedicated Server​

Disclaimer**Under no circumstance may the following information posted by me (ps2cho) be copied onto any site or other medium without my personal consultation and approval.**


Ok after noticing and having some people emailing me about how to setup their own HLDS Server I have decided to make an in-depth tutorial on how to figure out if you can even do it, what hardware you need and also how to setup HLDS, AMX, AMXX, How to restart the server and possibly a few other addons.

Quick Links​

HLDS For Windows
Tweaking Your Server
HLDS For Linux and Counter-Strike Source HLDS

First of all let’s start with some vocabulary:

HLDS (Half Life Dedicated Server)
RCON (The Basic Command Variables
CMD (The DOS command prompt)
LAN (Local Area Network)
WAN (Wide Area Network -> the internet)
WLAN (Wireless Local Area Network)
CD (Change Directory)
CVAR (Game settings that define how the game reacts to everything you do. EG. Gravity
CFG (Config File)
AMX (Another versatile Half-Life metamod plugin which allows you to elaborate on your abilities in the server beyond RCON)
AMXX (AMX Mod X is a versatile Half-Life metamod plugin which is targeted toward server administration)
AdminMod (Although this is another choice for administration, I do not recommend it over AMXX unless your computer is very slow.
As I continue this thread, I will add more as I come across it.


Hardware and Connection

Ok so step one is of course can I EVEN run a server? What are the requirements?
I have always suggested to people that you require about 20MB of RAM for each slot on the server. Many people out there suggest only 8MB per slot but I personally believe that this is not sufficient because when the server is packed to the full slot capacity, the entire Physical memory of the system is used up. Ever try to do remote desktop to a computer who has a packed server? It takes quite some time! And the people on the server spike up to about 600ping while you’re trying which OBVIOUSLY shows that the computer is struggling to keep up otherwise the pings would not spike up to 600 would they now?
So, my personal suggestions would be:

08Player Server = 160MB RAM
10Player Server = 200MB RAM
12Player Server = 240MB RAM
16Player Server = 320MB RAM
18Player Server = 360MB RAM
24Player Server = 480MB RAM
28Player Server = 560MB RAM
32Player Server = 640MB RAM

So you have determined the correct amount of RAM you need for the server.
For the processing power…it is not AS limiting. I suggest anything over a 600MHz, Pentium or AMD. The Processor, although used a lot when full packed, is less intensive towards the HLDS because the RAM does most of the work. What you WILL find although is that if you decide to add bots to the server, you will experience some choppy’ ness in the server because now it has to process your commands, and control bots at the same time. I have found on my server that after about 15bots, my server will start becoming choppy, and I have a Duron900 @ 1.14GHz with 384MB RAM.
Now to the Hard Drive. For a minimum, I suggest 700MB.

The initial HLDS can range from 550MB to 700MB depending on the Mod you wish to use the server for. For a Condition Zero Server, the very basic package for the server to run uses 628MB of your Hard Drive. If you are planning to get an array of maps and plugins, I suggest having at least 1.5GB of Hard Drive space free. Creating a partition for the server on the hard drive is also my recommendation because it will speed up load times because it has nothing else to search through.

Now, the most important aspect of building a server is the connection.
Your connection will impact every player over WAN. Of course, anybody who is playing over LAN will only be impacted by the power of the computer, not the connection. Whoever is playing over WAN, they are affected by both the computer, and most importantly, the connection that you are hosted by. HLDS use your upload bandwidth. Although it uses your down bandwidth, it uses VERY little at all and it will not be your problem. Your upload speed dramatically affects what type of pings you will be expecting on the server.

For an example, Server 1 has 256k upload speed and is located in LA. N00b Play3r 1 Plays on this server from Las Vegas and pings about 90. Server 2 is also located in LA. N00b Play3r gets bored of server 1 because of the rather high ping and moves to Server 2. Server 2 has 1MB upload, N00b Play3r 1 now pings 35.

So your possibly asking how to I find out my bandwidth? Well first of all, our bandwidth, which is supplied by our ISP has the official given bandwidth and then there is the physical or throughput bandwidth. The throughput is usually lower than what is official titled. Eg. My 512k upload bandwidth runs at about 490-505kbps, that is the throughput.
To find out your bandwidth, make sure nobody is downloading or uploading anything on your network and go to this website:

www.dslreports.com/stest

On a side note: You MUST have Java installed to run this.
Scroll down a little and you will see a few companies Like SpeakEasy, MegaPath networks etc. Now next to each of these has text that has “Test speed using our server at xxxxx, county, state.” Now just click on it and you will redirected to the next page where if you scroll down a little again you will see a java box that has a START button. Just press it and it will test your connection. At the end you will be redirected to the results page which will look like this:
upload.jpg

Your Upload bandwidth will be located like I have pointed out.

So in conclusion, my suggestions of the ideal basic system would be the following:
• 512k upload bandwidth, at least 450k real-time, to be in combination with the following systems.
• 10Player Server -> 600MHz CPU with at least 200MB RAM
• 16Player Server -> 1GHz CPU with at least 320MB RAM
• 32Player Server -> 2.5GHz CPU with at least 640MB RAM

To understand how many players your connection can hold, enter any server, and go into console ~ and enable net_graph 3. You will see that most servers are sending you ~7-10k/s (The in bandwidth) So therefore, you should be designating around 20 per player because you are not connected a major backbone like most Dedicated Game Server Providers.

So that is the requirements section complete. You now have established what system to get, what internet connection will work the best and your ready to go!

Installation of HLDS


Ok so you have your 1GB of HDD space ready, your computers ready to go!
First of all you will need to head over to http://www.steampowered.com/?area=getsteamnow and download the “Windows HLDS Update Tool” Located to the right hand side of the page.
Just save the file to your desktop for now as its not needed after we install.
Go to your desktop and run the installation file. Press next and accept the license.
Now you should be at this screen:
dir.jpg

For now I suggest that you use the default directory (If you created a separate partition, then of course choose the partition but leave the folder as it is)

Now hit next and it will install.
Now when you hit the region screen you are probably wondering why I have to choose where I live. This is because when people set filters for the location of servers, your server will not show up where you would want it to show up because this was not set up correctly. It should look like this:
region.jpg

Pick your location and hit next, next, don’t bother with viewing the readme because I am going to tell you everything important.

Now open the folder where you have installed the program to double check its directory and its contents like this:

thefolder.jpg

If you see those files in there then you did everything right. Now comes the tricky part in which most people give up because the readme is so hard to comprehend. I’m going to put it simple for you : )

Go to Start->Run and a window will come up. With that up type in the box the following like this:

commandprompt.jpg


Now that you have the command prompt up, type the following shown in the next picture:
command2.jpg

Now type in cd c:\hlserver
Now the box should say C:\HLSERVER>

Now ASSUMING you DO have a steam account, You will now update your game using the following command:
C:\HLSERVER\Hldsupdatetool –update GAMEHERE ACCOUNTHERE PASSWORDHERE Y

If you do not own a steam account you can create a free one here:
Just type:

hldsupdatetool -command create -username usernamehere -email [email protected] -passwordhere -question "yourhintquestion" -answer “youranswer”

:-:The games that you can update are the following:-:
Czero : Condition Zero
Cstrike : Counter Strike 1.6
Counter-Strike Source : CS Source
DMC : Deathmatch Classic
DOD : Day Of Defeat
TFC : Team Fortress Classic
TS : The Specialists

update.jpg

Once all the needed files have been downloaded, It will say:
HLDS installation is up to date

Now you will notice in your HLServer folder that now a new folder will have been created with its name as your account you downloaded from.

Your HLDS is now ready for action! Let’s give it a try, but first we gotta set it up the correct way which uses the least amount of resources, and is the best way to keep it.

Create a shortcut to the HLDS to your desktop or wherever you wish to start the server like the following:

shortcut.jpg

Now that you have a shortcut on the desktop we can define what our server will start up as.
Now right click on the shortcut and go to properties and in the TARGET box put the following:
"C:\HLServer\youraccount\hlds.exe" +maxplayers 10 -game czero -console +port 27015 +map de_dust2_cz

The Maxplayers = the Amount of slots, so maxplayers 10 = 10 player server
The Port will be 27015 because that’s the most default port so leave it as it is.
And the map…up to you, I choose de_dust2_cz because its my favorite : )
A picture of this is below:

shortcut2.jpg

Ok, Now just double click on the Shortcut to HLDS icon on your desktop and let it fire up! If everything went correctly, it should look like this:

hldsfirststart.jpg

You have just successfully created your very first HLDS =).

Configuring Your New Server


Now we will setup how the server will do certain things. This is called the config.cfg file. The config.cfg file ultimately decides the startup settings of that the server will uphold like how long rounds will last, how many rounds will be the maximum, how long freezetime is etc.

Head over to your HLSERVER Folder then go into > your account > your Mod folder.

You will find yourself a config.cfg file in their but we will ignore that because im going to teach you how to create cfg files that we will use the same format in the future.

Open Notepad as this is the easiest program to create these.
Now lets start off with a little introduction to the server.cfg. When creating cfg files, //// before any text means that the server will not read this line so lets add at the top the following:

Note: 0 = off and 1 = on -> On most of the settings.

///Basic Server CFG file. Execute to return to original settings -> rcon exec config.cfg

Now we need to add some very important settings to maintain your server:

///Remember the IP addresses of the banned players.
exec listip.cfg

///Keep your banned players…Banned.
exec banned.cfg

///The main password to the server, if this password is discovered, your server is at risk.
Rcon_password yourpasswordherechoosewisely!

///Name of the server
Hostname “Overclockers CZ Server I Just Created”

///Allows the players to pause the server.
pausable 0

///Flashlight on
mp_flashlight 1

///Allows you to use all available views when dead.
mp_forcecamera 0

///Allows you to select different people playing to watch when dead.
mp_forcechasecam 0

///The amount of time available where everybody cannot move at the start of
every round in seconds.
mp_freezetime 1

///Once somebody kills too many people, or kills hostages etc. The server will kick him
mp_autokick 0

///Allows you to attack your teammates
mp_friendlyfire 0

///The timelimit on the map before it changes
mp_timelimit 25

///Maximum numbers of rounds within the timelimit, when reached the server
will change the map
mp_maxrounds 0

///Select the maximum number of players to join the game.
mp_maxplayers xx

///Allows everybody on the server to hear you
sv_alltalk 1

///Does not allow the in-game cheats to be used
sv_cheats 0

/// Removes/Sets any password to the server. With “” Empty, it means remove any password
sv_password ""

///This codec uses up less bandwidth on the server when everybody speaks, so use it.
sv_voicecodec voice_speex

///Set the quality of the voice, 1 is hard to hear, 5 is very good quality but bandwidth consuming. 2 is default and is sufficient.
sv_voicequality 2

Ok that’s about it! You can just copy and paste these items into your newly created notepad page and edit them to your preference.
Now with your newly created page go to File->Save As-> Locate your Mod Directory and type in server.cfg and save it like the following picture:

Click below to view image due to restrictions.
http://img.photobucket.com/albums/v229/microg00mba/octhread/savingcfg.jpg

You have now set all of your server’s settings. I would recommend from here to head into your server and connect to it.

To connect to your server you can either do it through your network by typing in connect “YourServersLANIPhere:27015” e.g. Connect 192.168.0.103:27015 in the console of your game.

Your server may or may not show up in the games list…we have yet to open ports and I will tell you how to do this in the troubleshooting section.

Now that you’re server.cfg file is complete your server is pretty much ready to go. We have a few last items that you can change to make your server perfect.

You have the mapcycle and motd text files. The Mapcycle is as it sounds. This will have maps in that the server will change to at the end of each timelimit. Just define what maps you want to be included in your server.
Eg.
De_dust2_cz
Fy_Iceworld_cz
Cs_assault
In order and downwards.

Next is the motd file. The motd file stands for Message of the Day. This is the first box that comes up when you enter any server. You can put rules here, a picture, whatever you want.

I created a rules picture in mine and the motd uses html as the coding.
To have a picture as a background use this code:

<body background="yoururlhere.imgextension">

To just have text with rules you can do the following:

(the B, I and U stand for Bold, Italic and underlined.)

<center><b><i><u>Welcome to *serverhere* Please review the rules before entering:</center></b></i></u>
<br>
<br>
No Teamkilling
<br>
Behave
<br>
Etc…

Now just save the files. You do not need to make these .cfg files! They are just plain text files.


This ends the HLDS Installation. Next Up will be how to install the addons, how to tweak them, add cool effects, plugins, tweaking your system for performance and troubleshooting! This will come very soon!
 
Last edited:
Mods and Addons​

First of all...what exactly do the mods and addons do that the built in rcon system does not?

The addon mods for Half life allow a whole variety of extras that your rcon does not even come close to.

First of all, and in my opinion the most important reason to get an addon mod is that you can grant admin priveledges without giving the person the rcon password which is basically giving him full run of the server, both to shut it down and etc.

AMXX Defines this very well
Plugins can take form in administrative services (adding new admin commands), statistcs generation (StatsX), fun additions (godmode, etc), gameplay changes (WC3, CSDM), and much, much more!
You can also write modules to expand the functionality of AMX Mod Xand add to the scripting language

Addon mods also have the following benefits and much much more:
  • Slapping
  • Slaying
  • Map voting
  • Fun modes

Ok Because AMX is no longer updated, nor has any potential compared to the constantly updated and improving AMXX, i will teach you how to install AMXX. Dont worry, you wont be disapointed by AMXX.

Metamod


First of all we need to get metamod.
As Explained on the Metamod site:
Metamod is a plugin/DLL manager that sits between the Half-Life Engine and an HL Game mod, allowing the dynamic loading/unloading of mod-like DLL plugins to add functionality to the HL server or game mod.

http://metamod.org/

Download the latest version on the right hand side.

Open up your HLSERVER folder now.

Go into your account>Mod folder
Now create a folder named "addons". Inside addons create another folder called "metamod". Inside metamod create anothe folder called "dlls". Inside that folder place the metamod.dll file that you downloaded.

Now go back to the mod's directory and edit the liblist.gam using notepad
Edit it so it looks like the following:

metamod1.jpg

Now go into the metamod folder and open a new notepad file.
add the following into it:

win32 addons\amxmodx\dlls\amxmodx_mm.dll

This is how it should look at how you should save it.

metamod2.jpg

AMXX


Ok first of all head over to the amxx website and download the AMX Mod X Base.

http://www.amxmodx.org/

Once the file has downloaded, open the file and copy and paste the AMXmodX Folder into your newly created addons folder.

Your folder will now look like this:

amxx1.jpg

AMXX Should now be complete and working. If you wish to check if it is you have two choices.
1) Open the HLDS.exe file and start up the server using condition zero then go into the console tab and type meta list. Like below:

amxxdone.jpg

The reason for this is that the console view does not reply to your meta list command. But you have no worry because amx will be working correctly.

Installation of Counter-Strike, Day Of Defeat ETC...​

If you are planning to be using HLDS for a CS server or the like, head back over to
www.amxmodx.com

Go to downloads-> and Download your addon you wish to use.

For this tutorial i will use the CS addon because they are all use the same procedure.

Download this zip file, and extract the folders inside the addons/amxmodx to your HLSERVER/Account/Mod/Addons/amxmodx Directory.
Overwrite the folders that are currently there.

Thats it :) Easy.

Configuring and Understanding AMX Mod X​

Lets start with going into the Config Folder and taking a look.
This folder will contain these folders:
  • amxx.cfg <-- AMX Mod X settings
  • clcmds.ini <-- Client menu's
  • cmds.ini <-- Command menu's
  • configs.ini <-- Config CFG menu's
  • conmotd.txt <-- No relevance
  • core.ini <-- No relevance
  • custommenuitems.cfg <-- No relevance
  • cvars.ini <-- CVAR Command Menu's
  • maps.ini <-- Your Maps
  • modules.ini <-- Modules that run
  • plugins.ini <-- List of running plugins
  • speech.ini <-- Speech Menu
  • stats.ini <-- No relevance
  • sql.ini <-- No relevance
  • users.ini <-- Admin priveledges set here


AMXX.cfg


Ok lets start with the AMXX.CFG file. Open it with Notepad.

There are a few settings in here that you can specify to your preference and these i will state below:

// Frequency in seconds and text of scrolling message
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600

// Center typed colored messages (last parameter is a color in RRRGGGBBB format)
amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"

// Frequency in seconds of colored messages
amx_freq_imessage 180

// Set in seconds how fast players can chat (chat-flood protection)
amx_flood_time 0.75

// Amount of reserved slots (for more details see comments in a plugin source)
amx_reservation 0

// Minimum delay in seconds between two voting sessions
amx_vote_delay 10

// How long voting session goes on
amx_vote_time 10

// Display who votes for what option
amx_vote_answers 1

// Some ratios for voting success
amx_votekick_ratio 0.40
amx_voteban_ratio 0.40
amx_votemap_ratio 0.40
amx_vote_ratio 0.02

// Max. time to which map can be extended
amx_extendmap_max 90

// Step for each extending
amx_extendmap_step 15

// Rank mode
// 0 - by nick
// 1 - by authid
// 2 - by ip
csstats_rank 1

// Max size of the stats file
csstats_maxsize 3500

The Only things i suggest changing here is the floodtime, rank mode and maxsize. I set my floodtime at 0.5 because i found that i was typing too fast for the server to display my messages.

Make sure your Rankmode is by AuthID or csstats_rank 1 because if you have several people playing from the same network, they wil have the same stats!

The max size of the stats file is the number of players allowed to be stored.
Although i doubt you will have more than 3,500 different steam id's join and play on your server within a period where you do not reset the stats(i'll teach you how to do this later) You should not need to adjust this. But of course if your server is planning to be big i suggest no more than 7000 because it takes up a lot of memory at that point.

The rest of these settings are just personal preference, do as you wish with changing them :).


configs.ini


Now lets look at the configs.cfg file. The configs.cfg file is a list of available settings that your server can switch to. When i mean settings i mean available .cfg files such as the server.cfg.
For instance, you have a Restart Round script named rr.cfg which inside it has a line like:

///restarts the round
mp_restartround 1

You would add or edit one of the current lines in it like the following:

"RestartRound.cfg" "servercfgfile rr.cfg;exec rr.cfg" "a" "u"

Make sure to remove the ; at the beggining. Anything with ; or / before it means the server will skip this line.

modules.ini


The modules are like chapters that you enable to allow certain abilities in the server to become available.

Here is a copy-paste of the file, i will add arrows on what i suggest to activate.

; ------------------------------
; Fun - provides extra functions
; ------------------------------
fun_amxx_i386.so
fun_amxx.dll
;fun_amxx_amd64.so <-- Deactivate if no amd64 cpu

; ----------------------------------------------------
; Engine - provides engine functions core to Half-Life
; ----------------------------------------------------
;engine_amxx_i386.so
;engine_amxx.dll
;engine_amxx_amd64.so

; ----------------------------------------------------------
; Fakemeta - provides a massive interface into the HL engine
; ----------------------------------------------------------
;fakemeta_amxx_i386.so
;fakemeta_amxx.dll
;fakemeta_amxx_amd64.so

; -------------------------------------------
; Database Access - only enable one of these
; -------------------------------------------
; MySQL
;mysql_amxx_i386.so
;mysql_amxx.dll
;mysql_amxx_amd64.so
; PostgreSQL
;pgsql_amxx_i386.so
;pgsql_amxx.dll
; Microsoft SQL
;mssql_amxx.dll
; SQLite
;sqlite_amxx.dll
;sqlite_amxx_i386.so
;sqlite_amxx_amd64.so

; ---------------------------------------------
; GeoIP - determines the country of ip adresses
; ---------------------------------------------
geoip_amxx_i386.so <-- Activate
geoip_amxx.dll <-- Activate
;geoip_amxx_amd64.so

; ------------------------------------
; Array - advanced arrays in scripting
; ------------------------------------
;array_amxx_i386.so
;array_amxx.dll
;array_amxx_amd64.so

; --------------------------------
; Sockets - network socket support
; --------------------------------
sockets_amxx_i386.so <-- activate
sockets_amxx.dll <-- Activate
;sockets_amxx_amd64.so <--inactivate unless you and amd64 cpu

; --------------------------
; Regular Expression support
; --------------------------
;regex_amxx_i386.so
;regex_amxx.dll
;regex_amxx_amd64.so

; ----------------------------------------------------------
; Counter-Strike - adds functions specific to Counter-Strike
; ----------------------------------------------------------
cstrike_amxx_i386.so
cstrike_amxx.dll
;cstrike_amxx_amd64.so <--deactivate

; -----------------------------------------------------
; CSX - adds functionality for CS statistics and events
; -----------------------------------------------------
csx_amxx_i386.so
csx_amxx.dll
;csx_amxx_amd64.so <-- deactivate

plugins.ini


The Plugins.ini specifies which special amx mod x options to activate.
Here is what it looks like, what you should touch, and what not to touch.

; AMX Mod X plugins

; Admin Base - Always one has to be activated
admin.amxx ; admin base (required for any admin-related)
;admin_sql.amxx ; admin base - SQL version (comment admin.amxx)

; Basic
admincmd.amxx ; basic admin console commands
adminhelp.amxx ; help command for admin console commands
adminslots.amxx ; slot reservation
multilingual.amxx ; Multi-Lingual management

; Menus
menufront.amxx ; front-end for admin menus
cmdmenu.amxx ; command menu (speech, settings)
plmenu.amxx ; players menu (kick, ban, client cmds.)
;telemenu.amxx ; teleport menu (Fun Module required!)
mapsmenu.amxx ; maps menu (vote, changelevel)

; Chat / Messages
adminchat.amxx ; console chat commands
antiflood.amxx ; prevent clients from chat-flooding the server
scrollmsg.amxx ; displays a scrolling message
imessage.amxx ; displays information messages
adminvote.amxx ; vote commands

; Map related
nextmap.amxx ; displays next map in mapcycle
mapchooser.amxx ; allows to vote for next map
timeleft.amxx ; displays time left on map

; Configuration
pausecfg.amxx ; allows to pause and unpause some plugins
statscfg.amxx ; allows to manage stats plugins via menu and commands

; Counter-Strike
;restmenu.amxx ; restrict weapons menu
;statsx.amxx ; stats on death or round end (CSX Module required!)
;miscstats.amxx ; bunch of events announcement for Counter-Strike
;stats_logging.amxx ; weapons stats logging (CSX Module required!)


; Custom - Add 3rd party plugins here


Now, if you are running a CS/CZ you will want to remove the ;'s for the items under the counter-strike section.

Everything else you will just leave. I will cover the custom plugins part when i show you how to add custom plugins, but for now just leave that too.


users.ini


The Users.ini provides you with complete control over what you grant to your administrators on the server. The users.ini is controlled by access flags, which are the keys to granting rights to every user that you choose. You can, for example, give one person complete and all priveldges over the server, while another person can lets say, only changemap? You get the idea...so lets get to it.

Below are the access flags to which describe what each letter stands for and gives to the user. The Custom Flags (M through T) are for plugins if you wish to specify a seperate flag. For now we will not worry about these.

; Access flags:
; a - immunity (can't be kicked/banned/slayed/slaped and affected by other commmands)
; b - reservation (can join on reserved slots)
; c - amx_kick command
; d - amx_ban and amx_unban commands
; e - amx_slay and amx_slap commands
; f - amx_map command
; g - amx_cvar command (not all cvars will be available)
; h - amx_cfg command
; i - amx_chat and other chat commands
; j - amx_vote and other vote commands
; k - access to sv_password cvar (by amx_cvar command)
; l - access to amx_rcon command and rcon_password cvar (by amx_cvar command)
; m - custom level A (for additional plugins)
; n - custom level B
; o - custom level C
; p - custom level D
; q - custom level E
; r - custom level F
; s - custom level G
; t - custom level H
; u - menu access
; z - user (no admin)

Below are the Account Flags. These are how the server will process who is who. If you wish to add an admin through their IP address then the flag would be D. If you wish to add them through their SteamID/WonID then you would pick C. I really do not need to go through passwords because frankly, they are not needed...a steamid is plenty enough security. I do NOT recommend using Clan Tags! People will just come in and exploit this. My suggestions are to use flags C and E.

; Account flags:
; a - disconnect player on invalid password
; b - clan tag
; c - this is steamid/wonid
; d - this is ip
; e - password is not checked (only name/ip/steamid needed)

Now below is where everythign comes into play. As you can see below i have created an example. As you can see, for organization-wise, i have created subheadings for each so its easier to seperature who has what.

REMEMBER: ANY ; Sign means the script will disregard that line!!!

Now i have set Full Admin to have all priveldges that the server has. Flags a-u, To check SteamID and no password.

The "" after the steam id is for if you wish to add a password, but as i put above, it really is not neccessary and it involves the user to change his .cfg's in his steam directory so he can login with this password...its not worth the hassle.

; FULL ADMIN-:;
"STEAM_0:1:xxxxxxx" "" "abcdefghijklmnopqrstu" "ce" ; ps2cho
"STEAM_0:0:xxxxxxx" "" "abcdefghijklmnopqrstu" "ce" ; ocforums

My Medium Admin users have everything that the full admin has, except they do not have access to Ban players, the RCON and immunity

;MEDIUM ADMIN ACCESS:
"STEAM_0:0:xxxxxxx" "" "bcdefghijkmnopqrstu" "ce" ; Jim
"STEAM_0:1:xxxxxxx" "" "bcdefghijkmnopqrstu" "ce" ; Friendly Noob player

My Limited Admin users have do not have access to Ban players, the RCON, kick, slay/slap, immunity. They can only do basic stuff like change the map, post messages, do private chat and change cvars.

;LIMITED ADMIN:
"STEAM_0:0:xxxxxxx" "" "fghijkmnopqrstu" "ce" ; ben
"STEAM_0:0:xxxxxxx" "" "fghijkmnopqrstu" "ce" ; Bobby the mailman

The above you can use a template for yours, or you can create a new one and shape it to your likings.

"loopback" "" "abcdefghijklmnopqrstu" "de"

The Loopback is for if you are going to be playing on the same computer as the server. Although most people do not, if this is not a perminent server you would need it. I recommend you just leave it.

Third Party Plugins​

The great thing about AMXX is the ability to install plugins to the server to increase its..."fun-tivity" as i put it ^_^

Here i will teach you how to add plugins and configure them.

For everythign to do with plugins we will be using the plugins.ini in the config folder, the Plugins folder and the Scripting folder Like below:

plugins1.jpg

Ok so for this tutorial we will be adding a Rules plugin so that everytime you join the server, a list of rules will appear. Its a good plugin that i use.

http://www.amxmodx.org/forums/viewtopic.php?p=73413

Ok so first head over to this page and download the files as shown in the picture below:

plugin2.jpg

Now, Get your Files that you just added and place the .AMXX Files into the Plugins folder and the .SMA files into the Scripting Folder like shown below:

plugins3.jpg

Now, Head into the Plugins folder and open up notepad to a blank page.

We must create a list of the custom plugins so that it can tell the difference between the standard and custom.

The new plugins list (Called Plugins.ini) Will list the names of the .AMXX Files.

Just save it into the plugins folder called plugins.ini

The Picture below will be more clear:

plugins4.jpg

Now, head back into your config folder and we will do the same except there is already a plugins.ini file remember? Remember it had a "; Custom - Add 3rd party plugins here" Now all we have to do is the same as the plugins.ini in the plugins folder!
This is how it should look.

; Custom - Add 3rd party plugins here
server_rules.amxx

We will always add the .amxx file, never the .sma

Now Lets test and see if it worked hey! But first lets add some rules to the server so it actually shows up.

Go into your amxx.cfg file in the plugins folder and add the following lines to it:

// Rules list that will show up.
amx_addrule "Do not TK"
amx_addrule "Overclocking Rules"
amx_addrule "Do NOT hack"
amx_addrule "Do not use Auto Sniper"
amx_addrule "Owner of Clan & Server is Overclockers Forum"
amx_addrule "Have Fun"

Now reload the map and it will be in effect. Lets test hey!

srworking.jpg

Yay! Your first Plugin has been completed successfully!

From here the same rules apply to every plugin you wish to add.
You put the name of the .amxx file into the plugins.ini file in the Config and plugins folder. Put the .amxx file into the Plugins folder and the .sma file into the scripting folder.

Goodluck. A few good plugins that i like to use are called uberslap, amx_name (to change the players name in-game) and deags mapmanager(very good mapvoting and cool effects!)

Be aware...the more plugins you add, the more CPU your server will take up, Simple and clean is the most effective way for a slow server.

This ends the configuration of AMXX. Have fun
 
Last edited:
Tweaking your Server​

This section can be applied to every server, HLDS, FTP Server, Any type of server. I will go through disabling services, and basically strip down your windows to its bare minimum to obtain the best amount of speed possible.

For this tutorial i will be using Windows XP Pro to tweak.

Backgrounds and Visual Settings​

This is the KILLER of resources out of everything. Backgrounds, Flashy menus and the like use up a LOT of your available resources.

First lets do the basics. Turn off any background image. Right click on your desktop, go to Properties then the Desktop Tab. Now select None as your background image like shown below:

bground.jpg

Next, another killer is the screensaver. Turning off the screensaver and turning off the moniter instead will achieve two things.
1) Save your precious Moniter's Life (If your server is connected to one that is)
2) Use less resources
3) Save Your electric Bill

Go to the screensaver tab and follow the picture below. Your power saving settings should be very similar.

ssaver.jpg

Next comes the advanced visual settings. Right click on my computer and go to properties. Then go to Advanced, Performance Settings and follow the picture below:

performance.jpg

Now, the next thing which is more of a hard drive oriented space saver is changing something called the system restore. If you do not know/understand/have seen the system restore function before here is a brief explanation of what it is.

System Restore allows you to save a specific point of your computer that you can...reload to. If lets say you installed a program that corrupted something, then you could restore to the point before you installed the program and you hope that it will fix it.

So your saying, Why change this? In my personal opinion, if your computer is going to crash or get corrupt, it either will make your computer completly useless and you will have no option but to format the HDD, or it will be a very minor error with an easy fix. I see no point to waste 12% of your Hard Drives space...for nothing.

To turn off, or reduce system restore, right click on my computer, go to properties and then system restore. Use the slider to pick how you wish to set it up. The picture below is more clear:

sysrestore.jpg

Ok now that we have made sure our visuals are not slowing us down, lets get to some REAL tweaking.

First off, lets stop any of those useless programs from starting up in the background without you realizing. Go to Start-Run and type in msconfig then go to the services tab.

In here will be a list of programs that start without confirmation. Now if this is not a fresh installed OS, you will most likely have items such as winamp and realsced running in the background. You want to disable all of these. Any programs that are 3rd party and not to do with networking or the integral components of the OS, just disable them like shown below:

msconfig.jpg

Now lets head over the services. Go to Start-Run and type in services.msc
The services are a bit more tricky because you probably do not know what you need to keep and what you do not...so im going to show you which services i disabled to run my server as maximum performance.

To disable a service, right click on it, go to properties then click on the drop down menu where it has Automatic/manual and choose Disabled.

The following picture explains it further:

services1.jpg

Here is a screenshot of all of my disabled services, you can do the same or leave a few of them running if you need them.

Click to View
http://img.photobucket.com/albums/v229/microg00mba/octhread/services2.jpg


sv_downloadurl

One problem with using HLDS to upload maps to clients is that it is limited to 8kbps. Now, when most big maps are 2mb+, this can take several minutes to download the map. Setting up an sv_downloadurl will allow you to upload the files at the maximum speed you can send it, thus dramatically reducing the time needed to download files from the server.

Requirements?

-A HTTP server.
-Any high speed connection other than dial up.

Now it is pretty simple, once you have your HTTP server (one easy way to create an HTTP server for your home connection is to use a program called Fastream which allows you to setup a home web server with full GUI. You can also use any other HTTP server software/host. If you are planning to use an online host, you will need a descent amount of bandwidth and also please check the EULA of the hosting company to check that this is legal.

Now simply, create a folder in the same directory as the HTTP server and name it whatever you want. I named mine HTTPCZDL.
Now place all of the files that server will upload to the client in the same organization as in the HLSERVER folder. eg.
HTTPCZDL\Maps
HTTPCZDL\Overviews
HTTPCZDL\Sounds
etc...
WAD files will just go in the HTTPCZDL folder itself. Now, if you did this correctly, Type in your browser:
http://YourIPorDNS.com/HTTPCZDL and it should bring up all of the files that you have put in there. If this worked then in your config.cfg/server.cfg file put the following:

sv_urldownload http://YourIPorDNS.com/HTTPCZDL



Restarting the Server Automatically


Ok so now you have your server all ready and it's crashed a few times and your wondering how do i make it so it will restart itself?
For this i use a program called ServerDoc.

First head over to http://www.serverdoc.com/ and download the latest version of the program.

Extract the files into a folder other than the HLDS (although you can put it in this folder, i find its better organization not to) So for this example i have extracted it to C:\ServerDoc\ Like shown below:

serverdoc1.jpg


Now first double click on the serverdoc.exe so it creates some basic files it needs.

Now from here do exactly the same procedure as you did to create the HLDS Shortcut to the desktop to enable the Console view.

Create a shortcut to the desktop of the Serverdoc.exe, right click->properties and Copy and paste the target line from the shortcut you made earlier from the HLDS.exe remember? Just put a space after the serverdocs original target and copy+paste the HLDS.exe one Like shown below:

serverdoc2.jpg


Now just double click on it and leave it to do its job! When the program crashes it will restart it automatically. Also If you right click on it you can set its windows priority, although this is optional, i selected its priority as High. and to start the program minimized and also the server. The picture below shows it better:

Click below to view
http://img.photobucket.com/albums/v229/microg00mba/octhread/serverdoc3.jpg

Server Administration​

Do you have a spare computer, but no extra keyboard/mouse or monitor? No problem! We have a solution for you. It's quick, easy to setup, no ports needed to be opened unless you want to access the computer from outside your network and...best of all...its FREE.

Steps:
1) Head on over to http://www.tightvnc.com/download.html
2) Download the latest version of the server (Should be the first download link)
3) Install the program, ensure that you mark the box that sets it as a service and starts with windows
4) You should see the TightVNC icon in the bottom right hand corner(system tray). Double click on it and open it up.

It should look very similiar, if the same as this (I am currently showing version 1.2.9):
vnc1.jpg

5) Make a new password for the server for security reasons
6) Make sure that Disable remote keyboard and pointer is NOT checked, otherwise you will not be able to move the mouse at all.
7) You can now download the viewer from the TightVNC site on the computer you wish to use to access the server. Simply enter the LAN IP of the server (to do that go to start -> run -> cmd -> type ipconfig and look for the IP Address...it will be close to 192.168.x.xxx x being a number)

8) IF you wish to access this outside of your network, you *May* need to open the ports. To open ports, head into your router and open both ports 5800 and 5900. All routers are different so there is no way I can say every single way. Then simply put your WAN IP (whatismyip.com to find that) and press enter in the VNC Viewer.
9) Enjoy access to your server

Disabling bandwidth throttling
Windows by default will not allow you to use more than 20% of your total networks bandwidth. We want to disable this for sure. You can do this by going to start -> run -> type Gpedit.msc ----> Chose Computer Configuration -> Administrative Templates -> Network -> QoS Packet Scheduler -> Limit Reserve Bandwidth -> Enable and set to 0%. Picture below:
bw1.jpg
 
Last edited:
Troubleshooting​

Your starting to scrim and dont understand the abbreviations these people are using? Here are the definitions for you :]


Scrim (A scrimmage between two clans as a match to prove who is the best)
Lo3 (Live on Three. Executed to begin a scrim)
DR (Dead Round)
gh (Good Half, At this point you switch teams)

I cant get my admins to work!

The most likely cause of this is because you have not removed the ; before the line. First check that, after that just simply take the default line and just change the bits that pertain to you, that way you know its correct, i wouldnt try creating your own line. Still not working? Last thing is to check that you have the Account Flags:
; Account flags:
; a - disconnect player on invalid password
; b - clan tag
; c - this is steamid/wonid
; d - this is ip
; e - password is not checked (only name/ip/steamid needed)

Make sure if you have chosen to do it by STEAMID then to put CE as the account flag

Everytime i change the map my server crashes and says its missing a .wad file!

This is a very common problem with a pretty easy solution. To stop the SERVER from crashing, simply search the name of the wad on google. e.g de_vegas.wad, it will come up and you need to download it. Now just extract the .wad file to the base MOD folder.
E.G HLSERVER/Your account/Your Mod. Now your server will not crash.

If you need that file to be downloaded to the client then you must create a .res file for that map.

First find the .wad file nad put it in the server, next find the map that needs it. Now create a new notepad document and simply type in the name of the wad on seperate lines for each wad you want the client to download because their game crashes too.
e.g:
de_vegas.wad
jos.wad
Now just save the file as the same name as the map, but with a .res on the end
e.g:
aim_map.res

Now if the client does not have that file, the server will upload it to them.

People cannot find the server?​

Ok there is only a few reasons why this could be happening.
1) HLDS was incorrectly installed and configured.
2) Port/Firewall Issue
3) Incorrect IP...confusing WAN with LAN.

-->1) Double check your HLDS Installation and refer to the picture near the top of a successful HLDS installation.

-->2) The most common problem. If you have a D-Link router refer to this link:
http://support.dlink.com/faq/view.asp?prod_id=969
If you have any other router, refer to this link:
http://www.portforward.com/english/applications/port_forwarding/HalfLife/HalfLifeindex.htm

Basically, something is blocking the traffic going to port 27015. You can either try another port and the router may accept it, or simply open the port. You may be required to reboot the router after the port has been opened. If your router has a "Gaming Mode" option, make sure it is enabled. As a last resort, which i do not recommend, enable a DMZ or "Demilitarized Zone" which allows a computer to become in front of the firewall. This means it is easier to obtain spyware/virus' and the ability to be hacked. This can be solved to some extent with a Software Firewall such as Sygate Personal Firewall 5.6(last free version).

-->3) Ok your mixing up a LAN IP with a WAN IP. Use the IP it shows on www.whatismyip.com instead of the IP in cmd->ipconfig. Give people outside the network that WAN IP, not the LAN IP.


Having lag trouble? Try this Plugin:

HLBooster​

As defined by the United Admins site
Booster2 improves your server's responsiveness by reducing the time HLDS spends 'sleeping' between frames. This improves player ping and event response time by increasing FPS. There are two approaches Booster2 can use to improve responsiveness:

1) mmtimer approach (original WinHLBooster method) - this works by modifying sys_ticrate and the Win32 multimedia timer to adjust the 'clock' HLDS uses to time its sleep period. It essentially tricks HLDS into sleeping less. Options are available to both target a specific server FPS and to prevent CPU consumption from exceeding certain thresholds. Under this approach, server FPS will start high under no load and gradually decrease as load (players) is added.

2) pingbooster approach (Booster-Lite method) - this works by teaching HLDS to wake up from a sleep state whenever data arrives from the player. Options are available to vary exactly how this approach functions. Under this approach, server FPS will generally start low under no load and increase as load is added.

This program i HIGHLY recommend to run! HLBooster DOES actually improve pings by as much as 10! Over LAN, My ping went from 11 down to about 5/6. Over WAN, my friend no longer got 35ping, but averages about 23 and i have seen it as low as 12!
This Does work.

Head over to the either of the follow links:

http://forums.unitedadmins.com/index.php?s=&act=SF&f=166
Go there if you wish to check that there is a newer version that 2.40. If you know there is not, here is the direct link:

http://www.zepher.f2s.com/files/booster240_plugin.zip

Now, simply if you do not have metamod installed, install that using the steps in the first section. Now create a new folder inside the Addons folder and name it "booster", then extract the booster_mm.dll into it like shown below:

booster1.jpg


Now, Go into the metamod folder and open up the plugins.ini. Now add a new line like this:

It should look like this now:

booster2.jpg
Now finally, open up your config.cfg/server.cfg file and add all of the following. You do not need to edit any of this.



Links To Useful Sites

www.amxmodx.org

www.sourcemod.net

www.adminmod.org

www.metamod.org

www.amxmod.net


Just notes for me to remind myself about what to add to this because my brain slips :D
;
user.ini
wad crash
compile



HLDS For Linux

Ok so we have the win32 platform down now, so lets move onto the Linux stage.

Firstly lets ready ourselfs and create the directories.
Create a directory in your users home and name it hlds1 or hlds_public, whatever you want:

#mkdir hlds_pub

Now change to that directory:

#cd hlds_pub

Next we need to get the HLDSUpdatetool for linux:

#wget Mirrorhere

Here is a list of available mirrors to link to:

http://users.lichtsnel.nl/~jap/steam/steam.tar.gz

Now that we have the hldsupdatetool for linux, we need to unpack it so do that using the following:

#tar -zxvf steam.tar.gz

Now we must make the file executable, so do the following:

#chmod +x steam

Next we have to make sure that we have the latest version of the hldsupdatetool so simply run the program:

#./steam
If done correctly it should display:
Checking bootstrapper version ...
Getting version X of Steam HLDS Update Tool
Downloading. . . . . . . . . . .
Steam Linux Client updated, please retry the command


Now from here you have to pick one or both of the following steps.
Step one is to create an account if you do not have a steam account already. If you do have one, just skip the first step and login to download the game.

To create an account use the following format:

./steam -command create -username <username> -email <email> -password <password> -question <question> -answer <answer>

If done correctly, it will respond with this:

Checking bootstrapper version ...
Creating Account
Account Created successfully


Now that we have created an account or you already have one, lets download the game.

Use the following:

./steam -command update -game cstrike -dir /home/youruser/hlds_pub -username ps2cho -password ocforums -remember_password

For the -game, you can use the following for each type of game:
cstrike = Counter-Strike 1.6
czero = Condition Zero
tfc = Team Fortress Classic
etc...

If done correctly it will respond with the following:

No installation record found at /home/YourUser/hlds_pub
Checking/Installing 'Counter-Strike Base Content' version xx


Once complete your HLDS is ready to be run.

To start it use the following:

./hlds_run -game cstrike +map de_dust2 +maxplayers 16 +port 27016 -autoupdate

change anything above to suit your needs.

Your Linux HLDS is complete and will run now.

Goodluck.

BOOSTER FOR LINUX ! WOOT!

Placing Booster in for Linux is a LOT easier that the windows as it is built in!

Simply place -booster 3 as part of the run line command.
eg:
./hlds_run -game cstrike +map de_dust2 +maxplayers 16 +port 27016 -autoupdate -booster 3

Now you will have a boosted server =) Beware though, a lot more CPU Usage is in place now, so booster is system dependant, if you have a slow system, you will probably get less than gain.

Enjoy :)



Counter-Strike Source and Series​

Ok, I have finally decided to update and include how to install and get counter-strike source running. This tutorial will also include how to install Mani mod and a few plugins!


Installation​

Firstly, let's install it. I am assuming most of you are too lazy to go back up to the top and see how to do it, or your connection is too slow ;) So I will spend a little more time and add all the images again so you can see exactly how to do it.

One thing to add, you CANNOT install both a Half Life 1 and 2 server in the same directory, so just install a new HLDS, but install into a different directory and then follow these steps:

Ok, now we install it. Go to start -> run -> type cmd
We must change to the directory of the HLDS folder. Do this via the command cd , which stands for change directory. Typically you will have it pointing to the following directory: c:\program files\valve\hlserver, so you would do the following
cd c:\program files\valve\hlserver

Follow this picture:
css1.jpg

If done correctly, it should start downloading files as shown. If you are wondering, the -dir . means install in the current directory. The rest is self-explanatory.

Now, we must place a Server.cfg file into the cstrike/cfg folder.
You can download the following file and change what you need:
http://ps2cho.net/downloads/server.cfg

Once complete, make a shortcut to the SRCDS.exe file by right clicking on it and hit create shortcut.

Now, right click on the shortcut you made and go to properties. In the target line, add the following:
-console -game cstrike +map de_dust2 -maxplayers 12 -autoupdate
This will load counter-strike source with 12 players on de_dust2

Hit ok and load the server. It should now start as follows:
css2.jpg

If so, you're server is up and running and you can go test it over your LAN, or WAN (but may need to open the ports for this).

Counter-Strike Source Mods​

Coming soon.
 
Last edited:
Wow, yeah, nice guide ps2cho!!
I can definately smell a sticky on this :thup:

I will be trying this out sometime (hopefully soon) :)
 
well if anybody has questions or comments along the way, or get errors please post about it so i can see if i can resolve and add it to the troubleshooting section.
 
demighost said:
all i can say is wow. im curerntly setting up a cs:s server now and this has helped so much. ty. someone sticky this now

need any help just ask me or ps2cho. set it up serveral times.

o and somthing u might want to add is where to get the mods like as in a list.like
.amx blah blha blah
.adminmod Blah Blah
.Bettelefart Blah Blah

just saying. well any ways for source go to Source Mods .
 
i need an admins help...i cannot edit my posts because it says i have included too many tags!!
help!
 
i cant continue because of the img capp!!! Grrr need admin!!
 
I cannot edit the first post because i get an error :( Now my organization for the vocab is going to have to be continued in the troubleshooting section. This is the error i get:

dumbthing...>.< said:
The following errors occurred when this message was submitted:

1. You have included too many images in your signature or in your previous post. Please go back and correct the problem and then continue again.

Images include use of smilies, the vB code tag and HTML <img> tags. The use of these is all subject to them being enabled by the administrator.
[/quote]
Spoke to admin...nothing they can do either..
:(
 
Back