Sven Co-Op Dedicate Server


Sven Co-op is a first person co-operative action game. The dedicated server component can be run as a Windows service using FireDaemon Pro, which allows you to start the dedicated server automatically at boot prior to login, start multiple instances of the dedicated server. This guide will show you how to set up Sven Co-op Dedicated Server as a Windows Service with FireDaemon Pro. You can also use FireDaemon Fusion to manage FireDaemon Pro and other Windows services via a web browser.


Sven Co-op In Action


Download and Install SteamCMD

Download SteamCMD for Windows. Unpack the contents of the ZIP file into the directory of your choice (eg. C:\SteamCMD). There's only one file in the zip file: steamcmd.exe. Double click steamcmd.exe to download related support files and update SteamCMD.


Download and Install FireDaemon Pro

Download FireDaemon Pro for your CPU architecture (32-bit or 64-bit). Look for the Download buttons. Then install FireDaemon Pro.


Download and Install Sven Co-op Dedicated Server

Go to the directory where you installed SteamCMD (eg. C:\SteamCMD) and create a shortcut to "SteamCMD.exe" called Sven Co-op. Edit the Properties of the shortcut and edit the Target to read:


C:\SteamCMD\steamcmd.exe +login anonymous +force_install_dir "C:\SvenDS" +app_update 276060 validate +quit


The shortcut dialog should look like this:


Sven Co-op Shortcut Properties



Now double click the shortcut you created and let it run to download the Sven Co-op dedicated server files. It might take some time for the game server to download. You should also run the shortcut every week or so to grab the latest server updates. Make sure to stop your server first prior to applying updates.


Downloading the Sven Co-op Dedicated Server


Setup the Sven Co-Op Dedicated Server as a FireDaemon Pro Service

Next step is to start FireDaemon Pro and click on the New button in the toolbar (or type Ctrl+N). Complete the FireDaemon Pro Program settings per the screenshot below.


Sven Co-op FireDaemon Pro Program Tab


The FireDaemon Pro Program tab settings are summarised in the table below:


Field
Description
Recommended Value
Short Name
Short Name of the FireDaemon Pro Service
Sven Co-op
Display Name
Display Name of the FireDaemon Pro Service
Sven Co-op
Description
Description of the FireDaemon Pro Service
Sven Co-op Dedicated Server    
Executable    
Full path the svends.exe file
C:\SvenDS\svends.exe    
Working Directory
Directory containing the svends.exe file
C:\SvenDS
Parameters
Dedicated game server parameters (described below)    
-console -game svencoop -secure +ip "1.2.3.4" -port 27015 -no_ipx +maxplayers 12 +log on +map "_server_start"
Startup Mode
How Windows launches the game server on machine boot
Automatic (Delayed Start)


The Sven Co-op dedicated server parameter options are summarised in the table below:


Option
Description
-console
Enables a text base server display. The server can only be automatically restarted in text based mode.
-game svencoop
Load the game server mod    
-secure

Enables VAC (Valve Anti-cheat) protection of your server. If you do not want to enable VAC on your server you must use the “-insecure” switch instead, however this opens your server to the possibility of abuse

+ip "1.2.3.4"
This should be the IP address of your computer (not 127.0.0.1). If your computer only has a private/LAN IP address assigned (such as 10.x.x.x, 172.16-31.x.x, or 192.168.x.x) you must use this or your server will not be connectable.
-port 27015

This is the default server port. You can change it to anywhere from 27015 to 27020. You would only change this if you host multiple servers as each server has to use its own port when using the same IP

-no_ipx
Disable the IPX protocol
+maxplayers 12

This controls the maximum of amount of players that can connect to your server at once. Since Sven Co-op is a co-operative game, game play is severely affected when there are more than 12 players. So keep the +maxplayers to nore more that 12. You can only control the max players on server startup. If you plan to primarily play the Half-Life campaign consider lowering this to value to 8

+log on

Displays the output of information on the screen and logs events to file. You can turn it off by using +log off instead. Keeping this value on makes it easier to debug any errors you might encounter, and for reviewing player misbehavior

+map "_server_start_"

