How to Set Up a Squad Dedicated Server
A Squad server needs more than a running process: the right listing, open ports and config files that give you admin control. This guide covers it in the order that saves rework, from choosing custom or licensed to installing with SteamCMD, opening every port and editing the ServerConfig files before you invite anyone.
Licensed and custom servers are not just different labels. They appear in different browser tabs and the licence rules change what host, hardware, password use and admin staffing are allowed.
Use SteamCMD with app 403240 and a simple start line. A lot of first-time setup trouble comes from missing prerequisites or trying to launch while the Steam client is still open.
Squad needs more than one public port. Game, query, beacon and RCON ports each come in their own set, and players also use high UDP ports after the first handshake. Open them all before you start troubleshooting anything else.
You do not need to build a config tree by hand. The important work is editing the files in SquadGame/ServerConfig so the server advertises properly, gives you admin access and exposes RCON only if you want it.
Decide: licensed or custom
This is the first decision because it changes the whole setup target. A custom server has fewer rules, but players must find it in the Custom Servers tab. A licensed server appears in the primary server browser, which is better for discovery, but it must follow Offworld’s licence rules from day one.
Those rules are not cosmetic. Licensed servers must remain public, cannot stay password locked, need at least 10 admins per server, cannot be licensed on a VM, VPS or VDS, and must keep server performance healthy: Offworld asks licence holders to stay above 35 TPS, and a server below 15 TPS is at risk of losing its licence. If you plan a private event box, a test box, a VM, or a lightly staffed community server, choose custom first and save yourself a rebuild later. If your goal is a public community server in the main browser, make sure the hosting plan and admin team actually fit the licence before you install.
Hardware sizing and TPS headroom are covered properly in our Squad server requirements guide, so this guide will not repeat the full sizing discussion. The important part here is simple: the licence choice affects what kind of machine and hosting arrangement is acceptable, not just how the server is listed.
| Applies to the server? | Custom server | Licensed server |
|---|---|---|
| Listed in the main Server Browser tab | No | Yes |
| Listed in the Custom Servers tab | Yes | No |
| Can run on a VPS or virtual machine | Yes | No |
| Can be password-protected | Yes | No |
| At least 10 admins per server | No | Yes |
| 8 GB RAM minimum per server | No | Yes |
| Must stay above 35 TPS (green health) | No | Yes |
| Reapply after changing host or hardware | No | Yes |
- Custom server: appears in the Custom Servers tab, can be used for private or experimental setups, and does not carry the licensed-server obligations.
- Licensed server: appears in the main server browser, must stay public, needs at least 10 admins, must follow the licence rules for hardware and conduct, and needs a fresh application if hardware, host or ownership changes.
- Mods: if you plan to go licensed, workshop mods must be performant and work on both Linux and Windows.
The setup order that saves rework
The cleanest order is: pick licensed or custom, install, open ports, edit ServerConfig, then do first-start checks. What you are avoiding is false progress: a server process can launch on defaults, yet still be invisible, unmanageable or impossible to join from outside.
Sets browser tab, host and rules
anonymous login + validate
27165–27166, 21114, UDP 30000+
Rcon.cfg, messages
- Listed in the right browser tab
- Name and tags look right
- Your SteamID64 has admin rights
- RCON connects (if enabled)
- Choose licensed or custom. This sets your browser tab, password rules, admin requirement and acceptable hosting platform.
- Install the server files. Use the dedicated app ID, not the client. Keep the install path simple so updates and scripts stay readable.
- Open and forward ports. Do this before heavy troubleshooting. Network mistakes often look like config mistakes.
- Edit day-one config files. Do not wait for first boot expecting it to generate something special you must author from scratch. The important files already live under
SquadGame/ServerConfig/; the real task is editing them before players arrive. - Start and verify. Check browser visibility, admin permissions and RCON. Only then invite players.
That order works because each step removes a whole class of failure. First identity, then files, then network, then permissions.
Install on Windows
On Windows, make sure the machine has the required runtimes first: Visual C++ Redistributables 2013, 2015 and the latest x64 package, plus the DirectX End-User Runtimes (June 2010). Missing prerequisites tend to waste time because the server may fail before you even reach the useful networking and config checks.
Install SteamCMD somewhere predictable, then use the standard update script. This pulls the dedicated server with anonymous login and validates the files, which is worth doing on a first install because it rules out half-downloaded content.
@ShutdownOnFailedCommand 1 @NoPromptForPassword 1 force_install_dir ../squad_server login anonymous app_update 403240 validate quit
Save that as update_squad.txt, then call it from a batch file and start the server executable with your launch parameters:
SET STEAMCMD=C:\steamcmd\steamcmd.exe SET SQUADSERVER=C:\squad\SquadGame\Binaries\Win64\SquadGameServer.exe SET UPDATESCRIPT=C:\steamcmd\update_squad.txt start %STEAMCMD% +runscript %UPDATESCRIPT% start %SQUADSERVER% Port=7787 QueryPort=27165 FIXEDMAXPLAYERS=80 beaconport=15000 RANDOM=NONE -log
Why this matters: SteamCMD handles updates and validation, while the second line gives the server its network identity. If the game port or query port is wrong later, players cannot discover or join it no matter how good the rest of the config is. -log is useful on a first setup because it gives you immediate errors instead of silent failure.
Also allow SquadGameServer.exe through Windows Firewall. A local firewall block can mimic a router or provider issue, so clear the machine-level block before you start testing port forwarding.
Install on Linux
On Linux, start with a non-root user for the server. That does not make the server faster; it makes it safer. If the game process, a script or a mod misbehaves, it is contained to that user’s permissions instead of having full system access.
You need a 64-bit system with GLIBC 2.17 or higher. On Debian or Ubuntu, install the usual helper packages first:
apt-get install screen lib32gcc-s1
Then download SteamCMD, create the update script, and run it:
printf %s\\n "login anonymous" "force_install_dir server1" "app_update 403240 validate" "quit" > update_squad.txt
Save the update and start lines together as startserver1.sh and make it executable with chmod +x startserver1.sh. Each run then updates the files before the server starts:
./steamcmd.sh +runscript ./update_squad.txt cd server1 ./SquadGameServer.sh Port=7787 QueryPort=27165 FIXEDMAXPLAYERS=80 RANDOM=NONE
Use screen so the server keeps running after you close SSH:
screen -dmS server1 ./startserver1.sh screen -r server1
Detach with Ctrl-A then Ctrl-D, and stop the server with Ctrl+C inside the screen session. The trade-off is simple: screen is quick and works well for first deployment, but it does not restart the server on reboot. If you want proper boot-time recovery, move on to a service later.
If you prefer containers, there is a Docker image for Squad. Host networking is the important part here because Squad uses several fixed ports plus high UDP ports after the initial connection, and host mode avoids confusing remaps.
docker run -d --restart=unless-stopped --net=host --name=squad-dedicated cm2network/squad
If you use Docker, bind-mount the data directory so your config survives deleting the container: -v ~/squadsrv:/home/steam/squad-dedicated/. The config path inside the container is /home/steam/squad-dedicated/SquadGame/ServerConfig/.
Launch parameters: what each one actually does
Squad’s launch parameters are mostly about network binding and load limits. A few of them have no performance impact at all, while others directly affect how much work the server is allowed to take on.
- Port is the game port. This is the main UDP entry point for players. It is not a performance setting; it is an address. If two instances try to use the same value, one will fail or become unreachable.
- QueryPort is the Steam query port. This is what browser discovery and status queries depend on. If it is wrong or blocked, the server can be running but not list properly.
- beaconport is only worth changing when you run more than one server on the same machine. Each instance needs a unique value, with +5 padding recommended. Treat it as another unique listen socket.
- FIXEDMAXPLAYERS is a hard cap. More players means more replicated state, more bandwidth, and more main-thread work. Raising it increases potential load; lowering it reduces worst-case load but also caps capacity and can increase queue pressure.
- FIXEDMAXTICKRATE sets the maximum tickrate. Higher values ask more from CPU time on the main thread; lower values reduce that demand but can lower update frequency.
- RANDOM changes map rotation behaviour:
ALWAYS,FIRSTorNONE. This is administrative, not a resource setting. - MULTIHOME binds the server to a specific IP. Only use it if the machine has multiple IPs. On a single-IP box, a wrong bind can make the server look dead from the outside even though the process is running.
- -log opens the log window. It is mainly a troubleshooting aid. The cost is minimal, and on first deployment the visibility is worth it.
If you later run several instances on one machine, also look at CPU affinity on Windows or taskset, cgroups or similar controls on Linux. The reason is not that Squad needs exotic tuning; it is that multiple busy instances compete for the same CPU time and drag each other’s TPS down.
Open every required port
Squad is one of those servers where “I opened the main port” is not enough. Discovery, beacons, RCON and follow-on client traffic use separate sockets, and the missed ones are usually the reason a server is visible but not joinable, or joinable by some players but not others.
| Port | Protocol | What it does | What breaks if it is closed |
|---|---|---|---|
| 7787 and 7788 | UDP | Game traffic on Port and Port+1 | Players cannot reach the game itself, even though the server process is running |
| 15000 | UDP and TCP | Beacon traffic | Must be unique per server; a second instance on the same machine needs its own beacon port (+5 spacing is recommended) |
| 27165 and 27166 | UDP and TCP | Steam query on QueryPort and QueryPort+1 | Browser listing and server queries can fail or behave inconsistently |
| 21114 | UDP and TCP | RCON | Remote admin tools cannot connect even if the password is set correctly |
| 30000+ | UDP | Ephemeral per-client UDP after the initial connection | Squad moves each player to a high UDP port after the first connection; some providers’ firewalls block these unless you allow UDP above 30000 |
If the server sits behind a home router, forward these ports to the server machine. If your ISP uses carrier-grade NAT, inbound IPv4 hosting can be impossible for outside players no matter how well you configure the server itself. If you are hosting and playing from the same local network, NAT loopback is required so your own connection can hairpin back to the public address.
Two easy misses: first, close the Steam client before starting the server or it will not run. Second, on the same PC, start the server before you log on to Steam and launch Squad. For a second Squad instance on the same machine, every listen port must be unique: give it its own Port and QueryPort, move RCON from 21114 to 21124, and give beaconport its own value with +5 spacing.
Day-one configuration files
The main config directory is SquadGame/ServerConfig/. On Windows a typical path is C:\servers\squad_server\SquadGame\ServerConfig\. These files are not overwritten by updates, which is useful for preserving your setup, but it also means new settings introduced later must be added manually. If a config starts looking odd after an update, compare against a fresh default file rather than assuming the updater will repair it for you.
| File | What it controls | Edit it on day one? |
|---|---|---|
| Server.cfg | Name, visibility, slots, queue, tags, rules, rotation mode and many server behaviour options | Yes |
| Admins.cfg | Admin groups and SteamID64 assignments | Yes |
| Rcon.cfg | RCON bind IP, port, password, timeout and connection limit | Yes, if you use RCON tools |
| ServerMessages.cfg | Rotating in-server messages, one line per message | Yes |
| MOTD.cfg | Join-time message box shown to every player | Recommended |
| LayerRotation.cfg / LevelRotation.cfg | Your map or layer list, depending on rotation mode | Recommended before public use |
| License.cfg | Licence-related configuration | Only if you are licensed |
Start with Server.cfg. The minimum useful edits are the server name, public visibility, slot count, queue behaviour and tags. If ShouldAdvertise is false, the server is not going to be found properly. If tags are blank, players filtering by language, mode or playstyle will not see you in that category, so an untagged server can look invisible even when it is technically listed.
ServerName="Squad Dedicated Server" ShouldAdvertise=true IsLANMatch=false MaxPlayers=100 NumReservedSlots=0 PublicQueueLimit=25 Tags=language_en mode_aas playstyle_relaxed maprot_voting Rules= MapRotationMode=LayerList RandomizeAtStart=true ServerMessageInterval=300
MaxPlayers, NumReservedSlots and PublicQueueLimit shape how many people can join and how many wait. More slots increase possible load on CPU, RAM and bandwidth; more reserved slots reduce public access but guarantee room for staff or members; larger queues keep interest but can frustrate players if the box is undersized. If you use special characters in ServerName and they show as question marks, copy the character in from a word processor.
Then set up Admins.cfg using SteamID64 values. This is what turns your account from a normal player into someone who can actually manage the server in-game.
Group=SuperAdmin:changemap,cheat,private,balance,chat,kick,ban,config,cameraman,debug,pause Group=Admin:changemap,balance,chat,kick,ban,cameraman,pause Group=Moderator:changemap,chat,kick,ban Group=Whitelist:reserve Admin=<SteamID64>:Admin //comment
The reason to do this before inviting players is obvious once you miss it: without the right group binding, you cannot correct a bad layer, enforce rules, or test permissions properly. For licensed servers, make sure your staffing plan matches the licence rule of at least 10 admins per server.
Rcon.cfg is optional but important if you plan to use external admin tools. An empty password keeps RCON off; once you set one, open the RCON port and test it.
IP=0.0.0.0 Port=21114 Password= MaxConnections=5 SecondsBeforeTimeoutCheck=120
Finally, fill in ServerMessages.cfg with one message per line and use MOTD.cfg for the join-time message box. ServerMessages.cfg is good for repeating rules and contact info every ServerMessageInterval seconds. MOTD.cfg is shown when a player enters; the text does not wrap, and on Linux the filename must be uppercase exactly as MOTD.cfg.
Using a rented game server instead
A rented Squad host usually saves you three bits of labour: the server app is preinstalled or one-click installed, the start line is exposed in a panel, and the required ports are usually preassigned. That removes most of the operating system work, but it does not remove the actual Squad setup. You still need to edit the same files in SquadGame/ServerConfig/, set your launch parameters sensibly, and decide up front whether this is a custom or licensed server.
Before buying, check for practical control rather than marketing labels. You want access to the start parameters, file access to Server.cfg, Admins.cfg and Rcon.cfg, support for extra instances with unique ports if you plan to expand, and a clear answer on whether the service is suitable for licensed Squad if that is your goal. For a broad shortlist, see our best Squad hosting page.
One caution: low-end private/custom tiers can make sense for a passworded test or community box, but do not assume a small plan is a path to licensing later. The licence has its own minimums and hosting restrictions, so treat that as a separate decision rather than an upgrade you can always bolt on afterwards.
If you would rather skip the OS work and compare panels, locations and upgrade options first, use our hosting comparison page and then apply the same config steps from this guide once the server is provisioned.
Compare Squad server hostsFirst start checks and the usual faults
On first boot, do not just confirm that the process is running. Confirm that it is joinable and manageable. For a custom server, check the Custom Servers tab. For a licensed server, check the primary server browser. If you are testing a modded server, do not rely on Find Match for validation: it only shows modded servers if the player already has the mods installed, and it does not show full servers.
Your first checklist is short: the server appears in the correct browser, the server name and tags look right, your SteamID64 has the intended admin group, and RCON connects if you enabled it. If any of those fail, fix them before population starts. It is much easier to correct a visibility or permission mistake with one tester than with a live queue.
| Symptom | Likely cause | First fix |
|---|---|---|
| Server process starts but it is not visible in the browser | ShouldAdvertise=false, wrong browser tab, or query ports are blocked | Set ShouldAdvertise=true, check Custom Servers vs main browser based on licence, then verify QueryPort and QueryPort+1 |
| Server is visible but players cannot join cleanly | Port+1 or UDP 30000+ is not open | Open both the game port and its +1, then allow UDP above 30000 where the provider firewall requires it |
| RCON tool will not connect | Password= is blank or port 21114 is closed | Set a password in Rcon.cfg if you want RCON enabled, then open the RCON port and retry |
| Your admin commands do nothing | Wrong SteamID64 or wrong group assignment in Admins.cfg | Check the SteamID64 format and the exact Admin=<SteamID64>:Group line, then restart the server and reconnect |
| You can host it, but cannot join it from the same network | No NAT loopback on the router | Test from a different network or enable NAT loopback if the router supports it |
| The server refuses to run on the same PC you use for playing | The Steam client is open | Close Steam, start the server first, then log on to Steam and launch Squad |
Squad server FAQ
Do I need a licensed server for people to join?
No. A custom server is still joinable; it simply appears in the Custom Servers tab instead of the primary browser. The licence changes discovery and rules, not whether the server software can accept players.
Can I password-protect a Squad server?
On a custom server, an admin whose group has the private permission can password-protect the server. Licensed servers must remain public, so password locking is not compatible with the licence rules. That is why the licensed-or-custom choice comes first, not later.
Can I run more than one Squad server on the same machine?
Yes, but each instance needs unique values for Port, QueryPort, beaconport and RCON. You also need to think about CPU time because multiple instances compete for the same main-thread resources, which can pull TPS down if they are busy together.
Do game updates overwrite my config files?
No, the config files in SquadGame/ServerConfig/ are not overwritten by updates. That protects your settings, but it also means new options added by an update will not appear automatically in an older file, so compare against a fresh default when something seems missing.
Should I use mods on the first build?
For the first successful deployment, it is usually cleaner to get the base server visible and joinable before adding workshop content. Mods are installed separately, copied into SquadGame/Plugins/Mods, and require a restart; for licensed servers they also need to be performant and work on Linux and Windows.
More Squad server help
Size the hardware for your player count, or compare hosts that run Squad.
Commands, ports and file contents follow the official Squad wiki’s server installation and configuration pages and Offworld Industries’ licensing policy. Game updates and host panels change; where your host’s panel differs, follow it, but keep the same port, launch-parameter and ServerConfig rules.