Game server hosting · Fast RAM · High-speed internet · Eat lag for breakfast
Try our Windrose server hosting free for 2 days!
A Docker container for running a Windrose dedicated server. The server binary is Windows-only and runs via Wine.
| 2 Players | 4 Players | 10 Players | |
|---|---|---|---|
| CPU | 2 cores @ 3.2 GHz | 2 cores @ 3.2 GHz | 2 cores @ 3.2 GHz |
| RAM | 8 GB | 12 GB | 16 GB |
| Storage | 35 GB SSD | 35 GB SSD | 35 GB SSD |
Copy the .env.example file to .env, fill in your values, then use either docker compose or docker run.
services:
windrose:
image: indifferentbroccoli/windrose-server-docker
restart: unless-stopped
container_name: windrose
stop_grace_period: 30s
env_file:
- .env
volumes:
- ./server-files:/home/steam/server-filesdocker compose up -ddocker run -d \
--restart unless-stopped \
--name windrose \
--stop-timeout 30 \
--env-file .env \
-v ./server-files:/home/steam/server-files \
indifferentbroccoli/windrose-server-docker| Variable | Default | Description |
|---|---|---|
PUID |
1000 |
User ID to run the server process as |
PGID |
1000 |
Group ID to run the server process as |
UPDATE_ON_START |
true |
Download and validate server files on every startup. Set to false to skip |
INVITE_CODE |
Invite code players use to connect. Min 6 characters, 0-9 a-z A-Z, case sensitive |
|
SERVER_NAME |
Display name for your server | |
SERVER_PASSWORD |
Leave empty for a public server | |
MAX_PLAYERS |
10 |
Maximum number of simultaneous players |
P2P_PROXY_ADDRESS |
127.0.0.1 |
IP address the P2P proxy binds to. Use 127.0.0.1 (default) in Docker — the proxy is an internal socket and does not need to be reachable from outside the container |
GENERATE_SETTINGS |
true |
Set to false to skip all config generation and patching. The server will start using whatever is already in ServerDescription.json on disk or create a new one. |
On first start the server automatically generates two configuration files inside server-files/. The container handles this automatically — it starts the server once to generate the files, applies your settings, then starts normally.
Players connect via invite code. The code is set by INVITE_CODE in your .env and is also visible in server-files/R5/ServerDescription.json under InviteCode. Share it with players who join via Play → Connect to Server in-game.
Located at server-files/R5/ServerDescription.json. This file can only be edited while the server is stopped.
| Field | Description |
|---|---|
InviteCode |
Invite code for players to find your server. Min 6 chars, 0-9 a-z A-Z, case sensitive |
IsPasswordProtected |
true or false |
Password |
Server password |
ServerName |
Display name of the server |
WorldIslandId |
ID of the world to load — must match the folder name of a WorldDescription.json |
MaxPlayerCount |
Maximum simultaneous players |
P2pProxyAddress |
IP for listening sockets. Use 127.0.0.1 (default) — the proxy is an internal socket |
{
"Version": 1,
"ServerDescription_Persistent": {
"PersistentServerId": "...",
"InviteCode": "myfriends",
"IsPasswordProtected": false,
"Password": "",
"ServerName": "My Windrose Server",
"WorldIslandId": "...",
"MaxPlayerCount": 10,
"P2pProxyAddress": "127.0.0.1"
}
}Located at server-files/R5/Saved/SaveProfiles/Default/RocksDB/<version>/Worlds/<world-id>/WorldDescription.json. One file per world. This file can only be edited while the server is stopped.
| Field | Description |
|---|---|
WorldPresetType |
Difficulty preset: "Easy", "Medium", "Hard", or "Custom". If any WorldSettings values are present the server forces this to "Custom" |
WorldName |
Name of the world |
WorldSettings |
Custom parameters — leave all sections empty to use a preset |
Only takes effect when
WorldPresetTypeis"Custom". LeaveWorldSettingsempty to use a preset.
Bool parameters
| Parameter key | Default | Description |
|---|---|---|
WDS.Parameter.Coop.SharedQuests |
true |
When a player completes a co-op quest it auto-completes for all players who have it active |
WDS.Parameter.EasyExplore |
false |
Hides map markers for points of interest, making exploration harder. Called "Immersive Exploration" in-game |
Float parameters
| Parameter key | Default | Range | Description |
|---|---|---|---|
WDS.Parameter.MobHealthMultiplier |
1.0 |
0.2 – 5.0 | Enemy health multiplier |
WDS.Parameter.MobDamageMultiplier |
1.0 |
0.2 – 5.0 | Enemy damage multiplier |
WDS.Parameter.ShipsHealthMultiplier |
1.0 |
0.4 – 5.0 | Enemy ship health multiplier |
WDS.Parameter.ShipsDamageMultiplier |
1.0 |
0.2 – 2.5 | Enemy ship damage multiplier |
WDS.Parameter.BoardingDifficultyMultiplier |
1.0 |
0.2 – 5.0 | How many enemy sailors must be defeated to win a boarding action |
WDS.Parameter.Coop.StatsCorrectionModifier |
1.0 |
0.0 – 2.0 | Adjusts enemy health and posture loss based on player count |
WDS.Parameter.Coop.ShipStatsCorrectionModifier |
0.0 |
0.0 – 2.0 | Adjusts enemy ship health based on player count |
Tag parameters
| Parameter key | Default | Options | Description |
|---|---|---|---|
WDS.Parameter.CombatDifficulty |
WDS.Parameter.CombatDifficulty.Normal |
Easy / Normal / Hard |
Boss encounter difficulty and general enemy aggression |
Example WorldDescription.json:
{
"Version": 1,
"WorldDescription": {
"IslandId": "...",
"WorldName": "My World",
"WorldPresetType": "Custom",
"WorldSettings": {
"BoolParameters": {
"{\"TagName\": \"WDS.Parameter.Coop.SharedQuests\"}": true,
"{\"TagName\": \"WDS.Parameter.EasyExplore\"}": false
},
"FloatParameters": {
"{\"TagName\": \"WDS.Parameter.MobHealthMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.MobDamageMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.ShipsHealthMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.ShipsDamageMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.BoardingDifficultyMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.Coop.StatsCorrectionModifier\"}": 1,
"{\"TagName\": \"WDS.Parameter.Coop.ShipStatsCorrectionModifier\"}": 0
},
"TagParameters": {
"{\"TagName\": \"WDS.Parameter.CombatDifficulty\"}": {
"TagName": "WDS.Parameter.CombatDifficulty.Normal"
}
}
}
}
}| Path | Description |
|---|---|
/home/steam/server-files |
Server installation files, world saves, and configuration |
This is a Dockerized Windrose dedicated server maintained by indifferent broccoli. We offer managed Windrose server hosting if you'd rather not self-host.
