Adds remote administration and server management features to a StarRupture dedicated server.
Target: Dedicated server only
Pass server configuration directly on the command line, bypassing DSSettings.txt entirely. The save game name is always AutoSave0.sav, and StartNewGame / LoadSavedGame are set automatically based on whether an existing save is found.
| Parameter | Required | Description |
|---|---|---|
-SessionName=<name> |
Yes | Session/server name |
-SaveGameInterval=<seconds> |
No | Autosave interval (default: 300) |
-RconPort=<port> |
No | TCP/UDP port for RCON and Steam Query (default: 27015) |
-RconPassword=<password> |
No | Password for RCON authentication |
Example:
StarRuptureGameSteam-Win64-Shipping.exe -SessionName="My Server" -SaveGameInterval=600 -RconPort=27015 -RconPassword=secret
Authenticated remote command execution over TCP, compatible with any standard RCON client. RCON is disabled if -RconPassword= is not provided.
See RCON_README.md for supported commands and client compatibility.
UDP server browser integration exposing player counts, server name, and map info to tools that support the Steam query protocol.
Blocks a known exploit in the game's built-in HTTP server that allows unauthenticated remote code execution. Enabled by default.
See the vulnerability announcement for details.
An HTTP JSON API for remote server administration. Enabled by setting AdminPanelEnabled=1 and ApiKey=<your-key> in ServerUtility.ini. All endpoints are POST, all bodies are JSON, and all protected endpoints require a session_token obtained from /auth/login.
Base URL: http://<server-ip>:<game-http-port>/ServerUtility/api
Exchange your API key for a session token.
curl -s -X POST http://localhost:7777/ServerUtility/api/auth/login \
-H "Content-Type: application/json" \
-d '{"api_key": "your-secret-key"}'Response:
{"ok": true, "session_token": "abc123..."}List all currently connected players with their index, name, ping, and IP.
curl -s -X POST http://localhost:7777/ServerUtility/api/players/list \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123..."}'Response:
{"ok": true, "players": [{"index": 0, "name": "Alice", "ping": 42, "ip": "192.168.1.10"}]}Kick a player by their index from /players/list.
curl -s -X POST http://localhost:7777/ServerUtility/api/players/kick \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123...", "player_index": 0}'Response:
{"ok": true}Ban a player by index. Kicks them immediately and appends their IP to Plugins\ServerUtility\bans.txt.
curl -s -X POST http://localhost:7777/ServerUtility/api/players/ban \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123...", "player_index": 0}'Response:
{"ok": true}Get the current wave state.
curl -s -X POST http://localhost:7777/ServerUtility/api/wave/status \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123..."}'Response:
{"ok": true, "in_progress": true, "paused": false, "type": 1, "stage": 2, "progress": 0.4500}Start a wave of the given type.
curl -s -X POST http://localhost:7777/ServerUtility/api/wave/start \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123...", "wave_type": 1}'Response:
{"ok": true}Cancel the currently active wave.
curl -s -X POST http://localhost:7777/ServerUtility/api/wave/cancel \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123..."}'Response:
{"ok": true}Pause the currently active wave.
curl -s -X POST http://localhost:7777/ServerUtility/api/wave/pause \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123..."}'Response:
{"ok": true}Resume a paused wave.
curl -s -X POST http://localhost:7777/ServerUtility/api/wave/resume \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123..."}'Response:
{"ok": true}Give an item to a player. count defaults to 1 if omitted.
curl -s -X POST http://localhost:7777/ServerUtility/api/inventory/give \
-H "Content-Type: application/json" \
-d '{"session_token": "abc123...", "player_index": 0, "asset_path": "AuItemDataBase_Rifle", "count": 1}'Response:
{"ok": true}All endpoints return {"ok": false, "error": "<reason>"} on failure, with an appropriate HTTP status code (400 for bad input, 401 for missing/invalid session token, 404 for unknown route).
-
Download the latest release ZIP from the Releases page:
ServerUtility-Server-*.zip
-
Extract into your game's
Binaries\Win64\folder. The ZIP contains aPlugins\folder — it will sit alongside your existingdwmapi.dll. -
After the first launch, edit
Plugins\config\ServerUtility.iniand setEnabled=1.
Requires StarRupture-ModLoader to be installed first.
| Problem | Solution |
|---|---|
| RCON won't start | Both -RconPort= and -RconPassword= must be provided on the command line. |
| Server settings not applying | Ensure -SessionName= is present — this is what activates command-line mode. |
| Plugin not loading | Check modloader.log in Binaries\Win64\ for errors. |
Requires Visual Studio 2022 and the StarRupture-Plugin-SDK.
Clone the repo, open ServerUtility.sln, and build the Server Release|x64 configuration. The output DLL will be placed in build\Server Release\Plugins\.
Use at your own risk. The authors are not responsible for any damage caused by using this software.