Windows Game Server — User Manual

1. Introduction

Windows Game Server (WGS) is a free, open-source management application that makes installing, running and managing Windows game servers straightforward. Every essential operation is available from a single window — no command-line knowledge required for day-to-day use.

Technology
.NET 10 · WPF · CommunityToolkit.Mvvm · SteamCMD · SQLite · v1.1.0
Requirements
Windows 10 / Server 2019 or newer · .NET 10 Runtime · Administrator rights for firewall management

2. Installation

2.1 Pre-built binary (recommended)

  1. 1
    Download — Grab the latest release zip from the GitHub Releases page.
  2. 2
    Extract — Unpack to a permanent folder, e.g. C:\WGS\
  3. 3
    Run — Double-click WindowsGameServer.exe — the app starts immediately.
  4. 4
    .NET Runtime — If you see a runtime error, install .NET 10 Runtime from dotnet.microsoft.com.
  5. 5
    SteamCMD — WGS downloads SteamCMD automatically the first time you install a game.
Windows SmartScreen
Windows may block the exe. Right-click → Properties → check Unblock → Apply. Or click "More info" → "Run anyway" in the SmartScreen popup.

2.2 Build from source

Requires .NET 10 SDK.

git clone https://github.com/MadBee71/WGS.git
cd WGS/WGS
dotnet publish -c Release -o publish

3. First Launch

When the app opens for the first time you will see an empty server list. The left sidebar contains:

  • Dashboard — global system metrics and server status summary
  • Server list — all configured servers with their current status
  • + Add Server — opens the new server creation dialog
  • Icon toolbar — quick access to Settings, Dashboard, Backups, CPU Affinity, Discord, Web API, Info and more
System tray
WGS stays running when you close the window. Double-click the tray icon to reopen.

4. Adding a Server

  1. 1
    Open dialog — Click the + Add Server button in the left sidebar.
  2. 2
    Select game — Pick from 101+ pre-configured games in the dropdown.
  3. 3
    Name — Give the server a recognisable name (e.g. Valheim — Family).
  4. 4
    Install folder — WGS suggests a path automatically. Change it if needed.
  5. 5
    Create — Click "Create server" — it appears with status Not Installed.
No files are downloaded here — only the server definition is created. Use Install / Update to download game files.

5. Install & Update

WGS uses Valve's SteamCMD to download game files. SteamCMD is fetched automatically into WGS's AppData folder on first use.

  1. 1
    Select server — Click a server in the left list.
  2. 2
    Install / Update — Click Install / Update in the server detail view.
  3. 3
    Login — Most games download anonymously. Games marked * (The Forest, Arma 3, ETS2, Wreckfest, Assetto Corsa, etc.) require a Steam account — set credentials in Settings → Steam Login.
  4. 4
    Progress — The console shows real-time download percentage from SteamCMD.
  5. 5
    Done — When the download finishes the status changes to Stopped.
Steam Guard
If Steam Guard is enabled, SteamCMD will request an email code on first login. Enter the code in the console input field at the bottom of the Console tab.

5.1 Beta branches v1.4.3

Many games offer beta or experimental builds via SteamCMD's -beta flag. You can select a branch per server without touching any config files:

  1. 1
    Open the server's Settings tab.
  2. 2
    Find the Beta branch field and enter the branch name (e.g. experimental, public, staging). Leave it empty to use the default release branch.
  3. 3
    Click Save, then Install / Update. SteamCMD will download that specific branch.
Note
Branch names are case-sensitive and must match exactly what the game developer has registered on Steam. You can find branch names on the game's SteamDB page under the Depots & Branches section.

6. Starting & Stopping

Control buttons in the server detail view:

ButtonActionNotes
StartLaunches the server processRuns a port pre-flight check first
StopSends graceful stop; kills after 5 sWaits for clean shutdown
KillKills the entire process tree immediatelyNo grace period
RestartStop → 3 s delay → Start
Show WindowBrings the server console window to the frontOnly if the process has a window

Status colours

StatusColourMeaning
Running🟢 GreenServer is running normally
Starting🔵 BlueProcess is starting up
Stopping🔵 BlueGraceful shutdown in progress
Installing / Updating🔵 BlueSteamCMD is downloading files
Stopped⚫ GreyStopped — game files are installed
Not Installed⚫ GreyGame files have not been downloaded yet
Error🔴 RedProcess failed to start or crash limit reached

7. Automation & Auto-Start

All automation options are in the server's Settings → Automation card. Changes save immediately.

OptionDefaultDescription
Auto-start when WGS launchesOffStarts this server automatically every time WGS opens.
Wake on demandOffListens on the game port while stopped; starts the server the moment a player tries to connect. See section 31.
Shut down when emptyOffStops the server after all players leave and the idle timeout elapses. Requires Wake on demand or manual start. See section 31.
Idle timeout10 minMinutes with zero players before auto-shutdown triggers. Visible when Shut down when empty is enabled.
Update before each startOffRuns SteamCMD update automatically every time the server starts.
Backup before each startOffCreates a backup automatically before every start so you can roll back if an update breaks the server.
Auto-restart after crashOffRestarts the server if the process exits unexpectedly.
Max retries (per 10 min)5If the server crashes more than this many times within 10 minutes, auto-restart is suspended to prevent a crash loop.
Delay before restart (sec)10Seconds to wait after a crash before restarting.
Restart daily at scheduled timeOffRestarts the server once per day at the configured time (HH:MM, 24-hour).
Auto-update periodicallyOffChecks for updates and installs them on a configurable interval while the server is running. The server is stopped, updated, and restarted automatically.
Check interval (minutes)30How often Auto-update polls for new versions.

