Dedicated Server

==Description==
The normal mode of playing Icarus is for a player to 'host' a session on their local PC by simply installing the steam client. This enables other players to join a session hosted by the player (co-op mode). When the 'host' logs off the client, the hosted session has ended and all other players are disconnected. The Dedicated Server, which is currently in Beta, allows players to join a hosted session that is not associated with a players client and can be available all the time.
==Dedicated Server==
A dedicated server requires a host machine to run on. This could be as simple as a PC at home or a server offered by various third parties.Rocketwerkz have provided detailed instructions on their GitHub page to assist in installing and maintaining a dedicated server. There is also a dedicated channel on the official discord that deals with dedicated servers.
==FAQ==
* A server can only run one active prospect (Mission/Open World/Outpost) at a time.
* A dedicated server is processor intensive, the more players the greater strain on processing.
* Occasionally a server side error will cause voxels to fail to give resources (mining an iron node and getting no iron). Reloading the map (restart server or return to lobby and reload) will correct, though the issue sometimes recurs.
* Servers that remain running full time will have their time of day continue to cycle while offline. This is the only impact - furnaces and fuel don't process, food doesn't spoil, etc. Only the time of day moves.
* Rivers and other water sources often don't function for drinking/filling for a few minutes after loading a map.
* To return server to lobby when empty, /adminlogin /returntolobbywhenempty
=== Copy Prospect to Server ===
To play a local OW file on your server, copy the .json from %localappdata%\Icarus\Saved\PlayerData\<steamID>\Prospects.  Move it to <serverinstallfolder>\Icarus\Saved\PlayerData\DedicatedServer\Prospects.  Be sure to not change the file name!
=== Banning ===
The bans are stored in a txt file called PlayerBanList.txt, this should be in the Icarus\Saved folder. 
Contents for one banned player would be :- (replace x's with Steamid)
{
    "BanInfos": [
        {
            "AccountId": "xxxxxxxxxxxxxx",
            "AccountJson": "Steam:xxxxxxxxxxxxxxxx",
            "BanReason": "Ban Reason",
            "PlayerNameDuringBan": "xxxx"
        }
    ]
}
=== Whitelisting ===
Admin Whitelist: Icarus/Saved/AdminWhitelist.txt, one steamID per line.  Breaks 'delete' button on prospect load but allows returning to lobby, kicking, etc, without first logging in with admin pw.
=== Experimental ===
To let your DS be joinable by clients on Experimental branch, it will also need to be on experimental.  If using the step-by-step method on github, replace the appupdate step with:
app_update 2089300 -beta experimental validate
if using a batch file to run it in one line, use the following:
steamcmd +force_install_dir d:\icarusserver\ +login anonymous +app_update 2089300 -beta experimental validate +quit
to roll BACK to main branch dedicated server, you MUST set the beta to 'public', rather than leaving off the -beta argument.  Examples:
app_update 2089300 -beta public validate
steamcmd +force_install_dir d:\icarusserver\ +login anonymous +app_update 2089300 -beta public validate +quit
==Q&A==