Licence first: where players will find you
Squad's in-game browser has two lists. Servers holding a key from Offworld Industries appear in the main one; everything else, however well run, lands in the Custom Browser. You can host perfectly well without a key. You just won't be in the list most players open first.
If you do want one, you apply through Offworld's licence portal at license.offworldindustries.com. The rules in Offworld's own licensing FAQ, on the official wiki, are short, and worth reading before you rent anything:
- Slots: anything "of less than 60 slots" stays unlicensed.
- Admins: "10 admins per instance" is the stated minimum.
- Naming: never use "Official" in the server name or anywhere around it.
- Game files: failing to run "vanilla" Squad files is listed among the grounds for revoking a licence.
- Access: Offworld's "Developer / QA admin & debug access" is enabled on every licensed server.
A licensed server also keeps five settings in Server.cfg at their required values, the ones the default file marks as mandatory with a licence yet editable without one. They are listed in the files section below. And if your server sits on a dedicated machine you rent or own, the FAQ tells you to apply without choosing one of Offworld's partner hosts on the form.
How much machine a full match needs
Honest answer: Offworld doesn't publish hardware minimums for the server program. The requirements table on the wiki is for the game you play, not the program you host. What Offworld does publish is a standard. Its FAQ says licensing should help players find servers that run on reliable, powerful hardware, the browser shows every server's health as a green, yellow or red light, and keeping it green is on you.
The same FAQ names, as a reason a licence can be pulled, moving a rented server onto weak hardware or packing it in with too many other game servers. That is the case for a machine of your own, and it is our argument, not Offworld's wording: when nobody else's games run on your box, a busy evening on someone else's server can't turn your light yellow. Size it by watching a real 100-player match, then grow the machine if you need to.
The server that fits
Every machine behind our game server hosting is enterprise-grade, HPE on most lines and Dell or Supermicro on a few, and each one sits on a port that isn't shared with any other customer at the access switch. You pick the hardware and the OS. Nothing meters the traffic on that port, so a full server all weekend never turns into a traffic bill.
- Five cities: Miami, New York and San Francisco in the US, Bucharest and Amsterdam in Europe. Go with whichever sits nearest your regulars, after pinging its test address on our locations page.
- A machine already racked is ready about 30 minutes after your order is approved; payment checks can make that longer.
- On rack servers and blades you also get a remote console, so a firewall mistake never locks you out for good.
- One IPv4 address is included, and IPv6 costs nothing extra.
- People answer live chat, email and phone around the clock, every day of the year.
To compare lines side by side, the full dedicated range lists them all with current prices. If you'd rather start from a familiar Linux image, see Linux servers.
Up and running in an evening
These steps assume a fresh Ubuntu or Debian machine and that you log in as your own user with sudo. You'll create a separate account called squadsrv for the game, because Valve tells you not to use the root user for SteamCMD, and the Squad wiki suggests a lower-privilege account.
- Install the 32-bit library SteamCMD needs, plus ufw.
- Create the squadsrv user and download SteamCMD into its home folder.
- Download Squad's server files, logging in anonymously. Valve's docs set the install folder before logging in, so the order matters.
- Tell ufw to handle IPv6 first, then allow SSH and the Squad ports only, and enable ufw before the server ever starts.
sudo apt update && sudo apt install -y lib32gcc-s1 curl ufw
sudo useradd -m -s /bin/bash squadsrv
sudo -u squadsrv bash -c 'mkdir -p /home/squadsrv/steamcmd && cd /home/squadsrv/steamcmd && curl -sqL "https://client-update.steamstatic.com/installer/steamcmd_linux.tar.gz" | tar zxvf -'
sudo -u squadsrv bash -c '/home/squadsrv/steamcmd/steamcmd.sh +force_install_dir /home/squadsrv/squad +login anonymous +app_update 403240 validate +quit'
# firewall: IPv6 on first, before any rule exists
sudo sed -i 's/^IPV6=.*/IPV6=yes/' /etc/default/ufw
grep IPV6 /etc/default/ufw # should now print IPV6=yes
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow proto udp from any to any port 7787:7788
sudo ufw allow proto udp from any to any port 27165:27166
sudo ufw allow proto tcp from any to any port 27165:27166
sudo ufw allow 15000
sudo ufw --force enable
sudo ufw status verbose
Keep the sed line ahead of the rules. Any rule you add while IPV6=no gets no IPv6 twin, and reloading ufw afterwards won't create one, so the machine's IPv6 address would stay wide open.
Keeping it running after a reboot
The wiki's own Linux guide runs the server inside screen and leaves restarts to you. A small systemd service is sturdier: it starts Squad when the machine boots, brings it back if it crashes, and checks for a game update every time it starts. Create /etc/systemd/system/squad.service with this content, then run sudo systemctl daemon-reload and sudo systemctl enable --now squad.
[Unit]
Description=Squad server (squadsrv)
Wants=network-online.target
After=network-online.target
[Service]
User=squadsrv
Group=squadsrv
WorkingDirectory=/home/squadsrv/squad
TimeoutStartSec=1800
ExecStartPre=-/home/squadsrv/steamcmd/steamcmd.sh +force_install_dir /home/squadsrv/squad +login anonymous +app_update 403240 +quit
ExecStart=/home/squadsrv/squad/SquadGameServer.sh Port=7787 QueryPort=27165 beaconport=15000
Restart=on-failure
[Install]
WantedBy=multi-user.target
The minus sign in front of the update command means a failed update won't block the start: Squad launches on the build already installed, and journalctl shows what SteamCMD reported. To follow the log live, use journalctl -u squad -f. On Linux the server wants GLIBC 2.17 or newer, which any current Ubuntu or Debian release has.
The three files you'll actually edit
All of them live in SquadGame/ServerConfig inside the install folder. Game updates leave your edits alone, which also means a brand-new setting won't appear until you add it yourself.
Server.cfg is the server's identity: its name, MaxPlayers, reserved slots, queue size, how maps rotate (a fixed list, random, or a vote at the end of each match) and the tags that help players filter for your style. For a licensed server, these five stay as shipped:
| Setting | Value a licensed server keeps |
|---|---|
AllowCommunityAdminAccess | true |
TKAutoKickEnabled | true |
VehicleKitRequirementDisabled | false |
AutoTKBanNumberTKs | 7 |
AutoTKBanTime | 300 |
Admins.cfg is your staff list. You describe roles once, such as a Moderator group allowed to kick, ban and change maps, then attach each person to a role by their SteamID64, the long numeric ID behind a Steam profile. A role with the reserve permission gives friends of the server a guaranteed slot.
Rcon.cfg controls remote admin access on port 21114. Leave its Password= line empty and RCON simply stays off, which is right for most communities. Out of the box IP=0.0.0.0 listens on the public address. If you do switch it on, here is what we advise; this part is ours rather than the wiki's, which only notes that the IP can be changed to another address:
- Change the line to
IP=127.0.0.1, so only the machine itself can connect, and reach it from your PC over SSH, for examplessh -N -L 9114:127.0.0.1:21114 you@your-server, then point your RCON tool at localhost port 9114. - If an admin bot on another machine must connect, keep the public address but allow port 21114 in ufw from that one IP only.
- Write the password into Rcon.cfg rather than passing
RCONPASSWORD=when you start the server: start-up arguments are visible to anyone who runsps, and they end up in shell history. - Lock the file down:
chmod 600 /home/squadsrv/squad/SquadGame/ServerConfig/Rcon.cfg, owned by squadsrv.
Which doors to open, and which to keep shut
- Gameplay traffic: UDP 7787 plus the port above it, 7788.
- Server browser queries: 27165 and 27166, over both TCP and UDP.
- The beacon: 15000, TCP and UDP. If you add a second Squad server, give it a different beacon port; the wiki insists each one is unique.
- RCON, 21114: closed, unless you've chosen one of the options above.
The wiki also mentions that after players join, Squad keeps talking to them on high UDP ports, and that some providers need UDP above 30000 opened. Since ufw tracks connections the server starts itself, we'd only add that rule if players connect and then get dropped.
When a different setup suits you better
If you only want a private match night with a few friends, an unlisted server on a small machine is plenty, and you can skip the licence entirely. Hosting a second milsim game too? Our Arma Reforger walkthrough uses the same approach. One thing we don't do is deal with Offworld for you: the licence application, its admin roster and its rules stay between your community and them.
Questions people ask
- Is the Squad server download free?
- Yes. The dedicated server is its own Steam app, 403240, and SteamCMD fetches it with an anonymous login. You don't need to own the game on the machine or log in to Steam with your own account.
- Will my server show up for everyone without a licence?
- It will run normally, but it appears in the Custom Browser rather than the main server list. To get into the main list you need a licence key from Offworld, which you apply for through their licence portal.
- How many admins and slots does a licensed server need?
- Offworld's FAQ asks for a minimum of 10 admins for each instance and at least 60 player slots. It also asks for vanilla game files and forbids calling your server Official. Check the current FAQ before applying, since Offworld can update its rules.
- Can I put Squad on a Linux server?
- Yes. The server has a Linux build that needs a 64-bit system with GLIBC 2.17 or newer. Run it under its own user rather than root and start it with systemd so it survives reboots.
- What's the safest way to use RCON?
- Keep it off unless you need it. When you do, bind it to 127.0.0.1 and reach it by forwarding a port over SSH, or open the port only to the one machine that needs it. Store the password in Rcon.cfg with chmod 600 instead of typing it on the command line.
- How do I pick a city for the server?
- Choose the location nearest to most of your regular players, since distance adds latency for everyone. Each of our five sites has a test IP you can ping from home before you order.