Setting up

Install

The Fragsurf dedicated server build is currently Windows x64 only. Linux is ideal for running servers, so support for that will come later on. The dedicated server appid is 1035540 and is available via the anonymous package, so you don't need to log in to install or update it.

You can use this batch script to easily install both SteamCMD and the Fragsurf dedicated server. Paste it in a .bat file in a folder somewhere and double click it.

@ECHO OFF

set steamcmd_path=%~dp0steamcmd\steamcmd.exe
set install_directory=%~dp0build
set appid=1035540
set login=anonymous

FOR /F "delims=" %%i IN ("%install_directory%") DO (
set filedrive=%%~di
set filepath=%%~pi
set filename=%%~ni
set fileextension=%%~xi
)

if exist "%filedrive%%filepath%%filename%" (
echo file path exist >nul
) else (
echo create install_directory since it does not exist
mkdir "%filedrive%%filepath%%filename%"
)

FOR /F "delims=" %%i IN ("%steamcmd_path%") DO (
set filedrive=%%~di
set filepath=%%~pi
set filename=%%~ni
set fileextension=%%~xi
)
set downloadurl=http://media.steampowered.com/installer/steamcmd.zip
set downloadpath=%filedrive%%filepath%steamcmd.zip

if exist "%filedrive%%filepath%%filename%%fileextension%" (
echo file path exist >nul
) else (
echo create steamcmd_path since it does not exist
mkdir "%filedrive%%filepath%"
(
echo Dim oXMLHTTP
echo Dim oStream
echo Set oXMLHTTP = CreateObject^("MSXML2.XMLHTTP.3.0"^)
echo oXMLHTTP.Open "GET", "%downloadurl%", False
echo oXMLHTTP.Send
echo If oXMLHTTP.Status = 200 Then
echo Set oStream = CreateObject^("ADODB.Stream"^)
echo oStream.Open
echo oStream.Type = 1
echo oStream.Write oXMLHTTP.responseBody
echo oStream.SaveToFile "%downloadpath%"
echo oStream.Close
echo End If
echo ZipFile="%downloadpath%"
echo ExtractTo="%filedrive%%filepath%"
echo Set fso = CreateObject^("Scripting.FileSystemObject"^)
echo If NOT fso.FolderExists^(ExtractTo^) Then
echo fso.CreateFolder^(ExtractTo^)
echo End If
echo set objShell = CreateObject^("Shell.Application"^)
echo set FilesInZip=objShell.NameSpace^(ZipFile^).items
echo objShell.NameSpace^(ExtractTo^).CopyHere^(FilesInZip^)
echo Set fso = Nothing
echo Set objShell = Nothing
)>>"%~n0-temp.vbs"
cscript //nologo %~n0-temp.vbs & del %~n0-temp.vbs
)

"%steamcmd_path%" +login %login% +force_install_dir "%install_directory%" +app_update 1007 validate +app_update %appid% validate +quit

Running the script again will validate the server files and update if there is one available.

Configuration

The next step is to include a configuration files so the server knows how to act when it starts up. To create one, navigate to Fragsurf_Data/StreamingAssets/Configs and create a default.ini, it should look something like this:

[Server]
server.name="24/7 Ski2 Deathmatch"
game.mode="Deathmatch"
map.default="surf_fst_ski2"
mv.falldamage=false

You can place any console command into this config file to be executed when the game loads, in example mv.falldamage=false. Here's some useful ones:

  • server.name="Name of your server"
  • server.password="Password"
  • server.maxplayers=10
  • server.localip="0.0.0.0"
  • server.broadcastip="192.34.56.78"
  • server.port=42020
  • server.steamport=43020
  • server.steamqueryport=43021
  • map.default="surf_fst_ski2" - this also accepts a workshop id, on startup the map will automatically download from workshop
  • game.mode="Speedrun" - "Custom" is ideal if you are creating a custom scripted gamemode
  • mv.gravity
  • mv.autobhop
  • mv.aircap
  • mv.aircapsurfmodifier
  • mv.airacceleration
  • mv.acceleration
  • mv.friction
  • mv.stopspeed
  • mv.jumppower
  • mv.maxspeed
  • mv.maxvelocity
  • mv.noclipspeed
  • mv.stepsize
  • mv.duckdistance
  • mv.falldamage
  • mv.waterstopsfalldamage

Ports

The default game port is 42020, the default Steam ports are 43025 and 43026 - make sure all of these ports are open on your machine so it can communicate with Steam and be connected to. If you are running multiple servers you will have to set unique ports for each server, i.e.:

Server 1:

  • server.port=42020
  • server.steamport=43025
  • server.steamqueryport=43026

Server 2:

  • server.port=42021
  • server.steamport=43027
  • server.steamqueryport=43028

Running

To run your server, simply double click Fragsurf.exe. If everything is working properly it should show up in the Steam master server list as well as the in-game server browser.