World settings
Windrose World Settings
WorldDescription.json controls per-world gameplay settings: difficulty preset, mob health and damage, ship health and damage, boarding difficulty, and co-op scaling. Each world on your server has its own copy of this file.
This guide explains the file's location, its unusual tagged JSON format, and the multipliers you can tune.
For server-wide settings (name, password, invite code), see Server Configuration. For creating or switching between worlds, see Managing Worlds.
File Location
Each world has its own WorldDescription.json at:
R5/Saved/SaveProfiles/Default/RocksDB/<game version>/Worlds/<world id>/WorldDescription.json
The <game version> folder changes whenever Windrose pushes a major update; you may see multiple versioned folders after upgrades. The <world id> is a long hex string that matches the folder name.
Never rename a world folder manually. The database relies on those generated IDs and the server will refuse to load a renamed world. To work with multiple worlds, see Managing Worlds.
Critical Editing Rule
Like ServerDescription.json, always stop the server before editing. Windrose rewrites the file on shutdown. Edits made while the server is running will be overwritten.
- Stop the server.
- Edit the file in the panel File Manager.
- Save.
- Start the server.
The Tagged JSON Format
Windrose uses a "tagged" JSON structure for world settings. Instead of flat key-value pairs, settings are wrapped in tag objects. A trimmed example:
{
"IslandId": "0123456789ABCDEF",
"WorldName": "The Sea of Thieves",
"WorldSettings": {
"{\"TagName\": \"WDS.Parameter.DifficultyPreset\"}": {
"TagName": "WDS.Parameter.DifficultyPreset.Medium"
},
"{\"TagName\": \"WDS.Parameter.CombatDifficulty\"}": {
"TagName": "WDS.Parameter.CombatDifficulty.Normal"
},
"{\"TagName\": \"WDS.Parameter.MobHealthMultiplier\"}": {
"Value": 1.0
},
"{\"TagName\": \"WDS.Parameter.MobDamageMultiplier\"}": {
"Value": 1.0
},
"{\"TagName\": \"WDS.Parameter.ShipHealthMultiplier\"}": {
"Value": 1.0
},
"{\"TagName\": \"WDS.Parameter.ShipDamageMultiplier\"}": {
"Value": 1.0
},
"{\"TagName\": \"WDS.Parameter.BoardingDifficulty\"}": {
"TagName": "WDS.Parameter.BoardingDifficulty.Normal"
}
}
}The double-quoted JSON-inside-JSON keys look ugly, but the format is intentional and you need to preserve it exactly when editing.
Useful tip: copy a known-good block from one setting and modify only the trailing TagName or Value, never the wrapping key structure. If you hand-type one of these keys from scratch you will almost certainly miss an escape character.
IslandId Must Match WorldIslandId
Inside WorldDescription.json, the IslandId field must match three things:
- The name of the world folder containing it
- The
WorldIslandIdfield inR5/ServerDescription.json
If any of these get out of sync, the server refuses to load the world. Do not edit IslandId unless you know exactly why.
Difficulty Presets
The simplest way to tune your server. Set the DifficultyPreset tag to one of:
| Preset | Effect |
|---|---|
WDS.Parameter.DifficultyPreset.Easy | Friendlier combat, more forgiving resource costs |
WDS.Parameter.DifficultyPreset.Medium | Default balanced experience |
WDS.Parameter.DifficultyPreset.Hard | Aggressive enemies, harsher resource costs |
WDS.Parameter.DifficultyPreset.Custom | Use the individual multipliers below |
Setting any individual multiplier away from its preset value automatically flips the preset to Custom.
Custom Multiplier Settings
These are the multipliers most communities tune. Each is a Value field inside its tag block:
| Setting | Default | Range guidance |
|---|---|---|
| MobHealthMultiplier | 1.0 | 0.5 to 3.0 |
| MobDamageMultiplier | 1.0 | 0.5 to 3.0 |
| ShipHealthMultiplier | 1.0 | 0.5 to 3.0 |
| ShipDamageMultiplier | 1.0 | 0.5 to 3.0 |
For a relaxed PvE group, MobHealth and MobDamage around 0.7 to 0.8 feels noticeably gentler without trivializing combat. For a hardcore crew, 1.5 to 2.0 on health and damage makes naval encounters feel desperate.
Combat Difficulty and Boarding Difficulty
These use the TagName style (not numeric Value):
| Setting | Options |
|---|---|
| CombatDifficulty | CombatDifficulty.Easy, CombatDifficulty.Normal, CombatDifficulty.Hard |
| BoardingDifficulty | BoardingDifficulty.Easy, BoardingDifficulty.Normal, BoardingDifficulty.Hard |
Combat difficulty affects general enemy aggression and AI behavior. Boarding difficulty specifically tunes how challenging it is to defend (or assault) a ship in a boarding action.
Co-Op Scaling
Co-op scaling automatically increases enemy strength and ship encounters based on connected player count. By default it is on. To disable (every encounter is balanced for solo), set the CoOpScaling tag to its Off variant. Most communities leave it on.
Example: Relaxed PvE Server
For a casual crew that wants pirate adventures without grind:
"WorldSettings": {
"{\"TagName\": \"WDS.Parameter.DifficultyPreset\"}": {
"TagName": "WDS.Parameter.DifficultyPreset.Custom"
},
"{\"TagName\": \"WDS.Parameter.CombatDifficulty\"}": {
"TagName": "WDS.Parameter.CombatDifficulty.Easy"
},
"{\"TagName\": \"WDS.Parameter.MobHealthMultiplier\"}": {
"Value": 0.75
},
"{\"TagName\": \"WDS.Parameter.MobDamageMultiplier\"}": {
"Value": 0.75
},
"{\"TagName\": \"WDS.Parameter.ShipHealthMultiplier\"}": {
"Value": 1.25
}
}Example: Hardcore PvE Server
For a crew that wants every naval engagement to feel desperate:
"WorldSettings": {
"{\"TagName\": \"WDS.Parameter.DifficultyPreset\"}": {
"TagName": "WDS.Parameter.DifficultyPreset.Custom"
},
"{\"TagName\": \"WDS.Parameter.CombatDifficulty\"}": {
"TagName": "WDS.Parameter.CombatDifficulty.Hard"
},
"{\"TagName\": \"WDS.Parameter.MobHealthMultiplier\"}": {
"Value": 1.75
},
"{\"TagName\": \"WDS.Parameter.MobDamageMultiplier\"}": {
"Value": 1.5
},
"{\"TagName\": \"WDS.Parameter.ShipHealthMultiplier\"}": {
"Value": 0.85
},
"{\"TagName\": \"WDS.Parameter.BoardingDifficulty\"}": {
"TagName": "WDS.Parameter.BoardingDifficulty.Hard"
}
}Common Issues
- Server will not load the world after editing: JSON syntax error. The tagged keys are easy to break. Restore from backup and re-edit one tag at a time.
- Settings changes do not take effect: You probably edited while the server was running, and Windrose overwrote the file on shutdown. Stop first, then edit.
- "Preset shows Custom but I picked Medium": Setting any individual multiplier flips the preset to Custom. To get a clean preset, set all individual multipliers back to 1.0 (or remove the custom blocks entirely).
- IslandId mismatch error in console:
IslandIdinside the file does not match the folder name, or does not matchWorldIslandIdinServerDescription.json. Make all three match.
What to Read Next
- Managing Worlds for creating new worlds and switching between them
- Windrose+ and Mods for additional multipliers beyond what
WorldDescription.jsonexposes (XP, loot, stack size, inventory) - Server Configuration for
ServerDescription.jsonsettings