Astroneer splits its dedicated-server config across two Unreal ini files, and the split is where people trip. This is the plain-English reference for every real key, what it does, and the sane value to give it.
AstroServerSettings.ini under [/Script/Astro.AstroServerSettings]; the server Port is the lone exception and sits in Engine.ini under [URL]. Both files live in ...\Astro\Saved\Config\WindowsServer\ and only appear after the server's first run. Astroneer rewrites them on shutdown, so stop the server, edit, then start again. Skip the hand-typing with the config generator.The public face of the server: what it's called, how many people fit, whether there's a password, and the address it advertises.
| Setting | What it does | Default | Recommended |
|---|---|---|---|
| ServerName | The label shown in the in-game join list. Purely cosmetic, but it's how friends spot your box among the others, so make it recognisable rather than the stock string. | Astroneer Dedicated Server | Your own short name |
| MaximumPlayerCount | The hard ceiling on connected players. Astroneer's own engine caps a dedicated server at 8; write a bigger number and it's silently clamped back down. This is the correct key for the cap, there is no separate MaxConnections setting. | 8 | 8 (or lower for a private group) |
| ServerPassword | A join password every client must enter to connect. This gates entry only; it does not grant admin. Blank means anyone with the address can walk in. | Set one for any public IP | |
| PublicIP | The address clients dial to reach you, entered without a port (just the bare WAN IP). Leaving it empty asks the server to detect its own address. If your ISP puts you behind CGNAT you have no forwardable public address and self-hosting from home simply will not work. | Blank to auto-detect, or your WAN IP |
Who runs the server and who's allowed through the door. Ownership is tied to a Steam display name, not a password.
| Setting | What it does | Default | Recommended |
|---|---|---|---|
| OwnerName | The Steam display name that claims admin rights. Whoever first joins using this exact name becomes owner and unlocks the in-game admin menu for kicks, bans, whitelist edits, forced saves and clean shutdowns. Watch the spelling, it must match your Steam name character for character, not your in-game colonist name. | Your exact Steam display name | |
| OwnerGuid | The owner's 17-digit SteamID64. You do not fill this in by hand; the server stamps it automatically the first time the named owner connects. It exists mainly so identity survives if the display name later changes. | 0 | Leave at 0 |
| DenyUnlistedPlayers | The whitelist master switch. False lets anyone in (subject to any password); True locks the server to approved players only. The approved list itself is not in this file, you build it from the in-game admin panel after connecting as owner. | false | False unless you want a closed server |
| ConsolePort | The TCP port the server's remote-console (RCON-style) interface listens on, used by management tools such as AstroLauncher. Keep it off the public internet and only forward it if a trusted tool genuinely needs remote access. | 1234 | 1234, changed only if it clashes |
| ConsolePassword | The credential a remote-console client presents. Left blank, the server mints a fresh random one on every boot, which is fine unless a tool needs a stable password across restarts, in which case pin one here. | Set a fixed value only if a tool needs it |
The one setting that escapes AstroServerSettings.ini, plus optional net-rate caps. These belong in Engine.ini, which Astroneer generates empty.
| Setting | What it does | Default | Recommended |
|---|---|---|---|
| Port | The UDP port clients connect through, written in Engine.ini under a [URL] section rather than with the other settings. Forward this port as UDP to the server's LAN address and add a matching firewall rule, or nobody outside your network reaches the server. | 8777 | 8777 (forward it as UDP) |
| __raise_rates | A generator convenience switch, not a real ini key. Flipping it writes the two net-rate lines below into Engine.ini's IpNetDriver section. Leave it off unless players are visibly rubberbanding. | false | Off unless you see warping |
| MaxClientRate | An Unreal engine cap on bytes per second to a single client, only emitted when the rate boost is enabled. Raising it lifts the throughput ceiling that can cause warping on busier sessions. | 1000000 | 1000000 when the boost is on |
| MaxInternetClientRate | The internet-facing counterpart to the client-rate cap, again an engine key written only with the rate boost on. It governs the ceiling for players connecting over the internet rather than LAN. | 1000000 | 1000000 when the boost is on |
How the world persists: which save loads, how often it's written, and how frequently a rolling backup is stashed.
| Setting | What it does | Default | Recommended |
|---|---|---|---|
| bLoadAutoSave | Controls which save the server boots from. True picks up the newest autosave automatically; False forces it to load the specific file named below. Most people want it True so a restart resumes where they left off. | true | True |
| ActiveSaveFileDescriptiveName | Names the save slot the server reads and writes. Point it at an existing world to resume that one, or give a new name to spin up a fresh planet. Saves themselves sit in ...\Astro\Saved\SaveGames\. | SAVE_1 | SAVE_1 or your world's name |
| AutoSaveGameInterval | Seconds between automatic writes of the live world. Astroneer's dedicated server has a long history of save-related hiccups, so a shorter gap means any crash costs you fewer minutes of progress. The trade is a brief stutter each time it saves. | 900 | 300 to 600 on a crash-prone box |
| BackupSaveGamesInterval | Seconds between rolling backup copies of the save, kept separately from the active file. This is your parachute if the live save ever corrupts, so keep it non-zero. Zero switches backups off entirely. | 7200 | Keep non-zero (3600 to 7200) |
Tick rates and how the server behaves when it's idle, busy, or shutting down.
| Setting | What it does | Default | Recommended |
|---|---|---|---|
| MaxServerFramerate | The simulation tick ceiling while players are online. Higher values ask more of the CPU for smoother physics; 30 is the shipped balance and is fine for most hosts. Only raise it if the box demonstrably has headroom. | 30 | 30 |
| MaxServerIdleFramerate | The tick ceiling while nobody is connected, deliberately floored so an empty server sips CPU instead of burning it. There's rarely a reason to touch it. | 3 | 3 |
| PlayerActivityTimeout | Seconds of inactivity before an idle player is dropped, freeing their slot. Zero disables the kick entirely. Set a real value on a full public server so AFK players don't hold seats hostage. | 0 | 0 for friends, 1800 on a busy public server |
| bWaitForPlayersBeforeShutdown | When True, the server defers a scheduled shutdown while players are still connected instead of dropping them mid-session. A niche courtesy toggle that most hosts leave off. | false | False |
| bDisableServerTravel | An engine-level switch that blocks server travel (the mechanism the server uses to change or reload a level). It appears in the default config set to False, and unless a specific host or guide tells you otherwise there's no reason to change it. | false | False |
Rarely-touched internals. The defaults are correct for almost everyone; only change these if a host's own docs point you here.
| Setting | What it does | Default | Recommended |
|---|---|---|---|
| HeartbeatInterval | An internal keep-alive timer that ships at 0, meaning the server uses its built-in default. It's part of the baseline config but not something a normal self-host needs to tune. Leave it be unless a hosting provider's instructions say otherwise. | 0 | 0 |
| ServerAdvertisedName | A separate optional field for the name the server advertises. In practice it's left blank and ServerName up top does the job, so treat this as a legacy slot you can ignore. | Leave blank | |
| ServerGuid | A unique identity string for the server. It's generated automatically, so leave it empty; the only time you'd hand-set it is to deliberately carry one server's identity across a reinstall. | Leave blank |
These never touch the ini files. Astroneer reads all its settings from the config, so the server takes no gameplay launch arguments; these switches only shape the Windows batch wrapper that boots it.
| Setting | What it does | Default | Recommended |
|---|---|---|---|
| __restart_loop | Wraps the launch in a loop so the server process relaunches itself after a crash or manual stop. Good enough for an unattended box, though the community AstroLauncher tool does restart, scheduled saves and RCON more robustly if you outgrow a plain loop. | true | On for unattended hosting |
| __update_on_launch | Prepends a SteamCMD update for the dedicated server (Steam app 728470) before each boot. The server never patches itself, and after a game update clients on the new build cannot join a stale server, so this keeps you current. Needs steamcmd reachable on PATH or in the folder. | false | On, so patches don't lock players out |
| __log_to_file | Redirects the server's console output into server.log instead of a live window. Handy on a headless box and for reading back what happened after a crash. | false | On for headless boxes |
Sensible values for a private or small public server that stays current and rarely loses progress. Everything else can keep its default.
| Setting | Value | Why |
|---|---|---|
| OwnerName | your Steam name | Claims admin before a stranger does; blank hands ownership to the first joiner. |
| ServerPassword | a real password | The only gate on an open server; skip it and anyone with the IP walks in. |
| MaximumPlayerCount | 8 | The engine ceiling anyway; drop it lower for a tighter private group. |
| Port | 8777 | Forward this as UDP in Engine.ini's [URL] block or nobody connects. |
| PublicIP | blank or WAN IP | Never add a :port here; a port suffix makes the server start then instantly close. |
| AutoSaveGameInterval | 300 to 600 | Shorter saves mean a crash costs minutes, not hours, on a known-flaky server. |
| BackupSaveGamesInterval | 3600 | Your parachute against a corrupted active save; keep it non-zero. |
| __update_on_launch | on | The server won't patch itself, and stale servers reject up-to-date clients. |
...\Astro\Saved\Config\WindowsServer\. AstroServerSettings.ini holds nearly every setting under [/Script/Astro.AstroServerSettings], and Engine.ini holds only the Port under [URL]. Neither exists until the server has run once. The generator writes both for you.PublicIP with a port stuck on the end. It must be the bare address like 203.0.113.5, never 203.0.113.5:8777. Strip the :port or leave the field blank to auto-detect. If you're behind CGNAT, home hosting can't work at all regardless of config.8777/UDP, and it goes in Engine.ini under a [URL] section, not in AstroServerSettings.ini. Forward that UDP port to the server's LAN IP and add a firewall rule for AstroServer-Win64-Shipping.exe. The generator produces the exact Engine.ini block.MaximumPlayerCount is capped at 8 by the engine, and any larger number is quietly ignored. There is no MaxConnections key; that's an invented setting some guides list.OwnerName. The first player who connects under that name claims ownership and the in-game admin menu, and the server fills OwnerGuid automatically. Leave OwnerName blank and the first person to connect, under any name, becomes owner.DenyUnlistedPlayers=True to switch on the whitelist, then start the server, join as owner, and add approved players from the in-game admin panel. The allow-list is not stored in the ini file, so flipping the switch without adding anyone locks everyone out, including you.728470) that never auto-patches. After a game update, clients on the new build can't join a stale server, so re-run +app_update 728470 validate, or have the launch script do it each boot by enabling update-on-launch in the generator.