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.
2. Installation
2.1 Pre-built binary (recommended)
- 1Download — Grab the latest release zip from the GitHub Releases page.
- 2Extract — Unpack to a permanent folder, e.g.
C:\WGS\ - 3Run — Double-click
WindowsGameServer.exe— the app starts immediately. - 4.NET Runtime — If you see a runtime error, install .NET 10 Runtime from dotnet.microsoft.com.
- 5SteamCMD — WGS downloads SteamCMD automatically the first time you install a game.
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
4. Adding a Server
- 1Open dialog — Click the + Add Server button in the left sidebar.
- 2Select game — Pick from 101+ pre-configured games in the dropdown.
- 3Name — Give the server a recognisable name (e.g. Valheim — Family).
- 4Install folder — WGS suggests a path automatically. Change it if needed.
- 5Create — Click "Create server" — it appears with status Not Installed.
5. Install & Update
WGS uses Valve's SteamCMD to download game files. SteamCMD is fetched automatically into WGS's AppData folder on first use.
- 1Select server — Click a server in the left list.
- 2Install / Update — Click Install / Update in the server detail view.
- 3Login — 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.
- 4Progress — The console shows real-time download percentage from SteamCMD.
- 5Done — When the download finishes the status changes to Stopped.
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:
- 1Open the server's Settings tab.
- 2Find the Beta branch field and enter the branch name (e.g.
experimental,public,staging). Leave it empty to use the default release branch. - 3Click Save, then Install / Update. SteamCMD will download that specific branch.
6. Starting & Stopping
Control buttons in the server detail view:
| Button | Action | Notes |
|---|---|---|
| Start | Launches the server process | Runs a port pre-flight check first |
| Stop | Sends graceful stop; kills after 5 s | Waits for clean shutdown |
| Kill | Kills the entire process tree immediately | No grace period |
| Restart | Stop → 3 s delay → Start | |
| Show Window | Brings the server console window to the front | Only if the process has a window |
Status colours
| Status | Colour | Meaning |
|---|---|---|
| Running | 🟢 Green | Server is running normally |
| Starting | 🔵 Blue | Process is starting up |
| Stopping | 🔵 Blue | Graceful shutdown in progress |
| Installing / Updating | 🔵 Blue | SteamCMD is downloading files |
| Stopped | ⚫ Grey | Stopped — game files are installed |
| Not Installed | ⚫ Grey | Game files have not been downloaded yet |
| Error | 🔴 Red | Process 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.
| Option | Default | Description |
|---|---|---|
| Auto-start when WGS launches | Off | Starts this server automatically every time WGS opens. |
| Wake on demand | Off | Listens on the game port while stopped; starts the server the moment a player tries to connect. See section 31. |
| Shut down when empty | Off | Stops the server after all players leave and the idle timeout elapses. Requires Wake on demand or manual start. See section 31. |
| Idle timeout | 10 min | Minutes with zero players before auto-shutdown triggers. Visible when Shut down when empty is enabled. |
| Update before each start | Off | Runs SteamCMD update automatically every time the server starts. |
| Backup before each start | Off | Creates a backup automatically before every start so you can roll back if an update breaks the server. |
| Auto-restart after crash | Off | Restarts the server if the process exits unexpectedly. |
| Max retries (per 10 min) | 5 | If the server crashes more than this many times within 10 minutes, auto-restart is suspended to prevent a crash loop. |
| Delay before restart (sec) | 10 | Seconds to wait after a crash before restarting. |
| Restart daily at scheduled time | Off | Restarts the server once per day at the configured time (HH:MM, 24-hour). |
| Auto-update periodically | Off | Checks 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) | 30 | How 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
| Field | Description |
|---|---|
| Display Name | Internal name used inside WGS |
| Server Name | Public name shown in the in-game server browser |
| Max Players | Maximum allowed player count |
| Server IP | Listen address (0.0.0.0 = all network interfaces) |
| Game Port | Main port — players connect here |
| Query Port | Steam Query port used by the server browser |
| Steam Port | Steam network port (required by some games, e.g. Wreckfest) |
| RCON Port | Remote console port (Source RCON protocol) |
| RCON Password | RCON password — do not leave blank on a public server |
| Server Password | Connection password for players (optional) |
| GSLT Token | Steam Game Server Login Token (requires a Steam account) |
| Custom Args | Extra command-line arguments appended to the start command |
| Beta branch | SteamCMD beta branch to install (e.g. experimental, public). Leave empty for the default release branch. See section 5.1 below. |
| Install Path | Folder 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.
| Setting | Values | Description |
|---|---|---|
| CPU Affinity | Core checkboxes | Which CPU cores the server may use. All unchecked = no restriction. |
| Process Priority | Normal / AboveNormal / High / BelowNormal / RealTime | Windows process priority. High and RealTime require admin rights. |
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
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 type | Purpose | Default |
|---|---|---|
| Game Port | Players connect to this port | Varies by game |
| Query Port | Steam server browser queries this port | Usually Game Port + 1 |
| Steam Port | Steam network traffic (e.g. Wreckfest) | 27015 |
| RCON Port | Remote console (Source RCON protocol) | Varies |
11. Console & RCON
11.1 Console
The Console tab shows server output in real time. Messages are colour-coded:
| Colour | Type | Description |
|---|---|---|
| White / Grey | Info | Normal log messages |
| Yellow | Warning | Lines containing "warn" |
| Red | Error | Lines containing "error", "exception" or "fatal" |
| Cyan | System | WGS messages and SteamCMD output |
6.2 Batch Operations
Start, stop, restart or backup multiple servers at once using batch mode.
- 1Activate — Click the ☑ icon button next to the sort dropdown in the server list header.
- 2Select — Checkboxes appear next to each server. Tick the ones you want, or click All to select everything.
- 3Action — Use the batch toolbar buttons: ▶ Start, ■ Stop, ↺ Restart, 💾 Backup.
- 4Deactivate — Click the ☑ icon again to exit batch mode. All selections are cleared automatically.
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.
- 1Set RCON port & password — Fill in RCON Port and RCON Password in the server's Settings tab.
- 2Start the server — RCON becomes available when the server process is running.
- 3Connect — Click "RCON: Connect" in the Console tab.
- 4Send 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
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
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
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 location | Shows |
|---|---|
| Sidebar bottom bar | Global bytes in/out per second |
| Server detail — Charts tab | Per-server network I/O history graph |
| Server detail — Info tab | Current bytes in/out and active connection count |
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
| Action | Description |
|---|---|
| Install Oxide | Downloads and installs the latest Oxide/uMod release for this game |
| Update Oxide | Re-downloads Oxide to update to the latest version |
| Open plugins folder | Opens the server's plugins directory in Windows Explorer |
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.
- 1Find the item ID — Open the Workshop page in a browser. The ID is the number in the URL:
steamcommunity.com/sharedfiles/filedetails/?id=XXXXXXXXX - 2Enter 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.
- 3Download — Click Download. WGS runs SteamCMD and shows progress in the console.
- 4Done — 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.
| Column | Description |
|---|---|
| Player Name | Name as reported in the server log |
| Join Time | Timestamp when the player connected |
| Leave Time | Timestamp when the player disconnected (blank if still online) |
| Duration | Total 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>\
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.
- 1Save as template — Open any configured server → click "Save as Template" → give it a name and optional tags.
- 2Browse templates — Open Tools → Server Templates — filter by game category or tag.
- 3Deploy — Click "Deploy" → choose a name and install path → new server created instantly with all settings pre-filled.
- 4Edit / 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.
| Field | Options / Description |
|---|---|
| Action | Restart · Stop · Start · Backup · Update · Quick Command v1.2.5.1 |
| Frequency | Once · Daily · Weekly · Every X minutes/hours v1.2.5.1 |
| Time of day | HH:MM (24-hour clock) — not used for the interval frequency |
| Day of week | Monday–Sunday (Weekly only) |
| Enabled | Toggle a task on/off without deleting it |
| Last / Next | Timestamps — 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.
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.
| Event | Trigger | Embed colour |
|---|---|---|
| Server started | Status → Running | 🟢 Green |
| Server stopped | Status → Stopped | ⚫ Grey |
| Server crashed | Status → Error | 🔴 Red |
| Update started | Status → Updating | 🔵 Blue |
| Player joined v1.2.5 | New player detected on poll (off by default) | 🟢 Green |
| Player left v1.2.5 | Player 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.
- 1Create webhook — Discord: channel Settings → Integrations → Webhooks → New Webhook → Copy URL.
- 2Paste URL — WGS Settings → Discord Notifications → paste into "Webhook URL".
- 3Enable — Check "Enable Discord notifications" and choose which events to send.
- 4Test — Click "Test" to send a test embed immediately.
- 5Save — 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.
- 1Create a bot — discord.com/developers → New Application → Bot → Reset Token → Copy Token.
- 2Set permissions — OAuth2 → URL Generator: "bot" scope + Read Messages + Send Messages. Invite the bot.
- 3Get channel ID — Developer Mode in Discord → right-click your control channel → Copy Channel ID.
- 4Configure WGS — Settings → Discord Remote Control Bot. Paste the Bot Token and Channel ID.
- 5Restrict access — Enter comma-separated Discord User IDs in "Allowed User IDs". Leave blank to allow everyone.
- 6Save & test — Click Save, then "Test connection".
Bot commands
| Command | Description |
|---|---|
!help | Lists all available commands |
!status | Shows 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 |
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.
- 1Enable it — Settings → Discord Remote Control Bot → check "Keep a live status message updated instead of posting new messages".
- 2Pick a channel (optional) — enter a separate "Status channel ID" if you want this in its own channel instead of the command channel.
- 3Save — 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.
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.
- 1Enable — Check "Enable Web API" and choose a port (default: 8765).
- 2Token — An access token is generated automatically. Copy or customise it.
- 3Save — Click Save — the API starts immediately; status indicator turns green.
- 4Browser UI — Navigate to
http://localhost:8765/ui— dashboard with server controls and a real-time log viewer. - 5Remote 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
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/servers | List all servers with status and port info |
| GET | /api/servers/{id} | Get a single server's details |
| POST | /api/servers/{id}/start | Start a server |
| POST | /api/servers/{id}/stop | Stop a server |
| POST | /api/servers/{id}/restart | Restart a server |
| POST | /api/servers/{id}/update | Run Install/Update |
| POST | /api/servers/{id}/backup | Create a backup |
| POST | /api/servers/{id}/cmd | Send console command — body: {"command":"..."} |
| GET | /api/servers/{id}/perf?minutes=N | v1.2.5 CPU/RAM history samples for the last N minutes |
| GET | /api/system | System metrics — CPU, RAM, drives, network I/O |
/api/* endpoints require the token via Authorization: Bearer <token> or ?token=<token>.!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.
| Role | Permissions |
|---|---|
| Admin | Full access — start, stop, restart, update, backup, console, manage users, change settings |
| Viewer | Read-only — view status, metrics and logs; cannot start/stop or modify settings |
| Action | Description |
|---|---|
| Add user | Enter username, password and role → click "Add". Password hashed with PBKDF2-SHA256. |
| Enable / Disable | Toggle account on/off without deleting it |
| Reset password | Enter a new password and click "Change password" |
| Delete | Permanently removes the account and its audit entries |
| API token | Each 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
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 type | When required |
|---|---|
| Anonymous | Most 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
- 1Open Settings — Click the Settings icon in the left toolbar.
- 2Steam Login tab — Select the Steam Login tab.
- 3Enter credentials — Type your Steam username and password. Credentials are encrypted with Windows DPAPI before being stored on disk.
- 4Save — 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.
- 1Click Install / Update on a game that requires a Steam account.
- 2SteamCMD will print: Enter the current code sent to your email address.
- 3Check your email for the 5-character code from Steam.
- 4Type the code into the console input field at the bottom of the Console tab and press Enter.
- 5SteamCMD caches the session — subsequent installs on the same machine will not ask again.
28.3 Steam Guard — mobile authenticator
- 1Click Install / Update on a game that requires a Steam account.
- 2SteamCMD will pause waiting for Steam Guard approval.
- 3A login approval notification appears on your phone. Open the Steam app.
- 4Tap Approve on the login request — no code entry needed. SteamCMD continues automatically.
- 5SteamCMD caches the session for this machine.
29. Custom Plugin Creator
The Plugin Creator lets you add any game server without writing code. Open from Tools → Plugin Creator.
| Field | Req. | Description |
|---|---|---|
| Game ID | Yes | Unique identifier, e.g. mygame |
| Game Name | Yes | Display name in the game dropdown |
| Description | No | Short description shown in the Info tab |
| Category | No | Survival / Racing / Shooter / etc. |
| Steam AppID | Yes | Used by SteamCMD to download the server files |
| Executable | Yes | Server .exe — relative path from install folder |
| Default Port | Yes | Game port |
| Default Query Port | Yes | Steam Query port |
| Default Steam Port | No | Steam network port (0 = not used) |
| Max Players | Yes | Default player count |
| Start Arguments | Yes | Command-line args (supports placeholder variables) |
| Stop Command | No | Graceful shutdown command (blank = kill process) |
Placeholder variables
| Placeholder | Value |
|---|---|
{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.
- 1Click the + Add server button in the sidebar.
- 2Open the Game dropdown — your new module appears at the bottom of the list under its category.
- 3Select it, fill in the server name and install path, and click Add.
- 4The 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
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
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.
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
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
34. Troubleshooting
%APPDATA%\WGS\crash.logWGS 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.| Problem | Solution |
|---|---|
| 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 use | Another program is using the same port. Change the port in Settings or stop the conflicting program. |
| RCON won't connect | Confirm the RCON port and password match the server's config file and that a firewall rule exists for that port. |
| Backup fails | Disk space may be full or WGS lacks write permission to %APPDATA%. |
| Discord bot won't connect | Verify the bot token and channel ID. The bot needs Read Messages and Send Messages permissions in that channel. |
| Web API returns 401 | The request is missing the token. Add Authorization: Bearer <token> or append ?token= to the URL. |
| Web Dashboard login fails | Check username and password in Settings → User Management. Default credentials are admin / admin — change them on first use. |
| File Browser shows empty folder | Verify the install path is correct in the server's Settings tab. |
| Auto-restart disabled — crash limit reached | The 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 error | Install .NET 10 Runtime from dotnet.microsoft.com. |
| Server processes survive after WGS closes | Always stop servers with the Stop button before closing WGS. |
35. Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Enter | Send console / RCON command |
| Ctrl + C | Copy selected text |
| Ctrl + X | Cut selected text |
| Ctrl + V | Paste |
| Ctrl + A | Select all (text fields) |
| Ctrl + Z | Undo (text fields) |
| Ctrl + S | Save config file (Config Editor) |
| F5 | Refresh file list (File Browser) |
| Delete | Delete selected file (File Browser) |
| Backspace | Navigate to parent folder (File Browser) |
| Escape | Close dialogs / cancel input |
36. File Locations
WGS stores configuration in Windows AppData and writes nothing permanent to its own installation directory.
| Path | Contents |
|---|---|
%APPDATA%\WGS\servers.json | All server configurations |
%APPDATA%\WGS\settings.json | Global application settings |
%APPDATA%\WGS\notifications.json | Discord notification settings |
%APPDATA%\WGS\scheduled_tasks.json | Scheduled task definitions |
%APPDATA%\WGS\custom_plugins.json | Custom Plugin Creator entries |
%APPDATA%\WGS\templates.json | Server templates (v1.1.0) |
%APPDATA%\WGS\player_stats.db | Player session history (SQLite) |
%APPDATA%\WGS\users.db | User accounts and audit log (v1.1.0) |
%APPDATA%\WGS\crash.log | Application 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
- 1Select the server and open the Settings tab.
- 2Under Discord alerts, paste the webhook URL into the Server webhook URL field.
- 3Leave 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
- 1Open the web dashboard and find the server card.
- 2Click the 📂 Backups button below the action buttons.
- 3A list of available backups appears with filename, size and date.
- 4Click 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:
- 1Open the server Settings tab.
- 2Find Backup paths below the backup checkbox.
- 3Enter one or more paths relative to the install directory, separated by semicolons. Example:
savegame;config - 4Leave empty to use the built-in game default.
| Game | Default backup path |
|---|---|
| Enshrouded | savegame |
| Valheim | saves |
| Palworld | Pal/Saved/SaveGames |
| ARK / ARK SA | ShooterGame/Saved |
| DayZ | mpmissions |
| V Rising | save-data |
| Satisfactory | FactoryGame/Saved |
| Rust | server |
| 7 Days to Die | Saves |
| Sons of the Forest | Saves |
| Conan Exiles | ConanSandbox/Saved |
| Minecraft | world |
| Other games | Full 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%)
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.
41. Quick Commands & Config History v1.2.5
Quick commands
In the Console tab, save frequently-used commands as one-click buttons:
- 1Type 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. - 2Click + Add — the button appears above, ready to use.
- 3Click 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
.logfiles - Unreal Engine crash report folders (
UECC-*) - Stray
.dmpcrash dumps - Leftover
.tmpfiles 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 rdr3in 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.cfgenables the default resources (mapmanager,chat,spawnmanager, etc.) out of the box — without them nothing loads at all, not even a map.
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.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.