A Squad server is two problems wearing one coat. The first is administrative: without a licence from Offworld Industries the server runs perfectly well, but it sits in the Custom Servers tab rather than the main browser, and the licence comes with conditions - a slot count inside a specific band, a real admin roster, permanently public - that decide what kind of community you are signing up to run before you have spent a penny on hardware. The second problem is hardware, and it is simpler than it looks. A hundred players, their vehicles and their projectiles are one Unreal Engine game thread. Single-core clock speed sets the tick rate and almost nothing else does. Budget roughly 16 GB of memory, cores you are not sharing with a stranger, 60 GB of fast disk and five open ports, then spend your attention on the licence and the layer rotation.
The licence, and what it actually gets you#
Squad splits its server browser. Licensed servers appear in the primary Server Browser tab. Everything else appears under Custom Servers. Both work. Both show ping, player count and map. The difference is discovery: the main tab is where a player who opens the game and clicks Servers ends up, and the Custom tab is where a player goes when somebody has told them what to look for.
That single fact sets the strategy. If you are running a server for a Discord of forty regulars who join by name, a licence is irrelevant and applying for one is a mistake - you would be taking on obligations for visibility you do not need. If you are trying to build a public 80-slot server from nothing, the licence is the entire point, because nobody is going to find you otherwise.
Applications go through license.offworldindustries.com. The policy is Offworld's and it changes, so read the current version before you plan around it, but at the time of writing the shape of it has been stable for a long while:
- A slot band. Servers under 80 slots are not licensed; they are expected to stay in the Custom browser. Servers advertising over 100 slots are rejected.
- An admin roster. A minimum of ten admins per licensed server, scaling with the number of servers you run, with admins present during peak hours.
- Permanently public. No password, no hiding the server, no switching it private for clan nights. Offworld staff must be able to get in at any time.
- Behaviour. Licensed servers agree to the community rules and can lose the licence for ignoring them.
The licence itself arrives as an ID and a key, which go into SquadGame/ServerConfig/License.cfg in the form the issuing email specifies. Treat the pair like a password: it identifies your organisation to Offworld, it can be regenerated if it leaks, and it does not belong in a screenshot of your config folder or in a public GitHub repository. If you use a hosting panel, the licence lives in a file on the server and not in your billing account, so moving hosts does not cost you the licence - but it does mean anyone with file access has it. That is a good reason to give helpers a subuser with the permissions they need and no more.
A few settings in Server.cfg are marked in the file as required for licensed servers. They are the team-kill auto-kick block and AllowCommunityAdminAccess, covered below. On an unlicensed server you can set them how you like.
What the server needs: CPU, memory and disk#
Squad is built on Unreal Engine, and the authoritative simulation - movement, hit registration, vehicle physics, projectile flight - runs on one game thread. More cores help the operating system, the network threads and anything else on the box, but they do not make the simulation step finish sooner. This is the single most important sizing fact about the game, and it is why two servers with identical RAM can feel completely different.
| Slots | RAM | CPU | Realistic expectation |
|---|---|---|---|
| 20-40, infantry layers | 8-10 GB | 2 fast cores | Comfortable, tick stays high |
| 50-60, mixed layers | 12 GB | 3-4 fast cores | The usual private-community size |
| 80-100, licensed public | 16-20 GB | 4+ fast cores, high clock | Tick is the constraint, not memory |
| Heavily modded, any size | 20-24 GB+ | 4+ fast cores | Depends entirely on the mod set |
- CPU. Clock speed over core count, without exception. A modern desktop-class chip holding above 4.5 GHz on a loaded core is what a full server wants. An older server-class part with 32 slow cores will run a 100-slot Squad server badly.
- Memory. Squad is not especially memory-hungry for what it is. 16 GB covers a full vanilla server with room to spare. Adding memory to a server whose tick rate is sagging changes nothing at all - see CPU or RAM: which one is holding your server back for how to tell which you actually have.
- Disk. The dedicated server install is large and has grown with every major release. Recent versions land somewhere in the 30-60 GB range, before mods, so size a disk at 80 GB if you intend to run Workshop content and check the real figure after your first install rather than trusting any number in a blog post, including this one.
- Shared CPU is the trap. Squad's whole performance profile depends on one thread getting a core whenever it asks. On oversubscribed shared hardware you get a thread that is ready to run and waiting for a slice, which shows up as tick rate that collapses at unpredictable times of day rather than under load. Shared CPU and noisy neighbours is the longer version of that argument.
Layer choice moves the load more than most people expect. A large open map with a full complement of vehicles, helicopters and long sightlines costs considerably more per tick than a close infantry layer on the same server with the same players. If your rotation is all armour layers, size for that, not for the average.
Installing with SteamCMD#
The dedicated server is a free anonymous download, Steam app id 403240. Note that this is not the game's app id - 393380 is the client, and it is also the id you use when pulling Workshop mods, which catches people out.
$ steamcmd +force_install_dir /home/squad/server \ +login anonymous +app_update 403240 validate +quit$ cd /home/squad/server$ ./SquadGameServer.sh Port=7787 QueryPort=27165 beaconport=15000 \ RCONPORT=21114 FIXEDMAXPLAYERS=80 RANDOM=NoneOn Windows the equivalent is SquadGameServer.exe with the same arguments; on a panel-based host you never type this line, because the same parameters appear as fields on the Startup tab and the panel assembles it. Either way the parameters that matter are:
| Parameter | Typical value | What it does |
|---|---|---|
Port | 7787 | Game traffic. The server also binds the next port up |
QueryPort | 27165 | What the server browser talks to |
beaconport | 15000 | Session beacon, used during joins |
RCONPORT | 21114 | Remote console, TCP |
FIXEDMAXPLAYERS | 80 | Hard slot ceiling, independent of MaxPlayers |
MULTIHOME | 0.0.0.0 | Which address to bind when the box has several |
RANDOM | None | Whether the rotation is shuffled at start |
FIXEDMAXTICKRATE | 50 | Target ticks per second |
A first start generates the config folder and then loads the first layer, which on a cold, uncached disk takes a while. Watch the console until the server reports the level loaded and the query port bound. SteamCMD explained covers validate, betas and the update scripts you will want once this is routine.
Server.cfg, line by line#
Everything about the server's identity and rules lives in SquadGame/ServerConfig/Server.cfg. The file is plain Key=Value with // comments, and the shipped version documents itself reasonably well. These are the lines worth understanding:
ServerName="Longshot Tactical | Teamwork or Leave"ShouldAdvertise=trueIsLANMatch=falseMaxPlayers=80NumReservedSlots=4PublicQueueLimit=25MapRotationMode=LayerListRandomizeAtStart=trueUseVoteFactions=falseUseVoteLevel=falseUseVoteLayer=falseAllowTeamChanges=truePreventTeamChangeIfUnbalanced=trueNumPlayersDiffForTeamChanges=3RejoinSquadDelayAfterKick=180ServerMessageInterval=300RecordDemos=falseAllowPublicClientsToRecord=falseTKAutoKickEnabled=trueAutoTKBanNumberTKs=7AutoTKBanTime=300VehicleKitRequirementDisabled=falseAllowCommunityAdminAccess=true| Setting | Default | What it decides |
|---|---|---|
ShouldAdvertise | true | Whether the server appears in the browser at all |
IsLANMatch | false | LAN mode. Set true and nobody outside finds you |
MaxPlayers | 100 | Slot count including reserved slots |
NumReservedSlots | 0 | Slots held for admins and members inside MaxPlayers |
PublicQueueLimit | 25 | Queue size. 0 disables the queue, -1 is unlimited |
MapRotationMode | LayerList | Which rotation file is used, and whether it is shuffled |
RandomizeAtStart | true | Shuffle the rotation on boot |
NumPlayersDiffForTeamChanges | 3 | How lopsided teams may get before switching is blocked |
RejoinSquadDelayAfterKick | 180 | Seconds before a kicked player can rejoin that squad |
ServerMessageInterval | 300 | Seconds between lines from ServerMessages.cfg |
AutoTKBanNumberTKs | 7 | Team kills in a round before an automatic ban |
AutoTKBanTime | 300 | Length of that ban, in minutes |
Two of these bite people. NumReservedSlots comes out of MaxPlayers, it does not add to it: a server with MaxPlayers=80 and NumReservedSlots=4 is a 76-slot public server. And ServerName is what your entire discovery strategy rests on in the Custom browser, because the in-game filter is a substring search - put a distinctive word in it and tell your players that word.
The rest of the folder is a set of single-purpose files: Admins.cfg, Bans.cfg, License.cfg, Motd.cfg, ServerMessages.cfg, Rcon.cfg, LayerRotation.cfg, LevelRotation.cfg, ExcludedLayers.cfg, ExcludedFactions.cfg, VoteConfig.cfg and a few more. The exact set changes between major versions. When a guide tells you to edit a file you do not have, check whether your version renamed it before you create it by hand - a stray config file is ignored silently, which is the worst possible failure mode.
Ports and the firewall#
Squad wants five ports, and all but RCON are UDP. This is where most "the server is running but nobody can see it" tickets end.
| Port | Protocol | Purpose |
|---|---|---|
7787 | UDP | Game traffic |
7788 | UDP | Game traffic, the port above Port |
27165 | UDP | Steam query - the server browser |
27166 | UDP | Query, the port above QueryPort |
15000 | UDP | Session beacon, used while joining |
21114 | TCP | RCON |
Two rules follow. First, the game port and the query port each claim the number above them, so leaving a one-port gap between services on the same machine will collide. If you run two Squad servers on one box, separate them by a clear margin - 7787/27165 and 7797/27175, not 7787 and 7788. Second, after the initial handshake Squad also uses high ephemeral UDP ports for individual client connections, so a firewall that only permits the six numbers above and nothing else outbound-established will produce players who connect and then time out. A stateful firewall that allows established and related traffic handles this correctly without you opening a range.
RCON on TCP is the odd one out and the dangerous one. It is a remote console with full admin powers behind a password that travels in the clear. Restrict it by source address if your firewall can, never reuse a password from anywhere else, and read using RCON safely before you hand the details to a Discord bot. Game server ports explained covers why query ports exist as a separate thing at all and what breaks when only half the pair is reachable.
Admins, groups and RCON#
Admins.cfg is a two-part file: you define groups with a list of permissions, then assign Steam IDs to groups. The file ships with the full list of permission names in its comments, which is the authoritative source for your version.
Group=Admin:changemap,pause,cheat,private,balance,chat,kick,ban,config,cameraman,immune,manageserver,reserve,teamchange,forceteamchange,canseeadminchatGroup=Moderator:kick,ban,chat,teamchange,canseeadminchatGroup=Whitelist:reserveAdmin=76561198012345678:AdminAdmin=76561198087654321:ModeratorAdmin=76561198011112222:WhitelistThe reserve permission is how member whitelisting works: anyone in a group holding reserve can take one of the NumReservedSlots when the server is full. That is the mechanism most communities are actually asking for when they say they want a whitelist, and it needs no plugin.
Rcon.cfg holds the password and the port. Set a long random password, and if the file offers a connection limit, keep it small.
Password=8fJq2tVbn4Rz7Lw1Port=21114Once RCON is up, the admin commands are the same whether you type them in-game with the admin camera or send them down the socket:
| Command | Effect |
|---|---|
ListPlayers | Every connected player with their id and team |
ListSquads | Squads per team with their leaders |
AdminBroadcast <text> | Message on every screen |
AdminWarn <name> <text> | Private warning to one player |
AdminKick <name> <reason> | Kick by name |
AdminKickById <id> <reason> | Kick by the id from ListPlayers |
AdminBan <name> <length> <reason> | Ban, appended to Bans.cfg |
AdminChangeLayer <layer> | Switch layer immediately |
AdminSetNextLayer <layer> | Queue a layer for the next round |
ShowNextMap | What is coming next |
AdminEndMatch | End the round now |
AdminRestartMatch | Restart the current layer |
AdminDisbandSquad <team> <squad> | Break up a squad |
AdminRemovePlayerFromSquad <name> | Remove one player from their squad |
AdminForceTeamChange <name> | Move a player across |
Prefer the ById forms when scripting. Names in Squad contain clan tags, emoji-adjacent characters and spaces, and a partial name match that hits two players is how the wrong person gets banned.
Layers, rotation and voting#
A Squad "level" is a map; a "layer" is a specific version of that map - a game mode, a set of factions, a particular flag configuration. Al Basrah AAS v1 and Al Basrah Invasion v2 are two layers on one level, and they play nothing alike. Rotations are built from one or the other, chosen by MapRotationMode:
LevelListreadsLevelRotation.cfgand picks a layer on that level for you.LayerListreadsLayerRotation.cfgand plays exactly the layers you named, in order.- The
_Randomizedvariants of both shuffle the list.
For a community with opinions, LayerList is the right answer, because it is the only mode that gives you control over how the night flows. A rotation that alternates a heavy armour layer with a close infantry one both plays better and costs less CPU on average than three vehicle-dense layers in a row.
Sumari_AAS_v1GooseBay_Invasion_v1Yehorivka_RAAS_v4Narva_AAS_v1Fallujah_RAAS_v1Layer names must match the game's internal names exactly, and they change between versions when a map is reworked. A typo does not throw an error; the entry is skipped, and a rotation full of typos quietly becomes a two-map rotation. After any Squad update, restart and watch the log for the layers it loads.
ExcludedLayers.cfg and ExcludedLevels.cfg are the subtractive version - useful with LevelList when you want everything except the three maps your players hate. VoteConfig.cfg tunes end-of-round voting, which only happens if you switched UseVoteLevel or UseVoteLayer on. Voting is popular with players and slowly narrows a rotation to whichever three maps win every time, so it is worth deciding deliberately rather than by default.
Mods from the Workshop#
Squad mods come from the Steam Workshop under the game's app id, 393380. Server-side they are downloaded with SteamCMD into SquadGame/Plugins/Mods, and most panels expose a field where you paste a comma-separated list of Workshop ids and the download happens on the next start.
$ steamcmd +force_install_dir /home/squad/server/SquadGame/Plugins/Mods \ +login anonymous +workshop_download_item 393380 2240351000 +quitThree things about Squad mods that are not negotiable:
- Every player needs the same mods at the same version. There is no client-optional mod set for gameplay content. A player who has not subscribed, or who has an older version, cannot join. This is the main reason modded Squad servers stay small.
- Mods can be enormous. Map packs run to several gigabytes each, both on your disk and on every player's. A server with four large mod packs asks a new player for a download before their first round, and plenty of them will not wait.
- A game update breaks mods until their authors rebuild them. Squad's major versions change the engine build, and a mod compiled against the old one will not load. Stop the server before an update, do not let a modded server auto-update on patch day, and keep the previous working mod list written down. What to do when a mod update breaks is the general playbook; Steam Workshop mods on dedicated servers covers how the download side works when it goes wrong.
Layer names from a mod go in LayerRotation.cfg exactly like vanilla ones, and they are the most common source of the silent-skip problem above.
Tick rate: reading it and keeping it#
The server browser prints a tick rate per server, and it is the most honest number in Squad hosting. 50 Hz is the target the game is built around. A healthy server holds near it. A struggling one sags into the twenties, at which point shooting feels inconsistent, vehicles judder and infantry appear to teleport around corners - exactly the symptoms people blame on their own ping.
What moves that number, in order:
- Player count. Tick cost rises with the number of players the server must simulate and inform. The step from 60 to 100 is not linear.
- Vehicles and projectiles. Physics is the expensive part. An armour-heavy layer with helicopters is several times the work of an infantry layer with the same headcount.
- Single-core clock. Everything above lands on one thread. This is the only hardware lever that raises the ceiling.
- Mods. Custom vehicles, weapons and large maps all add per-tick work.
There is no setting that makes a CPU-bound Squad server fast. Your options are fewer slots, a lighter rotation, fewer mods, or a faster core, and communities that refuse the first three end up buying the fourth. The 80-slot server that holds 50 Hz all evening is a better server than the 100-slot one that drops to 22 at prime time, and players can tell the difference even when they cannot name it.
Watch the CPU graph alongside the tick rate rather than either alone. A game thread pinned at the limit of its allocation with memory flat is the textbook CPU-bound picture, and it is described in reading a server load graph and in more depth in what tick rate actually means. If you are renting a whole machine, the dedicated machines page states the CPU model rather than a marketing tier, which is the only way to judge clock speed before you buy.
Backups, updates and troubleshooting#
Squad has no world save to lose - the state that matters is your configuration, your ban list and your admin roster. That is a small amount of text and it is also the product of months of work, so back up SquadGame/ServerConfig/ before every change and keep the copy somewhere other than the server. Backups that actually restore makes the case for occasionally proving the copy works.
Updates arrive on Offworld's schedule and are mandatory: a client on the new version cannot join a server on the old one. Stop the server, run the SteamCMD update with validate, start it, then check the layer rotation loaded and any mods came back.
The server is not in the browser at all. Check ShouldAdvertise=true and IsLANMatch=false, then the query port. A running game port with a blocked query port produces exactly this: players who join by direct connect succeed while the browser shows nothing.
It appears under Custom Servers but you expected the main tab. That is the licence, or a licence that has not been applied correctly in License.cfg. There is no setting that moves you.
Players connect and then time out at 100%. Usually the beacon port or the ephemeral range. Check 15000 is open UDP and that the firewall permits established connections.
Tick rate is fine until a specific layer loads. Rotation, not hardware. Note which layer, and compare vehicle counts. Drop it or move it to a quieter slot in the rotation.
The rotation is only playing two maps. Layer names that no longer exist are skipped silently. Diff your LayerRotation.cfg against the layer list for the current version.
RCON connects then drops immediately. Wrong password, or a connection limit already used by a tool you forgot about. Squad's RCON does not queue connections politely.
The server restarts on its own. Either the process is being stopped from outside - a memory limit, a supervisor, a watchdog - or it crashed. The console says which, and why your game server keeps restarting walks through telling them apart.
FAQ#
Do I need a Squad server licence to run a server?
No. An unlicensed server runs with full functionality and appears in the Custom Servers tab of the browser. The licence moves you to the main tab, which matters only if you need strangers to find you. For a clan or Discord community that joins by name, it is an obligation with no benefit.
How many slots should I run?
Fewer than you want. Tick rate falls as slots rise, and a 60-slot server that holds 50 Hz plays better than a 100-slot server that drops into the twenties. If you intend to apply for a licence you need at least 80 slots, so size the CPU for 80 before you commit to the application.
Why is my Squad server not showing in the server browser?
In order of likelihood: the query port is closed or the wrong number, ShouldAdvertise is false, or IsLANMatch is true. Test with a direct connect first - if that works, the game port is fine and the problem is the query side.
Does more RAM improve Squad tick rate?
No. Squad's tick rate is set by how fast one CPU core can finish a simulation step. Memory affects whether the server runs at all and whether it survives a big modded map, not how it feels. Add memory when the process is being killed for using too much, not when it is stuttering.
Can I run two Squad servers on one machine?
Yes, if the CPU can feed two game threads and you separate the ports properly. Give each instance its own install directory and leave a gap between port numbers, because both the game port and the query port claim the number above them.
Do players need to install mods to join a modded server?
Yes. Squad has no client-optional gameplay mods - everyone needs the same Workshop items at the same version. Plan for a multi-gigabyte download standing between a new player and their first round, and keep the mod list short if you want casual traffic.




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.