Loads a specified map on server startup. You should ideally keep this as the stub map “_server_start” particularly if you are running plug-ins, as some need at least 1 map to pass to properly initialise. the stub map will terminate within a few seconds and then your map cycle will continue as normal.


Now click on the FireDaemon Pro Settings tab per the screenshot below. If you DON'T want to see your dedicated server running, uncheck the Interact with Desktop check box and  select Hidden from the Show Window dropdown. Ideally you should run the Sven Co-op Dedicated Server as a non-administrative user with “Login as a batch job” and “Login as service” rights for security purposes. You will need to create that user account manually and set a password. In the Logon Account field type that account username (e.g. SvcSvenDS) and then enter the user's password twice in the Password and Confirm fields. If you do decide to take this approach, you will need to ensure this user has the “Modify” NTFS security permissions set on the folder “C:\SvenDS” and child folders. You should not set permissions to Full Control for your user as it's not required.


You can change the Process Priority to allocate more CPU time to the dedicated server or specify which CPU or core the dedicated server will run on (in the case of multi-processor, hyperthreaded or multi-core CPUs). Realistically the Sven Co-op Dedicated Server will only require 2 threads at most, the majority of the CPU time being spent on a single thread.


Sven Co-op FireDaemon Pro Settings Tab


Now click on the FireDaemon Pro Lifecycle tab per the screenshot below. Uncheck Graceful Shutdown as the Sven Co-op Dedicated Server doesn't support it.


Sven Co-op FireDaemon Pro Lifecycle Tab


Now click on the FireDaemon Pro Dialogs tab per the screenshot below. Enable this feature, then click Insert. Specify title “Error” and button text “OK”. Even if your service is configured to be hidden the Sven Co-op Dedicated Server may still display an error dialog behind the scenes, causing your server to become stuck doing nothing until manually restarted.


Sven Co-op FireDaemon Pro Dialogs Tab


Now click on the FireDaemon Pro Scheduling tab per the screenshot below. Change Schedule A Restart to "At specific time" then specify the restart time. You should ideally schedule a game server restart every 24 hours, particularly if you plan to run any custom maps. This is because of the vast catalogue of custom maps has not been quality tested, meaning certain buggy maps can leave your server frozen until manually restarted.


Sven Co-op FireDaemon Pro Scheduling Tab



Now click OK to finish the setup and start your Sven Co-op Dedicated Server! The server will run on Session 0 so you will need to switch desktop to see it running by clicking on the "Session 0" button in the FireDaemon Pro toolbar. The screenshot below shows the Sven Co-op Dedicated Server running on Session 0 along with FireDaemon Session 0 Viewer.


Sven Co-op Running on Session 0


Sven Co-op Configuration File

Sven Co-op uses one configuration file to store its settings called "server.cfg". It's located in the svencoop folder under the folder where you installed the game server (eg. C:\SvenDS\svencoop). The vanilla server.cfg file contains the basics you need to configure your server, however at an absolute minimum you should set the following in server.cfg:


