xgaming.tools

Windrose JSON Config Validator

Paste ServerDescription.json or WorldDescription.json to catch syntax errors, islandId mismatches, out-of-range multipliers, and invalid WorldPresetType values before boot.

Paste the full contents of your ServerDescription.json from the server root.

Paste your JSON and press Validate

Cross-check tip

Paste both JSON files (one per tab) then click Validate — the tool will cross-check that WorldIslandId in ServerDescription matches islandId in WorldDescription. A mismatch is the most common reason a Windrose world fails to load.

ServerDescription.json Field Reference

One ServerDescription.json lives in the server root and tells the Windrose dedicated server which world to load, what slot count to expose, and how to accept connections.

FieldTypeExampleNotes
PersistentServerIdstringa1b2c3d4...ef0132-char hex, do not edit
InviteCodestringWIND426+ chars, alphanumeric, case-sensitive
IsPasswordProtectedbooleanfalseEnables password lock
Passwordstring"hunter2"Empty if not protected
ServerNamestringMy ServerDisplay name in the browser
WorldIslandIdstringf0e1d2c3...1e0fMUST match WorldDescription.islandId
MaxPlayerCountinteger81–10 (server cap is 10)
UserSelectedRegionstringEUSEA / CIS / EU / "" (auto)
P2pProxyAddressstring192.168.1.10IP address
UseDirectConnectionbooleantrueEnables direct-connect port
DirectConnectionServerPortinteger77771024–65535, typically 7777
DirectConnectionProxyAddressstring0.0.0.0IP or "0.0.0.0" to bind all

WorldDescription.json Field Reference

Each world has its own WorldDescription.json inside its world folder. The islandId is the primary key — it must exactly match the world folder name and the WorldIslandId in ServerDescription.

FieldTypeRange / ValuesNotes
islandIdstring32-char hexMust match folder name and WorldIslandId
WorldNamestringDisplay name
CreationTimenumberscientific notationAuto-generated timestamp
WorldPresetTypestringEasy / Medium / Hard / CustomReset to Custom if any multipliers set
MobHealthMultiplierfloat0.2 – 5.0Enemy HP
MobDamageMultiplierfloat0.2 – 5.0Enemy damage
ShipHealthMultiplierfloat0.4 – 5.0Enemy ship HP
ShipDamageMultiplierfloat0.2 – 2.5Enemy ship attack
BoardingDifficultyMultiplierfloat0.2 – 5.0Boarding strength
Coop_MobStatsCorrectionModifierfloat0.0 – 2.0Scales mobs per extra player
Coop_ShipStatsCorrectionModifierfloat0.0 – 2.0Scales ships per extra player
CombatDifficulty (tag)stringEasy / Normal / HardBoss aggression

Common Windrose Config Mistakes

  • IslandId mismatch between ServerDescription.WorldIslandId and WorldDescription.islandId — server boots but the world never loads. The most common failure mode after copying save folders between servers.
  • MaxPlayerCount over 10 — the engine silently caps to 10. Setting 16 or 20 does not increase slot count.
  • Invalid UserSelectedRegion — anything other than "SEA", "CIS", "EU", or the empty string is ignored. Typos like "US" or "NA" fall back to auto-select.
  • Non-alphanumeric InviteCode — dashes, spaces, and punctuation will not be accepted by the client UI, even if the server writes them.
  • WorldPresetType label doesn't match settings — if you set multipliers but leave WorldPresetType as "Easy", the server will rewrite it to "Custom" on next boot. Harmless but often confusing.
  • Multiplier out of range — values outside the documented ranges may still load but often produce broken scaling (e.g. ShipDamageMultiplier above 2.5 is untested territory).
  • Privileged DirectConnectionServerPort — ports below 1024 require elevated privileges on Linux and will fail to bind. Stick to 7777 or another unprivileged port.
  • Editing PersistentServerId — this value is tied to the server's registration. Do not hand-edit it, or you will lose listing status.

File Locations

ServerDescription.json

Lives in the server installation root — one per dedicated server.

  • Windows: C:\WindroseServer\ServerDescription.json
  • Linux: /home/xgaming/windrose/ServerDescription.json
  • XGamingServer panel: File Manager → root folder

WorldDescription.json

One per world — inside a folder named after the world's islandId.

  • Windows: R5\Saved\SaveProfiles\Default\RocksDB\<version>\Worlds\<world_id>\WorldDescription.json
  • Linux: R5/Saved/SaveProfiles/Default/RocksDB/<version>/Worlds/<world_id>/WorldDescription.json
  • Folder name must equal islandId — rename either one and the world becomes orphaned.

Frequently Asked Questions

Windrose JSON Config Validator — FAQ

Is this Windrose JSON Config Validator free to use?

Yes, the Windrose JSON Config Validator is 100% free — no signup required, no hidden fees, no downloads. Everything runs in your browser.

How accurate is the Windrose JSON Config Validator?

Values are pulled from the Windrose game files and community-verified formulas. Results match what you see in-game, and we update the tool when the game gets major patches.

Can I host a Windrose server with XGamingServer?

Yes. XGamingServer offers instant Windrose server hosting with mod support, automatic backups, DDoS protection, and 24/7 support. All popular game settings are pre-configured.

Does the JSON Config Validator work on mobile?

Yes, the JSON Config Validator is fully responsive and works on desktop, tablet, and mobile browsers.

You might also need

Built-In Tool

Config Tool Built Into XGamingServer

Get managed Windrose hosting with this tool in your panel — configure, deploy, and play in minutes. No file uploads needed.

Built-In Config ToolInstant Server SetupDDoS ProtectionExpert 24/7 Support
Get 40% OFFNo setup fees · Cancel anytime