Player warnings before automatic restarts v1.2.5

Before a Daily Restart, WGS broadcasts an in-game warning at 10, 5 and 1 minute before the restart. Scheduled Restart tasks (section 21) and Auto-update restarts warn once, 1 minute beforehand. Messages are sent through the game's own console/RCON/REST broadcast command — no setup needed. This works out of the box for Rust, Source-engine games (CS2, Garry's Mod, TF2, L4D2, Insurgency: Sandstorm, Black Mesa, Day of Defeat: Source and more), Minecraft, ARK: Survival Evolved, Palworld, DayZ and 7 Days to Die. Games without a known broadcast command (e.g. Valheim, Conan Exiles, Wreckfest) restart without a warning — everything else about the restart still works normally.

Crash loop detection

WGS counts crashes within a rolling 10-minute window. If the count exceeds Max Retries, auto-restart is disabled and the status switches to Error. To re-enable, fix the underlying problem and start the server manually — the counter resets on a successful start.

Scheduled Tasks

For finer control — weekly restarts, one-off backups at a specific time — use the Schedule tab inside the server detail view. See section 21.

8. Server Settings

8.1 General fields

FieldDescription
Display NameInternal name used inside WGS
Server NamePublic name shown in the in-game server browser
Max PlayersMaximum allowed player count
Server IPListen address (0.0.0.0 = all network interfaces)
Game PortMain port — players connect here
Query PortSteam Query port used by the server browser
Steam PortSteam network port (required by some games, e.g. Wreckfest)
RCON PortRemote console port (Source RCON protocol)
RCON PasswordRCON password — do not leave blank on a public server
Server PasswordConnection password for players (optional)
GSLT TokenSteam Game Server Login Token (requires a Steam account)
Custom ArgsExtra command-line arguments appended to the start command
Beta branchSteamCMD beta branch to install (e.g. experimental, public). Leave empty for the default release branch. See section 5.1 below.
Install PathFolder where the game files live on disk

8.2 Performance settings

Each server can be restricted to specific CPU cores and assigned a Windows process priority. Changes apply on the next startup.

SettingValuesDescription
CPU AffinityCore checkboxesWhich CPU cores the server may use. All unchecked = no restriction.
Process PriorityNormal / AboveNormal / High / BelowNormal / RealTimeWindows process priority. High and RealTime require admin rights.
Warning
RealTime priority can freeze the entire system if the server runs at 100% CPU. Use with caution.

9. Firewall

WGS manages Windows Firewall rules automatically when Firewall Auto-Manage is enabled (default: on).

  • On server start: WGS adds inbound TCP + UDP rules for game, query and Steam ports
  • On server stop: those rules are removed automatically
  • If Auto-Manage is off: add rules manually in Windows Defender Firewall
  • Rules use netsh advfirewall — administrator rights are required

9.2 UPnP Automatic Port Forwarding

WGS can automatically open and close port forwarding rules on your router using UPnP. Enable in Settings → UPnP Port Forwarding.

  • When a server starts — WGS requests port mappings for game, query and Steam ports from the router
  • When a server stops or errors — those mappings are removed automatically
  • Use the Test UPnP button in Settings to verify your router supports it
  • Requires UPnP to be enabled in your router's administration interface
Compatibility
WGS uses standard UPnP/SSDP discovery — compatible with the vast majority of home routers. If Test UPnP shows "Router not found", enable UPnP in the router settings or use manual port forwarding instead.
WARNING
UPnP automatically modifies your router's firewall rules without further confirmation. This can expose your network to unintended access if your router or game server is misconfigured. Only enable this if you understand the risks and fully trust your network environment. WGS takes no responsibility for security issues arising from UPnP usage.

10. Ports & Networking

Before startup WGS checks whether the required ports are free locally. A port-in-use warning is logged but startup continues.

Port typePurposeDefault
Game PortPlayers connect to this portVaries by game
Query PortSteam server browser queries this portUsually Game Port + 1
Steam PortSteam network traffic (e.g. Wreckfest)27015
RCON PortRemote console (Source RCON protocol)Varies
Router / NAT
To make the server reachable from the internet you must set up Port Forwarding on your router. WGS's pre-flight check only detects local conflicts.

11. Console & RCON

11.1 Console

The Console tab shows server output in real time. Messages are colour-coded:

ColourTypeDescription
White / GreyInfoNormal log messages
YellowWarningLines containing "warn"
RedErrorLines containing "error", "exception" or "fatal"
CyanSystemWGS messages and SteamCMD output
Auto-scroll
The console scrolls to the latest output automatically. Scrolling up manually pauses auto-scroll; scroll back to the bottom to resume.

6.2 Batch Operations

Start, stop, restart or backup multiple servers at once using batch mode.

  1. 1
    Activate — Click the icon button next to the sort dropdown in the server list header.
  2. 2
    Select — Checkboxes appear next to each server. Tick the ones you want, or click All to select everything.
  3. 3
    Action — Use the batch toolbar buttons: ▶ Start, ■ Stop, ↺ Restart, 💾 Backup.
  4. 4
    Deactivate — Click the ☑ icon again to exit batch mode. All selections are cleared automatically.
Batch Start only targets servers that can be started (Stopped/Error). Batch Stop only targets running servers. Batch Restart only targets running servers.

11.2 RCON remote console

