Serious Sam 3: BFE
rubregg Dec 29, 2012 @ 1:40am
Dedicated Servers - Questions and Answers
First of all: I am not the expert here (the experts are at I'm figuring out things as I go along myself and while I'm not new to running servers I surely am very new to Sam (instant love). I suspect that many things about Sam3 Servers are very similar to the older Serious Sam games so a lot of this might be utterly obvious to you veterans. But for us newcomers I thought I'd start this topic to keep information on running Serious Sam 3 dedicated servers in one place.

A few things have been popping up here and there, and it's probably better to keep it all together in one topic.


@ noobs-like-me: Ask away.

@ you-veterans-out-there: Please help us on our way and correct us where we wander astray. Your help is much appreciated.

  • How to install the dedicated server

    Start on the official FAQ[], currently 1.6[] and 1.10[]. If you're running the server on linux, that FAQ also has the link to Valve's SteamCMD instructions (the old installation method via hldsupdatetool is obsolete, you'll have to use SteamCMD now, with appid 41080).

    I also found some useful information here[]; the installation process works different now, but the rest might very well help you on your way. [Note: The daemon script provided there is intended for Debian based systems and might not work if you run a different one.]

  • Check the ReadMe

    You'll find it in the 'Help' folder of your server installation.

  • Starting the server

    Example line to launch your server on linux:
    ./Bin/ +exec sam.cfg +gameoptions sam.options.cfg &> Log/Sam3_console.log &
    This will run your server in the background and all console output will be written to ../Log/Sam3_console.log. (If you get errors, some of them might not appear in the server log, only in the console log.)

  • Stopping the server

    I found this information on the site I've already linked to above[], in the Daemon Sam section (this is for Linux).

    If you're running it in the foreground, shut it down with Ctrl-C.
    If you're running it in the background, kill it with signal 2 (SIGINT = Ctrl-C), not signal 15 (SIGTERM).

  • Configuring the server

    Angelo on seriouszone[] has made a very handy Windows tool[] for creating server config files. If you're running your server on Linux, just copy the config file over to your server (not 100% sure if it's a "must", but having unix-type line endings and UTF-8 encoding can't hurt; if you're editing your config file on Windows you can use, for example, Notepad2[] for stuff like that).

  • Server crashing with memory access error - Line 17

    I had lots of them at first. Removing the if clause that checks for the binary name fixed these errors for me (in my case lines 13-17 of , might change with updates). My is now:
    #!/bin/bash # this script will set LD_LIBRARY_PATH so that application can properly load required libraries # to debug application you'll have to manually set LD_LIBRARY_PATH to the path where executable is located scriptdir=$(dirname "${0}") pushd ${scriptdir} > /dev/null basedir=$(pwd -L) export LD_LIBRARY_PATH=${basedir} if [ -e ]; then ./ fi # put exact name of your binary here, case-sensitive ./Sam3_DedicatedServer "$@" popd > /dev/null
  • Running Jewel of the Nile DLC on the server

    Read SGC_Zaphod's post, he has helped me out on this one.

  • Voting to change between normal and DLC campaign

    You cannot do that via vote - change map, you have to use vote - change game mode. Thanks to ChrisW for this.
Last edited by rubregg; Dec 29, 2012 @ 1:57am
< >
Showing 1-15 of 45 comments
rubregg Dec 29, 2012 @ 2:21am 
I have these here questions at the moment:

Regarding Jewel of the Nile:
Are these 2 files required? I copied them over to be on the safe side, but are they needed?

Password protection:
Is there a way to have a password on the server? For the occasional private session or things like that...
I've found net_strConnectPassword but setting it in my config file won't work.

So I'm wondering:
net_strAdminPassword net_strConnectPassword net_strObserverPassword net_strVIPPassword net_iMaxClients <---- vs. ----> gam_ctMaxPlayers net_iMaxObservers net_iVIPReserve
^ what do these do / how do they work?

Last edited by rubregg; Dec 29, 2012 @ 2:37am
Zaphod Dec 29, 2012 @ 6:50am 
I have the same question/observation regarding passwords for the server. I have tried numerous things with the commands provided, same as rubregg, and none of them seem to work. I haven't found a use for any of the "net_" settings.

However, one of the guys in our clan figured out how to operate the server in a sort-of private fashion using "reserved slots". In this mode, the first person to join the server occupies "Slot 0" and nobody else can join the server unless they are in the Slot 0 player's friends list (i.e., they have to join via the "Join Game" menu option under the Steam friends list). I will occasionally run mine in that mode to keep the game so only my friends can join. Briefly, you set the value "gam_ctPrivateSlots" to be one less than "gam_ctMaxPlayers". One caveat, if the player who occupies "Slot 0" (Index 0) leaves the game, then the game is no longer in private mode until all players leave and the server restarts.

If you only wanted to do this occasionally, and you have telnet access into your server, you can log in and change the value, then restat the server, without messing with the config file. For example, lets say you have a 16-player server:

Log into your server with your rcon password, then enter the following commands:
>gam_ctPrivateSlots = 15

When the server restarts, the first one in will now take the public "slot 0" position. To restore it back to "normal" mode you can either log in again and set gam_ctPrivateSlots back to 0 and restart, or else shut down the server and start it up again so it will read your config file.

On the server end, password protection is one of the features I would like to see working; also, I haven't figured out how to effectively ban players from the server. I would think I should be able to telnet in to my own server and ban problem players, and have the ban list written to a file somewhere. Any time I have tried to use this feature it doesn't seem to work.
rubregg Dec 29, 2012 @ 9:13pm 
Private Slots
Thanks SGC_Zaphod, that's a good work-around to start with seeing how the net_str.....Passwords aren't properly implemented yet. Just for fun I've tried setting gam_ctPrivateSlots = gam_ctMaxPlayers (i.e. all slots are private) and I could still connect onto the empty server. So my guess is that even if all slots are private, anyone can connect to an empty server, but from then on only friends. Haven't had the chance to properly test this yet. If it works like this, that player with the precious spot 0 wouldn't have to stay to keep the game private. Also, I think in a private game it's not only player 0's friends who can join, but friends of any player who is already on the server. I'm pretty sure it's like that on listen servers, could be different on dedicateds.

You're talking about permanent bans, right? I'd guess that gamBanByIndex / gamBanByName correspond to the voting menu's "Ban for 60 minutes" option, so that's probably all you can do from within the game. It might be possible via execing some sort of LUA script that keeps checking for connecting players and kicks them if they match some criteria - but I'm so new to LUA that I couldn't possibly tell you how to do this. As for permanent IP bans there's always the brute-force method via your server's HOSTS file, but seeing how many providers dish out dynamic IPs you'd probably have to block whole IP ranges .... which feels a bit like spamming cannon balls with friendly fire on... Anyway, permanent bans by SteamID would be a nice feature.

Chat via RCON
Is there a way to send a message to players via RCON (sth like "Warning, server shutting down in 15min for private session")?
chatSay("test") works in-game but not from RCON...

Originally posted by SGC_Zaphod:
On the server end, password protection is one of the features I would like to see working
I second that.


Bug in Server List - Details
I just noticed this: in-game, in the server list, if you look at any server's details you'll see the "Private Session" box ticked depending on the client's gam_ctPrivateSlots setting, not the server's. I was toying around with this cvar during testing and suddenly *all* servers on the list were private sessions. ...until I put gam_ctPrivateSlots = 0 into my client's console, then all servers showed as not private.
Last edited by rubregg; Dec 29, 2012 @ 9:37pm
Zaphod Dec 31, 2012 @ 4:57am 
I agree, bans through Steam ID would be the ideal - just not sure how that would get implemented. On our left4dead servers it's done through sourcemod but since this isn't a source-based game I don't know how that would be done.

I would also like to know how to post a message through RCON. I know the most-recent version of the 'Dedicated Server Runner" has a feature that can post messages on-screen at timed intervals, so I'm guessing there is a way to do it, I just haven't looked into it. When I want to clear out the server, if possible I will join the game and just type a message in chat. I can RCON in and kick one player if I need space to join.

I wasn't aware you could set the private slots = total max slots -- I'll have to mess with that some when I get time. I'm pretty sure when I tried that long ago it made it so NOBODY could join the server, but maybe something was changed on one of the updates? Anyway thanks for the tip!

Also, as regards the files needed to run the DLC - I just now loaded mine up and ran through the first few minutes of the "Jewel" DLC. All I had to copy over was DLC_Sam3Extended.gro. I'm currently running the 174807 "beta" version, and when you opt into that on the server tool, it actually downloads the "DLC_Sam3Extended.dat" and "DLC_Sam3Extended_174807.gro" files for you. Seems to work just fine that way.

ps I'm glad there are a few people interested in sharing information about the SS3 servers!
ChrisW Dec 31, 2012 @ 12:16pm 
If you need to control the server remotely, you can login to the server through Telnet. Make sure you have Telnet installed, the port open for remote login if you are not on the same network, and the password enabled (rcts_strAdminPassword). Then just login to Telnet with the ip address and password.

If you enable private slots, all slots will be private. You can't enable just a few private slots for some reason.
rubregg Jan 4, 2013 @ 10:59pm 
Chat via RCON
Had a look at the chat script of the server runner. It's using the chatsay command, so it has to work ...... some way. ...confused...

Private Slots
I've had higly erratic results during testing and I now suspect you shouldn't change priv <--> not-priv on a running server at all. I'm not talking gamRestartServer(), I mean a complete shutdown and restart. Much obliged if anyone could shed a little more light on this.
AlenL  [developer] Jan 5, 2013 @ 1:59am 
Chat via rcon should work. Private slot are all or nothing, yes, you are right about that. Those were not meant to be used on dedicated servers, but on listen servers. But you can use it as described above - where first player locks the server into his friends.

I _think_ there is supposed to be a permaban option, but not sure whether it is for SSHD:TSE or SS3. All bans are by Steam ID, regardless of whether the command is called with name or index. Internally it translates to steam id and bans that.
rubregg Jan 5, 2013 @ 3:46am 
Thanks, AlenL.
Originally posted by AlenL:
Private slot are all or nothing, yes, you are right about that. Those were not meant to be used on dedicated servers, but on listen servers.
Thanks for clearing that up. ...and...well, password protection would be really nice for dedicated servers... :))

