Stand up your own always-on Icarus server with SteamCMD, name it correctly (the obvious setting is broken), tune the handful of real ServerSettings.ini keys, and start a prospect at the difficulty you want. Verified against the official RocketWerkz dedicated-server wiki.
The Icarus dedicated server is a free, separate download, Windows only, no game copy required.
Download SteamCMD and extract it to a folder, e.g. C:\SteamCMD.
Run steamcmd.exe. At the prompt, set the install folder: force_install_dir C:\IcarusServer
Log in anonymously (no account needed): login anonymous
Download the server: app_update 2089300 validate, then quit when it finishes.
Confirm the folder now has IcarusServer.exe plus Engine\, Content\ and Icarus\. To update later, re-run steps 2–4.
Start the server from the install folder. The most important argument is -SteamServerName, because the in-file SessionName setting is currently broken.
-SteamServerName, not SessionName. The SessionName key in ServerSettings.ini does nothing right now, a confirmed bug. Set the visible browser name with the launch argument -SteamServerName="Your Server" (64-character max) instead.A typical launch line:
| Launch argument | What it does |
|---|---|
| -SteamServerName="Name" | The server's visible name in the Dedicated Servers browser (64-char max). This is how you name it — not SessionName. |
| -PORT=17777 | Game traffic port (UDP). Default 17777. Must be forwarded. |
| -QueryPort=27015 | Steam query port (UDP) used for browser discovery. Default 27015. Must be forwarded. |
| -Log | Open a console/log window — recommended, makes the server debuggable. |
| -UserDir=[path] | Override the base Saved data directory — useful for running multiple instances. |
| -saveddirsuffix=[suffix] | Append a suffix to the Saved folder name — another multi-instance option. |
| -MULTIHOME=[IP] | Bind the server to a specific IP on a multi-homed machine. |
Full example: IcarusServer.exe -SteamServerName="My Icarus Server" -PORT=17777 -QueryPort=27015 -Log
The file lives at <ServerInstallDir>\Icarus\Saved\Config\WindowsServer\ServerSettings.ini under the section header [/Script/Icarus.DedicatedServerSettings]. It's auto-generated on first run, edit it, then restart. Type to filter; hit Copy to grab a ready-to-paste line.
| Setting | What it does | Default |
|---|---|---|
| JoinPassword= | Password players must enter to join. Leave empty for a public server. | (empty) |
| MaxPlayers=8 | Maximum concurrent players. Supported range 1–8. | 8 |
| AdminPassword= | Password for in-game admin. Players run /AdminLogin [password] in chat. Leaving it empty lets anyone /AdminLogin with no password — set one for public servers. | (empty) |
| ShutdownIfNotJoinedFor=86400 | Seconds with nobody joined before auto-shutdown. Use 86400 or -1 to stay up; never 0 (instant shutdown). | 300 |
| ShutdownIfEmptyFor=86400 | Seconds after the last player leaves before auto-shutdown. Same rules as above. | 300 |
| AllowNonAdminsToLaunchProspects=True | Whether non-admins in the lobby can start prospects/outposts. Set False to require an admin. | True |
| AllowNonAdminsToDeleteProspects=False | Whether non-admins can delete saved prospects. Keep False to prevent griefing. | False |
| ResumeProspect=True | Auto-resume the last active prospect on startup (uses LastProspectName). Set False to start in the lobby. | True |
| LoadProspect=[SaveName] | Load a specific saved prospect by name on startup (no .json). Don't combine with CreateProspect. | — |
| CreateProspect=[Type] [1-4] [Hardcore] [SaveName] | Create and launch a new prospect on startup — see Prospects below. Don't combine with LoadProspect/ResumeProspect. | — |
| SessionName= (BROKEN) | Intended server name — currently does nothing. Use the -SteamServerName launch argument instead. | (ignored) |
| LastProspectName= | Auto-written by the server (the last running prospect). Don't hand-edit — editing save data can corrupt it. | (auto) |
Prospects are Icarus's playable sessions: each is its own world with its own save. There are three kinds: Missions (timed, objective drops), Open World (persistent sandbox, no timer), and Outposts (persistent base-building). The base game covers Olympus; Styx, Prometheus and Elysium are paid DLC planets, the server must own the DLC to host them.
Start one from ServerSettings.ini (or a launch arg) with CreateProspect:
CreateProspect=<ProspectType> <Difficulty 1-4> <Hardcore true/false> <SaveName>
1 Easy · 2 Medium · 3 Hard · 4 Extreme. It scales gather rates, creature aggression and hazards.true/false flag. true disables respawning: death ends that character for the run.CreateProspect after first boot so it doesn't overwrite the save.Ready-to-paste examples (hit Copy):
| CreateProspect line | What it makes |
|---|---|
| CreateProspect=Olympus_Outpost 2 false MyBase | An Olympus outpost (persistent base) at Medium difficulty, save "MyBase". |
| CreateProspect=Tier1_Forest_Recon_0 3 false MyDrop | A Tier-1 Forest Recon mission at Hard, respawns on, save "MyDrop". |
| CreateProspect=OpenWorld_Styx 1 false StyxWorld | A Styx open-world session at Easy (needs Styx DLC), save "StyxWorld". |
| CreateProspect=STYX_B_Expedition 4 true HardcoreRun | A Styx Expedition at Extreme, Hardcore (no respawns), save "HardcoreRun". |
The full, current list of prospect type names lives on the official Prospect Names wiki (it grows with each update, and the DLC-planet names aren't fully mirrored elsewhere). To switch prospects later without losing one, use the /ReturnToLobby admin command, then launch another from the lobby.
Forward both of these (UDP) on your router/firewall to the server machine:
| Port | Purpose |
|---|---|
| 17777 / UDP | Game traffic. Default; change with -PORT. |
| 27015 / UDP | Steam query (server-browser discovery). Default; change with -QueryPort. |
Players join from the HAB: pick a character → Join Session → use the toggle (top-right) to switch the browser to Dedicated Servers (it defaults to player-hosted), then find your server by its -SteamServerName. If a JoinPassword is set they're prompted for it. With no prospect running they land in the Server Lobby (and can launch one if allowed); if a prospect is already up, they drop straight in.
login anonymous, no Steam account or game copy required for the server itself.SessionName key has no effect on the browser name right now. Name your server with the -SteamServerName="YourName" launch argument (64-char max) instead. This is confirmed in the official RocketWerkz dedicated-server wiki.CreateProspect=<ProspectType> <Difficulty 1-4> <Hardcore true/false> <SaveName>, space-separated in that order. Example: CreateProspect=Olympus_Outpost 3 false MyBase. Difficulty 1=Easy, 2=Medium, 3=Hard, 4=Extreme; Hardcore true disables respawns. Don't set it alongside LoadProspect or ResumeProspect.ShutdownIfNotJoinedFor is probably set to 0, which triggers an instant shutdown. Set it to a large value like 86400 (24 hours) or -1 to keep it up while empty. The same goes for ShutdownIfEmptyFor.AdminPassword= in ServerSettings.ini and restart. In-game, open chat and type /AdminLogin YourPassword. Admin lasts the session. Re-run it after reconnecting. Admin commands include /KickPlayer, /BanPlayer, /ReturnToLobby and /AdminSay.Server's up? Here's the rest of the Icarus toolkit.