Workload · Hosting a Wreckfest derby

Host your own Wreckfest dedicated server

To host a Wreckfest dedicated server you install Bugbear's free server tool (Steam app 361580) on a Windows machine with SteamCMD, set your name and races in its config file, and open TCP 27015 plus UDP 27015, 27016 and 33540 so drivers can reach it. No copy of the game is needed on that machine. Here is how to do each part, following the instructions a Bugbear developer posted on Steam, and what to look for in the server you run it on.

The short version
  1. Free tool, Steam app 361580; anonymous download, no game copy needed
  2. Windows is the only platform Steam lists for it
  3. Four ports: TCP 27015 and UDP 27015, 27016, 33540
  4. Race rotation and admin rights live in one config file

Is a server of your own right for your group?

Yes, if you want lobbies that stay open when your own PC is off. Bugbear's post describes two ways to host: from inside the game, which suits a lobby you also drive in, or a separate dedicated server, either on your workstation or on a rented machine. The dedicated route is the one that runs without anyone at the keyboard.

Two things to know before you start. Steam's record shows the tool for Windows alone, and the developer gives no Linux directions, so you will be running Windows Server. And this guide is for the original Wreckfest. Wreckfest 2 comes with a separate server program, listed on Steam as app 3519390 and started with start_community_server.bat; Bugbear's post does not cover it.

Up and running in an evening

  1. Sign in to your Windows server over Remote Desktop and open PowerShell as Administrator.
  2. Paste the block below. It fetches SteamCMD from Valve, downloads the server into C:\WreckfestServer and halts with a STOP message if anything goes wrong. Pasting it again is safe, and is how you finish a run that was cut short.
  3. Open the ports (next section), then set your server's name and your admin ID.
  4. Double-click start_server.bat in the server folder. A console window appears and tells you once it has connected to Steam.
