Workload · Hosting an ICARUS prospect

Host your own ICARUS dedicated server, so the prospect is there whenever your group is

To run your own ICARUS dedicated server, you install RocketWerkz's free Windows server with SteamCMD (app 2089300), let players in on ports 17777 and 27015, and put your passwords in ServerSettings.ini. That is the short version from the studio's own guide on GitHub. Below is the long version, done properly: a separate Windows account for the server, firewall rules first, an automatic start at boot, and a zip of your saves every time it starts.

The short version
  1. Free to install: SteamCMD fetches it anonymously, no extra copy of the game
  2. Windows only; Linux needs an unofficial workaround
  3. Players need ports 17777 and 27015 open
  4. Join and admin passwords sit in a settings file, never on a command line
  5. A dated zip of your saves before every start

What your server needs before anything else

Your ICARUS server needs Windows, two open ports and a place to keep its saves. RocketWerkz publishes its hosting guide as a wiki in the RocketWerkz/IcarusDedicatedServer repository on GitHub, and every fact about the game server on this page comes from it, from the sample settings file beside it, or from the studio's patch notes on Steam.

  • Operating system: Windows. The program is IcarusServer.exe and its settings folder is called WindowsServer.
  • Download: SteamCMD, the text-only download tool from Valve, with app id 2089300. An anonymous login works, so the server account never needs to own the game.
  • Ports: 17777 for play and 27015 for Steam's server list. -PORT= and -QueryPort= move them, and -MULTIHOME= pins the server to one address if the machine has several.
  • Group size: the wiki allows 1 to 8 in MaxPlayers. A Week 54 update said dedicated servers would go beyond eight, at the risk of the server slowing down.
  • Hardware: RocketWerkz gives no processor, memory or disk figures. Play one evening with the people who will really use it, look at the server in Task Manager, and judge from that.

Windows, not Linux

If you were hoping to run this on Linux, you should know up front that the guide only covers Windows. Some players get it going on Linux with Wine or Proton. That is a fan-made trick: RocketWerkz does not document or support it, and a patch can stop it working overnight.

On our machines, the widest lines install Windows Server up to 2025, or Windows 11 Pro, in one click; no ARM machine runs Windows. Windows Server Standard is a paid licence that costs the same every month however far ahead you pay. It is counted per core: flat up to eight cores, then per core above that. For one ICARUS world, a modest machine keeps that line low.

Lock the door before you open it

Your game server should never run as an administrator. It gets its own ordinary account, icarussrv, which can change only the folders it needs; it can read its start script but not edit it. The firewall goes on before the server ever starts, so the only doors you open yourself lead to Remote Desktop and to the game's two ports, on top of whatever rules Windows has enabled out of the box. Paste this into PowerShell opened as administrator:

$secret = Read-Host -AsSecureString "Choose a password for icarussrv"
New-LocalUser -Name icarussrv -Password $secret -PasswordNeverExpires -Description "ICARUS"

$rw = "C:\steamcmd", "C:\Icarus\Server", "C:\Icarus\Data", "C:\Icarus\Backups"
New-Item -ItemType Directory -Force -Path ($rw + "C:\Icarus\Scripts") | Out-Null
foreach ($f in $rw) {
  icacls $f /inheritance:r /grant:r "Administrators:(OI)(CI)F" "SYSTEM:(OI)(CI)F" "icarussrv:(OI)(CI)M"
}
icacls C:\Icarus\Scripts /inheritance:r /grant:r "Administrators:(OI)(CI)F" "SYSTEM:(OI)(CI)F" "icarussrv:(OI)(CI)RX"

# keep RDP, block the rest inbound, then open the game ports
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True -DefaultInboundAction Block
New-NetFirewallRule -DisplayName "ICARUS players (UDP)" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 17777,27015
New-NetFirewallRule -DisplayName "ICARUS players (TCP)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 17777,27015

