Difficulty lives in the Details tab of your server's Overview card, and only the Custom preset rewrites the difficulty of a world you already have. Picking…
Difficulty lives in the Details tab of your server's Overview card, and only the Custom preset rewrites the difficulty of a world you already have. Picking Easy, Medium, or Hard saves fine, but your world keeps whatever difficulty it was created with. Set the preset to Custom, dial in the values you want, save, and restart. Your ships, bases, and progress are never touched; only the world's settings block is rewritten.
Go to My Servers and press Detail view on your server's card.
In the Overview card, open the Details tab.
Change what you like, press Save changes in the popup at the bottom, then restart. Nothing changes mid-session: new values are applied while the server boots.
The full save-and-restart flow is in Change your server settings.
Difficulty Preset is a dropdown near the top of the Details tab with four options: Easy, Medium (the default), Hard, and Custom.

None of the three is written into your world, not even a new one, which starts on the game's own default. Only Custom is, so a world on Medium stays on Medium however often you pick Easy and restart. While one of the three is picked, the dashboard shows Doesn't change your world next to the setting.
To change a world you are already playing, use Custom. Want Hard? Pick Custom, set Enemy Health, Enemy Ship Health and Boarding Difficulty to 1.5, both damage sliders to 1.25, and Boss Difficulty to Hard. Easy uses 0.7, damage 0.6 and Easy bosses. Medium is 1.0 with Normal bosses.
Going from Custom back to Easy, Medium, or Hard does not undo your Custom values. They stay in the world and the game keeps using them, while the dashboard shows the preset you just picked. If your world feels stuck on old numbers, that is why: go back to Custom and set the values you want.
Set Difficulty Preset to Custom and seven multiplier sliders appear.
| Setting | Range | Default |
|---|---|---|
| Enemy Health | 0.2 to 5.0 | 1.0 |
| Enemy Damage | 0.2 to 5.0 | 1.0 |
| Enemy Ship Health | 0.4 to 5.0 | 1.0 |
| Enemy Ship Damage | 0.2 to 2.5 | 1.0 |
| Boarding Difficulty | 0.2 to 5.0 | 1.0 |
| Co-op Enemy Scaling | 0.0 to 2.0 | 1.0 |
| Co-op Ship Scaling | 0.0 to 2.0 | 0.0 |

Three of them are easy to misread:
Boarding Difficulty sets how many enemy sailors you have to defeat when you board a ship, not how hard they hit.
Co-op Enemy Scaling raises enemy health and posture for each connected player. Set it to 0.0 to switch player-count scaling off entirely.
Co-op Ship Scaling does the same for enemy ship health, but it is off by default (0.0). Both co-op dials are separate from the difficulty multipliers, so leave them where you want them when you copy a preset by hand.
Two checkboxes also appear only under Custom:
Shared Quest Progress (on by default): finishing a co-op quest auto-completes it for other players on the same step. The game currently applies this to a subset of quests.
Immersive Exploration (off by default): turning it on hides the map markers for nearby unexplored points of interest, for everyone on the server. The name reads backwards to a lot of people, so to be clear: on means fewer markers and harder exploration, off means markers stay.
Boss Difficulty (Easy, Normal, Hard) sits higher up and stays visible on every preset, but like everything else here it only reaches your world under Custom. It is a separate dial from the multipliers, so 0.7x enemies with Hard bosses is a valid setup.
These settings are stored per server, not per world, and are written into the world on disk each time the server starts on Custom.
On a brand-new server, and on the first start after you start a new world, your Custom values are in the new world from its very first start. The game always creates a world on its own default, so on that start the server lets the game create the world first and then writes your values into it before anyone can join. That start takes about 20 seconds longer than usual. An uploaded world gets your Custom values on its first start too.
Over SFTP the file you will find is /server_description.json: server name, max players, password, and the direct-connect address. We rewrite those from your dashboard on every start, so the file is read-only in the Files card and over SFTP. The game's own copy inside the /install/windrose/ tree is read-only for the same reason.
The file also holds the connection region and whether the server restores a damaged save from its newest backup. Set those on your server's Overview card, on the Details tab, as Connection Region and Restore Damaged Saves. Their Server file choice keeps the value the file already has.
Difficulty lives in a different file, WorldDescription.json, buried in /savegame/SaveProfiles/.../Worlds/<world id>/. Windrose rebuilds that file from the world's save at every start, so hand edits there never reach the game. Your Custom values reach the world through the save itself, which the server updates when it starts on Custom.
Use the dashboard instead. If you would rather work in a file, windrose_settings.kv is a quick-access shortcut at the top of your Files card. Whether raw edits stick depends on the server, and the file tells you which: open it and read the badge next to its name. Linked to dashboard means your edits are the source of truth and survive restarts. Regenerated on boot means the file is rebuilt from your dashboard settings every start, so change the setting on the Overview card instead. The badges are explained in Edit config files.
Reach us on Discord or at support@haptic.gg. Include your server name and a screenshot of the Details tab.
Max Players sits in the same Details tab (1 to 10). 10 is the technical maximum, and the developers recommend 4 players for the best Early Access stability.