Setting
Description
hostname
This changes the name of your server as seen in the server browser and score board. If you can’t think of anything just use your on-line name, e.g. “Adambean’s server”
rcon_password
Setting a strong password here is important. Leaving this password as weak/simple could leave your server open to anyone running remote console commands, effectively taking control of your Sven Co-op instance. If you do not want the remote console enabled at all leave this setting undefined or commented out (with the two // at the beginning of the line), however, this will deny even yourself from any in game management abilities.
password    
If you want your server to be private for just yourself and a closed group of your friends set a shared password here. Otherwise leave this undefined or commented out with the two // at the beginning of the line.
sv_region
This should match the region of the world your server is located in as per Steam’s documentation. This will allow the Steam server browser to allow players to find servers in their region.


For a comprehensive version of "server.cfg" please refer to the server.cfg found in C:\SvenDS\svencoop\servers\example. The majority of this configuration file will not need to be changed. Ideally, just copy and amend what you need into your own "server.cfg" file. Setting descriptions can be found in the official server configuration guide.


Updating Sven Co-op


Now that you have the Sven Co-op Dedicated Server installed and running it is worth taking a step to help you keep your server up to date. Updates typically come out every 1-2 months so you should not require a scheduled task, however creating a batch file will allow you to update your server with one click!


Open your favorite plain text editor such as Notepad or Sublime, and into a new file paste the following text:


@ECHO OFF

ECHO Stopping Sven Co-op DS ...

net stop "Sven Co-op"

ECHO.

ECHO Updating Sven Co-op DS ...

C:\SteamCMD\steamcmd.exe +login anonymous +force_install_dir "C:\SvenDS" +app_update 276060 validate +quit

ECHO.

ECHO Starting Sven Co-op DS ...

net start "Sven Co-op"


Save this file as "updated.cmd" in your Sven Co-op installation folder (eg. C:\SvenDS\update.cmd). If you wish you can make a shortcut to this, otherwise simply run this batch file to update your server. Your Sven Co-op server will shut down while the update is applied, so you should ideally check to see if anyone is playing first prior to updating.


Running Multiple Sven Co-op Servers Simultaneously

Sven Co-op fully supports running multiple instances in parallel with a single set of configuration files. This is known as configuration profiling, whereby you define multiple basic configuration files with different settings (even if only the hostname changes) but each instance can all access the same content.


This is particularly useful for saving time and disk space, which becomes paramount if you decide to run lots of custom maps. It is also commonly done so that multiple servers can run a different standard cycle of maps while still allowing a much broader/complete range of maps to be played if voted for. (See "mapvote.cfg" for a list of voteable maps.)


A full guide of this functionality is available in the Sven Co-op manual, but the basic steps are:

  • Install Sven Co-Op Dedicated Server via SteamCmd as normal. If you have already done this you won’t need to do it again
  • Create multiple services in the same way as the first FireDaemon Pro service you created, or use the clone feature in FireDaemon Pro to do this quickly
  • Instead of naming each service as “SvenDS” with description “Sven Co-op Dedicated Server” give them different names/descriptions such as:
    • “SvenDS-1” with description “Sven Co-op Dedicated Server: Public #1”
    • “SvenDS-2” with description “Sven Co-op Dedicated Server: Public #2”
    • “SvenDS-3” with description “Sven Co-op Dedicated Server: Public #3”
    • “SvenDS-Private” with description “Sven Co-op Dedicated Server: Private” – this one could be password just for your friends to use.
  • Change the “port” parameter of each server. This is because only one instance can listen on 27015 at a time. Generally you should increment each instance port by 5 or 10 (27025, 27035, 27045, etc.) in case you have a plug-in that wants to listen on an additional port
  • You will now want to specify some extra parameters to help you split up your instance settings, logs, and map cycle. Add the following parameters to each service instance, but replace “svends-1” matching the service name you used
    • +servercfgfile “servers/svends-1/server.cfg”
    • +mapcyclefile “servers/svends-1/mapcycle.txt”
    • +motdfile “servers/svends-1/motd.txt”
    • +logsdir “servers/svends-1/logs”
  • For each instance you created, navigate to “C:\SvenDS\svencoop\servers”, and create a sub-folder for the matching service name you used in your parameters, e.g. “C:\SvenDS\svencoop\servers\svends-1”
  • Inside each server folder you now need to copy your base “server.cfg”, “mapcycle.txt”, “motd.txt”, and create a “logs” sub-folder, then adapt the 3 files to be specific to your instance. This applies, even if you’re just changing the hostname to number your servers
  • In each “server.cfg” file make sure you define parameters “servercfgfile”, “mapcyclefile”, “motdfile”, and “logsdir” but without the “+” before, pointing to the same locations mentioned in the parameters. If you don’t do this these parameters could become lost during a bad map change.
  • Add each service to your “update.cmd” script twice, so that each service instance is stopped before updating, then started again after updating.

You will now have multiple Sven Co-op Dedicated Server instances on a single installation!


Conclusion

That’s all for the FireDaemon Pro specific aspects of Sven Co-op Dedicated Server. If you require extra support on the specifics of Sven Co-op including running/configuring your server(s) there is plenty of information in the game manual including some advanced topics, and there is an active community willing to help at the server support message board.