{"id":50890425,"url":"https://github.com/madbee71/wgs","last_synced_at":"2026-06-15T21:00:34.090Z","repository":{"id":356551984,"uuid":"1233054310","full_name":"MadBee71/WGS","owner":"MadBee71","description":"Windows Game Server aka WGS","archived":false,"fork":false,"pushed_at":"2026-06-09T12:57:27.000Z","size":41381,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T13:14:03.549Z","etag":null,"topics":["amp-alternative","auto-restart","dayz-server","dedicated-server","discord-webhook","dotnet8","game-server-manager","minecraft-server","pterodactyl-alternative","pwa","rcon-client","rust-server","scum-server","server-hosting","server-monitor","steamcmd","valheim-server","web-panel","windowsgsm-alternative","wreckfest-server"],"latest_commit_sha":null,"homepage":"https://wgsserver.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MadBee71.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-08T14:42:59.000Z","updated_at":"2026-06-09T13:00:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MadBee71/WGS","commit_stats":null,"previous_names":["madbee71/wgs"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/MadBee71/WGS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadBee71%2FWGS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadBee71%2FWGS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadBee71%2FWGS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadBee71%2FWGS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MadBee71","download_url":"https://codeload.github.com/MadBee71/WGS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadBee71%2FWGS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34379915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amp-alternative","auto-restart","dayz-server","dedicated-server","discord-webhook","dotnet8","game-server-manager","minecraft-server","pterodactyl-alternative","pwa","rcon-client","rust-server","scum-server","server-hosting","server-monitor","steamcmd","valheim-server","web-panel","windowsgsm-alternative","wreckfest-server"],"created_at":"2026-06-15T21:00:19.458Z","updated_at":"2026-06-15T21:00:34.031Z","avatar_url":"https://github.com/MadBee71.png","language":"C#","funding_links":["https://ko-fi.com/madbee71"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"wgs.png\" alt=\"Windows Game Server\" width=\"320\"/\u003e\n  \u003ch1\u003eWindows Game Server\u003c/h1\u003e\n  \u003cp\u003e\u003cstrong\u003eSingle-window management panel for Windows game servers\u003c/strong\u003e\u003c/p\u003e\n\n  ![Version](https://img.shields.io/badge/version-1.1.1-blue)\n  ![.NET](https://img.shields.io/badge/.NET-8.0-512BD4?logo=dotnet)\n  ![Platform](https://img.shields.io/badge/platform-Windows-0078D4?logo=windows)\n  ![License](https://img.shields.io/badge/license-MIT-green)\n  ![Games](https://img.shields.io/badge/supported_games-54+-orange)\n  ![Build](https://img.shields.io/badge/build-passing-brightgreen)\n\n\u003c/div\u003e\n\n---\n\n## What is Windows Game Server?\n\n**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.\n\nInstead of juggling SteamCMD scripts, batch files, Task Scheduler entries and manual firewall rules, WGS brings everything into one clean window:\n\n- **Install** any supported game server in one click — SteamCMD is downloaded and run automatically in the background\n- **Start, stop and restart** servers with a single button — or let WGS do it automatically after a crash, with smart crash-loop detection\n- **Monitor** CPU and RAM usage per server in real time, with history graphs and a global system dashboard\n- **Schedule** automatic restarts, updates and backups at any time of day or week\n- **Back up** world saves and configs automatically before every update, with configurable retention\n- **Send console commands** directly from the UI — no need to switch windows or open a terminal\n- **Edit config files** for any server directly inside WGS, without opening a file manager\n- **Install Workshop mods** and manage Oxide/Minecraft plugins from the same interface\n- **Add any game** that isn't built-in using the graphical Plugin Creator — no coding required\n- **Control servers remotely** via Discord bot commands or the built-in REST API\n- **Manage servers on multiple machines** — slave mode lets any PC run as a background agent, controlled from your main WGS window\n- **Predict crashes before they happen** — WGS monitors RAM growth and CPU load and warns you in advance\n- **Manage firewall rules** automatically — WGS opens and closes the right ports when servers start and stop\n\nWGS 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.\n\n---\n\n## 📷 Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshot.png\" width=\"800\"\u003e\n\u003c/p\u003e\n\n---\n\n\u003e [!IMPORTANT]\n\u003e **Windows SmartScreen Warning:**\n\u003e\n\u003e Since WGS is an independent open-source tool that manages system-level tasks (Firewall, Process Priorities), Windows might show a \"SmartScreen\" warning.\n\u003e To run WGS: Right-click `WindowsGameServer.exe` → **Properties** → Check **Unblock** at the bottom → **OK**.\n\n---\n\n## ✨ Features\n\n### Server management\n| Feature | Description |\n|---|---|\n| 🎮 **50+ supported games** | Ready-made plugins for the most popular game servers |\n| ⬇️ **SteamCMD integration** | Install and update servers with one click — SteamCMD downloaded automatically |\n| 🔄 **Auto restart** | Automatic restart after crash, with configurable delay |\n| 🛡️ **Crash loop detection** | Counts crashes in a 10-minute window — stops retrying after a configurable limit |\n| 🔁 **Auto-update** | Periodic SteamCMD updates on a configurable interval while the server runs |\n\n### Monitoring\n| Feature | Description |\n|---|---|\n| 📊 **System dashboard** | Global CPU, RAM and disk usage across all running servers |\n| 📈 **Per-server performance charts** | CPU and RAM history graphs (last 6 minutes) per server |\n| 👥 **Player management** | Session tracking, total playtime per player and player list — stored in SQLite |\n| 🔮 **Crash prediction** | Detects rapid RAM growth, sustained CPU load and memory leaks — warns before a crash happens |\n| 🌐 **Bandwidth monitoring** | Real-time per-server and global network I/O (bytes in/out per second, active connections) |\n\n### Automation\n| Feature | Description |\n|---|---|\n| 🗓️ **Task scheduler** | Schedule start, stop, restart, update or backup — once, daily or weekly |\n| 💾 **Automatic backups** | Zip backups of world saves before updates, configurable retention policy |\n\n### Remote access\n| Feature | Description |\n|---|---|\n| 📟 **RCON console** | Send commands to running servers via Source RCON protocol |\n| 🤖 **Discord bot** | Control servers from any Discord channel: `!start`, `!stop`, `!restart`, `!update`, `!backup`, `!cmd` |\n| 🌐 **REST API + Web dashboard** | Built-in HTTP server with a browser-accessible dashboard — start/stop/status/metrics/log viewer |\n| 🖥️ **Multi-machine management** | Run WGS as a slave agent on any PC or VPS — master sees and controls all machines in one window |\n\n### Configuration \u0026 mods\n| Feature | Description |\n|---|---|\n| 📝 **Config editor** | Browse and edit any server config file directly inside WGS |\n| 📁 **File browser** | Full in-app file manager — browse, rename, delete and download server files without leaving WGS |\n| 🔩 **Mod manager** | Install and update Oxide/uMod for Rust; manage plugins for Minecraft |\n| 🗂️ **Steam Workshop** | Install Workshop items for supported games via SteamCMD |\n| 📋 **Server templates** | Save any server configuration as a reusable template — deploy identical servers in seconds |\n\n### System \u0026 extensibility\n| Feature | Description |\n|---|---|\n| 🛡️ **Firewall management** | Windows Firewall rules opened/closed automatically on start and stop |\n| ⚙️ **CPU affinity \u0026 priority** | Per-server core pinning and Windows process priority |\n| 🔧 **Custom Plugin Creator** | Graphical tool to add any game server — no code required |\n| 📦 **Plugin import / export** | Share plugins as `.cs` files between machines |\n| 🔔 **System tray** | Runs minimised in the background with tray notifications |\n| 🔒 **Encrypted credentials** | Steam login and Discord bot token encrypted with Windows DPAPI |\n| 👤 **User management** | Admin and Viewer roles with per-user API tokens, enable/disable accounts and full audit log |\n| ⬇️ **Console auto-scroll** | Console scrolls to latest output automatically; disables when you scroll up manually |\n| 🚀 **Start with Windows** | Optional registry entry to launch WGS automatically on login |\n\n---\n\n## 🎮 Supported Games\n\n\u003e `🔑` = Requires owning the game on Steam — authenticate via Steam Guard (email or mobile app). SteamCMD may ask for a new code on every run. \u0026nbsp;|\u0026nbsp; all others install anonymously\n\n### Survival\n| Game | Steam AppID | Max Players | Port | |\n|---|---|---|---|---|\n| 7 Days to Die | 294420 | 8 | 26900 | |\n| ARK: Survival Evolved | 376030 | 70 | 7777 | |\n| ASKA | 3246670 | 4 | 27015 | |\n| ASTRONEER | 728470 | 4 | 7777 | |\n| Barotrauma | 1026340 | 16 | 27015 | |\n| Conan Exiles | 443030 | 40 | 7777 | |\n| Core Keeper | 1963720 | 8 | 27015 | |\n| DayZ | 223350 | 60 | 2302 | 🔑 |\n| Enshrouded | 2278520 | 16 | 15636 | |\n| Don't Starve Together | 343050 | 10 | 10999 | |\n| Empyrion - Galactic Survival | 530870 | 8 | 30000 | |\n| Longvinter | 1639880 | 32 | 7777 | |\n| Necesse | 1169370 | 32 | 14159 | |\n| Icarus | 2089300 | 8 | 17777 | |\n| No One Survived | 2329680 | 50 | 7777 | |\n| Palworld | 2394010 | 32 | 8211 | |\n| Project Zomboid | 380870 | 32 | 16261 | |\n| Return to Moria | 3349480 | 8 | 20151 | |\n| Rising World | 339010 | 16 | 4255 | |\n| Rust | 258550 | 100 | 28015 | |\n| SCUM | 3792580 | 32 | 10000 | |\n| Sons of the Forest | 2465200 | 8 | 8766 | |\n| Soulmask | 3017310 | 20 | 8777 | |\n| Sunkenland | 2667530 | 8 | 27015 | |\n| Survive the Nights | 1502300 | 16 | 7777 | |\n| The Forest | 556450 | 64 | 27017 | 🔑 |\n| The Isle | 412680 | 75 | 7777 | |\n| Unturned | 1110390 | 24 | 27015 | |\n| V Rising | 1829350 | 40 | 9876 | |\n| Valheim | 896660 | 10 | 2456 | |\n| Vein | 2131400 | 16 | 7777 | |\n| Wind Rose | 4129620 | 16 | 7777 | |\n\n### FPS\n| Game | Steam AppID | Max Players | Port | |\n|---|---|---|---|---|\n| Black Mesa | 346680 | 24 | 27015 | |\n| Counter-Strike 2 | 730 | 10 | 27015 | |\n| Garry's Mod | 4020 | 24 | 27015 | |\n| Insurgency: Sandstorm | 581330 | 28 | 27102 | |\n| Killing Floor 2 | 232130 | 6 | 7777 | 🔑 |\n| MORDHAU | 629800 | 64 | 7777 | |\n| Team Fortress 2 | 232250 | 24 | 27015 | 🔑 |\n\n### Racing\n| Game | Steam AppID | Max Players | Port | |\n|---|---|---|---|---|\n| Assetto Corsa | 302550 | 18 | 9600 | 🔑 |\n| Assetto Corsa Competizione | 1430110 | 24 | 9600 | 🔑 |\n| Wreckfest | 361580 | 24 | 33540 | 🔑 |\n| Wreckfest 2 | 3519390 | 16 | 30100 | 🔑 |\n\n### Military\n| Game | Steam AppID | Max Players | Port | |\n|---|---|---|---|---|\n| Arma 2: Operation Arrowhead | 33905 | 64 | 2302 | 🔑 |\n| Arma 3 | 233780 | 64 | 2302 | 🔑 |\n| Arma Reforger | 1874900 | 16 | 2302 | |\n| Squad | 403240 | 100 | 7787 | |\n\n### Simulation\n| Game | Steam AppID | Max Players | Port | |\n|---|---|---|---|---|\n| American Truck Simulator | 2239530 | 8 | 27015 | |\n| Euro Truck Simulator 2 | 1948160 | 8 | 27015 | 🔑 |\n| Satisfactory | 1690800 | 4 | 7777 | |\n| Space Engineers | 298740 | 16 | 27016 | |\n\n### Other\n| Game | Steam AppID | Max Players | Port | |\n|---|---|---|---|---|\n| Minecraft Java | — | 20 | 25565 | |\n| RedM | — | 32 | 30120 | |\n| Terraria | — | 8 | 7777 | |\n\n\u003e `—` = not on Steam; install manually (see plugin description for download link)\n\u003e\n\u003e The **Custom Plugin Creator** lets you add any other game server without touching code.\n\n---\n\n## 🖥️ Requirements\n\n- **Windows 10 / Windows Server 2019** or newer\n- **.NET 8 Runtime** — [download here](https://dotnet.microsoft.com/download/dotnet/8.0)\n- **SteamCMD** — downloaded automatically on first install\n- Administrator rights for firewall rule management\n\n---\n\n## 🚀 Installation\n\n### Pre-built binary (recommended)\n\n1. Download the latest release from the [Releases](../../releases) page\n2. Extract the zip to a folder of your choice\n3. Run `WindowsGameServer.exe`\n4. If you get a .NET error, install the [.NET 8 Runtime](https://dotnet.microsoft.com/download/dotnet/8.0)\n\n### Build from source\n\n```bash\ngit clone https://github.com/YOUR_USERNAME/WindowsGameServer.git\ncd WindowsGameServer/WGS\ndotnet publish -c Release -o publish\n```\n\n\u003e Requires [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)\n\n---\n\n## 📦 Project structure\n\n```\nWGS/\n├── Games/              # Game plugins (IGamePlugin interface)\n│   ├── GamePluginBase.cs\n│   ├── GameRegistry.cs\n│   ├── ValheimPlugin.cs\n│   ├── RustPlugin.cs\n│   └── ...             # One .cs per game\n├── Models/             # Data models (GameServer, ConsoleMessage...)\n├── Services/           # Business logic and background services\n├── ViewModels/         # MVVM ViewModels\n├── Views/              # WPF XAML views\n└── publish/            # Published executable output\n```\n\n---\n\n## 🔌 Adding a custom plugin\n\n### Graphical Plugin Creator\n\nWGS includes a built-in Plugin Creator tool:\n1. Open **Tools → Plugin Creator**\n2. Fill in the game details (name, Steam AppID, executable, ports...)\n3. Click **Save** — the plugin appears in the game list immediately\n\nYou can also export any plugin to a `.cs` file and share it, or import one from another machine via **Tools → Import Plugin**.\n\n### Writing a plugin in code\n\nCreate a new file `Games/MyGamePlugin.cs`:\n\n```csharp\nusing WGS.Games;\nusing WGS.Models;\n\npublic class MyGamePlugin : GamePluginBase\n{\n    public override string GameId            =\u003e \"mygame\";\n    public override string GameName          =\u003e \"My Game\";\n    public override string Description       =\u003e \"Short description\";\n    public override string Category          =\u003e \"Survival\";\n    public override int    SteamAppId        =\u003e 123456;\n    public override string Executable        =\u003e \"server.exe\";\n    public override int    DefaultPort       =\u003e 7777;\n    public override int    DefaultQueryPort  =\u003e 27015;\n    public override int    DefaultMaxPlayers =\u003e 32;\n\n    public override string BuildStartArguments(GameServer s)\n        =\u003e $\"-port {s.ServerPort} -queryport {s.QueryPort} -maxplayers {s.MaxPlayers}\";\n}\n```\n\nRegister it in `Games/GameRegistry.cs`:\n\n```csharp\nRegister(new MyGamePlugin());\n```\n\n---\n\n## 🏗️ Architecture\n\n```\n┌─────────────────────────────────────┐\n│            WPF UI (XAML)            │\n├──────────────┬──────────────────────┤\n│  MainViewModel │  ServerViewModel   │  ← CommunityToolkit.Mvvm\n├──────────────┴──────────────────────┤\n│  ServerManagerService               │  ← Process lifecycle\n│  SteamCmdService                    │  ← Install / update / Workshop\n│  BackupService                      │  ← Zip backups + retention\n│  FirewallService                    │  ← netsh / Windows Firewall COM\n│  RconService                        │  ← Source RCON protocol\n│  SystemMetricsService               │  ← Global CPU / RAM / disk\n│  PerformanceMonitorService          │  ← Per-process CPU / RAM\n│  PerfHistoryService                 │  ← Time-series chart data\n│  PlayerStatsService                 │  ← Session tracking (SQLite)\n│  ModManagerService                  │  ← Oxide / Minecraft plugins\n│  SteamWorkshopService               │  ← Workshop item management\n│  ConfigEditorService                │  ← In-app config file editing\n│  ScheduledTaskService               │  ← Recurring automation tasks\n│  NotificationService                │  ← Discord webhooks\n│  DiscordBotService                  │  ← Discord bot (long-poll)\n│  WebApiService                      │  ← REST API + web dashboard (HttpListener)\n│  RemoteMachineService               │  ← Multi-machine polling \u0026 control\n│  CrashPredictionService             │  ← RAM/CPU trend analysis\n│  ServerGroupService                 │  ← Server grouping\n│  TemplateService                    │  ← Server configuration templates\n│  UserService                        │  ← User accounts, roles, audit log\n└─────────────────────────────────────┘\n         │\n         ▼\n┌─────────────────────────────────────┐\n│  IGamePlugin (per game)             │\n│  GamePluginBase (defaults)          │\n│  GameRegistry (registration)        │\n└─────────────────────────────────────┘\n```\n\n\n### Exe size\n- Release binary kept at ~20 MB by excluding Roslyn compiler assemblies from single-file bundle (they ship as separate DLLs next to the exe)\n\n---\n\n## 🤝 Contributing\n\nPull requests are welcome! For large changes, please open an issue first to discuss what you'd like to change.\n\n1. Fork this repository\n2. Create a feature branch: `git checkout -b feature/my-new-feature`\n3. Commit your changes: `git commit -m \"Add: my new feature\"`\n4. Push: `git push origin feature/my-new-feature`\n5. Open a Pull Request\n\n---\n\n## 📄 License\n\nMIT License — see the [LICENSE](LICENSE) file.\n\n---\n\n## Support\nIf you find WGS useful, you can support my work here:\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/madbee71)\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eBuilt with .NET 8 · WPF · CommunityToolkit.Mvvm\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadbee71%2Fwgs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadbee71%2Fwgs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadbee71%2Fwgs/lists"}