Use case · Game server

Wreckfest dedicated server on a whole Windows machine

A Wreckfest dedicated server is Bugbear's free Windows tool, Steam app 361580, which SteamCMD fetches anonymously; the host never has to own the game. It reads its settings from server_config.cfg, a copy it makes of initial_server_config.cfg on first start, and it needs UDP 27015, 27016 and 33540 plus TCP 27015 open. This page follows the developer's own setup post: install, config, firewall, admin rights, event rotation, updates and the machine to run it on.

See the game servers

What Bugbear documents

Bugbear's setup instructions are a single post by a developer, pinned in the Wreckfest discussions on Steam. It covers the anonymous SteamCMD download, the two config files, the launch switches, the ports, the chat and console commands, event rotation and a note on performance. It gives no CPU or memory figures and no Linux procedure. Steam's record for app 361580 lists Windows as its only platform and launches start_server.bat from the install folder.

Wreckfest 2 is a different program. Steam lists its server as a separate tool, Wreckfest 2 Dedicated Server (app 3519390), which launches start_community_server.bat. Bugbear's post covers the original game only, and so does this page.

Install with SteamCMD

Valve's SteamCMD documentation gives the Windows download and recommends setting the install directory before logging in, so the block below uses that order; Bugbear's post lists the same three commands with the login first. Run it in an elevated PowerShell. It stops at the first error and is safe to paste again, which is also how you recover from a half-finished run.

