
Windrose ServerDescription.json Config Guide
What is actually inside R5/ServerDescription.json, which fields GameGrid owns, which you can safely change, and why the Settings tab is the better way.
File location
R5/ServerDescription.json holds the server-level half of a Windrose server’s configuration. On GameGrid it is reachable from the Files tab: open R5/, select ServerDescription.json and click "Open" to edit it in the browser.
It is not the whole configuration. Everything about the world itself — difficulty, multipliers, co-op scaling — lives in a second file, WorldDescription.json, inside that world’s own folder under R5/Saved/SaveProfiles/Default/RocksDB_v2/0.10.0/Worlds/<world id>/. The Settings tab writes to both for you, which is the main reason to use it rather than editing by hand.
Stop the server before editing either file. Windrose rewrites its configuration when it shuts down, so an edit made while it is running is usually discarded.
What the file actually contains
Two fields at the root and one object. There is no ServerPort field at the root and never has been — the port comes from the -port launch argument, which the platform sets.
Version (integer): the config schema version. Written by the game.
DeploymentId (string): the build the server was last run on, for example "0.10.0.8.10-dd411cfd". Written by the game; this is where Windrose Plus reads the game version it displays.
ServerDescription_Persistent (object): everything else, listed below.
Fields inside ServerDescription_Persistent
ServerName (string): the server’s name as it appears on WDCgridgames. Editable from the Settings tab.
InviteCode (string): the code players use to find the server. 0-9, a-z and A-Z, at least 6 characters, case-sensitive. Each server is given a random 8-character code when it is built. Editable from the Settings tab. Ignored while UseDirectConnection is true.
Password (string) and IsPasswordProtected (boolean): the join password and the flag that tells the game to require it. Both editable from the Settings tab; set them together.
MaxPlayerCount (integer, default 8, 1 to 64): the player limit. Editable from the Settings tab.
WorldIslandId (string): which world the server loads. Editable from the Settings tab, where the panel offers the worlds it has detected in a dropdown.
UserSelectedRegion (string): "", "SEA", "CIS" or "EU" — the Connection Service region. Empty means the server chooses the lowest-latency one. Editable from the Settings tab.
UseDirectConnection (boolean): whether players join by address or by invite code. Editable from the Settings tab.
AutoLoadLatestBackupIfHasBroken (boolean, default true): whether the game tries to recover a broken save from its own backup on launch. Editable from the Settings tab.
PersistentServerId (string): a generated unique identifier for the server. Not shown in the panel; do not edit it.
P2pProxyAddress (string): the listening address for the game’s P2P sockets. Platform-managed and not shown in the panel.
DirectConnectionServerAddress, DirectConnectionServerPort and DirectConnectionProxyAddress: the address, port and bind address used for direct connections. Platform-managed and not shown in the panel — your port is allocated by the platform and is not yours to change.
CanLaunchMultipleServerInstances (boolean): the safeguard that lets several Windrose servers coexist on one host. Platform-managed and not shown in the panel.
Which fields can I edit by hand?
Anything the Settings tab shows, you should change from the Settings tab instead — it validates the value against the game’s own schema, writes it into the right file, and tells you whether a restart is needed. Every one of the fields above except the invite code and Auto Load Latest Backup needs a restart to take effect.
The six platform-managed fields — PersistentServerId, P2pProxyAddress, the three DirectConnection fields and CanLaunchMultipleServerInstances — are not shown in the panel on purpose. Changing them by hand is how a working server becomes unreachable, and nothing puts them back for you automatically.
If you do edit the file directly, the Files tab editor is the safest way: it opens JSON files up to 1 MB, shows you the byte count, and warns you if you close it with unsaved changes.
JSON syntax
ServerDescription.json must be valid JSON. The three mistakes that break it: a missing comma between two fields, a trailing comma after the last field in an object (JSON does not allow one), and an unquoted string value. Numbers and booleans are written without quotes; every string needs double quotes.
If the file is not valid JSON the server will not start. The Console tab shows the parse error.
Recovering from a broken file
Stop the server. From the Files tab, rename ServerDescription.json to ServerDescription.json.bak rather than deleting it — keeping the broken copy means support can see what went wrong.
Then use "Check & Repair" on the Admin tab. It puts back any game file your server should have and is missing, and reports whether the install is otherwise sound. Start the server afterwards — Windrose recreates ServerDescription.json with its own defaults.
You will lose whatever you had set — server name, password, player limit, invite code and world selection — so set them again from the Settings tab before letting players back in. Your world itself is untouched by any of this: it lives under R5/Saved, not in this file.
