Windrose dedicated server settings are split across two JSON files: ServerDescription.json for server identity and world selection, and WorldDescription.json for the world itself. Kraken Express documents both files in the official server guide and explicitly warns players to edit them only while the server is shut down.
ServerDescription.json
ServerDescription.json lives in the server application's root folder. It controls how the server identifies itself, which world it loads, and whether the session is password protected.
Field | Meaning |
|---|---|
PersistentServerId | Unique server ID. The official guide says not to edit it |
InviteCode | Case-sensitive invite code using 0-9, a-z, and A-Z characters. Minimum 6 characters |
IsPasswordProtected | true or false |
Password | Server password when password protection is enabled |
ServerName | The visible name of your server |
WorldIslandId | The world ID the server should load. It must match the exact world folder ID |
MaxPlayerCount | Maximum simultaneous players. The guide pairs this with a recommendation of up to 4 for smoother performance |
P2pProxyAddress | Socket address field used by the networking layer |
WorldDescription.json
WorldDescription.json lives inside the specific world folder. It controls the world's name, preset, and any custom parameters attached to that world.
Field | Meaning |
|---|---|
IslandId | Unique world ID. It must match the folder name |
WorldName | The displayed name of the world |
CreationTime | Internal creation timestamp |
WorldPresetType | Easy, Medium, or Hard. If you use custom values, the next launch presents the world as Custom |
WorldSettings | Grouped bool, float, and tagged parameters. This stays minimal for preset worlds and expands for custom ones |
Custom World Parameters
The official guide says it is usually easier to set these values in game first and then copy the results into a server world file. The listed defaults and ranges are part of the live guide and can change in future builds.
Parameter | Default | Official Notes |
|---|---|---|
CoopQuests | true | If any player completes a co-op quest, it auto-completes for all active players |
EasyExplore | false | Disables map markers. The in-game label is Immersive exploration |
MobHealthMultiplier | 1.0 | Enemy health. Range: 0.2 to 5.0 |
MobDamageMultiplier | 1.0 | Enemy damage. Range: 0.2 to 5.0 |
ShipHealthMultiplier | 1.0 | Enemy ship health. Range: 0.4 to 5.0 |
ShipDamageMultiplier | 1.0 | Enemy ship damage. Range: 0.2 to 2.5 |
BoardingDifficultyMultiplier | 1.0 | Enemy sailors required to win boarding. Range: 0.2 to 5.0 |
Coop_StatsCorrectionModifier | 1.0 | Scales enemy health and posture by player count. Range: 0.0 to 2.0 |
Coop_ShipStatsCorrectionModifier | 0.0 | Scales enemy ship health by player count. Range: 0.0 to 2.0 |
CombatDifficulty | Normal | Boss aggression. Options: Easy, Normal, or Hard |
Practical Setup Advice
Set up the world in the game client first if you want a familiar UI, then copy the resulting world files to the dedicated server.
Only change JSON values while the server is off. The official guide warns that some fields can be auto-adjusted if the server detects problems.
If you are moving an existing world to a server, remember to set WorldIslandId in ServerDescription.json to the copied world's folder ID.
If you want a clean shared campaign, leave CoopQuests enabled. If you want each player to manage progress more independently, adjust it deliberately before the group invests time in the world.
See Also
Dedicated Server Hosting - the full hosting workflow and platform notes
Save File Location - where the world folders actually live
Difficulty Settings - how the world difficulty options map to gameplay