Skip to content

Windrose world settings

Decode the tagged formatting of WorldDescription.json, align your IslandId, and safely implement difficulty presets or multipliers.

Updated August 07, 2026
Windrose

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 Configuring your Windrose server. 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

Always stop the server before editing

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.

  1. Stop the server.

  2. Edit the file in the File Manager on your Windrose hosting plan.

  3. Save.

  4. 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"
    }
  }
}
WorldDescription.json

The double-quoted JSON-inside-JSON keys look ugly, but the format is intentional and you need to preserve it exactly when editing.

Never hand-type a tagged key

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 two things:

  • The name of the world folder containing it
  • The WorldIslandId field in R5/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 feel 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
  }
}
WorldDescription.json

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"
  }
}
WorldDescription.json

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: IslandId inside the file does not match the folder name, or does not match WorldIslandId in ServerDescription.json. Make all three match.

Made with 💜 by GameServerKings

Need a Windrose server?

Deploy an instantly-provisioned Windrose server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $9.90 /month