RCON is the Valve Source protocol for sending admin commands over the network. Works with Rust, 7 Days to Die, and other Source-based games.

  1. 1
    Set RCON port & password — Fill in RCON Port and RCON Password in the server's Settings tab.
  2. 2
    Start the server — RCON becomes available when the server process is running.
  3. 3
    Connect — Click "RCON: Connect" in the Console tab.
  4. 4
    Send a command — Type the command and press Enter or click Send.

12. Config Editor

The Config tab lets you browse and edit server configuration files directly inside WGS — no file manager or text editor needed.

  • Click the Config tab in the server detail view
  • WGS scans the install folder and lists all recognised configuration files
  • Click a file name to load its contents into the built-in text editor
  • Edit the content, then click Save to write changes to disk
Tip
Stop the server before editing files it holds open. Changes take effect on the next start.

13. File Browser v1.1.0

The Files tab provides a full in-app file manager for the server's install directory — browse, manage and transfer files without leaving WGS.

  • Browse — navigate the server's folder tree directly in WGS
  • Rename — rename any file or folder
  • Delete — delete files and folders (with confirmation)
  • Download — save a file to any location on your PC
  • New folder — create directories as needed
  • Upload — copy a file from your PC into the current directory
Tip
Especially useful for uploading custom config files, map files or Oxide plugins directly into the correct server directory.

14. Performance Charts updated v1.2.0

The Charts tab displays CPU and RAM usage history for the selected server.

  • CPU % chart — process CPU usage as a percentage of total system CPU capacity
  • RAM chart — working-set memory consumption in MB
  • History window: selectable — 5, 15, 30 or 60 minutes (up to 1800 data points, persisted to disk)
  • Use the time-range dropdown in the top-right of the Charts tab to switch view
  • History is preserved across WGS restarts and loaded from disk on first view
  • Charts reset automatically when the server is stopped
CPU % is normalised across all logical cores. A server fully using one core on a 4-core machine shows ~25%.

15. Bandwidth Monitoring v1.1.0

WGS monitors network traffic in real time — both globally across the machine and per server based on active TCP/UDP connections.

  • Global I/O — total bytes in/out per second across all network interfaces, shown in the sidebar status bar
  • Per-server I/O — each server's estimated share of network traffic, calculated from its proportion of active connections
  • Connection count — number of active TCP connections for each server process
  • Data refreshes every 2 seconds; history kept for the last 6 minutes
Display locationShows
Sidebar bottom barGlobal bytes in/out per second
Server detail — Charts tabPer-server network I/O history graph
Server detail — Info tabCurrent bytes in/out and active connection count
Accuracy
Per-server bandwidth is estimated proportionally from active connection counts — an approximation, not a kernel-level measurement.

16. Mod Manager

The Mods tab manages server-side modding frameworks:

  • Oxide / uMod — for Rust and other supported games. Downloads the latest Oxide release and installs it into the server folder
  • Minecraft plugins — for Paper/Spigot servers. Displays the contents of the plugins folder
ActionDescription
Install OxideDownloads and installs the latest Oxide/uMod release for this game
Update OxideRe-downloads Oxide to update to the latest version
Open plugins folderOpens the server's plugins directory in Windows Explorer
Stop the server before installing or updating Oxide. Oxide injects into the server process on startup.

17. Steam Workshop

The Workshop tab is visible for games that support Steam Workshop (e.g. Arma Reforger). It uses SteamCMD to download Workshop items.

  1. 1
    Find the item ID — Open the Workshop page in a browser. The ID is the number in the URL: steamcommunity.com/sharedfiles/filedetails/?id=XXXXXXXXX
  2. 2
    Enter the ID — Paste the Workshop item ID into the input field in the Workshop tab. v1.2.5 The mod's actual title appears below the field after about half a second, so you can confirm it's the right item before downloading.
  3. 3
    Download — Click Download. WGS runs SteamCMD and shows progress in the console.
  4. 4
    Done — The item appears in the Installed Items list with its local folder path.
  • Click Remove next to an item to delete it from disk
  • Workshop content: %APPDATA%\WGS\steamcmd\steamapps\workshop\content\

18. Player Statistics

The Players tab shows session history for everyone who has connected. Data is stored in a local SQLite database and survives restarts.

ColumnDescription
Player NameName as reported in the server log
Join TimeTimestamp when the player connected
Leave TimeTimestamp when the player disconnected (blank if still online)
DurationTotal time in session — format HH:MM:SS
  • The Total Playtime view shows cumulative playtime per player across all sessions
  • Accuracy depends on each game's log format for join/leave detection
  • Stored in: %APPDATA%\WGS\player_stats.db

19. Backups

  • Backup Enabled — activates automatic backups for this server
  • Keep at most — number of backups to keep (0 = unlimited); older ones beyond this count are deleted automatically after each new backup
  • Delete backups older than v1.2.5 — age limit in days (0 = off); applied alongside the count limit
  • 🗑 Clean up now v1.2.5 — applies the limits above immediately instead of waiting for the next backup. Shows exactly how many backups and how much disk space will be freed, and asks for confirmation — this cannot be undone
  • Incremental backups v1.2.5 — after the first full backup, only changed files are zipped. Much faster and smaller for large worlds. A full backup is taken again every N backups (configurable, default 7) to bound restore time
  • Create Backup button — takes an immediate backup
  • Backup All (Dashboard) — backs up every server at once
  • Restore — extracts a backup into the install folder (stop the server first)
  • Stored in: %APPDATA%\WGS\backups\<server-id>\
