How to Set Up a Windrose Dedicated Server
A Windrose dedicated server keeps your crew’s ships, bases and world afloat when the captain logs off. This is the full path from install to first voyage, with the choices that decide whether it stays stable: where the files live, how players connect, how many you let in and how you keep the save safe.
Use the Steam tool for a normal Windows setup, SteamCMD for a headless or remote Windows box, and the copied WindroseServer folder if you play through EGS or Stove.
Invite code mode avoids manual port forwarding by using the Connection Service and NAT punch-through, so it is the sensible first choice on home broadband.
Never run the dedicated server from inside the game folder and never edit the JSON files while the server is running.
Leave the live RocksDB_v2 folder alone, keep backups, and leave multiple-instance protection enabled unless you fully separate each server copy.
Before you start: what a dedicated server actually gives you
A dedicated server keeps the world running as its own process instead of tying it to one player’s game session. That matters for an always-on crew world: friends can join when the host is not in-game, and the world state is stored in one central place instead of depending on whoever opened the save that night. If this is your first time self-hosting a game server, the practical difference with Windrose is that the server has to live in its own folder and wants a clean start-stop cycle before you edit anything.
Hardware matters more as the world gets busier. The official figures below are a good floor, and they are more useful than guessing from slot count alone. If you want the wider context behind CPU, RAM and storage choices, compare them with general game server hardware requirements.
| Crew size | CPU | RAM | SSD |
|---|---|---|---|
| 2 players | Intel Xeon Scalable (Sapphire Rapids), 2 cores, 3.2 GHz | 8 GB | 35 GB |
| 4 players | Intel Xeon Scalable (Sapphire Rapids), 2 cores, 3.2 GHz | 12 GB | 35 GB |
| 10 players | Intel Xeon Scalable (Sapphire Rapids), 2 cores, 3.2 GHz | 16 GB | 35 GB |
Look at what changes between the tiers: the CPU line and the 35 GB SSD stay the same, and only the RAM grows with the crew. Kraken Express strongly recommends an SSD, because the world database is read on start-up and written constantly while you play. If you plan to host and play on the same Windows PC, the official guidance is to budget the client’s minimum 16 GB plus another 8 GB for the server, so 24 GB total is the practical target.
Get the server files: three routes, and why folder location matters
There are three sensible ways to get Windrose server files. The right route depends on how you want to run it, not on what looks shortest on paper.
| Route | Best for | What you do | Why pick it |
|---|---|---|---|
| Steam Tools | Local Windows setup with a normal desktop | In Steam, open the Library dropdown, switch to Tools, install Windrose Dedicated Server, then use Manage > Browse Local Files | Free, separate app, simple to launch and easy to inspect |
| SteamCMD | Remote Windows box, headless use, scripted updates | Install app 4129620 with SteamCMD | No purchased copy needed, and later updates only pull changed files |
| Copied WindroseServer folder | EGS or Stove owners | Copy R5\Builds\WindroseServer out of the game install to another location | Gets you the same server files without Steam tools |
The location matters because the dedicated server will not work correctly from inside the game folder. If you launch it there, the game client can shut it down because the client also spins up its own internal server. In practical terms, that means a dedicated server must have its own folder and its own lifecycle.
force_install_dir "C:\Game_Servers\Windrose_Server" login anonymous app_update 4129620 validate quit
That SteamCMD route is the tidy option for a remote Windows machine because it separates install, update and restart work. It also reduces mistakes after patches, as the same command later updates the server in place.
First launch: create the world, confirm the invite code, then stop cleanly
For the first run, use StartServerForeground.bat. It is the recommended launcher because it keeps a console window open with logs, shows when the world has actually loaded, and lets you shut the server down by closing the window. You can run WindroseServer.exe directly, but that becomes a background process and is harder to inspect or stop cleanly.
When the server finishes loading, it prints an invite code in the console. That code also appears in R5\ServerDescription.json. From the client, friends join through Play -> Connect to Server and paste the code. For this first pass, the point is not to fine-tune anything yet; it is to let the server create both configuration files properly.
in its own folder
in the console
share the code
Once it has started once, stop it. That first start-stop matters because Windrose auto-creates ServerDescription.json and the world’s WorldDescription.json. Editing before those files exist just wastes time, and editing while the server is still running risks the server overwriting your changes or adjusting fields on its own.
ServerDescription.json: the file that decides how the server behaves
ServerDescription.json lives in the server’s R5 folder and controls identity, joining method and world selection. Only edit it while the server is shut down. The server writes to this file itself and may adjust fields if it detects a problem on start, so a change made while it is running can simply disappear.
| Field | What it controls | What to set |
|---|---|---|
| PersistentServerId | Internal server identity | Leave as generated; do not edit |
| InviteCode | Code players paste to join | At least 6 characters, 0-9, a-z, A-Z; case-sensitive |
| IsPasswordProtected | Whether password checks are enabled | Set true only if you also set a password; otherwise false |
| Password | Server password | Leave empty if no password is used |
| ServerName | Visible server name | Set a clear name for your crew |
| WorldIslandId | Which world loads on start | Must exactly match a world folder name and that world’s IslandId |
| MaxPlayerCount | Join limit | Start at 4 unless you know you need more |
| UserSelectedRegion | Connection Service region | For a UK crew, EU is the practical manual choice; blank uses auto-latency |
| P2pProxyAddress | IP address used for listening sockets | Normally leave alone |
| UseDirectConnection | Direct IP mode instead of Connection Service | false for invite code mode, true for fixed-port direct joins |
| DirectConnectionServerAddress | Reserved field | Unused |
| DirectConnectionServerPort | Listening port for direct mode | Must be free for both TCP and UDP if direct mode is on |
| DirectConnectionProxyAddress | Network interface for direct mode | Usually leave at 0.0.0.0 |
| AutoLoadLatestBackupIfHasBroken | Broken-save recovery on launch | true lets the server try to restore a broken save from its backups on launch |
| CanLaunchMultipleServerInstances | Protection against two processes using the same database | Leave false in normal use |
The password fields are the one pairing rule to take seriously: if the password is empty, IsPasswordProtected should be false; if a password is present, set it to true. Kraken Express warns that getting this pairing wrong can cause unexpected behaviour, and a broken password check is the last thing you want to debug while the crew waits.
{
"PersistentServerId": "<leave as generated>",
"InviteCode": "f1014dc1",
"IsPasswordProtected": true,
"Password": "CrewOnly",
"ServerName": "North Sea Crew",
"WorldIslandId": "796AE3C6113C451DE5BD791D70E4A52B",
"MaxPlayerCount": 4,
"UserSelectedRegion": "EU",
"P2pProxyAddress": "",
"UseDirectConnection": false,
"DirectConnectionServerAddress": "",
"DirectConnectionServerPort": 7777,
"DirectConnectionProxyAddress": "0.0.0.0",
"AutoLoadLatestBackupIfHasBroken": true,
"CanLaunchMultipleServerInstances": false
} Choose how players connect: invite code mode or direct connection
This is the choice most quick-start guides gloss over, but it decides how much networking work you do and what can go wrong later. For a general explanation of why geography still matters to responsiveness, see server location and ping; for a UK-hosted Windrose crew using the Connection Service, EU is the safest manual region because it covers both EU and NA.
| Mode | Best for | How it works | Main trade-off |
|---|---|---|---|
| Invite code via Connection Service | Most home-hosted crews | Uses ICE/P2P with NAT punch-through and dynamic ports | Easier setup, but depends on UPnP/NAT behaviour and can be upset by VPNs or proxies |
| Direct connection | Remote boxes, Docker, rented hosting, fixed-endpoint setups, LAN | Server listens on a chosen port and players join by IP:port | More control, but you must handle firewall rules and usually port forwarding |
Pick invite code mode first if the server is on a spare Windows PC behind a normal home router. It avoids manual port mapping, and the server will use dynamic ports through the Connection Service. The downside is that you cannot choose fixed ports in that mode, so troubleshooting focuses on router NAT behaviour, UPnP, and disabling any VPN or proxy temporarily.
Pick direct connection if you need a predictable endpoint. That is usually the better fit on a remote Windows box, inside Docker, or on rented hosting where opening a known port is simpler than relying on consumer router punch-through. Direct mode also makes local LAN joining straightforward because players on the same network can use the server’s local IP and chosen port.
If players are on a different network, direct mode needs a public external IP on the router and a forward for both TCP and UDP. If you only forward one protocol, the server may appear half-alive: visible to some checks, but unable to complete joins reliably.
203.0.113.25:17777 -> 192.168.1.100:7777 Protocol: TCP and UDP
World settings: presets, custom values, and the updater step people miss
The world file is WorldDescription.json, stored per world under R5\Saved\SaveProfiles\Default\RocksDB_v2\<game version>\Worlds\<world id>\WorldDescription.json. Presets are Easy, Medium and Hard. If you hand-edit values away from a preset, the server treats that world as Custom on the next launch.
The easiest way to avoid mistakes is to build the custom preset in the game first and copy the values across. That reduces the chance of leaving out tags or mixing a preset label with values that no longer match it.
| Setting | Default | Range or options | What it changes |
|---|---|---|---|
| CoopQuests | true | true / false | Shared quest completion for active co-op quests |
| EasyExplore | false | true / false | True enables “immersive exploration” by disabling POI map markers |
| MobHealthMultiplier | 1.0 | 0.2-5.0 | Enemy health |
| MobDamageMultiplier | 1.0 | 0.2-5.0 | Enemy damage |
| ShipsHealthMultiplier | 1.0 | 0.4-5.0 | Enemy ship durability |
| ShipsDamageMultiplier | 1.0 | 0.2-2.5 | Enemy ship damage |
| BoardingDifficultyMultiplier | 1.0 | 0.2-5.0 | Boarding challenge |
| Coop.StatsCorrectionModifier | 1.0 | 0.0-2.0 | Scales enemy health and posture loss by number of players |
| Coop.ShipStatsCorrectionModifier | 0.0 | 0.0-2.0 | Scales enemy ship health by player count |
| CombatDifficulty | Normal | Easy / Normal / Hard | Boss behaviour and aggression |
These settings mostly change encounter difficulty, not raw server efficiency. For example, lowering enemy health can shorten fights, but it does not remove the AI and replication work of extra players and extra active enemies. The two co-op correction modifiers are about scaling challenge with group size, so they matter most when your crew size varies a lot between sessions.
Kraken Express’s procedure for changing world settings on a dedicated server has four steps: stop the server, edit the world’s WorldDescription.json, run R5WorldDescriptionUpdater.exe from a Command Prompt in the server root with the path to that file, then start the server again. The updater is the step most people skip, and without it you are left guessing whether the change took.
R5WorldDescriptionUpdater.exe R5\Saved\SaveProfiles\Default\RocksDB_v2\0.10.0\Worlds\796AE3C6113C451DE5BD791D70E4A52B\WorldDescription.json
Player count and performance: set the cap for your real crew, not the theoretical maximum
The Steam store page lists co-op for up to 8 players, but Kraken Express recommends parties of up to 4 because of performance, especially in the late game. That advice is not just caution. More players means more combat state, more ship state, more world updates to send over the network, and more work on the server’s main thread to keep simulation timing consistent.
MaxPlayerCount should reflect who actually turns up together. Setting it higher than needed does not buy you anything on a small private crew server, but it increases the odds that one unusually busy session becomes the session that exposes CPU pressure, RAM pressure or save churn.
| Situation | First tune | Why it helps | Upgrade when |
|---|---|---|---|
| Late-game sessions feel rough only when the full crew is online | Keep the cap at 4 and avoid raising it just because 8 is possible | Reduces simulation, replication and bandwidth load at the busiest moment | You still hit trouble with the crew size you actually need |
| Server is on the same PC used for playing | Move the server to a spare box or rent one | Stops the client and server fighting over CPU time and RAM | The host machine cannot comfortably cover the client plus the extra 8 GB for the server |
| Invite code mode is unstable on a home router | Switch to direct connection with a fixed port | Removes dependence on NAT punch-through and UPnP behaviour | You need a stable always-on endpoint for regular sessions |
| You want the world online all the time, not just when someone remembers to restart it | Use a remote box or rented host | Reduces downtime from local reboots, sleep states and home network changes | Availability matters more than saving effort |
Saves, backups and moving a single-player world without breaking it
Dedicated server saves live under Windrose Dedicated Server\R5\Saved\SaveProfiles\Default\. The important folders are:
- RocksDB – old saves from before 0.10.0.5.120
- RocksDB_v2 – the live runtime database; do not touch it directly
- RocksDB_v2_Backups – backups used after 0.10.0.5.120
The reason not to meddle with RocksDB_v2 is simple: it is the live database, so half-edited or half-copied files are a straightforward route to corruption. The safer pattern is stop the server, copy full save data, and keep independent backups. If you want the wider principle, this is the same pattern described in how game server backups work.
Set AutoLoadLatestBackupIfHasBroken to true unless you prefer to recover by hand: on launch, the server then tries to restore a broken save from its backups instead of stopping there. Also leave CanLaunchMultipleServerInstances at false. That guard exists to stop two server processes writing to the same database, which is exactly how worlds get damaged.
Move a single-player world to the dedicated server
- Back up the client save and the server save first.
- Shut down both the game client and the dedicated server.
- From the client save at %localappdata%\R5\Saved\, copy the whole WorldID folder from RocksDB\{GameVersion}\Worlds\{WorldID} or from RocksDB_v2_Backups if you need the _Latest copy.
- Paste that folder into the server at R5\Saved\SaveProfiles\Default\RocksDB\{GameVersion}\Worlds\.
- Open ServerDescription.json and set WorldIslandId to that folder’s exact name.
- Start the server and verify that the correct world loads.
Never rename a world folder. The database relies on the ID, and a “tidier” folder name is a very common way to end up with a fresh world instead of the one you meant to load. If you want to host several worlds over time, keep their folders intact and change WorldIslandId before restart.
Updating after patches, plus Docker, Linux and rented servers
Server and client versions must match. If they do not, you can get connection failures, odd behaviour or players who simply cannot join. That makes updating a dedicated server a routine admin job, not an optional extra.
- SteamCMD install: rerun app_update 4129620 validate. It downloads only changed files.
- Steam Tools install: let Steam update Windrose Dedicated Server, then restart the server.
- Copied-folder server from EGS or Stove: update the game, copy the new WindroseServer folder, move the old R5\Saved into the new server’s R5\Saved, then launch.
Back up before every patch or hotfix. Patch day is when people rush, move folders around and overwrite the wrong copy, and a fresh backup turns that mistake into a two-minute fix.
On Linux, the position is slightly awkward: the dedicated server binary is still described as Windows-only, but there is an official Docker image and rented providers commonly run it through a compatibility layer. The official Docker instructions are short: create a folder for your saves, put a ServerDescription.json in it with “UseDirectConnection”: true and “DirectConnectionServerPort”: 7777, then pull and run the image with port 7777 open for TCP and UDP. Players connect with a direct IP connection, for example 127.0.0.1 and port 7777 on the same machine.
docker pull windroseserver/windroseserver:latest
docker run --user ue_user --name WindroseServer -p 7777:7777/tcp -p 7777:7777/udp -d -v {path_with_save}\Saved:/home/ue_user/app/R5/Saved -v {path_with_save}\ServerDescription.json:/home/ue_user/app/R5/ServerDescription.json windroseserver/windroseserver:latest Rented servers remove most of the install and update handling. In return, you trade some file-level control for a panel that usually exposes the basics such as invite code, player count, server name and password. Also note that vanilla Windrose does not currently include built-in admin commands for kick, ban or manual save control. Some hosts add RCON through mods or frameworks, but that does not turn vanilla server options into native admin commands.
| Choose this route | Best when | What you gain | What you take on |
|---|---|---|---|
| Spare Windows PC at home | You want full control and the world does not need datacentre-style uptime | Easy file access, no panel in the way, straightforward local troubleshooting | Router setup, Windows restarts, power and home internet reliability |
| Remote Windows box via SteamCMD | You want a fixed machine without using your gaming PC | Cleaner updates and a server that stays separate from the client | Remote administration and Windows maintenance |
| Official Docker image | You are comfortable with container deployment and want portability | Repeatable setup and clear volume mapping for save data | Direct networking setup and container admin work |
| Rented host | You want the least hands-on upkeep for an always-on crew world | Panel-based restarts, updates and predictable availability | Less low-level control and dependence on the host’s panel design |
If you would rather skip the Windows box, port rules and patch routine, our Windrose server hosting comparison is the quickest way to weigh panel features against the amount of control you want.
Compare the best Windrose server hostsSymptom, likely cause, first fix
| Symptom | Likely cause | First fix |
|---|---|---|
| Server closes when you start the game | The dedicated server is running from inside the game folder | Move the server to its own folder and launch it there |
| Crashes on launch or will not start | Damaged files, outdated GPU drivers, missing OS updates, or security software blocking WindroseServer.exe | Verify files, update drivers and OS, add firewall or antivirus exceptions, then restart the PC and router |
| Crew cannot find or use the invite code | UPnP or NAT punch-through problem, VPN or proxy interference, or the code was pasted with wrong case | Disable VPN or proxy temporarily, check code case carefully, and try direct connection if the router will not cooperate |
| “Version mismatch” or players cannot join after a patch | Server and client versions no longer match | Update the server first, then verify the client is on the same build |
| Settings reset after restart | The file was edited while the server was running, or the server auto-adjusted invalid fields | Stop the server fully, fix the field pairing, save, then restart once |
| Custom world settings are ignored | R5WorldDescriptionUpdater.exe was not run, or the preset label still conflicts with the values | Stop the server, edit the world file again, run the updater, then restart |
| A new world appears instead of the transferred one | WorldIslandId does not match the folder ID, or the world folder was renamed | Restore the original folder name and set WorldIslandId to that exact ID |
| Direct IP joins fail | Only one protocol was forwarded, the router has no public IP, or the wrong port is being shared | Forward both TCP and UDP, confirm the public IP, and recheck the internal and external port mapping |
Windrose server FAQ
Is the Windrose dedicated server free?
Yes. On Steam it is a separate free tool, and the SteamCMD install can be fetched anonymously without needing a purchased copy on that machine. EGS and Stove users can also use the server files by copying the WindroseServer folder out of the game install.
How do friends join a Windrose dedicated server?
There are two ways. In the default setup, they use Play -> Connect to Server and paste the invite code shown in the server console or stored in R5\ServerDescription.json. In direct mode, they join by IP and port instead.
Do I need to port forward for a Windrose server?
Not always. Invite code mode uses the Connection Service with NAT punch-through, so it is designed to avoid manual port forwarding. You do need port forwarding for direct connection across different networks, and the forward must allow both TCP and UDP.
How many players can a Windrose dedicated server have?
The co-op cap is up to 8 players, controlled by MaxPlayerCount. The official recommendation is to keep parties to up to 4 for smoother performance, especially later in the game. For a private crew world, size the cap around actual attendance rather than the maximum possible number.
Can I run a Windrose dedicated server on Linux?
The plain dedicated server is still described as Windows-only, but there is an official Docker image and rented hosts often run the server under a compatibility layer. In practice, Linux is most straightforward through that Docker route or through a managed host rather than trying to treat it like a native Linux game server.
More Windrose server help
The host comparison, plus the explainers behind self-hosting, backups and server location.
Checked against Kraken Express’s official Windrose Dedicated Server guide (game version 0.10.0.5.120) in November 2026. Windrose is in Early Access, so file layouts and options can change with patches, and host panels label things differently; follow your host’s current panel where it differs.