Every Unreal Engine game server follows the same skeleton, whatever the game on top: a headless binary named <Project>Server, settings in .ini files under <Project>/Saved/Config/LinuxServer/ or WindowsServer/, game traffic on UDP 7777 unless told otherwise, a separate Steam query port, logs in Saved/Logs, saves in Saved/SaveGames or a game-specific folder beside it, and launch options written as a map URL with ?key=value pairs followed by -flags. Learn that layout once and Palworld, ARK, Satisfactory, Squad, Conan Exiles, Insurgency: Sandstorm, Abiotic Factor and The Isle stop being eight separate puzzles. The one rule that saves the most grief: stop the server before editing its ini files, because many Unreal servers write them back on shutdown.
Which games are Unreal, and why it matters#
Knowing the engine tells you where to look before you have read a single page of a game's documentation.
| Game | Engine | Project folder | Server config folder |
|---|---|---|---|
| Palworld | Unreal 5 | Pal | Pal/Saved/Config/LinuxServer/ |
| ARK: Survival Ascended | Unreal 5 | ShooterGame | ShooterGame/Saved/Config/WindowsServer/ |
| Satisfactory | Unreal 5 | FactoryGame | FactoryGame/Saved/Config/LinuxServer/ |
| Abiotic Factor | Unreal 5 | AbioticFactor | AbioticFactor/Saved/Config/WindowsServer/ |
| Squad | Unreal | SquadGame | SquadGame/ServerConfig/ plus Saved/Config |
| Conan Exiles | Unreal 4 | ConanSandbox | ConanSandbox/Saved/Config/WindowsServer/ |
| Insurgency: Sandstorm | Unreal 4 | Insurgency | Insurgency/Saved/Config/LinuxServer/ |
| The Isle (Evrima) | Unreal | TheIsle | TheIsle/Saved/Config/LinuxServer/ |
Not every survival game is Unreal. Valheim, Rust, 7 Days to Die, Unturned, Sons of the Forest and V Rising are Unity games, with different conventions; Enshrouded has its own engine. Killing Floor 2 is on the much older Unreal Engine 3, whose config layout differs. If the server has a Binaries folder and a Content/Paks folder full of .pak files, it is Unreal 4 or 5.
The folder layout#
A typical Unreal server install looks like this:
PalServer/ PalServer.sh launcher script Pal/ Binaries/Linux/PalServer-Linux-Shipping Content/Paks/Pal-LinuxServer.pak the game's content Saved/ Config/LinuxServer/ your settings Engine.ini Game.ini GameUserSettings.ini PalWorldSettings.ini Logs/Pal.log current log SaveGames/ worlds Crashes/ crash reportsThe top-level script or .exe is usually a thin launcher that starts the real binary in Binaries/<Platform>/ with the same arguments. The binary name ends in -Shipping for release builds. On Windows the equivalent is Binaries/Win64/<Project>Server-Win64-Shipping.exe, and the config folder is WindowsServer instead of LinuxServer.
That last detail catches people who copy a config from a Windows guide to a Linux server: the file goes into LinuxServer, not WindowsServer. A correct file in the wrong platform folder is simply never read.
How the ini files are layered#
Unreal reads settings in layers, and the last layer wins:
- Engine defaults compiled in or shipped in the engine's own
Base*.inifiles. - Project defaults -
DefaultEngine.ini,DefaultGame.iniand so on - which the developer ships, usually packed inside the.pakfiles where you cannot edit them. - Saved config -
Saved/Config/<Platform>Server/*.ini- which is yours.
You normally only touch the third layer. A setting you add there overrides the project default if you get the section name exactly right. Section names are script paths:
[/Script/OnlineSubsystemUtils.IpNetDriver]NetServerMaxTickRate=30MaxClientRate=100000MaxInternetClientRate=100000The file names you will meet:
| File | Typical contents |
|---|---|
Engine.ini | Networking, tick rate, rendering and engine subsystems |
Game.ini | Game-mode rules, often the advanced gameplay settings |
GameUserSettings.ini | Server name, passwords, common gameplay options |
| Game-specific | PalWorldSettings.ini, ServerSettings.ini and similar |
Many games ship a template for their own file. Palworld ships DefaultPalWorldSettings.ini in the install root, which you copy into Saved/Config/LinuxServer/PalWorldSettings.ini and edit there; the template itself is not read. The Palworld server settings guide and the ARK: Survival Ascended setup guide cover their games' keys.
Edits that disappear
Unreal games commonly save GameUserSettings.ini and sometimes other files on shutdown, writing out what the running server holds in memory. Edit while the server runs and your change is overwritten when it stops. The order is always:
- Stop the server and wait for it to exit.
- Edit the file.
- Start the server.
If an edit still vanishes, the server may have failed to parse it and written defaults, or a hosting panel may be forcing that key at every start. Game server config file formats has the INI syntax rules and the full list of reasons edits do not stick.
Launch options: the URL and the flags#
An Unreal server's command line has two parts. First, optionally, a map URL: the map name, then ? separated options. Then dash flags.
$ ./ShooterGameServer TheIsland_WP?listen?SessionName="My Ark"?MaxPlayers=20 \ -port=7777 -QueryPort=27015 -logARK is the game that uses the URL most heavily, with many settings that can appear either in the URL or in GameUserSettings.ini. Palworld and Satisfactory use almost none of it and rely on flags and ini files.
Flags you will see across many Unreal games:
| Flag | What it does |
|---|---|
-port=7777 | Game port (UDP) |
-QueryPort=27015 | Steam query port for the server browser, where the game supports it |
-MultiHome=<ip> | Bind to a specific address on a machine with several |
-log | Write the log to the console as well as the file |
-unattended | Never wait for user input on dialogs or prompts |
-ini:<File>:[<Section>]:<Key>=<Value> | Override one ini value from the command line |
The -ini: override is underused and handy on a panel, because it sets a value without touching the file the server rewrites. Satisfactory's documentation uses it for network settings, for example -ini:Engine:[/Script/Engine.Player]:ConfiguredInternetSpeed=104857600.
Games add their own flags on top. Palworld has had -publiclobby to list in the community browser, and its early guidance recommended -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS for multi-core servers; ARK: Survival Evolved used -USEALLAVAILABLECORES. Game-specific flags change between versions more than engine ones, so check the developer's current documentation rather than a launch line from a two-year-old guide. On a panel host, these appear as fields on the Startup tab, and game server startup parameters explained covers the general pattern.
Ports#
| Port | Protocol | Purpose |
|---|---|---|
7777 | UDP | Game traffic, set with -port |
27015 (common) | UDP | Steam query, set with -QueryPort where supported |
| game-specific | UDP or TCP | RCON, beacons, REST APIs |
7777 UDP is the Unreal default for game traffic, and many games keep it. Some also use the next port up: ARK: Survival Evolved needed 7778 as well as 7777. Steam-integrated games add a query port so the server browser can ask for name and player count; query ports and A2S explains that conversation. RCON, where a game has it, is usually TCP on its own port - Palworld's is 25575 by default, and newer Palworld versions also offer a REST API on a separate port.
Players connect to the game port. A server that runs but cannot be found in the browser while direct connects work has a query-port problem; a server nobody can reach at all has a game-port problem. Game server ports explained goes through diagnosing which.
Tick rate and network settings#
The server's simulation rate for networking is NetServerMaxTickRate in Engine.ini, under the net driver's section. The Unreal default is 30. Games override it in their own defaults, and some cap or ignore what you set.
Raising it sends updates to players more often, which can make movement and hit registration feel tighter, at a direct CPU cost: a server ticking 60 times a second does roughly twice the per-tick work of one at 30. On a busy survival server already struggling to hold its tick rate, raising the target makes things worse, not better. What tick rate actually means explains why.
MaxClientRate and MaxInternetClientRate cap the bytes per second sent to each client. Raising them helps on games that send a lot of world state - large bases, many creatures - where players see objects popping in late. Some games use a different net driver class (for example a platform-specific one for crossplay), and then the settings belong under that driver's section name; check a known-good config for your game before assuming the generic section applies.
Logs and crashes#
The current log is Saved/Logs/<Project>.log. On start it is renamed to a backup with a timestamp, so Saved/Logs fills slowly with old logs; clear it now and then on a long-lived server. Lines are tagged by category, which makes searching easy:
| Category | What it tells you |
|---|---|
LogNet | Connections, disconnects, net driver errors, port binding |
LogOnline | Steam or EOS sessions, server listing |
LogInit | Startup, command line, engine version |
LogStreaming | Asset loading, often slow first boot |
LogLinux / LogWindows | Platform errors, crash handling |
A crash writes a folder to Saved/Crashes/ containing a context file and, often, a minidump. On Linux the log usually ends with Signal 11 caught and a call stack. The function names in the stack are what to search for or send to the developer; the signal number by itself only says the process crashed. Game server crash loops and reading the console cover the general approach.
One Linux error appears across almost every Steam-integrated Unreal server: a failure to load steamclient.so, leaving the server running but invisible to Steam. The fix is to make the Steam client library available where the server expects it, typically by copying steamclient.so from SteamCMD's linux64 folder to ~/.steam/sdk64/steamclient.so. Panel install scripts usually do this for you.
Admin access, RCON and updates#
Unreal itself has no standard admin system; each game builds its own on top, but the pattern is similar enough to describe once.
Admin passwords and in-game commands
Most Unreal servers have an admin password in their settings file and an in-game way to claim admin with it. ARK reads ServerAdminPassword from [ServerSettings] in GameUserSettings.ini; a player opens the console, types enablecheats <password>, and from then on admin commands are prefixed with cheat. Palworld reads AdminPassword from its OptionSettings line; an admin types /AdminPassword <password> in chat and then has commands such as /Save, /Broadcast, /KickPlayer, /BanPlayer and /Shutdown <seconds> <message>. The Palworld admin commands and RCON post lists the rest.
Two cautions apply to every game in this family. The admin password often travels in plain text through chat or the console, so treat it as a shared secret among staff, not as strong security, and change it when someone leaves. And when the server writes its settings file on shutdown, it writes the password back too - another reason to edit only while stopped.
RCON
Several Unreal games implement the Source RCON protocol over TCP, which means generic RCON clients work with them. ARK enables it with RCONEnabled=True and RCONPort under [ServerSettings]; Palworld uses RCONEnabled and RCONPort (default 25575) in its settings line, authenticated with the admin password. RCON gives you a remote console without joining the game - useful for scheduled broadcasts and saves before a restart. It is also a port that accepts a password and runs commands, so it deserves a strong password and no wider exposure than necessary; RCON safely covers how.
Updates and version matching
Unreal games check versions strictly. When the developer pushes a patch through Steam, clients update automatically, and from that moment nobody can join a server still on the previous build. The fix is an app_update of the server - on a panel, usually a restart with updates enabled or a reinstall - as soon as the server build is published, which is not always the same minute as the client build.
Updates are also when Unreal servers break most. Pak mods and script mods are built against specific game versions and often fail after a patch until their authors catch up; save formats occasionally change and upgrade the world in a way that cannot be undone. Take a backup before every update, read the patch notes for mentions of saves or server settings, and on a modded server wait for the mods before updating. SteamCMD app IDs and beta branches covers the update mechanics, including test branches some developers publish before a patch goes live.
Memory, CPU and startup time#
Unreal servers are heavier than most. A survival server with a large world commonly wants 8 GB or more, and memory grows with the number of structures and creatures players create. Simulation runs mainly on one game thread with helpers for physics, streaming and networking, so single-core speed matters more than core count; reading game server CPU usage covers why a server can lag at 30 per cent total CPU.
Startup takes a while: loading large .pak files, then the world, can take one to several minutes on first boot. Until the log shows the server is listening, players will get connection failures. That is not a fault, but a panel waiting for a "started" line may show the server as starting for that whole time.
Mods for Unreal games usually come as .pak files placed in a ~mods folder under Content/Paks, or through script loaders such as UE4SS, or - for ARK: Survival Ascended - through the game's own CurseForge integration. What works server-side, what players also need, and how that differs per game is covered in Palworld mods with UE4SS for the most common case.
On RE:NODE, Unreal games such as Palworld, Satisfactory, Abiotic Factor and Insurgency: Sandstorm install from the panel with their ports allocated, and the Startup tab exposes the launch values; the config files are in the file manager and over SFTP like any other server. Plans for these games start at the memory their engines need - Palworld from 8 GB, Satisfactory from 8 GB.
FAQ#
Why do my Unreal server settings reset after a restart?
The server writes its ini files on shutdown, and you edited while it was running. Stop the server, edit, start. If it still resets, check for syntax errors in long lines, and check whether the panel sets that value from a startup variable.
Which folder do I edit, WindowsServer or LinuxServer?
The one matching the operating system the server runs on. A Linux server reads only Saved/Config/LinuxServer/, and a file placed in WindowsServer is ignored, even if it is otherwise perfect.
What port does an Unreal Engine server use?
UDP 7777 by default for game traffic, changed with -port. Many games also use a Steam query port, commonly 27015, and some add RCON or other ports. Check each game's documentation for its full list.
Should I raise NetServerMaxTickRate?
Only if the server has CPU headroom and players notice imprecise movement or hits. Raising it increases CPU load roughly in proportion. On a busy survival server, a stable 30 is better than an unstable 60.
Where are the logs for an Unreal dedicated server?
In <Project>/Saved/Logs/. The current file is named after the project, such as Pal.log, and older ones are kept with timestamps. Crash reports go to Saved/Crashes/.




Comments
Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.