Auto backup before update
If Backup Enabled is checked, WGS creates a backup automatically before every Install/Update and every Auto Update cycle.
Disk space
Large servers (ARK, Valheim) produce big backups. Set a sensible retention value and monitor free disk space.
Scheduled backups while stopped
Scheduled backups don't require the game server process to be running — they just zip whatever's currently on disk. The only requirement is that WGS itself is open at the scheduled time. If WGS is closed when a backup was due, it runs the one missed backup as soon as WGS is opened again, then resumes the normal schedule — it does not run multiple catch-up backups.
Retention with incremental backups
WGS never deletes a backup that a newer, kept backup still depends on. With incremental backups on, this means "Keep at most N" may keep more than N files on disk if they're all still part of the same chain — disk savings mainly come from incrementals themselves being much smaller, not from aggressive pruning of the chain.

20. Server Templates v1.1.0

Server Templates let you save a complete server configuration and redeploy identical servers in seconds. Access from Tools → Server Templates.

  1. 1
    Save as template — Open any configured server → click "Save as Template" → give it a name and optional tags.
  2. 2
    Browse templates — Open Tools → Server Templates — filter by game category or tag.
  3. 3
    Deploy — Click "Deploy" → choose a name and install path → new server created instantly with all settings pre-filled.
  4. 4
    Edit / Delete — Pencil icon to rename; trash icon to remove permanently.
  • Templates capture: game type, ports, max players, startup arguments, RCON settings, CPU affinity, process priority and automation settings
  • Stored in: %APPDATA%\WGS\templates.json

21. Scheduled Tasks

The built-in scheduler runs actions automatically at set times. Add tasks in the Schedule tab of any server.

FieldOptions / Description
ActionRestart · Stop · Start · Backup · Update · Quick Command v1.2.5.1
FrequencyOnce · Daily · Weekly · Every X minutes/hours v1.2.5.1
Time of dayHH:MM (24-hour clock) — not used for the interval frequency
Day of weekMonday–Sunday (Weekly only)
EnabledToggle a task on/off without deleting it
Last / NextTimestamps — Next run calculated automatically

The Quick Command action picks any of that server's saved Quick Command buttons (or a one-off command) and runs it on the schedule — handy for repeating things like an automated announcement. Combined with the Every X minutes/hours frequency, any action (not just Quick Command) can repeat on a short interval instead of a fixed daily/weekly time.

Polling interval
The scheduler checks every 30 seconds, so actual execution may be up to 30 s after the configured time.

22. Dashboard

Click Dashboard in the sidebar to open the live system overview. Data refreshes every 2 seconds.

  • CPU Usage — overall processor load as a percentage
  • RAM — used and free memory in GB with percentage bar
  • Drives — usage and free space for every connected drive
  • Server Count / Online / Stopped — server status summary
  • Global network I/O — total bytes in/out per second across all servers
  • Backup All — triggers an immediate backup of every configured server

23. Discord Notifications

WGS posts rich embed messages to a Discord channel via a webhook URL. Configure in Settings → Discord Notifications.

EventTriggerEmbed colour
Server startedStatus → Running🟢 Green
Server stoppedStatus → Stopped⚫ Grey
Server crashedStatus → Error🔴 Red
Update startedStatus → Updating🔵 Blue
Player joined v1.2.5New player detected on poll (off by default)🟢 Green
Player left v1.2.5Player disappears from the list (off by default)⚫ Grey

Player join/leave alerts include the current player count and are checked every 15 seconds along with the live player list. They're off by default to avoid noisy channels on busy servers — enable "Player joined" / "Player left" in the event checklist above.

  1. 1
    Create webhook — Discord: channel Settings → Integrations → Webhooks → New Webhook → Copy URL.
  2. 2
    Paste URL — WGS Settings → Discord Notifications → paste into "Webhook URL".
  3. 3
    Enable — Check "Enable Discord notifications" and choose which events to send.
  4. 4
    Test — Click "Test" to send a test embed immediately.
  5. 5
    Save — Click "Save". The URL is encrypted with Windows DPAPI before writing.

24. Discord Remote Control Bot

The Discord bot lets you control your servers from any Discord channel. Configure in Settings → Discord Remote Control Bot.

  1. 1
    Create a botdiscord.com/developers → New Application → Bot → Reset Token → Copy Token.
  2. 2
    Set permissions — OAuth2 → URL Generator: "bot" scope + Read Messages + Send Messages. Invite the bot.
  3. 3
    Get channel ID — Developer Mode in Discord → right-click your control channel → Copy Channel ID.
  4. 4
    Configure WGS — Settings → Discord Remote Control Bot. Paste the Bot Token and Channel ID.
  5. 5
    Restrict access — Enter comma-separated Discord User IDs in "Allowed User IDs". Leave blank to allow everyone.
  6. 6
    Save & test — Click Save, then "Test connection".

Bot commands

CommandDescription
!helpLists all available commands
!statusShows all servers with their current status
!start <name>Starts the named server
!stop <name>Stops the named server
!restart <name>Restarts the named server
!update <name>Runs Install/Update on the named server
!backup <name>Creates an immediate backup of the named server
!cmd <name> <command>Sends a console command to the running server
Security
Keep the bot token secret — treat it like a password. Use Allowed User IDs on public servers to prevent unauthorised control.

Live status message & wake buttons v1.2.5.1

Instead of the bot posting a new message every time, it can keep one message edited in place with live server status — like a pinned dashboard instead of a scrolling log.

  1. 1
    Enable it — Settings → Discord Remote Control Bot → check "Keep a live status message updated instead of posting new messages".
  2. 2
    Pick a channel (optional) — enter a separate "Status channel ID" if you want this in its own channel instead of the command channel.
  3. 3
    Save — the bot posts one message, then edits that same message roughly every minute with each server's status, player count and connect IP:port.