works in the console of a connected client, but does not work on RCON. What exactly would I have to type into RCON to send a chat message?

Test today:
gam_ctPrivateSlots = 1 --> others could join
gam_ctPrivateSlots = 7 (one less than total slots) --> worked as should, only friends could join
Last edited by rubregg; Jan 5, 2013 @ 2:34pm
gei3r Jan 30, 2013 @ 9:14am 
works in the console of a connected client, but does not work on RCON. What exactly would I have to type into RCON to send a chat message?

Same Question

AlenL  [developer] Jan 31, 2013 @ 7:01am 
gei3r, This is a genuine bug. It seems it was introduced some time ago. I have filed the bug in our database. Hopefully it will be fixed in one of the next patches.
gei3r Feb 3, 2013 @ 10:00am 
thx4info :)

* gamVotePass() - force the current vote to pass
* gamVoteFail() - force the current vote to fail

didnt work too?
AlenL  [developer] Feb 4, 2013 @ 1:36am 
You sure you testing that correctly? The commands are samVotePass() and samVoteFail(), and you must run them on a server not client.
gei3r Feb 4, 2013 @ 3:03am 
with sam in place of gam it works!
btw i cut the text from the DedicatedServer_Readme.txt!
AlenL  [developer] Feb 5, 2013 @ 5:54am 
Ah, thanks for the report. Fixed the error in the readme file.
toxic May 16, 2013 @ 4:56am 
Thanks for the post, setting up SS3 server is really not a walk in the park. First up, it is not listed among the supported servers, but a google hit came up with the relevant link:

using the appid I was able to install the server through steamcmd. Next up, server configuration files are not documented at all, so it seems all we have is the closed source .Net based gui (which also is missing any documentation). Moreover the gui did not run on a win7 box I have here, and it does not run under wine. Can somebody please post their sam.cfg file so that I get a hint of the syntax?
< >
Showing 1-15 of 45 comments
Per page: 15 30 50

Date Posted: Dec 29, 2012 @ 1:40am
Posts: 45