# PowerShell, run as Administrator
& {
  $ErrorActionPreference = 'Stop'
  [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
  $tool = 'C:\SteamCMD'; $game = 'C:\WreckfestServer'
  New-Item -ItemType Directory -Force -Path $tool | Out-Null
  Invoke-WebRequest -UseBasicParsing -Uri 'https://client-update.steamstatic.com/installer/steamcmd.zip' -OutFile "$tool\steamcmd.zip"
  Expand-Archive -Path "$tool\steamcmd.zip" -DestinationPath $tool -Force
  & "$tool\steamcmd.exe" +force_install_dir $game +login anonymous +app_update 361580 validate +quit
  if ($LASTEXITCODE -ne 0) { throw "STOP - SteamCMD ended with code $LASTEXITCODE, paste the block again" }
  if (-not (Test-Path "$game\initial_server_config.cfg")) { throw 'STOP - config file missing, paste the block again' }
  "Server files ready in $game"
}

Valve's SteamCMD guide asks for the install folder to be set before the login, which is the order used here; the developer's post lists the same commands with the login first. You don't have to keep the Steam client open either; the post says the server works without it.

Letting your drivers in

When a server shows up but nobody can join, Bugbear says the cause is most likely a router or firewall. A rented server has no home router, so the only thing in the way is the Windows firewall on the machine itself. These two rules open the four ports from the developer's list. Each one is only created when it is missing, so pasting the block again simply adds whichever rule is not there yet.

# PowerShell, run as Administrator
& {
  $ErrorActionPreference = 'Stop'
  $udp = 'Wreckfest server UDP'; $tcp = 'Wreckfest server TCP'
  if (-not (Get-NetFirewallRule -DisplayName $udp -ErrorAction SilentlyContinue)) {
    New-NetFirewallRule -DisplayName $udp -Direction Inbound -Action Allow -Protocol UDP -LocalPort 27015,27016,33540 | Out-Null }
  if (-not (Get-NetFirewallRule -DisplayName $tcp -ErrorAction SilentlyContinue)) {
    New-NetFirewallRule -DisplayName $tcp -Direction Inbound -Action Allow -Protocol TCP -LocalPort 27015 | Out-Null }
  Get-NetFirewallRule -DisplayName 'Wreckfest server *' | Format-Table DisplayName, Enabled
}

The post also asks that the server program may talk out as well as in; if you have ever switched outbound traffic to blocked, add outbound rules for the same ports. While you are in the firewall, allow Remote Desktop only from your own address.

Making it your server

Your settings start life in initial_server_config.cfg: the server's name and description, the race rules and an optional list of events. Copy it somewhere safe before you edit it, as Bugbear suggests. The first time start_server.bat runs, it copies that file to server_config.cfg, and that copy is the one the server reads from then on. So after the first start, make your edits in server_config.cfg. If you delete it, the server makes a fresh copy from the initial file.

  • Admin rights for you. Add your SteamID64 to admin_steam_ids= and the server makes you admin whenever you join. The developer recommends this above all for a server hosted somewhere else.
  • A rotation of races. Each event in the list begins with el_add= and a track name. The bottom of the initial file has an example you switch on by deleting the first # on each of its lines; then /eventloop in chat starts or stops the rotation.
  • Per-event settings. An event can change any rule for itself. Anything it does not set comes from the global settings, not from the race before it.
  • One-off changes at launch. Starting server\Wreckfest.exe with -s server_config= and your file's name picks the config, and -server_set overrides any setting for that run, for example the server name.

Running race night

Where you type itCommands from Bugbear's listWhat they're for
In-game chat/kick, /ban, /bansteamid, /unbanRemoving a driver, for now or for good
In-game chat/adminsteamid, /opsteamid, /demoteHanding out and taking back admin or moderator rights
In-game chat/password, /servername, /welcome, /messageLocking the lobby and talking to everyone
In-game chat/eventloop, /restart, /bot, /balanceteamsSteering the session
Server console onlylist, bans, admins, tracks, cars, weathers, ?Seeing who is on and what you can pick
Server console onlyexitClosing the server cleanly

Typing help in the console shows the full list. You can change settings from the console while the server runs, but those changes are not saved to the config file, so anything you want to keep belongs in server_config.cfg.

Keeping it healthy

To update, close the server with exit in its console, save server_config.cfg, plus the original you kept, on your own computer, paste the install block again and start the server. Keeping your settings in server_config.cfg, a file the download does not include, means the update's file check leaves them alone; that is our suggestion rather than Bugbear's.

When you leave, close the Remote Desktop window rather than signing out. Microsoft explains that programs carry on running in a disconnected session; signing out, by contrast, closes them, the server included. Nothing in this setup restarts the server after Windows reboots, so after updates that restart the machine, sign back in and start it again.

The server that fits

Bugbear doesn't give a CPU or memory requirement. What it says is that the number of players a host can carry comes down to two things, how much upload bandwidth it has and its hardware, and that on a slow home line you should start near 8 players and raise it bit by bit. A rented machine changes the bandwidth half of that: your port is not shared with any other customer at the access switch and nothing meters the traffic. Grow the lobby in steps anyway and keep an eye on Task Manager.

  • A fast core. Our game server page ranks its processors by one-thread speed, and every one in that table scores at least 2,000 with PassMark, the figure Satisfactory's server guide asks for.
  • Windows, your way. Windows Server is chosen at checkout with its licence added on the order form, and you get full Administrator access.
  • Close to your drivers. Pick whichever of our five cities sits nearest your crew. Our game server page and our locations page both time a round trip to each one from your browser.
  • A way back in. Each rack server and blade comes with a browser console (iLO from HPE, iDRAC from Dell, or the BMC on Supermicro machines). On Moonshot cartridges, that console exists for the m510 and the m710x; any other cartridge model gives you power control and nothing more.
  • Quick to start. If the machine is already racked, it is yours roughly 30 minutes once we approve the order, and a racked machine taken just as it is may be paid for by the hour. Built to your own spec, it takes 4 to 24 hours when we hold the parts and longer when we must buy one in.

You install the game, and we keep the machine running. If your crew drives other titles too, our guides to an Assetto Corsa server and to hosting BeamMP work on the same kind of machine.

Questions people ask

Do I have to buy Wreckfest again for the server?
No. According to the developer's post, SteamCMD fetches the server anonymously, so the machine that runs it never needs the game itself. Every driver who joins still needs their own copy.
Will it run on Linux?
Not officially. Windows is the only system Steam lists for the tool, and Bugbear wrote its instructions for Windows. People do try Wine or containers, but if an update breaks that, nobody official can help you fix it, so Windows Server is the safer choice.
My server is up, so why can't my friends find it?
Start with the ports, as Bugbear does: TCP 27015 and UDP ports 27015, 27016 and 33540 must be allowed in. Then check the console reports a Steam connection, and make sure your edits went into server_config.cfg, the file the server actually reads after its first start.
How do I give a friend admin rights?
While the server runs, use /adminsteamid with their Steam ID in chat, or /opsteamid for moderator rights. For your own account, add your SteamID64 to admin_steam_ids in the config file so you are admin every time you join.
Does Wreckfest 2 use the same setup?
No. It is a separate Steam tool, app 3519390, with its own start script, start_community_server.bat. The post this guide follows is about the original game, so use the files the Wreckfest 2 tool comes with.

Start your derby server

A whole Windows machine for your lobby, an unmetered port and no contract.

Find your game server

Read next