If a server is offline and has Wake on demand enabled (per-server setting), a "Wake [server]" button appears right on the message. Clicking it starts the server — useful for games whose own server browser can't show an offline server, so there's no other way to trigger wake-on-connect.

Want a separate board per server instead of one combined message? Each server has its own optional "Status board channel ID" field under its Settings tab → Discord Alerts. Set it to a different channel and that server gets its own dedicated, live-updated board there — the rest stay grouped together on the bot's main status channel. Clearing the field moves it back to the shared board (and the old per-server message is deleted automatically).

Admin controls — check "Enable admin controls" under a server's Settings → Discord Alerts to get Start/Stop/Restart/Backup/Update buttons for it. These are posted to a separate Admin controls channel ID field, not the status board — on purpose, since they're never shown to anyone watching the public status channel. Set that field to a private, staff-only channel. Clicking a button respects the bot's Allowed User IDs as an extra gate — anyone not on that list gets a "not authorized" reply instead of the action running.

Keep this private
Anyone who can see and click these buttons can stop or update the server. Always point "Admin controls channel ID" at a restricted channel only staff can read — never the public status channel.
How this works
The status message and buttons use a separate, lightweight connection to Discord (the "Gateway") just to receive button clicks — everything else about the bot (commands, webhooks) keeps working exactly as before. No extra setup is needed beyond the existing Bot Token; the same bot handles both.

25. Web Dashboard & REST API v1.1.0

WGS includes a built-in HTTP server with a browser-accessible dashboard and REST API. Enable in Settings → Web Remote Control.

  1. 1
    Enable — Check "Enable Web API" and choose a port (default: 8765).
  2. 2
    Token — An access token is generated automatically. Copy or customise it.
  3. 3
    Save — Click Save — the API starts immediately; status indicator turns green.
  4. 4
    Browser UI — Navigate to http://localhost:8765/ui — dashboard with server controls and a real-time log viewer.
  5. 5
    Remote access — Use your LAN IP from other devices. For internet access, add port forwarding.

Dashboard features v1.2.5

The server grid can be sorted (A→Z, Z→A, by game or by status) using the dropdown above the grid — your choice is remembered in the browser. Each running server's card shows a live mini CPU graph covering the last 5 minutes.

REST endpoints

