Windows Game Server (WGS) is a free, open-source desktop application that lets you host and manage dedicated game servers on any Windows PC โ without touching the command line.
Instead of juggling SteamCMD scripts, batch files, Task Scheduler entries and manual firewall rules, WGS brings everything into one clean window:
- Install any supported game server in one click โ SteamCMD is downloaded and run automatically in the background
- Start, stop and restart servers with a single button โ or let WGS do it automatically after a crash, with smart crash-loop detection
- Monitor CPU and RAM usage per server in real time, with history graphs and a global system dashboard
- Schedule automatic restarts, updates and backups at any time of day or week
- Back up world saves and configs automatically before every update, with configurable retention
- Send console commands directly from the UI โ no need to switch windows or open a terminal
- Edit config files for any server directly inside WGS, without opening a file manager
- Install Workshop mods and manage Oxide/Minecraft plugins from the same interface
- Add any game that isn't built-in using the graphical Plugin Creator โ no coding required
- Control servers remotely via Discord bot commands or the built-in REST API
- Manage firewall rules automatically โ WGS opens and closes the right ports when servers start and stop
WGS is designed for home lab hosts, small community server admins and anyone who wants a clean, reliable way to keep game servers running on Windows without spending time on maintenance.
Important
Windows SmartScreen Warning:
Since WGS is an independent open-source tool that manages system-level tasks (Firewall, Process Priorities), Windows might show a "SmartScreen" warning.
To run WGS: Right-click WindowsGameServer.exe โ Properties โ Check Unblock at the bottom โ OK.
| Feature | Description |
|---|---|
| ๐ฎ 63+ supported games | Ready-made plugins for the most popular game servers |
| โฌ๏ธ SteamCMD integration | Install and update servers with one click โ SteamCMD downloaded automatically |
| ๐ Auto restart | Automatic restart after crash, with configurable delay and crash loop detection |
| ๐ Auto-update | Periodic SteamCMD updates on a configurable interval while the server runs |
| โง Server cloning | Duplicate any server with all settings โ ports assigned automatically |
| ๐ค Wake-on-demand | Server starts automatically when the first player connects, saving resources when idle |
| ๐ด Shut down when empty | Server stops automatically after a configurable idle timeout when all players leave |
| Feature | Description |
|---|---|
| ๐ System dashboard | Global CPU, RAM and disk usage across all running servers |
| ๐ Per-server performance charts | CPU and RAM history graphs up to 1 hour, with selectable time range |
| ๐ฅ Player statistics | Session tracking and total playtime per player, stored in SQLite |
| ๐ Bandwidth & connections | Live network in/out and active connection count per server |
| Feature | Description |
|---|---|
| ๐๏ธ Task scheduler | Schedule start, stop, restart, update or backup โ once, daily or weekly |
| ๐พ Automatic backups | Zip backups of world saves before updates, configurable retention policy, selective backup paths per server |
| Feature | Description |
|---|---|
| ๐ RCON console | Send commands to running servers via Source RCON protocol |
| ๐ค Discord bot | Control servers from any Discord channel: !start, !stop, !restart, !update, !backup, !cmd |
| ๐ REST API | Built-in HTTP server for external integrations โ start/stop/status/metrics/backup/restore endpoints |
| ๐ฅ๏ธ Remote machine support | Manage servers running on other PCs from a single master panel |
| Feature | Description |
|---|---|
| ๐ Discord webhooks | Get notified on start, stop, crash and update events in Discord โ global or per-server webhook URL |
| ๐ง Email notifications (SMTP) | Receive the same alerts by email โ configurable per server |
| Feature | Description |
|---|---|
| ๐ Config editor | Browse and edit any server config file directly inside WGS |
| ๐๏ธ Steam Workshop | Install and manage Workshop mods for supported games via SteamCMD |
| ๐ File manager | Browse, upload, download and delete server files without leaving WGS |
| Feature | Description |
|---|---|
| ๐ก๏ธ Firewall management | Windows Firewall rules opened/closed automatically on start and stop |
| โ๏ธ CPU affinity, priority & RAM limit | Per-server core pinning, process priority and hard RAM cap via Windows Job Objects |
| ๐ง Custom Plugin Creator | Graphical tool to add any game server โ no code required |
| ๐ฆ Plugin import / export | Share plugins as .cs files between machines |
| ๐ System tray | Runs minimised in the background with tray notifications |
| ๐ Encrypted credentials | Steam login and Discord tokens encrypted with Windows DPAPI |
63+ games supported out of the box โ including Valheim, Rust, CS2, ARK, DayZ, Palworld, Minecraft, and many more.
๐ Full game list with search โ
The Custom Plugin Creator lets you add any other game server without touching code.
- Windows 10 / Windows Server 2019 or newer
- .NET 8 Runtime โ download here
- SteamCMD โ downloaded automatically on first install
- Administrator rights for firewall rule management
- Download the latest release from the Releases page
- Extract the zip to a folder of your choice
- Run
WindowsGameServer.exe - If you get a .NET error, install the .NET 8 Runtime
git clone https://github.com/MadBee71/WGS.git
cd WindowsGameServer/WGS
dotnet publish -c Release -o publishRequires .NET 8 SDK
WGS/
โโโ Games/ # Game plugins (IGamePlugin interface)
โ โโโ GamePluginBase.cs
โ โโโ GameRegistry.cs
โ โโโ ValheimPlugin.cs
โ โโโ RustPlugin.cs
โ โโโ ... # One .cs per game
โโโ Models/ # Data models (GameServer, ConsoleMessage...)
โโโ Services/ # Business logic and background services
โโโ ViewModels/ # MVVM ViewModels
โโโ Views/ # WPF XAML views
โโโ publish/ # Published executable output
WGS includes a built-in Plugin Creator tool:
- Open Tools โ Plugin Creator
- Fill in the game details (name, Steam AppID, executable, ports...)
- Click Save โ the plugin appears in the game list immediately
You can also export any plugin to a .cs file and share it, or import one from another machine via Tools โ Import Plugin.
Create a new file Games/MyGamePlugin.cs:
using WGS.Games;
using WGS.Models;
public class MyGamePlugin : GamePluginBase
{
public override string GameId => "mygame";
public override string GameName => "My Game";
public override string Description => "Short description";
public override string Category => "Survival";
public override int SteamAppId => 123456;
public override string Executable => "server.exe";
public override int DefaultPort => 7777;
public override int DefaultQueryPort => 27015;
public override int DefaultMaxPlayers => 32;
public override string BuildStartArguments(GameServer s)
=> $"-port {s.ServerPort} -queryport {s.QueryPort} -maxplayers {s.MaxPlayers}";
}Register it in Games/GameRegistry.cs:
Register(new MyGamePlugin());โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ WPF UI (XAML) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโค
โ MainViewModel โ ServerViewModel โ โ CommunityToolkit.Mvvm
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโค
โ ServerManagerService โ โ Process lifecycle
โ SteamCmdService โ โ Install / update / Workshop
โ BackupService โ โ Zip backups + retention
โ FirewallService โ โ netsh / Windows Firewall COM
โ RconService โ โ Source RCON protocol
โ SystemMetricsService โ โ Global CPU / RAM / disk
โ PerformanceMonitorService โ โ Per-process CPU / RAM
โ PerfHistoryService โ โ Time-series chart data
โ PlayerStatsService โ โ Session tracking (SQLite)
โ ModManagerService โ โ Oxide / Minecraft plugins
โ SteamWorkshopService โ โ Workshop item management
โ ConfigEditorService โ โ In-app config file editing
โ ScheduledTaskService โ โ Recurring automation tasks
โ NotificationService โ โ Discord webhooks
โ DiscordBotService โ โ Discord bot (long-poll)
โ WebApiService โ โ REST API (HttpListener)
โ ServerGroupService โ โ Server grouping
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ IGamePlugin (per game) โ
โ GamePluginBase (defaults) โ
โ GameRegistry (registration) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Pull requests are welcome! For large changes, please open an issue first to discuss what you'd like to change.
- Fork this repository
- Create a feature branch:
git checkout -b feature/my-new-feature - Commit your changes:
git commit -m "Add: my new feature" - Push:
git push origin feature/my-new-feature - Open a Pull Request
MIT License โ see the LICENSE file.
If you find WGS useful, you can support my work here:

