a basic camp in windrose

Windrose • guide

Windrose Server Setup: How to Host Your Own Server

Learn how to set up your own Windrose dedicated server using SteamCMD, create an update script, and find your invite code.

Published 4/22/20267 min readWindrose guide5.0 (1)

Windrose Server Setup: Get Your Own Server Running

Want to host your own Windrose server? This quick-start guide walks you through the basics so you can get online fast.

Windrose provides an invite code, you don't need to open ports with port-forwarding.

What you need

  • At least 35 GB of free disk space
  • 8GB RAM
  • SteamCMD
  • A folder ready for your Windrose server files

If you do not already have SteamCMD, download it first. A dedicated SteamCMD setup guide is available here.

Step 1: Generate your Windrose batch file

Replace the example SteamCMD and Server files paths. Then set your options like Auto restart or Update on start. Click Copy and save it in a new text file. Save the text file as Update.bat.

Batch file

@echo off
D:\Tools\SteamCMD\steamcmd.exe +force_install_dir D:\GameServers\Windrose +login anonymous +app_update 4129620 +quit
call StartServerForeground.bat

Step 2: Start the server

Run Update.bat. SteamCMD will download or update the server files, then start the server process.

Step 3: Find your invite code

Once the server finishes starting, check the server console for your connection details. You should see output similar to this:

Code Example:

= Server Connection Info ========================================================

InviteCode : bd0ca3e1
Password :

=================================================================================

Your InviteCode is what players use to connect to your server.

You now have a Windrose server!

If you want to set more advanced settings, continue reading.

Advanced setup

Once your Windrose server is running, the next step is understanding the files that control how it behaves.

Windrose splits server configuration across two JSON files:

  • ServerDescription.json for server-wide settings
  • WorldDescription.json for per-world settings

The server creates default versions of these files on first launch. Start the server once, shut it down cleanly, then edit the generated files while the server is offline.

Config file roles

  • ServerDescription.json
    Common server settings stored in a single file in the root folder.

  • WorldDescription.json
    World-specific settings stored per world.

Important note

Only edit these files while the server is shut down. Windrose may automatically adjust some values if it detects configuration issues.

Windrose configuration files

Use this as the quick reference for which file to edit.

File
Location
What it controls

ServerDescription.json

Root server folder

Server-wide settings like invite code, password, selected world, region, and direct connection options

WorldDescription.json

/R5/Saved/SaveProfiles/Default/RocksDB//Worlds//WorldDescription.json

World-specific settings like world name, preset, and custom difficulty parameters

ServerDescription.json fields

ServerDescription.json is the main file for server identity, access, region handling, and connection behavior.

Field
What it does
Notes

PersistentServerId

Unique identifier for your server

Do not edit this value. The official guide notes this may change in future builds.

InviteCode

Code players use to find and join your server

Must be at least 6 characters. Allowed characters: 0-9, a-z, A-Z. Case-sensitive.

IsPasswordProtected

Controls whether the server requires a password

Set to true when a password is present. Set to false when the password field is empty. Incorrect combinations may cause problems.

Password

Server password

Used when password protection is enabled.

ServerName

Display name for your server

Useful if you want to distinguish your server from others with similar invite codes.

WorldIslandId

Chooses which world the server loads on startup

Must match the corresponding world value in a WorldDescription.json file.

MaxPlayerCount

Maximum simultaneous players

Controls how many players can join at once.

UserSelectedRegion

Connection service region

Supported values: SEA, CIS, EU. EU currently covers both EU and NA. Leave blank for automatic latency-based selection.

P2pProxyAddress

IP address used for listening sockets

Networking-related setting.

UseDirectConnection

Enables direct client connections instead of relay-only behavior

true = create direct sockets. false = use ICE/P2P behavior.

DirectConnectionServerAddress

Address for direct connection

Reserved for future use and currently not used.

DirectConnectionServerPort

Port used for direct connection

Must be open for both TCP and UDP when UseDirectConnection is true.

DirectConnectionProxyAddress

Lets you select a specific network interface on the host

Default is 0.0.0.0.

WorldDescription.json fields

You can create as many worlds as you need. The first world is generated automatically on first server start.

The WorldIslandId selected in ServerDescription.json must match the correct world entry here.

Field
What it does
Notes

IslandId

Unique world ID

Must match the folder name.

WorldName

Name of the world

Useful if you keep multiple worlds.

CreationTime

Internal creation timestamp

Usually not something you need to edit manually.

WorldPresetType

Base world difficulty preset

Easy, Medium, or Hard. Custom values force the server to show Custom on next launch.

WorldSettings

Detailed world parameter groups

Contains grouped bool, float, and tag values. Usually empty unless you use a custom preset.

Custom preset parameters

If you want to move beyond the standard presets, these are the main custom parameters worth knowing about.

It is usually easier to set these in-game first, then copy the resulting values into your config manually. Official values and ranges may change in future Windrose builds.

Parameter
Default
What it changes

CoopQuests

true

If one player completes a co-op quest, it completes for all active players.

EasyExplore

false

Disables map markers. Despite the name, this actually makes exploration harder and is the in-game “Immersive exploration” option.

MobHealthMultiplier

1.0

Enemy health. Range: 0.2 to 5.0

MobDamageMultiplier

1.0

Enemy damage. Range: 0.2 to 5.0

ShipHealthMultiplier

1.0

Enemy ship health. Range: 0.4 to 5.0

ShipDamageMultiplier

1.0

Enemy ship damage. Range: 0.2 to 2.5

BoardingDifficultyMultiplier

1.0

How many enemy sailors you need to overcome when boarding. Range: 0.2 to 5.0

Coop_StatsCorrectionModifier

1.0

Scales enemy health and posture by player count. Range: 0.0 to 2.0

Coop_ShipStatsCorrectionModifier

0.0

Scales enemy ship health by player count. Range: 0.0 to 2.0

CombatDifficulty

Normal

Boss aggression. Options: Easy, Normal, Hard

FAQ

Common questions

Why does Windrose not require Port-Forwarding?

Windrose uses a relay system built on Epic Online Services (EOS). This lets players connect to your server without needing your IP address or setting up port forwarding.

When a player enters an invite code, EOS sits in the middle and tries to create a direct connection using NAT punch-through. If that works, the player connects straight to your server. If it fails, which can happen with strict routers, CGNAT, or disabled UPnP, the connection is routed through EOS instead.

In that case, EOS handles the traffic using its global relay network, often hosted on AWS. This is why your server still works even when UPnP or port forwarding is not configured. The relay removes the need for manual setup, but it can introduce extra latency, especially if the relay server is not close to the player or host.

If you want the best performance, you can enable direct IP connections by turning on UseDirectConnection in the server config and opening the required ports. That allows players to connect directly when possible, while the relay system still provides a fallback so everyone can join without extra setup.

End of guide

Thanks for reading

Article details

Author: Eps · Editorial Team

Published: 4/22/2026

Updated: 4/23/2026

Feedback

Spotted a problem, outdated step, or missing command? Let us know and we will keep this guide accurate.

Rate this guide

Hover the stars to rate this article. Your rating is saved to your account for this page.

5.0 / 5 from 1 rating

Click a star to leave a rating.