MethodEndpointDescription
GET/api/serversList all servers with status and port info
GET/api/servers/{id}Get a single server's details
POST/api/servers/{id}/startStart a server
POST/api/servers/{id}/stopStop a server
POST/api/servers/{id}/restartRestart a server
POST/api/servers/{id}/updateRun Install/Update
POST/api/servers/{id}/backupCreate a backup
POST/api/servers/{id}/cmdSend console command — body: {"command":"..."}
GET/api/servers/{id}/perf?minutes=Nv1.2.5 CPU/RAM history samples for the last N minutes
GET/api/systemSystem metrics — CPU, RAM, drives, network I/O
Authentication
All /api/* endpoints require the token via Authorization: Bearer <token> or ?token=<token>.
Limitation — native console servers
Some game servers open their own console window instead of piping output to WGS. Currently this applies to Wreckfest, Wreckfest 2 and Palworld. For these servers the WGS Console tab won't show the game's own output, but WGS's own messages (port checks, backups, scheduled tasks) still appear there. For Wreckfest and Wreckfest 2, remote console commands (web dashboard, REST API, Discord !cmd) also have no effect. Palworld is the exception — its admin commands (broadcast, save, shutdown, kick, ban, unban) are routed through Palworld's REST API instead, so remote commands keep working from the Console tab too. Starting, stopping, restarting and updating still work normally for all of them.

26. User Management v1.1.0

WGS supports multiple user accounts for the Web Dashboard and REST API. Manage in Settings → User Management.

RolePermissions
AdminFull access — start, stop, restart, update, backup, console, manage users, change settings
ViewerRead-only — view status, metrics and logs; cannot start/stop or modify settings
ActionDescription
Add userEnter username, password and role → click "Add". Password hashed with PBKDF2-SHA256.
Enable / DisableToggle account on/off without deleting it
Reset passwordEnter a new password and click "Change password"
DeletePermanently removes the account and its audit entries
API tokenEach user has a unique API token. Regenerate at any time.

Audit log

Every significant action is recorded in SQLite. View in Settings → User Management → Audit Log.

  • Logged events: login, logout, start/stop/restart, update, backup, create/delete user, change role, reset password
  • Each entry: timestamp, username, action, details
  • Stored in: %APPDATA%\WGS\users.db
Default admin
On first run a default "admin" account is created with password "admin". Change it immediately in Settings → User Management.

27. Multi-Machine Management v1.1.0

WGS supports a master/slave architecture — run WGS as an agent on any PC or VPS and control it remotely from your main window.

  • Slave machine: enable the Web API (section 25) and note the URL + token
  • Master machine: Settings → Remote Machines → Add Machine → enter URL and token
  • The master polls each slave every few seconds and shows all remote servers in the Machines sidebar tab
  • Click a remote server to open its detail view with console, controls and metrics
  • v1.2.5 The REMOTE section has its own sort dropdown (A→Z, Z→A, by game or by status), same as the local server list

28. Supported Games

WGS ships with 101+ built-in game plugins. Games marked * require a Steam account to install — all others download anonymously. → Full game list with search

Login typeWhen required
AnonymousMost games — no Steam account needed. WGS downloads via SteamCMD without credentials.
Steam account *DayZ, The Forest, Arma 2, Arma 3, Wreckfest, Wreckfest 2, Assetto Corsa, Assetto Corsa Competizione, Euro Truck Simulator 2, Killing Floor 2, Team Fortress 2, Team Fortress Classic, Counter-Strike 1.6, Counter-Strike: Condition Zero, Day of Defeat, Half-Life Deathmatch, Half-Life: Opposing Force and a few others require a valid Steam account that owns the game.

28.1 Setting up Steam login

  1. 1
    Open Settings — Click the Settings icon in the left toolbar.
  2. 2
    Steam Login tab — Select the Steam Login tab.
  3. 3
    Enter credentials — Type your Steam username and password. Credentials are encrypted with Windows DPAPI before being stored on disk.
  4. 4
    Save — Click Save. WGS will use these credentials automatically when SteamCMD requires a login.

28.2 Steam Guard — email code

If Steam Guard is enabled on your account, SteamCMD will pause and request a verification code the first time you log in from a new machine.

  1. 1
    Click Install / Update on a game that requires a Steam account.
  2. 2
    SteamCMD will print: Enter the current code sent to your email address.
  3. 3
    Check your email for the 5-character code from Steam.
  4. 4
    Type the code into the console input field at the bottom of the Console tab and press Enter.
  5. 5
    SteamCMD caches the session — subsequent installs on the same machine will not ask again.

28.3 Steam Guard — mobile authenticator

  1. 1
    Click Install / Update on a game that requires a Steam account.
  2. 2
    SteamCMD will pause waiting for Steam Guard approval.
  3. 3
    A login approval notification appears on your phone. Open the Steam app.
  4. 4
    Tap Approve on the login request — no code entry needed. SteamCMD continues automatically.
  5. 5
    SteamCMD caches the session for this machine.
Game list
The full list of supported games with their Steam AppIDs is always up to date inside the application — click + Add Server and browse the game dropdown. A searchable list is also on the 101+ Games page.

29. Custom Plugin Creator

The Plugin Creator lets you add any game server without writing code. Open from Tools → Plugin Creator.

FieldReq.Description
Game IDYesUnique identifier, e.g. mygame
Game NameYesDisplay name in the game dropdown
DescriptionNoShort description shown in the Info tab
CategoryNoSurvival / Racing / Shooter / etc.
Steam AppIDYesUsed by SteamCMD to download the server files
ExecutableYesServer .exe — relative path from install folder
Default PortYesGame port
Default Query PortYesSteam Query port
Default Steam PortNoSteam network port (0 = not used)
Max PlayersYesDefault player count
Start ArgumentsYesCommand-line args (supports placeholder variables)
Stop CommandNoGraceful shutdown command (blank = kill process)

Placeholder variables

PlaceholderValue
{ip}Server IP address
{port}Game port
{qport}Query port
{name}Server name
{max}Max players
{map}Map (game-specific setting)
{password}Server password

29.2 After creating a module

When you click Create module and the dialog closes, a confirmation message appears. Your new game module is immediately available — no restart needed.

  1. 1
    Click the + Add server button in the sidebar.
  2. 2
    Open the Game dropdown — your new module appears at the bottom of the list under its category.
  3. 3
    Select it, fill in the server name and install path, and click Add.
  4. 4
    The server appears in the sidebar. Go to its Settings tab to adjust ports and startup arguments, then click Install.

The module definition is saved in %APPDATA%\WGS\custom_plugins.json. It persists across WGS updates.

29.3 Import / Export plugins

Plugins can be exported to a .cs source file and imported on another machine.

  • Export: Tools → Export Plugin → select a plugin → save as .cs file
  • Import: Tools → Import Plugin → select a .cs file — compiled in memory and registered immediately without restarting WGS

30. Server Cloning v1.2.0

The clone button (⧉) in the server toolbar duplicates an existing server — copying all settings, game type, and automation rules while automatically assigning new unique ports.

  • Click ⧉ in the top toolbar of any server detail view
  • A new server is created with the suffix "(copy)" and incremented ports
  • All settings (auto-restart, Discord alerts, CPU affinity, RAM limit) are copied
  • The cloned server appears immediately in the server list
Cloning does not copy installed game files — you still need to run Install / Update on the new server.

31. Wake-on-Demand v1.2.0

Wake-on-demand starts a server automatically when the first player tries to connect, saving resources when the server is idle.

  • Enable Wake on demand in the server's Settings → Automation section
  • When the server is stopped, WGS listens on the game port for incoming TCP connections
  • The first connection triggers an automatic start — the player's game client will retry and connect once the server is ready
  • The listener is released automatically once the server is running
Works best with games that retry the connection automatically. The server startup time varies by game — typically 10–60 seconds.

Shut down when empty v1.2.3

The companion option Shut down when empty stops the server automatically once all players have left and the idle timeout has elapsed. Together the two options form a full on-demand lifecycle: the server wakes up when needed and shuts down when not.

  • Enable Shut down when empty in Settings → Automation (visible below the Wake on demand checkbox)
  • Set the Idle timeout in minutes — default is 10 min. WGS checks the player count every 2 minutes.
  • The timer resets whenever a player joins. The server is only stopped after the full timeout passes with zero players.
  • Can be used independently of Wake on demand — useful if you just want automatic shutdown after everyone leaves.
Requires query port to be configured correctly so WGS can read the current player count.

32. Email Notifications v1.2.0

WGS can send email alerts for the same events as Discord notifications — server start, stop, crash and update.

  • Go to Settings → Email Notifications (SMTP)
  • Enter your SMTP host, port, SSL toggle, username and password
  • Set From address and To address(es) (comma-separate multiple recipients)
  • Click Send test email to verify the configuration
  • Enable Discord alerts for this server per server to control which servers send emails
SMTP password is encrypted with Windows DPAPI and never stored in plain text.

33. RAM Limiting v1.2.0

WGS can enforce a hard memory cap per server using Windows Job Objects — preventing a single runaway server from consuming all available RAM.

  • Go to the server's Settings → Performance section
  • Set RAM limit (MB) — enter the maximum amount of RAM this server may use
  • Set to 0 for unlimited (default)
  • The limit is applied via Windows Job Objects when the server process starts
  • If the server exceeds the limit, Windows will terminate it — treat this as a hard ceiling, not a soft warning
Set the limit generously above the server's normal usage — e.g. if a Rust server typically uses 6 GB, set the limit to 8–10 GB to allow headroom for player peaks.

34. Troubleshooting

Crash log location: %APPDATA%\WGS\crash.log
WGS writes all unhandled exceptions here with timestamps. If WGS crashes or behaves unexpectedly, open this file and include its contents when reporting the issue. You can navigate there by typing %APPDATA%\WGS in the Windows Explorer address bar.
ProblemSolution
Server won't start — "executable not found"Game files are not installed or the executable path is wrong. Re-run "Install / Update", or check manually that the .exe exists in the install folder.
SteamCMD fails — ERROR! App state is 0x…Usually a network issue or Steam servers are temporarily down. Try again shortly. If login is required, verify your Steam Guard code.
Port already in useAnother program is using the same port. Change the port in Settings or stop the conflicting program.
RCON won't connectConfirm the RCON port and password match the server's config file and that a firewall rule exists for that port.
Backup failsDisk space may be full or WGS lacks write permission to %APPDATA%.
Discord bot won't connectVerify the bot token and channel ID. The bot needs Read Messages and Send Messages permissions in that channel.
Web API returns 401The request is missing the token. Add Authorization: Bearer <token> or append ?token= to the URL.
Web Dashboard login failsCheck username and password in Settings → User Management. Default credentials are admin / admin — change them on first use.
File Browser shows empty folderVerify the install path is correct in the server's Settings tab.
Auto-restart disabled — crash limit reachedThe server crashed too many times in 10 minutes. Fix the underlying problem, then re-enable Auto Restart in the server's Settings tab.
App won't launch — .NET errorInstall .NET 10 Runtime from dotnet.microsoft.com.
Server processes survive after WGS closesAlways stop servers with the Stop button before closing WGS.

35. Keyboard Shortcuts

ShortcutAction
EnterSend console / RCON command
Ctrl + CCopy selected text
Ctrl + XCut selected text
Ctrl + VPaste
Ctrl + ASelect all (text fields)
Ctrl + ZUndo (text fields)
Ctrl + SSave config file (Config Editor)
F5Refresh file list (File Browser)
DeleteDelete selected file (File Browser)
BackspaceNavigate to parent folder (File Browser)
EscapeClose dialogs / cancel input

36. File Locations

WGS stores configuration in Windows AppData and writes nothing permanent to its own installation directory.

PathContents
%APPDATA%\WGS\servers.jsonAll server configurations
%APPDATA%\WGS\settings.jsonGlobal application settings
%APPDATA%\WGS\notifications.jsonDiscord notification settings
%APPDATA%\WGS\scheduled_tasks.jsonScheduled task definitions
%APPDATA%\WGS\custom_plugins.jsonCustom Plugin Creator entries
%APPDATA%\WGS\templates.jsonServer templates (v1.1.0)
%APPDATA%\WGS\player_stats.dbPlayer session history (SQLite)
%APPDATA%\WGS\users.dbUser accounts and audit log (v1.1.0)
%APPDATA%\WGS\crash.logApplication crash log — all unhandled exceptions with timestamps. Send this file when reporting a bug.
%APPDATA%\WGS\steamcmd\SteamCMD installation (auto-downloaded)
%APPDATA%\WGS\backups\Server backup zip files

37. Per-Server Discord Webhooks v1.2.3

Every server can send Discord alerts to its own channel, independently of the global webhook configured in Settings → Notifications.

Setup

  1. 1
    Select the server and open the Settings tab.
  2. 2
    Under Discord alerts, paste the webhook URL into the Server webhook URL field.
  3. 3
    Leave the field empty to fall back to the global webhook from Settings → Notifications.

This lets you route different servers to different Discord channels — for example, a public alert channel for your Valheim server and a private one for your admin test server.

38. Web Backup Restore v1.2.3

Backups can be listed and restored directly from the web dashboard without opening the WGS desktop app.

Restoring a backup

  1. 1
    Open the web dashboard and find the server card.
  2. 2
    Click the 📂 Backups button below the action buttons.
  3. 3
    A list of available backups appears with filename, size and date.
  4. 4
    Click Restore next to the desired backup and confirm. WGS will extract the zip over the server install directory.

Note: Stop the server before restoring. Restoring while the server is running may cause file conflicts.

Selective backup paths

By default WGS backs up only the game-specific save directory (e.g. savegame for Enshrouded, Saves for Sons of the Forest). You can override this per server:

  1. 1
    Open the server Settings tab.
  2. 2
    Find Backup paths below the backup checkbox.
  3. 3
    Enter one or more paths relative to the install directory, separated by semicolons. Example: savegame;config
  4. 4
    Leave empty to use the built-in game default.
GameDefault backup path
Enshroudedsavegame
Valheimsaves
PalworldPal/Saved/SaveGames
ARK / ARK SAShooterGame/Saved
DayZmpmissions
V Risingsave-data
SatisfactoryFactoryGame/Saved
Rustserver
7 Days to DieSaves
Sons of the ForestSaves
Conan ExilesConanSandbox/Saved
Minecraftworld
Other gamesFull install directory

39. Crash Prediction v1.2.5

WGS analyzes each running server's CPU/RAM history every 30 seconds and can warn you before a likely crash. Configure in Settings → Crash Prediction.

  • Default heuristics — rapid RAM growth (>40% in 3 minutes), sustained CPU above 95% for 2 minutes, a monotonic memory leak pattern, or known crash-precursor text in the console output v1.2.5 (out-of-memory exceptions, fatal errors, access violations, segmentation faults)
  • Send crash predictions to Discord — requires Discord Notifications to be enabled; warnings always appear in the server console regardless
  • Only warn when system RAM is critically low — switches to a simpler mode: skips the per-server heuristics above (which can be noisy on servers that legitimately use a lot of CPU or take a while to load a world) and only warns when overall system memory availability drops below a threshold
  • Warn when free RAM drops below __% of total RAM — the threshold for the low-memory-only mode, configurable per system (default 5%)
A 3-minute startup grace period suppresses predictions while a server is still loading, and each prediction has a 10-minute cooldown per server to avoid repeat alerts for the same ongoing issue.
Actionable low-memory warnings v1.2.5
The low-memory warning now suggests which server to consider stopping — the running server with the fewest players, ties broken by highest RAM usage — instead of just reporting that memory is low.

40. Group Ban-List Sync & Shareable Status Page v1.2.5

Group ban-list sync

Servers in the same Group (see Server Templates / sidebar grouping) that run the same game now share bans automatically:

  • Banning a player on one server immediately applies the same ban to every other currently running server in the group
  • The ban is also recorded in a group-wide ban list, stored in %APPDATA%\WGS\group_bans.json
  • If a group server was offline when a ban happened, it re-applies all of that group's bans about 10 seconds after it next starts
  • No setup needed beyond assigning servers to the same group — works through whatever ban command the game already supports

Shareable status page

Each server's Info tab has a "Share" section with a 🔗 Copy shareable status link button. The link opens a small read-only page showing the server's current status, player count and uptime — no login, no controls, safe to post anywhere.

Requires the Web Dashboard to be enabled (Settings → Web Remote Control). The copied link uses a placeholder for your IP address — replace it with your machine's actual LAN or public address before sharing.

41. Quick Commands & Config History v1.2.5

Quick commands

In the Console tab, save frequently-used commands as one-click buttons:

  1. 1
    Type a short label (e.g. "Welcome") and the actual console command (e.g. say Welcome to the server!) into the two fields above the command input.
  2. 2
    Click + Add — the button appears above, ready to use.
  3. 3
    Click the button any time to send that exact command. Click the small ✕ to remove a button.

Config file version history

The Config tab now keeps a history panel next to the editor:

  • Every time you click Save file, the previous content is snapshotted before being overwritten
  • Up to 20 snapshots are kept per file; older ones are dropped automatically
  • Click ↩ Restore next to any snapshot to bring that version back — it asks for confirmation first, and snapshots the current (about-to-be-replaced) content too, so a restore can itself be undone
  • Stored in %APPDATA%\WGS\config_history\<server-id>\

42. Server Hygiene & Activity Tab v1.2.5

Server hygiene

In the server's Settings tab, the "Server Hygiene" card scans the install folder for:

  • Leftover .log files
  • Unreal Engine crash report folders (UECC-*)
  • Stray .dmp crash dumps
  • Leftover .tmp files from an interrupted SteamCMD update

Click 🧹 Scan & clean up junk files — it shows exactly what it found and how much disk space would be freed, and asks for confirmation before deleting anything. Only works while the server is stopped.

Activity tab

A new 📈 Activity tab (next to Statistics, under Players) shows:

  • A bar chart of session starts by hour of day, all-time — useful for picking a quiet hour to schedule restarts or updates
  • The most active players over the last 30 days, by total playtime

Both are built from the same player-session database already used for the Statistics tab — no extra setup needed.

43. FiveM & RedM v1.2.5.1

FiveM and RedM run the exact same FXServer binary — neither is sold or updated through Steam, so Install/Update works differently than for other games.

  • Install / Update downloads the latest official FXServer build directly from Cfx.re's own changelog API — no SteamCMD, no manual download needed.
  • RedM mode is set automatically (set gamename rdr3 in the generated config) — without it, the server would silently run as FiveM instead.
  • RCON is supported for both — set an RCON password in the server's Settings tab the same way as any other game.
  • The generated server.cfg enables the default resources (mapmanager, chat, spawnmanager, etc.) out of the box — without them nothing loads at all, not even a map.
Existing servers
The config file is only generated once, the first time WGS doesn't find one — it won't overwrite a server.cfg you already have. If you set up a server before this version and resources/RCON aren't working, delete the existing server.cfg and start the server again to get a fresh one, or add the missing lines yourself.
If you used txAdmin before
A txAdmin-managed install keeps its real config under a profile folder (commonly txData/<profile>/) rather than the server's root folder. WGS doesn't know about txAdmin profiles — point its Install Path at a fresh folder and let WGS manage the config itself, rather than mixing it with an existing txAdmin setup.