Windward Horizon Dedicated Server Setup for Windows and Linux
Discover how Windward Horizon dedicated server hosting works, covering availability, Windows and Linux setup, TCP ports, administration, backups, and troubleshooting.

Hosting a persistent Windward Horizon world sounds straightforward: launch the server and let your crew join whenever they want. The complication comes before setup even begins, because the historical download most guides recommend is currently unavailable.
Windward Horizon does support self-hosted servers through WHServer.exe, usually on TCP 5123. Windows can run it directly, while Linux relies on Mono rather than a confirmed native server binary. No separate public SteamCMD dedicated-server App ID is currently exposed. More importantly, the historical Tasharen WHServer.zip link currently opens an account-suspended page, so readers should not use old download commands or unverified mirrors.
This guide separates confirmed instructions from outdated community advice, then shows how to prepare Windows or Linux once an official archive is restored.
You will also learn the correct flags, ports, admin setup, save handling, security, updates, and troubleshooting steps.
Windward Horizon Steam App ID and SteamCMD Status
Windward Horizon uses Steam App ID 2665460. This number identifies the main game, not a dedicated server tool. A Windward Horizon developer confirmed dedicated-server support before release in the developer’s Steam response.
No separate public SteamCMD dedicated-server App ID is exposed for Windward Horizon. Historical community guides used the following direct-download URL, but it was unavailable when checked:
http://www.tasharen.com/wh/WHServer.zip
SteamDB identifies App ID 2665460 as the game and lists Windows, Linux, and macOS game depots without a separate public dedicated-server depot. See the current depot data.
Historical community guides describe WHServer.exe as the Windows executable and use Mono for Linux. Their cited package is currently unavailable, and no separate public SteamCMD server app has been identified.
What You Should Not Do
Do not use the following command as a Windward Horizon dedicated server setup command:
app_update 2665460 validate
That command targets the game App ID. It does not install a confirmed standalone dedicated server tool.
Windward Horizon’s historical self-hosting method uses a direct executable package rather than a separately documented SteamCMD server app.
Obtain any replacement download link from a Tasharen-controlled website, the official Windward Horizon Steam community, or the official Tasharen Discord.
Do not use the historical URL until it returns a valid ZIP archive instead of the suspended-account page.
Windward vs. Windward Horizon Dedicated Server
Windward Horizon is the sequel to the original Windward, released in 2015. Search results often mix both games because they share similar names and launch flags.
The original Windward dedicated server uses WWServer.exe and defaults to TCP 5127. Windward Horizon uses WHServer.exe, while current setup guides commonly use TCP 5123.
| Item | Windward 2015 | Windward Horizon |
|---|---|---|
| Server executable | WWServer.exe | WHServer.exe |
| Common port | TCP 5127 | TCP 5123 |
| Game | Original Windward | Sequel |
| Server package | WWServer.zip | WHServer.zip |
| Use in this guide | Historical warning only | Main focus |
Do not copy commands from an old Windward server guide without checking them first. A guide that uses WWServer.exe, WWServer.zip, or TCP 5127 covers the original game.
For Windward Horizon, use a verified current copy of WHServer.exe and the port selected through the -tcp flag. Do not substitute WWServer.exe or an original-Windward package.
Windward Horizon Dedicated Server Requirements
Public server benchmarks remain limited. Treat these specs as practical starting points, not official Windward Horizon server requirements.
| Server Type | Suggested Specs | Best For |
|---|---|---|
| Small private server | 2 vCPU, 4 GB RAM, SSD or NVMe | Testing, friends, and small co-op sessions |
| Stable community server | 4 vCPU, 8 GB RAM, SSD or NVMe | Public access and regular sessions |
| Larger persistent server | 4–8 vCPU, 16 GB RAM, NVMe | Busy communities, mods, and frequent world activity |
The official Windward Horizon Steam page lists 8 GB RAM as the minimum game-client requirement.
The headless server does not render graphics, so it may use less memory than the game client. Treat 4 GB as a testing floor, not a safe target for every server. Start with 8 GB when you expect regular players or long-running sessions.
Stable CPU Performance
Choose modern CPU cores with steady clock speeds. A few strong cores often provide a better result than many weak or heavily shared vCPUs.
Watch CPU use during busy sessions. Move to a larger plan if the server reaches high CPU load for long periods or responds slowly when several players join.
Enough RAM for Persistent Sessions
No public dedicated-server memory benchmark was found. Start with the closest estimated tier, monitor actual memory use during normal sessions, and resize when necessary.
Use these rules:
- Choose 4 GB only for testing or a small private group.
- Choose 8 GB for a public server or regular sessions.
- Choose 16 GB for mods, larger groups, or a world that stays online for long periods.
These figures do not represent official player limits.
The /limit # command accepts values from 2 to 32 and defaults to 16, but official notes describe this as the number of people able to enter a player’s instances, not a confirmed total dedicated-server population cap. See the official patch notes.
SSD or NVMe Storage
Store the server, saves, logs, and backups on an SSD or NVMe drive. Avoid slow mechanical disks for an active server.
Keep free space for:
- Campaign data
- Player data
- Server logs
- Mods
- Updates
- Several backup copies
NVMe storage suits long-running servers that save often or keep several restore points.
Public IPv4 or Clean Port Forwarding
A hosted server should have a public IPv4 address. A home server needs a router rule that forwards the chosen TCP port to the machine running WHServer.exe.
Most community setups use TCP 5123. You can select another port through the -tcp flag. Use the same port in the launch command, firewall rule, router rule, and hosting control panel.
CGNAT can block incoming traffic even when your router settings look correct. Ask your internet provider for a public IPv4 address if remote players cannot connect.
Reliable Upload Bandwidth
The host sends server data to every connected player. Choose a connection with steady upload speed, low latency, and little packet loss.
RedSwitches gaming dedicated servers combine low-latency routing, NVMe storage, DDoS protection, and full root access for persistent multiplayer workloads.
DDoS Protection
Public servers can be targeted by denial-of-service traffic, so consider DDoS-protected dedicated servers when uptime matters.
Open only the TCP port used by the server. Do not expose remote desktop, SSH, control panels, or file services to the public internet unless you secure them.
Backups for Saves and Server Settings
Back up the entire active campaign directory instead of selecting files by extension. This prevents you from missing player records, world settings, or related save data.
Local Windows saves sit under:
C:\Users\<User>\Documents\Windward Horizon\CampaignsThe demo uses a Windward Horizon Demo folder. Dedicated Linux paths depend on the directory you chose during setup. A common community example uses /opt/wwhorizon-server/ as the server working directory.
Include these items in each backup:
- The full active campaign or save folder
- Its associated player data, including a Players folder when present
- The ServerConfig folder
- Admin and ban lists
- Logs needed for fault checks
How to Download the Windward Horizon Dedicated Server Files
Historical community guides use a package named WHServer.zip containing WHServer.exe. Those guides run the executable directly on Windows and through Mono on Linux, but the cited package is not currently available from its historical URL.
The historically documented developer-hosted URL is currently unavailable:http://www.tasharen.com/wh/WHServer.zip
The URL uses HTTP, has no published checksum in the reviewed setup material, and redirected to an account-suspended page. Do not download or execute files from that address until Tasharen restores it or publishes a verified replacement. Avoid unverified third-party mirrors.
Follow these steps on Windows:
- Create a clean server folder:
C:\WindwardHorizonServer
- Download WHServer.zip only after Tasharen publishes or restores a working official address.
- Confirm that the response is a valid ZIP archive, inspect its file list, and record the SHA-256 hash of the tested copy. A locally recorded hash identifies that copy but does not replace verification of its official source.
- Extract every file into the server folder.
- Confirm that this file exists:
C:\WindwardHorizonServer\WHServer.exe
- Keep the ZIP file until you confirm that the server starts.
Do not extract the server into the Steam game folder. Do not mix it with files from the original Windward server. The 2015 game uses WWServer.exe, while Windward Horizon uses WHServer.exe.
The download path may change after a server update. Recheck the source before using an old bookmark or copied command.
Windward Horizon Dedicated Server Folder Structure
Community sources describe separate world, player, log, and server-control data. However, the exact raw-server paths have not been verified against a current executable. Some directories may appear only after the first successful launch or when the related feature is used.
After the first launch, record the paths created for:
- World and campaign saves
- Player data
- Server logs
- Administration and moderation files
- Admin and ban lists
Current hosting documentation references Players data, an Admin List, and ban management. However, community guides disagree between:
ServerConfig/admin.txt
ServerConfig/adminlist.txt
Confirm which filename the current executable recognizes before granting administrator access.
World files use the .world extension. Enter the filename without that extension when using the -world flag. For example, use:
-world "Adventure World"
for a file named:
Adventure World.world
The server may create a new campaign if it cannot find the requested world. Stop the server and back up its complete working directory and all verified persistent-data paths before replacing or transferring files. Remember that path capitalization matters on Linux.
How to Set Up a Windward Horizon Dedicated Server on Windows
Windows runs the server through WHServer.exe. Use a batch file to keep the launch command repeatable.
1. Create the Server Folder
Create:
C:\WindwardHorizonServer
Extract WHServer.zip into that directory.
Confirm that this file exists:
C:\WindwardHorizonServer\WHServer.exe
2. Create a Launch Script
Open Notepad and enter:
@echo off
cd /d "C:\WindwardHorizonServer"
WHServer.exe -name "MyServer" -world "MyWorld" -tcp 5123 -public
pause
Save the file as:
start-server.bat
Select All Files in Notepad’s save window. This prevents Windows from adding a .txt extension.
3. Set the Launch Flags
| Flag | Purpose |
|---|---|
| -name "MyServer" | Sets the name shown to players |
| -world "MyWorld" | Loads or creates the named world |
| -tcp 5123 | Sets the TCP listening port |
| -public | Requests a place in the public server list |
| -service | Disables prompts that need user input during unattended runs |
Use quotes around server and world names that contain spaces.
Do not include .world in the -world value. Use -world "MyWorld" for MyWorld.world. The same rule applies on Windows and Linux.
Run the first test without -service. This keeps startup output visible and makes errors easier to spot.
Add -service after the server loads the correct world:
WHServer.exe -name "MyServer" -world "MyWorld" -tcp 5123 -public -service
The -service flag changes the game server’s headless behavior. It does not register a Windows Service or make the server start during boot. Use Windows Task Scheduler or a tested service wrapper when you need automatic startup and recovery.
4. Configure TCP 5123
Use the dedicated ports and firewall section below to open TCP 5123 in Windows Firewall and forward it through the router when required. Keep the launch command, firewall, and router on the same port. If external connections still fail, check for CGNAT or another upstream NAT layer.
5. Add an Administrator
Confirm the ServerConfig directory used by your current server build. If you followed this guide’s Windows installation path, check:
C:\WindwardHorizonServer\ServerConfigCreate the admin-list file recognized by your current server build. Community sources disagree between:
C:\WindwardHorizonServer\ServerConfig\admin.txt
C:\WindwardHorizonServer\ServerConfig\adminlist.txt
Add one SteamID64 per line:
76561198012345678
You can find the SteamID64 from the player’s Steam profile through a trusted SteamID lookup service. One commonly used lookup page is:
Restart the server after editing the confirmed admin-list file. Add one SteamID64 per line. Community hosting documentation reports that demo users can join and play but need the full game for administrator rights and chat commands.
6. Start and Test the Server
Run:
start-server.bat
Check that:
- WHServer.exe stays open.
- The correct world loads.
- The save, player-data, and log paths generated by the current executable match the paths recorded in your test.
- The server listens on TCP 5123.
- The admin account receives access.
- The server requests public listing when you use -public.
Check the listening port in an elevated PowerShell window:
Get-NetTCPConnection -LocalPort 5123 -State Listen
No result means the server has not bound to that port. Check the running process, launch command, selected port, and server output before changing router settings.
The public server list may take time to refresh. A blocked port, server crash, version mismatch, or incorrect launch value can also stop the listing from appearing.
Test from a different internet connection. A test from the same local network may hide router and NAT problems.
How to Set Up a Windward Horizon Dedicated Server on Linux With Mono
No native Windward Horizon dedicated-server binary is publicly confirmed. Available community Linux instructions run WHServer.exe through Mono, so treat Linux hosting as a community-supported compatibility method.
Run the server under a dedicated non-root account. This limits the damage caused by a bad mod, exposed service, or compromised process.
1. Install Mono and Download Tools
On Ubuntu or Debian, run:
sudo apt update
sudo apt install -y mono-complete libmono-system-net-http4.0-cil curl unzip
Check Mono:
mono --version
A June 2025 community Linux guide lists mono-complete and libmono-system-net-http4.0-cil. Verify the required packages against the current server archive before production use.
Package names may differ on other Linux distributions.
2. Create a Service Account
Create a dedicated system user:
sudo useradd \
--system \
--home /opt/wwhorizon-server \
--shell /usr/sbin/nologin \
windward
Create the server and log directories:
sudo mkdir -p /opt/wwhorizon-server/log
sudo chown -R windward:windward /opt/wwhorizon-server
3. Download and Extract the Server
The historical Tasharen download was unavailable when checked. Do not run a curl or extraction command until Tasharen publishes a working official server archive. After obtaining a verified replacement, confirm that it is a valid ZIP, inspect its contents, record the hash of the tested copy, and stop if WHServer.exe is missing.
4. Test the Server Manually
Run the server as the dedicated account:
cd /opt/wwhorizon-server
sudo -u windward /usr/bin/mono WHServer.exe \
-name "MyServer" \
-world "MyWorld" \
-tcp 5123 \
-public
A June 2025 community Linux guide uses this Mono command, these launch flags, and TCP 5123. Verify them against the current executable before production use.
Check the startup output. Confirm that the server loads or creates the expected world.
Stop the test with Ctrl+C.
5. Add an Administrator
Create the configuration folder:
sudo mkdir -p /opt/wwhorizon-server/ServerConfig
Confirm which admin-list filename the current build recognizes.
If it uses admin.txt, run:
sudo nano /opt/wwhorizon-server/ServerConfig/admin.txt
If it uses adminlist.txt, run:
sudo nano /opt/wwhorizon-server/ServerConfig/adminlist.txt
Add one SteamID64 per line:
76561198012345678
Set the correct ownership:
sudo chown -R windward:windward /opt/wwhorizon-server/ServerConfig
The June 2025 community Linux guide uses ServerConfig/admin.txt with one SteamID64 per line. Verify the filename against the current server build because newer Windows community material also references adminlist.txt.
6. Create a systemd Service
Create the unit file:
sudo nano /etc/systemd/system/windward-horizon.service
Add:
[Unit]
Description=Windward Horizon Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=windward
Group=windward
WorkingDirectory=/opt/wwhorizon-server
ExecStart=/usr/bin/mono /opt/wwhorizon-server/WHServer.exe -name "MyServer" -world "MyWorld" -tcp 5123 -public -service
Restart=on-failure
RestartSec=10
StandardOutput=append:/opt/wwhorizon-server/log/server.log
StandardError=append:/opt/wwhorizon-server/log/server.log
[Install]
WantedBy=multi-user.target
Wants=network-online.target creates a soft dependency on the online-network target. After=network-online.target tells systemd to start the server after that target. The official systemd network-target documentation explains how these settings affect services that require a configured network connection.
The -service flag stops the game server from waiting for interactive input. systemd manages startup, shutdown, and restart behavior. The User and Group settings keep the process out of the root account.
Reload systemd and start the service:
sudo systemctl daemon-reload
sudo systemctl enable --now windward-horizon
Check its status:
sudo systemctl status windward-horizon
Watch the log:
sudo tail -f /opt/wwhorizon-server/log/server.log
Some older systemd releases do not support append: for file output. Remove the StandardOutput and StandardError lines on those systems, then read the journal:
sudo journalctl -u windward-horizon -f
Restart the service after changing the server name, world, port, or admin file:
sudo systemctl restart windward-horizon
7. Configure Log Rotation
Create:
sudo nano /etc/logrotate.d/windward-horizon
Add:
/opt/wwhorizon-server/log/server.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
copytruncate
}
This rule keeps 14 daily logs and compresses older copies. Check the log directory after the first start to confirm that server.log receives output.
8. Configure and Verify TCP 5123
Follow the dedicated ports and firewall section below to configure UFW and any provider or router firewall. Allow SSH before enabling UFW on a remote host. Then confirm that the server listens on the selected port:
sudo ss -ltnp | grep ':5123'
If no result appears, check:sudo systemctl status windward-horizonsudo journalctl -u windward-horizon -n 100 --no-pager
9. Confirm Persistent Data
After the first successful start, record every save, player-data, log, and configuration path created by the current executable. Confirm that those paths persist after a controlled service restart before relying on them for backups or migrations.
During a planned maintenance window, you can optionally reboot the host to test automatic startup.
After reconnecting, run:sudo systemctl status windward-horizon
Then check the active world, TCP port, admin access, player data, and logs before opening the server to other players.
Windward Horizon Dedicated Server Launch Commands and Flags
Windward Horizon uses command-line flags to set the server name, world, TCP port, listing status, and headless behavior.
A standard Windows launch command looks like this:
WHServer.exe -name "Red Sea" -world "MyWorld" -tcp 5123 -public
Linux hosts run the same executable through Mono:
mono WHServer.exe -name "Red Sea" -world "MyWorld" -tcp 5123 -public.
| Flag | Purpose | Example |
|---|---|---|
| -name | Sets the server name shown to players | -name "Red Sea" |
| -world | Loads or creates the selected world | -world "MyWorld" |
| -tcp | Sets the TCP listening port | -tcp 5123 |
| -public | Requests a place in the public server list | -public |
| -service | Prevents prompts that need user input during headless operation | -service |
Do not include the .world extension in the -world value.
For this file:
Adventure World.world
use:
-world "Adventure World"
Use quotation marks around server and world names that contain spaces. A missing quote may split the name into separate command values.
The -service flag does not install a Windows Service or create a systemd unit. It changes how WHServer.exe behaves during an unattended run. Windows still needs Task Scheduler or a tested service wrapper for startup after a reboot. Linux can use systemd.
Keep the selected TCP port consistent across:
- The -tcp launch value
- Windows Firewall or UFW
- Router port forwarding
- The hosting firewall or security group
- Direct-connect details
A mismatch at any point can make a running server unreachable.
Windward Horizon Dedicated Server Ports and Firewall Setup
TCP 5123 is the most common port in current Windward Horizon community setup guides.
The server accepts a custom port through the -tcp flag:
WHServer.exe -name "Red Sea" -world "MyWorld" -tcp 5123 -public
No second default port was verified. Use TCP 5123 unless the current executable or a tested hosting configuration explicitly uses another value through -tcp.
The current public setup material does not list a separate UDP or query port.
| Setting | Current Guidance |
|---|---|
| Main protocol | TCP |
| Common self-hosted port | 5123 |
| Port flag | -tcp <port> |
| Separate UDP port | z |
| Separate query port | Not documented |
Open only the TCP port selected for your server.
Open the Port in Windows Firewall
Open PowerShell as an administrator and run:
New-NetFirewallRule `
-DisplayName "Windward Horizon TCP 5123" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 5123 `
-Action Allow
Change 5123 if your launch command uses another port.
Microsoft’s New-NetFirewallRule documentation explains how PowerShell creates and controls inbound and outbound Windows Firewall rules.
Check whether the server listens on the port:
Get-NetTCPConnection -LocalPort 5123 -State Listen
No result means WHServer.exe has not opened the port. Check the process, launch command, and logs before changing your router.
Open the Port With UFW
On Ubuntu or Debian, run:
sudo ufw allow 5123/tcp
sudo ufw status verbose
Ubuntu describes UFW as a host-based firewall interface for managing Linux netfilter rules.
The status command shows whether UFW is active. A saved rule does not filter traffic while UFW remains inactive.
Before enabling UFW on a remote server, allow SSH:
sudo ufw allow OpenSSH
sudo ufw enable
Check whether the server listens on TCP 5123:
sudo ss -ltnp | grep ':5123'
No result means Mono or WHServer.exe has not bound to that port.
Configure Router Port Forwarding
A home-hosted server needs a router rule that sends incoming TCP traffic to the machine running the server.
Use these values:
| Router Setting | Value |
|---|---|
| Protocol | TCP |
| External port | 5123 |
| Internal port | 5123 |
| Destination | The server’s local IP address |
Give the server a fixed local IP or a DHCP reservation. A changed local IP can break the forwarding rule after a restart.
Check for a Public IPv4 Address
Remote players need a route from the internet to your server.
Some internet providers place customers behind carrier-grade NAT, or CGNAT. CGNAT blocks normal inbound port forwarding because the provider controls the outer router.
Compare the WAN address shown by your router with your public IP address. A mismatch may point to CGNAT or another upstream router.
Ask your provider for a public IPv4 address if CGNAT blocks incoming connections. A hosted server with its own public IP avoids this problem.
Account for NAT Loopback
NAT loopback lets a device inside your network connect through the public IP address. Some routers do not support it.
A failed test from the same home network does not always mean the server is offline. A successful local test also does not prove that outside players can connect.
Test from another network, such as a mobile connection.
Check Hosting Firewalls and Security Groups
A hosted server may have two firewall layers:
- The operating system firewall
- The provider’s network firewall or security group
Open the same TCP port in both places.
A correct UFW or Windows Firewall rule cannot bypass a blocked provider firewall.
If the server runs locally but friends cannot join, check:
- The server process is not listening
- The wrong protocol is open
- The firewall port differs from -tcp
- The router points to the wrong local IP
- The provider firewall blocks the port
- CGNAT blocks inbound connections
- Players use the wrong public IP or port
Making a Windward Horizon Server Public or Private
The -public flag requests a place in the public server list:
WHServer.exe -name "Red Sea" -world "MyWorld" -tcp 5123 -public
The flag does not guarantee instant visibility. The list may need time to refresh. A blocked port, startup error, old server build, or wrong launch value can also stop the server from appearing.
Players looking for a Windward Horizon dedicated server list should check the game’s multiplayer server menu. Available servers change over time, so old screenshots and forum counts may no longer reflect the current list.
Public Windward Horizon Server
Use -public when you want players to discover the server through the game.
A public server needs:
- Clear player rules
- Limited admin access
- Active moderation
- Scheduled backups
- Log reviews
- A tested ban process
- DDoS-aware hosting
The -public flag controls visibility. It does not secure the server or restrict access.
Private Windward Horizon Server
Remove -public when you do not want the server listed:
WHServer.exe -name "Red Sea" -world "MyWorld" -tcp 5123
Players can connect through direct IP when the current game build or hosting panel supports direct connection.
Share both values:
Server IP: 203.0.113.10
Port: 5123
A hidden server is not the same as a password-protected server. Anyone with the address may still try to connect. No publicly documented server-password, whitelist, or RCON option was found in the Windward Horizon sources reviewed for this guide.
Protect a private server by:
- Sharing the address only with trusted players
- Keeping the admin list small
- Removing inactive admins
- Opening only the game port
- Keeping frequent backups
- Checking logs for unknown connections
Steam confirms that the demo includes full multiplayer. Community reports indicate that demo users may rely on Direct Connect, so verify the current demo interface and share the server IP and port when that option is available.
Windward Horizon Dedicated Server Admin Setup
Windward Horizon links admin access to a player’s SteamID64.
A SteamID64 is a unique 17-digit number tied to a Steam account.
The June 2025 Linux community guide uses:ServerConfig/admin.txt
A newer Windows community guide also references adminlist.txt, while managed panels may label the setting Admin List. Verify the filename recognized by the current executable.
Add one SteamID64 per line:
76561198012345678
76561198123456789
Do not add:
- Steam display names
- Profile links
- Commas
- Quotation marks
- Extra labels
How to Add a Windward Horizon Admin
- Find the player’s SteamID64.
- Stop the server.
- Open or create the ServerConfig folder.
- Open or create the admin-list file recognized by the current server build.
- Add the SteamID64 on a new line.
- Save the file.
- Start the server.
- Join through the listed Steam account.
- Run /help to confirm administrator access and view the commands supported by the current build.
If the current build recognizes admin.txt, the Windows path may look like:
C:\WindwardHorizonServer\ServerConfig\admin.txt
The corresponding Linux path may look like:
/opt/wwhorizon-server/ServerConfig/admin.txt
If the build uses adminlist.txt, replace admin.txt with adminlist.txt in these paths.
After confirming the filename, set the correct Linux ownership.
If the build uses admin.txt, run:
sudo chown windward:windward \
/opt/wwhorizon-server/ServerConfig/admin.txt
If the build uses adminlist.txt, run:
sudo chown windward:windward \
/opt/wwhorizon-server/ServerConfig/adminlist.txt
Restart the service:
sudo systemctl restart windward-horizon
The /reloadServerData command may reload admin and ban files in supported builds. A full restart is safer during the first setup.
Community hosting documentation reports that admin and chat commands require full-game ownership. Demo players can still join and play without administrator access.
Keep the admin list small. Admin commands can change players, factions, towns, server values, and world progress.
Windward Horizon Admin Commands
Admins enter commands through in-game chat with a forward slash.
Run:
/help
before using commands on a live server.
Tasharen has confirmed several newer commands through game updates. Other commands in this section come from community documentation and may include behavior carried over from the original Windward. Verify every command through /help on the current build and compare confirmed additions with the official patch history.
Command names and syntax can change between builds. Test them on a backup or test world first.
Moderation Commands
| Command | Purpose |
|---|---|
| /kick <name> | Removes a player from the current session |
| /ban <name, SteamID64, or IP> | Adds a player identifier to the ban list |
| /unban <name, SteamID64, or IP> | Removes an identifier from the ban list |
| /reloadServerData | Reloads supported admin, ban, and server files |
Community hosting documentation references:
ServerConfig/ban.txt
A ban can target a name, SteamID64, or IP address. If a player remains blocked after an unban, inspect ban.txt to identify the exact value stored by the current build.
Community hosting material references mute values through /set, but these settings may not work in every dedicated-server build. Test moderation commands before relying on them during a public session.
Server Message and Admin Chat Commands
| Command | Purpose |
|---|---|
| /ad <text> | Sends a global message from an administrator |
| /pac <text> | Sends a private administrator-only message |
| /motd <text> | Sets the server message of the day |
Use /motd for permanent notices and rules.
Use /ad for:
- Maintenance warnings
- Server restarts
- Community events
- Rule reminders
- Planned world changes
Use /pac for private coordination between admins.
World and Server Configuration Commands
| Command | Purpose |
|---|---|
| /get <path> | Reads a documented value |
| /set <path> = value | Attempts to change a documented value |
| /remove <path> | Removes a configured value |
| /reloadServerData | Reloads supported server data |
| /getServer | Added for administrators on March 28, 2026; use /help for current syntax |
| /setServer | Added for administrators on March 28, 2026; use /help for current syntax |
| /deleteRegion # <number> | Removes progress from a selected region |
Treat /set, /get, and /remove with care. Some dedicated-server world settings may not apply.
Official March 28, 2026 notes confirm that /getServer and /setServer were added for administrators, but they do not document complete syntax or every supported value. Check /help on the current build before use.
Use local campaign editing and save upload for settings that:
- Do not appear through /getServer
- Fail to apply through /setServer
- Affect initial world generation
- Need client-side campaign creation
Stop the server and back up its complete working directory and all verified persistent-data paths before changing world or server values.
Player Transfer and Story Commands
Recent game updates added commands for moving player data and resetting story progress.
| Command | Purpose |
|---|---|
| /resetstories | Resets all story progress so the stories can be replayed |
| /export <playerName> | Exports selected player data |
| /import <playerName> | Imports selected player data |
These commands may offer a cleaner way to move one player between worlds than replacing the complete player-data directory.
Test export and import on backup data first. Confirm the player’s inventory, ship, faction, and story state after the transfer.
Faction, Town, and Event Commands
| Command | Purpose |
|---|---|
| /grow | Changes growth for the nearest supported town |
| /takeover | Changes control of the nearest supported town |
| /globalTakeover | Changes control across the world |
| /ctf | Starts or ends a supported capture event |
| /juggernaut | Starts or ends a supported special event |
| /raid | Runs raid-related behavior in supported builds |
The exact effect can change between game versions.
Run /help before using these commands. Keep a fresh backup before changing factions, towns, regions, or events.
A global command can affect progress for every player on the server.
Mod Commands
| Command | Purpose |
|---|---|
| /allowMod <name> | Marks a supported mod as optional when the current build accepts the command |
Use this command with care.
Client-side mods may create fewer server risks than mods that change world data, combat, ships, factions, or saves. This does not make every client-side mod safe.
Before adding or allowing a mod:
- Back up world and player data.
- Test the mod on a copy of the server.
- Check whether all players need it.
- Watch the server logs.
- Confirm that saves still load.
- Recheck the mod after each game update.
- Remove it if new crashes or connection errors appear.
Upload or Transfer a Windward Horizon Save to a Dedicated Server
You can move a local Windward Horizon campaign to a dedicated server. This lets your group keep its world and player progress.
Local campaign files commonly appear under:
C:\Users\<User>\Documents\Windward Horizon\Campaigns
Demo files may appear under:
C:\Users\<User>\Documents\Windward Horizon Demo\Campaigns
The full game supports Steam Cloud, and official patch notes warn that Steam Cloud should remain enabled for saves to work properly. Do not treat AppData cache files as authoritative campaign saves without current-build verification.
If the expected campaign does not appear under Documents, check:
- Steam Cloud status
- The Windward Horizon Demo campaign folder
- Other Windows user profiles
- The date and time on each campaign folder
Do not create a new campaign until you confirm that the existing files are missing.
A transferable campaign may include:
- A .world file
- A matching .world.config file
- A Players folder
- Other files stored beside the campaign
Transfer the complete matching set when possible.
How to Transfer a Local Save
- Stop the dedicated server.
- Back up the server’s complete working directory and every verified world, player-data, and configuration path.
- Find the local campaign folder.
- Identify the correct .world file.
- Check for a matching .world.config file.
- Check for any player-data folder stored with the campaign.
- Upload the .world file.
- Upload the matching .world.config file when present.
- Replace the server’s confirmed player-data folder only when you want to transfer the related player progress.
- Set the server’s world value to the filename without .world.
- Fix Linux file ownership when needed.
- Start the server.
- Confirm the world and player state before deleting the backup.
For this save:
Adventure World.world
use:
-world "Adventure World"
Do not use:
-world "Adventure World.world"
A wrong -world value may cause the server to create a new world.
Raw Windows and Linux Servers
Stop the server and place the world and player data in the paths generated or documented by the current executable. Verify the exact paths through a first launch before replacing any live data.
Managed Hosting Panels
Managed panels may use a different upload path.
Upload the files to the save directory shown by the panel. Set the panel’s save or world name to the .world filename without the extension.
Do not assume that every hosting panel mirrors the raw folder structure.
Fix Linux Ownership After an Upload
A file uploaded as root may prevent the windward service account from saving changes.
Apply ownership only to the world and player-data paths confirmed during the server’s first successful launch. Replace <confirmed-path> with each verified path before running:
sudo chown -R windward:windward "<confirmed-path>"
Restart the service:
sudo systemctl restart windward-horizon
Confirm the Transfer
Join with a player from the transferred campaign.
Check:
- The correct world loaded
- The ship loaded
- Inventory remains present
- Faction progress remains correct
- Province changes remain present
- Town and workshop progress remains present
- Story state remains correct
- Admin access still works
Do not copy only the .world file when you also need player progress. World and player data may be stored separately. Replacing the complete player-data directory can overwrite progress created after the dedicated server started, so retain the previous copy until every player confirms their data.
For a single-player transfer, test /export <playerName> and /import <playerName> on backup data before replacing the full player directory.
Transfer World Options
Some world options do not apply through dedicated-server commands.
Use this fallback:
- Open Windward Horizon on a client computer.
- Create or edit the campaign.
- Set the required world options.
- Save and close the game.
- Find the local campaign files.
- Stop the dedicated server.
- Back up the complete server working directory and the verified world and player-data paths.
- Upload the edited campaign.
- Set the correct -world value.
- Start the server.
- Check the world rules and player progress.
This process replaces the active server campaign. Keep the old copy until the new world loads with the expected rules and player data.
Protect Persistent Server Progress
Each Windward Horizon campaign uses a procedurally generated world with shared player, town, province, faction, and workshop progress. Stop the server and create a complete backup before changing world options, uploading saves, replacing player data, installing mods, running world-altering commands, or moving the server to another host.
Windward Horizon Dedicated Server Not Showing or Not Connecting
Use this table to trace common Windward Horizon server faults.
| Problem | Likely Cause | What to Check |
|---|---|---|
| Server does not appear in the public list | Missing -public, blocked port, startup fault, or listing delay | Add -public, restart, check logs, and confirm the chosen TCP port |
| Friends cannot join | TCP port blocked or wrong connection details | Open and forward the port set through -tcp |
| Server works locally but not externally | Router, CGNAT, or public IP issue | Check the WAN IP, forwarding rule, and public IPv4 status |
| Public-IP test fails from the same LAN | Router lacks NAT loopback | Test from a mobile connection or another network |
| World does not load | Wrong -world value or incorrect save path | Use the filename without .world and confirm the save path generated by the current executable |
| Server creates a new world | Requested save file was not found | Check the filename, capitalization, -world value, and verified save path |
| Admin access does not work | Wrong SteamID64, unrecognized admin filename, or incorrect ownership | Confirm whether the current build uses admin.txt or adminlist.txt, add one SteamID64 per line, and check file ownership |
| Linux server crashes at startup | Missing Mono package, bad permissions, or wrong path | Check Mono, ownership, WHServer.exe, and logs |
| Save appears reset | Wrong world selected or matching player data missing | Stop the server, restore the backup, and verify the confirmed world and player-data paths |
| World options do not apply | Server command does not expose the option | Check /help, /getServer, and /setServer; upload a local save when needed |
| Server stops after SSH logout | Process runs inside the shell | Use systemd, tmux, or screen |
| Server disappears after an update | Outdated executable, startup failure, or version mismatch | Install the current verified executable, restart, and read the latest logs. The July 8, 2026 update intentionally removed old server builds from the server address. See the July 8, 2026 patch notes. |
| Players load the wrong progress | Mismatched player data was uploaded | Restore the verified player-data directory that belongs to the selected world |
Confirm That the Port Is Listening
Replace 5123 with the port set through -tcp.
On Windows:
$Port = 5123
Get-NetTCPConnection -LocalPort $Port -State Listen
On Linux:
PORT=5123
sudo ss -ltnp | grep ":$PORT"
No listening result means the server has not opened the port. Fix the process, file path, or launch command before changing firewall and router rules.
Test From an External Network
Always test a public server from outside the host network.
A test from the same LAN can hide:
- Missing router forwarding
- NAT loopback limits
- CGNAT
- Wrong public IP details
- A blocked hosting firewall
Use a mobile connection or ask another player to test the public IP and port.
Use systemd for Long-Running Linux Servers
tmux and screen can keep a manual server running after logout. They do not start the server after a reboot or restart it after a crash.
Use systemd when you need:
- Automatic boot startup
- Crash recovery
- Service status checks
- Central logs
- Controlled restarts
Security and Backup Checklist for Windward Horizon Server Admins
A public Windward Horizon server exposes a TCP port and stores shared campaign progress. Protect the host and the save data.
Secure the Network
- Open only the TCP port selected through -tcp.
- Do not open UDP without a confirmed need.
- Restrict SSH, remote desktop, file transfer, and control panels.
- Use SSH keys where possible.
- Limit management access by IP.
- Check the operating system firewall.
- Check the provider firewall or security group.
- Use DDoS-aware hosting for public servers.
CISA’s DDoS response guidance explains common attack types and practical preparation and response measures.
A server location close to most players helps reduce latency. High-bandwidth hosting provides traffic headroom for larger communities, backups, mods, and related downloads.
Limit Admin Access
- Run Linux servers through a non-root account.
- Keep the admin SteamID64 list small.
- Remove accounts that no longer manage the server.
- Review the confirmed admin-list file after a restore.
- Back up the ban list.
- Do not give players SSH or panel access just to grant game admin rights.
Back Up the Right Data
Stop the server and back up:
- The complete server working directory
- Every verified world and player-data path
- The confirmed admin and ban files
- Recent server logs needed for troubleshooting
- Windows batch files
- systemd unit files
- Firewall and port documentation
- The current verified server executable
- Its official source URL and executable version
- The SHA-256 hash of the tested copy
Store at least one backup outside the live server directory.
Create Backups Before Risky Changes
Create a restore point before:
- Updating WHServer.exe
- Changing world options
- Uploading a local campaign
- Replacing player data
- Adding or removing mods
- Running faction or region commands
- Moving to another server
Use Scheduled Backups
Public servers should use scheduled backups.
A practical plan includes:
- Frequent local snapshots
- One copy outside the live server
- Several dated restore points
- A longer-retention weekly copy
- Restore tests
Do not keep every backup on the same disk as the live server.
Keep a Rollback Copy Before Updates
Before an update:
- Stop the server.
- Copy all persistent folders.
- Save the current server files, source URL, executable version, and hash of the tested copy.
- Apply the update.
- Start the server.
- Check the world.
- Check player progress.
- Test admin access.
- Confirm the TCP port.
- Keep the old copy until players confirm their progress.
Review Logs After a Crash
After a crash:
- Read the newest verified server log.
- Check systemd, Windows, and WHServer.exe logs for the affected installation.
- Confirm that the disk has free space.
- Check file ownership.
- Confirm that the correct world loaded.
- Review recent admin commands.
- Review recent mod changes.
- Restore the last clean save if the active files show damage.
Rotate logs so they do not fill the disk.
Host a Persistent Windward Horizon Server on RedSwitches
RedSwitches is not officially affiliated with Tasharen Entertainment or Windward Horizon.
Running a Windward Horizon dedicated server is not simply about launching WHServer.exe. It means keeping a shared campaign available, responsive, and recoverable as player data, world progress, mods, backups, and logs accumulate.
Use only a verified server archive, keep TCP 5123 consistent across the launch command and firewalls, confirm the paths created by your build, and protect the complete installation with regular off-server backups.
Once Tasharen restores or replaces the official server package, RedSwitches can provide the dedicated environment needed to host it with confidence.
Single-tenant hardware, root access, KVM or IPMI control, NVMe storage, DDoS protection, and global server locations give you control over performance, security, recovery, and player latency.
Choose a location near your community, size the server from observed usage, and retain full control as the campaign grows. Explore RedSwitches dedicated servers and build a reliable home for your persistent Windward Horizon world.
Frequently Asked Questions
Common questions about windward horizon dedicated server setup for windows and linux.
Does Windward Horizon Have Dedicated Servers?
What Is the Windward Horizon Steam App ID?
Does the Windward Horizon Dedicated Server Use SteamCMD?
What Port Does a Windward Horizon Dedicated Server Use?
Can I Host a Windward Horizon Server on Linux?
Does Windward Horizon Support a Server Password, Whitelist, or RCON?
How Many Players Can Join a Windward Horizon Server?
Why Did My Windward Horizon Server Disappear After the July 8, 2026 Update?
Where Are Windward Horizon Server Saves Stored?
Can Demo Players Join a Windward Horizon Dedicated Server?
Hafsa Qadeer
Technical Writer
Hafsa Qadeer is a Technical Content Writer at RedSwitches and a journalist with a background in molecular biology and oncology. She brings research precision to technical writing and SEO strategy, turning complex topics in infrastructure, biotech, and AI into content that informs and engages.
Power Your Next Project With Bare Metal
10 min delivery, zero setup fees, and 24/7/365 human engineers across 20+ global locations.