& {
  $ErrorActionPreference = 'Stop'
  [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
  New-Item -ItemType Directory -Force -Path C:\steamcmd | Out-Null
  Invoke-WebRequest -UseBasicParsing https://client-update.steamstatic.com/installer/steamcmd.zip -OutFile C:\steamcmd\steamcmd.zip
  Expand-Archive -Force C:\steamcmd\steamcmd.zip -DestinationPath C:\steamcmd
  C:\steamcmd\steamcmd.exe +force_install_dir C:\Wreckfest +login anonymous +app_update 361580 validate +quit
  if ($LASTEXITCODE -ne 0) { throw "STOP - SteamCMD exit code $LASTEXITCODE; paste this block again" }
  if (-not (Test-Path C:\Wreckfest\start_server.bat)) { throw 'STOP - start_server.bat not found; paste this block again' }
  'install ok'
}

Bugbear notes that Steam itself does not have to be running for the server to work. The same app_update 361580 line, without validate if you prefer, fetches later updates.

The two config files

initial_server_config.cfg in the install folder is the base configuration: server name, description, event rules and an optional event rotation. Bugbear advises keeping a copy before you change it. On first start, start_server.bat copies it to server_config.cfg, and after that the server reads only the copy. Make later changes there; delete it and the server copies the initial file over again.

rem Command Prompt: keep the shipped file once
cd /d C:\Wreckfest && if not exist initial_server_config.orig.cfg copy initial_server_config.cfg initial_server_config.orig.cfg

rem Lines to set (example values) before the first start,
rem or in server_config.cfg afterwards:
rem   server_name=Friday Night Derby
rem   admin_steam_ids=76561190000000000
Setting or switchEffect, per Bugbear's post
admin_steam_ids=Your SteamID64; you get admin privileges automatically when you join
el_add=tracknameStarts one event in a rotation list; /eventloop turns rotation on and off
-s server_config=Names the config file when you start server\Wreckfest.exe yourself
-server_setOverrides any setting from the command line, e.g. server_name
Server update frequencyLow sends fewer packets, clients predict more; high sends more, clients predict less

The end of the initial file carries a sample rotation that you enable by removing the first # on each line. Each event can override any global setting; anything an event leaves out falls back to the global value, not to the previous event's.

Firewall and first start

Bugbear's port list is UDP 27015, UDP 27016, UDP 33540 and TCP 27015, and its first answer to a server nobody can join is a router or firewall that blocks them. A rented machine has no home router in front of it, so the Windows firewall on the server is the only rule set to change. Each rule is created only if it is not there yet, so pasting the block again adds just a missing one.

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

If you have set the server's outbound policy to block, add matching outbound rules too: the post asks for the server executable to be allowed both ways. Then run start_server.bat from C:\Wreckfest. A console window opens and reports when the server is connected to Steam. When you leave, disconnect Remote Desktop instead of signing out: Microsoft's documentation says a disconnected session keeps its programs running, whereas a sign-out closes them, game server and all. Limit Remote Desktop to your own address rather than the whole internet.

Running races from the console

help in the server console lists every command. Some run only there: list for players, bans, admins, tracks, gamemodes, cars, weathers, ? for the current server and event settings, and exit to close the server. Others run from the in-game chat once you have admin rights: /kick, /ban and /bansteamid, /adminsteamid and /opsteamid, /password, /servername, /welcome, /bot, /restart and /eventloop. Settings changed in the console are not written back to the config file, so put anything you want to keep into server_config.cfg.

Updates and copies of the config

  1. Type exit in the server console and wait for the window to close.
  2. Copy server_config.cfg and your saved original off the server to your own machine.
  3. Paste the install block again: it runs the same update and stops with STOP if SteamCMD reports an error.
  4. Start start_server.bat again and confirm the Steam connection message.

Our advice, not Bugbear's: keep your settings in server_config.cfg, which the tool creates and does not ship, so a validate that re-checks the shipped files cannot touch them. With this setup nothing starts the game again after a reboot, a Windows update reboot included; plan updates and reboots around race nights.

Sizing and the machine

Bugbear ties the number of clients a host can carry to two things: upstream bandwidth and the host's specifications. Its example is an 8/1 Mb/s ADSL line, where it suggests starting at about 8 clients and raising the count until the link runs out. On a server whose port is unmetered, we expect upstream bandwidth to stop being the ceiling; that is our reading, so raise the player count in steps and watch CPU and memory in Task Manager. Bugbear publishes no processor or memory figures.

  • The game server line lists only processors at 2,000 or more on PassMark's single-thread test, the bar the Satisfactory dedicated server documentation sets.
  • Windows Server, up to 2025 on the widest lines, installs from the order page for games whose server runs only on Windows. The licence is per core and billed every month, with no prepay discount. No ARM line runs Windows.
  • Five cities on AS19624: the data center page gives a test IP per city for your drivers to ping before you choose.
  • An out-of-band console (HPE iLO, Dell iDRAC or a Supermicro BMC) on each rack server and each blade, plus the m510 and m710x cartridges; the remaining cartridge models stop at power control. It is the way in when Remote Desktop stops answering.
  • A ready server takes about 30 minutes to go live once payment is approved, and it can be rented by the hour for a race weekend; a build to order takes 4 to 24 hours.

For other racing servers on the same machines, see Assetto Corsa and the BeamMP multiplayer server.

Questions

Do I need to own Wreckfest to run the server?

No. Bugbear's post says SteamCMD downloads the dedicated server tool anonymously, so no Steam account with the game on it is involved. Players still need the game to join.

Is there a Linux build of the Wreckfest server?

Not an official one. Steam lists app 361580 for Windows only, and Bugbear's post gives Windows commands alone. Wine or container setups exist in the community, but they are outside what the developer documents, so plan on Windows Server.

Why does nobody see or join my server?

Bugbear's first suspect is a firewall or router that blocks the ports. Check that inbound rules allow UDP 27015, 27016 and 33540 and TCP 27015, that the server console reports it is connected to Steam, and that you started the server with the config you edited.

How do I make myself admin?

Put your SteamID64 in admin_steam_ids in server_config.cfg and restart the server; Bugbear says you then get admin privileges on joining. While it runs, an admin can grant others with /adminsteamid or moderator rights with /opsteamid.

Does this setup work for Wreckfest 2?

No. Wreckfest 2 has its own server tool on Steam, app 3519390, launched by start_community_server.bat, and Bugbear's post for the original does not describe it. Follow the files that tool ships with.

How many players can one server carry?

Bugbear gives no fixed number: it depends on upstream bandwidth and the host's hardware, and its advice is to start low and raise the client count step by step. Do that on your own machine while watching CPU, memory and the race itself.

Race on a machine with no neighbours

A whole Windows server, Administrator access and an unmetered port, in five cities.

See the game servers

Related on Server Room

Other use cases