# boot task as icarussrv, no 72-hour limit
$pwText = [System.Net.NetworkCredential]::new("", $secret).Password
Register-ScheduledTask -TaskName "ICARUS server" -User icarussrv -Password $pwText `
  -Action (New-ScheduledTaskAction -Execute "C:\Icarus\Scripts\run-icarus.bat") `
  -Trigger (New-ScheduledTaskTrigger -AtStartup) `
  -Settings (New-ScheduledTaskSettingsSet -ExecutionTimeLimit ([TimeSpan]::Zero))
Remove-Variable pwText

Why both UDP and TCP? Valve's documentation says Steam's server-list queries arrive as UDP, but the ICARUS guide never says which protocol the game port uses, so we allow both. That is our judgment, not the studio's. The rules have no address attached, which means players on IPv6 get in as well. Then narrow Remote Desktop to your own IP, as our guide to a locked-down Windows RDP server shows.

Passwords belong in ServerSettings.ini

Your join password and admin password both live in one settings file, and the guide lists no launch flag for either, so they never show up in Task Manager's command-line column. The server normally creates the file the first time a lobby or prospect starts. RocketWerkz suggests placing their sample yourself instead, and because the start script points the server's data at C:\Icarus\Data, it goes here: C:\Icarus\Data\Saved\Config\WindowsServer\ServerSettings.ini.

[/Script/Icarus.DedicatedServerSettings]
SessionName=
JoinPassword=what-you-send-your-friends
MaxPlayers=6
AdminPassword=long-random-and-only-for-you
ShutdownIfNotJoinedFor=300.000000
ShutdownIfEmptyFor=-1
AllowNonAdminsToLaunchProspects=False
AllowNonAdminsToDeleteProspects=False
LoadProspect=
CreateProspect=
ResumeProspect=True
LastProspectName=

The lines worth thinking about:

  • AdminPassword is the one you must not skip. Left empty, anybody who types /AdminLogin becomes an admin.
  • JoinPassword keeps strangers out. Leave it blank only if you want a public server.
  • SessionName is ignored for now. The name players see comes from -SteamServerName= in the start script, up to 64 characters.
  • AllowNonAdminsToLaunchProspects is True out of the box, so anyone in the lobby can start or load a prospect. False keeps that with you.
  • ShutdownIfEmptyFor sends the server back to the lobby once it has been empty for that many seconds (300 by default). A negative number keeps the prospect loaded. ShutdownIfNotJoinedFor does the same for a fresh start nobody joins.

One small script that updates, saves a copy and starts

The guide updates the server with SteamCMD and starts the executable with launch options. Save this as C:\Icarus\Scripts\run-icarus.bat and it does both each time the task runs, with a backup in between:

@echo off
rem run-icarus.bat: started by the "ICARUS server" task as icarussrv
rem Step 1: fetch any update (if Steam is down, the script carries on)
C:\steamcmd\steamcmd.exe +force_install_dir C:\Icarus\Server +login anonymous +app_update 2089300 validate +quit
rem Step 2: zip the saves while nothing is writing to them
powershell -NoProfile -Command "Compress-Archive -Path C:\Icarus\Data\Saved\PlayerData -DestinationPath ('C:\Icarus\Backups\saves-' + (Get-Date -Format yyyy-MM-dd_HHmm) + '.zip')"
rem Step 3: start ICARUS (no passwords on this line)
C:\Icarus\Server\IcarusServer.exe -UserDir=C:\Icarus\Data -SteamServerName="Our ICARUS Outpost" -PORT=17777 -QueryPort=27015

If the update step fails, Windows simply moves to the next line, so your friends can still play on the version you already had. SteamCMD wants the install folder named before it logs in, which is the order used here. On the very first start there are no saves yet, so you will see red text complaining that the PlayerData folder cannot be found. Nothing is wrong: the script keeps going, and the server still starts right after it.

Your first evening on the server

  1. Get steamcmd.zip from Valve's SteamCMD page and unpack it into C:\steamcmd.
  2. Put the script and the settings file where the two sections above say.
  3. Start it: Start-ScheduledTask -TaskName "ICARUS server". The first start downloads the full server, so give it time.
  4. Open C:\Icarus\Data\Saved\Logs. If Saved was created somewhere other than C:\Icarus\Data, move your settings file to match.
  5. In ICARUS, choose Join Session in the HAB menu and flip the toggle at the top right to dedicated servers.
  6. You arrive in the server lobby. Type /AdminLogin and your admin password in chat, then create a new prospect or load one.

Patch day: stop the task and the game together with Stop-ScheduledTask -TaskName "ICARUS server" and Get-Process -Name IcarusServer* | Stop-Process -Force, then start the task again and it updates itself. Stopping only the task leaves the game running. It is a hard stop, so pick a moment when nobody is online.

Bringing your old prospect, and keeping it safe

Already deep into a prospect in your own local game? It is a single JSON file. On that PC, look in %LOCALAPPDATA%\Icarus\Saved\PlayerData, open the folder named with your SteamID, then Prospects. With the server stopped, copy the file into C:\Icarus\Data\Saved\PlayerData\DedicatedServer\Prospects and set LoadProspect= to its name. Do not rename it or edit what is inside: the studio warns that either one corrupts the prospect for good. Keep a copy before you start.

Each start leaves a dated zip in C:\Icarus\Backups. Those zips are on the same disk as the game, so they will not survive that disk failing: copy them somewhere else regularly, and clear out old ones. The settings file is deliberately left out of them, so your passwords do not travel with your saves.

Is a whole machine right for your group?

If your group plays most nights, or across time zones, a server of your own means nobody has to leave their PC on to host. Our servers for game hosting are whole physical machines: no other customer shares the processor or memory, and your port is not shared with anyone else's at the access switch. The port is unmetered, 500 Mbps or 1 Gbps depending on the line, and you pay month to month with no contract.

A machine already in the rack usually reaches you roughly half an hour from approval of your order, though payment checks can stretch that. On rack servers and blades you also get a remote console in the browser as soon as you set up a console sign-in on your dashboard: your way onto the machine when a firewall mistake has shut out Remote Desktop. Pick the city closest to where your friends play from our five locations, and if you also host another Windows survival game, our Enshrouded server walkthrough is set up in a similar way.

When it is not worth it: if you only play now and then, playing from your own copy of the game costs nothing, and as shown above, that local prospect can come with you if you switch later.

Questions people ask

Can I host ICARUS on a Linux server?
Not in a way RocketWerkz supports. Its guide covers the Windows server only. Players who try it lean on Wine or Proton, a fan-made route that any game update can break.
Do I have to buy ICARUS again for the server?
No. The guide says SteamCMD can install the dedicated server with an anonymous login, without an ICARUS licence. Everyone who joins still needs their own copy of the game.
My friends cannot see the server in the list. What should I check?
First, that ports 17777 and 27015 are allowed in Windows Firewall. Second, that the server is on the same version as the game: the browser has hidden mismatched versions by default ever since the Week 244 update, and restarting the task updates it. Third, that the toggle in the browser is set to dedicated servers.
How do I become admin on my own server?
Type /AdminLogin followed by the AdminPassword from ServerSettings.ini into the game chat. In the lobby you can leave out the slash. As admin you can kick, ban and unban players and send everyone back to the lobby.

Give your prospect a permanent home

Choose a Windows-ready machine near your group, and your world is up whenever anyone wants to play.

Get a server for your ICARUS group

Read next