Squad Wiki
Register
Advertisement

Terminology

Before configuring your server, it is important to understand a few terms. Some of these terms have been newly introduced or changed their meaning in release 2.0. To prevent confusion and misunderstand, we are explaining these terms with their current meaning for server administration (beware, some of these terms have again different meanings for Modding).

  • What we call a map, for example Al Basrah, consists of static elements such as the landscape, buildings, foliage and more.
  • OWI is now using the term level for exactly the same meaning, therefore the term "level" has exactly the same meaning as "map".
  • Next, the term layer is a subdivision of a level. A layer defines gameplay elements such as which game mode is played, the number and locations of flags, time of day, etc. A level can consists of multiple layers, for example "Al Basrah AAS v1" or "Al Basrah Insurgency v1" are two different layers of the level "Al Basrah".
  • Finally, the new term "faction setup", also called divisions, refers to different vehicle asset configurations for different factions,. Previously, the vehicle assets and factions were fixed for a layer; now these can be set independently by server admins for some game modes.

Command Line

All of the following parameters can be added to your starting command line for additional configuration. Be careful to avoid typos when adding these!

MULTIHOME = The IP Address you want to bind the server to. (Use only if you have multiple IPs on your server) (Optional)

Port = Game port

QueryPort = Steam query port

beaconport = Only odjust if you have more than one server. Each server MUST unique. Recommended padding is +5

RANDOM = Randomize map rotation (ALWAYS, FIRST, NONE) (Optional)

FIXEDMAXPLAYERS = Player count cannot go higher than this (Optional)

FIXEDMAXTICKRATE = MAX server tickrate (Optional)

PREFERPREPROCESSOR = CPU Affinity (Optional) UNTESTED

-log = Display a log window on the server (Optional)

-fullcrashdump = Save a full dump file on crash (can become quite large sometimes) (Optional)

The following line implements additional start parameters as an example.

start SquadGame\Binaries\Win64\SquadGameServer.exe MULTIHOME=1.2.3.4 Port=7787 QueryPort=27165 beaconport=15000 FIXEDMAXPLAYERS=100 FIXEDMAXTICKRATE=40 RANDOM=NONE -log

Set processor Affinity

Windows

You can use the start-command allows you to set the core thread affinity for each server (if you run several servers on one machine):

start /AFFINITY C /WAIT SquadGame\Binaries\Win64\SquadGameServer.exe Port=7787 QueryPort=27165 beaconport=15000 FIXEDMAXPLAYERS=80 RANDOM=ALWAYS -log

Calculating AFFINITY

Squad Affinity Calculator

Open your Windows calculator.

Step 1 - Click menu icon

Step 2 - Enable "programmer" mode

Step 3 - Toggle bit keypad

Step 4 - Click until you see BYTE which corresponds to 4 core 8 threads CPU (You can select other values to correspond your CPU).

Step 5 - Click on HEX

Core thread count starts from 0, you can see which number is responsible for which core thread on the third image. 1 means core thread is selected, 0 means core thread is ignored.

Result you need is shown in "HEX", if you have all core thread selected 0-7 you will see "FF" as your result. For our /AFFINITY parameter we need then "FF" to set the core affinity to all core threads. If you want to select only core threads 4-7 (0000 1111) your result should be "F".

Linux

Linux users can also set their core affinity by using the "taskset" command in their start line. Keep in mind that core threads are zero-indexed. This means if you have 8 processor threads, you can assign cores 0-7.

cd server1; taskset -c 0-3 ./SquadGameServer.sh Port=7787 QueryPort=27165 beaconport=15000 FIXEDMAXPLAYERS=80 RANDOM=NONE

Files

Configuration files are located in C:\servers\squad_server\SquadGame\ServerConfig\ Configuration files located in this directory are

Admins.cfg
Bans.cfg
CustomOptions.cfg
ExcludedFactions.cfg
ExcludedFactionSetups.cfg
ExcludedLayers.cfg
ExcludedLevels.cfg
LayerRotation.cfg
LevelRotation.cfg
License.cfg
Motd.cfg (optional)
Rcon.cfg
RemoteAdminListHosts.cfg
RemoteBanListHosts.cfg
Server.cfg
ServerMessages.cfg
VoteConfig.cfg -- Note Needed

Adding Admins in Admins.cfg

Admins are now created by groups and groups are assigned to admins. You can create as many groups as you want with any types of permissions. All the permissions will be in the config file commented out. These files will not be over writeable so when we add new permissions you will need to check here or the wiki for updates. The below are just examples. Please note that it needs to be SteamId64. You can convert your ID at steamid.io/lookup/

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

//Moderator
Admin=76561115695178:Moderator //Player 5
Admin=8915618948911:Moderator //Player 4

//Admins
Admin=7894591951519:Admin //Player 3
Admin=7895365435431:Admin //Player 8792

//SuperAdmins
Admin=7984591565611:SuperAdmin //Player 2
Admin=7917236241624:SuperAdmin //Player 1 

//WhitelistSlots
Admin=7984591565611:Whitelist // Player 123
Admin=7984591565523:Whitelist // Player 156

A list of group permission are as follows:

//// Valid access levels are as follows													 
////		startvote - not used														 
////		changemap																	 
////		pause - Pause server gameplay												 
////		cheat - Use server cheat commands											 
////		private	- Password protect server											 
////		balance	- Group Ignores server team balance										 
////		chat - Admin chat and Server broadcast										 
////		kick																		 
////		ban																		  	 
////		config - Change server config												 
////		cameraman - Admin spectate mode												 
////		immune - Cannot be kicked / banned										 
////		manageserver - Shutdown server												 
////		featuretest - Any features added for testing by dev team					 
////		reserve - Reserve slot														 
////		demos - Record Demos (not working)											 
////		debug - show admin stats command and other debugging info		
////		teamchange - No timer limits on team change			 
////		forceteamchange - Can issue the ForceTeamChange command
////		canseeadminchat - This group can see the admin chat and teamkill/admin-join notifications

Bans in Bans.cfg

This is where your bans will go. They need to be in the format of <banned player steamid>:<unix timestamp of ban expiration>. Optionally info about admin that issued the ban and comment about the ban can be included <admin nickname> [SteamID <admin steamid>] Banned:<banned player steamid>:<unix timestamp of ban expiration> //<ban comment> (this will be included by default when using ingame or RCON ban commands).

An example of Bans.cfg contents with valid bans:

John [SteamID 76561198000000000] Banned:76561198000000001:0 //Permanent ban for cheating
John [SteamID 76561198000000000] Banned:76561198000000002:1623366856 //Team killing
76561198000000003:0 //Manually added ban
76561198000000004:0

Make sure if you manually add / remove a ban that the file ends with a new line character. Each ban goes on its own line.

If you want to check how long a user is still banned or create a time ban you can use converter tools like this:

- https://www.epochconverter.com

Custom Options

Modders are able to place custom options for their mods here.

If you are wanting to use the new seed game mode settings you will have to use the template below.

The content of CustomOptions.cfg is sent to clients as other settings.

Make sure to remove the # to activate these options.

# Here you can control mod-specific server settings. Mods can use blueprint node "GetCustomServerSetting" to gather the contents of this file. 
# This section used to exist in server.cfg

// Amount of players needed to start Pre-Live countdown, integer. Default=50.
#SeedPlayersThreshold=50

// After reaching the SeedPlayersThreshold, if some players disconnect but the current player count stays at or above this value, don’t stop the
// Pre-Live countdown, integer. Should be greater than zero and less than SeedPlayersThreshold to be considered enabled. default=45. 
#SeedMinimumPlayersToLive=45

// Match length in seconds, integer. Default=21600 (6 hours)
#SeedMatchLengthSeconds=21600

// Enable or Disable availability of all kits during seeding phase, boolean (valid values are 0 and 1), default=1
#SeedAllKitsAvailable=1

// Initial number of tickets for both teams, integer. Default=100
#SeedInitialTickets=100

// Length of the pre-live countdown, float. Default=60.0
#SeedSecondsBeforeLive=60.0

// All default values listed above will be used if the corresponding setting is not present on config file or commented out.

Excluded Factions

Excluding factions from the game can be done here. This can be done for mods and Vanilla. The Excluded factions must be listed as the Faction Id, the Vanilla ones are listed below. It is not possible to run a layer with any of excluded factions. For layers without specific factions any excluded factions will not be loaded.

# EXCLUDED FACTION LIST : The listed factions must use Faction ID, which is different from UI display names !

//AUS
//CAF
//GB
//INS
//MEA
//MIL
//RUS
//US
//USMC


Excluded Faction Setups

Excluding setups from the game can be done here. If a setup is excluded it will not be loaded on maps without specific factions.

# EXCLUDED FACTION LIST : The listed factions must use Faction ID, which is different from UI display names !

//ADF
//BAF
//CAF
//IMF
//INS
//MEA
//PLA
//PLANMC
//RGF
//VDV
//USA
//USMC

Excluded Layers

Preventing any layer from being loaded by the server can be done here. The excluded layers will not show up in AdminListLayer.

# v3.0 EXCLUDED LAYER LIST
// NOTE: This list uses Layer ID names, which is different from UI display names.
// NOTE: this file is used for servers running with Layer voting. This setting can be found in your Server.cfg file (make sure to use a fresh one as your basis).
// Specifying a layer here will hide it from the list when you use "adminchangelayer" or "adminsetnextlayer"
// NOTE: in-line comments will not work in this config until further notice. Comment lines should be in separate lines, if used.

AlBasrah_TA_v1
Tallil_TA_v1
Narva_TA_v1
Yehorivka_TA_v1

LashkarValley_TC_v3

JensensRange_GB-MIL
JensensRange_US-RUS
JensensRange_USMC-MEA
JensensRange_CAF-INS
JensensRange_AUS-RUS

PacificProvingGrounds_USMC-RUS
PacificProvingGrounds_USMC-MEA

Tutorial_Helicopter
Tutorial_Infantry

Excluded Levels

Preventing any level from being loaded by the server can be done here. The excluded levels will not show up in AdminListLevels.

# LEVEL ROTATION : These must be Level ID's, which are different from UI display names !
// NOTE: this file is used for servers running in MapRotationMode=LevelList, running in order, or for servers running in MapRotationMode=LevelList_Randomized, where the below layers are rotated randomly. This setting can be found in your Server.cfg file (make sure to use a fresh one as your basis).
// NOTE: in-line comments will not work in this config until further notice. Comment lines should be in separate lines, if used.


AlBasrah
Anvil
Belaya
BlackCoast
Chora
Fallujah
FoolsRoad
GooseBay
Gorodok
Harju
Kamdesh
Kohat
Kokan
Lashkar
Logar
Manicouagan
Mestia
Mutaha
Narva
PacificProvingGrounds
Skorpo
Sumari
Tallil
Yehorivka

Map Rotation Modes

With the 2.0 update Map rotation was split into two modes, Layer, and Level. Layer Rotation works the same as the 1.0 MapRotation.cfg.

Level Rotation

In order to use Level Rotation the setting "MapRotationMode=" must be set to LevelList or LevelList_Randomized in Server.cfg.

# v3.0 LEVEL ROTATION : These must be Level ID's, which are different from UI display names !
// NOTE: this file is used for servers running in MapRotationMode=LevelList, running in order, or for servers running in MapRotationMode=LevelList_Randomized, where the below layers are rotated randomly. This setting can be found in your Server.cfg file (make sure to use a fresh one as your basis).
// NOTE: in-line comments will not work in this config until further notice. Comment lines should be in separate lines, if used.


AlBasrah
Anvil
Belaya
BlackCoast
Chora
Fallujah
FoolsRoad
GooseBay
Gorodok
Harju
Kamdesh
Kohat
Kokan
Lashkar
Logar
Manic-5
Mestia
Mutaha
Narva
Skorpo
Sumari
Tallil
Yehorivka

Layer Rotation

A layer rotation is the order of specific layers that will be played. In order to use Layer Rotation the setting "MapRotationMode=" must be set to LayerList or LayerList_Randomized in Server.cfg.

// LAYER_ROTATION: These must be Layer_Id's; those_are_different from_display names! I.e. 'Belaya_AAS_v1' is correct, 'Belaya AAS v1' is not.
// NOTE: this file is used for servers running in MapRotationMode=LayerList, running in order, or for servers running in MapRotationMode=LayerList_Randomized, where the below layers are rotated randomly. This setting can be found in your Server.cfg file (make sure to use a fresh one as your basis).
// NOTE: in-line comments will not work in this config until further notice. Comment lines should be in separate lines, if used.

// AlBasrah_TA_v1
// Narva_TA_v1
// Tallil_TA_v1
// Yehorivka_TA_v1

AlBasrah_AAS_v1
AlBasrah_AAS_v2
AlBasrah_AAS_v3
AlBasrah_Insurgency_v1
AlBasrah_Invasion_v1
AlBasrah_Invasion_v2
AlBasrah_Invasion_v3
AlBasrah_Invasion_v4
AlBasrah_Invasion_v5
AlBasrah_Invasion_v6
AlBasrah_Invasion_v7
AlBasrah_Invasion_v8
AlBasrah_Invasion_v9
AlBasrah_RAAS_v1
AlBasrah_Seed_v1
AlBasrah_Skirmish_v1
AlBasrah_Skirmish_v2
AlBasrah_TC_v1
AlBasrah_TC_v2

Anvil_AAS_v1
Anvil_AAS_v2
Anvil_Invasion_v1
Anvil_Invasion_v2
Anvil_RAAS_v1
Anvil_RAAS_v2
Anvil_RAAS_v3
Anvil_RAAS_v4
Anvil_RAAS_v5
Anvil_Skirmish_v1
Anvil_TC_v1

Belaya_AAS_v1
Belaya_AAS_v2
Belaya_AAS_v3
Belaya_Invasion_v1
Belaya_Invasion_v2
Belaya_Invasion_v3
Belaya_RAAS_v1
Belaya_RAAS_v2
Belaya_RAAS_v3
Belaya_RAAS_v4
Belaya_RAAS_v5
Belaya_Skirmish_v1
Belaya_TC_v1

BlackCoast_AAS_v1
BlackCoast_AAS_v2
BlackCoast_Invasion_v1
BlackCoast_Invasion_v2
BlackCoast_Invasion_v3
BlackCoast_Invasion_v4
BlackCoast_Invasion_v5
BlackCoast_Invasion_v6
BlackCoast_RAAS_v1
BlackCoast_RAAS_v2
BlackCoast_RAAS_v3
BlackCoast_RAAS_v4
BlackCoast_RAAS_v5
BlackCoast_RAAS_v6
BlackCoast_Seed_v1
BlackCoast_Seed_v2
BlackCoast_Skirmish_v1

Chora_AAS_v1
Chora_AAS_v2
Chora_AAS_v3
Chora_AAS_v4
Chora_AAS_v5
Chora_AAS_v6
Chora_AAS_v7
Chora_Insurgency_v1
Chora_Invasion_v1
Chora_Invasion_v2
Chora_RAAS_v1
Chora_RAAS_v2
Chora_RAAS_v3
Chora_RAAS_v4
Chora_RAAS_v5
Chora_Skirmish_v1
Chora_TC_v1

Fallujah_AAS_v1
Fallujah_AAS_v2
Fallujah_Insurgency_v1
Fallujah_Invasion_v1
Fallujah_Invasion_v2
Fallujah_Invasion_v3
Fallujah_Invasion_v4
Fallujah_Invasion_v5
Fallujah_Invasion_v6
Fallujah_Invasion_v7
Fallujah_RAAS_v1
Fallujah_RAAS_v2
Fallujah_RAAS_v3
Fallujah_RAAS_v4
Fallujah_RAAS_v5
Fallujah_RAAS_v6
Fallujah_RAAS_v7
Fallujah_RAAS_v8
Fallujah_Seed_v1
Fallujah_Seed_v2
Fallujah_Skirmish_v1
Fallujah_Skirmish_v2
Fallujah_TC_v1
Fallujah_TC_v2

FoolsRoad_AAS_v1
FoolsRoad_AAS_v2
FoolsRoad_Destruction_v1
FoolsRoad_Invasion_v1
FoolsRoad_RAAS_v1
FoolsRoad_RAAS_v2
FoolsRoad_RAAS_v3
FoolsRoad_RAAS_v4
FoolsRoad_RAAS_v5
FoolsRoad_Skirmish_v1
FoolsRoad_Skirmish_v2
FoolsRoad_TC_v1

GooseBay_AAS_v1
GooseBay_AAS_v2
GooseBay_Invasion_v1
GooseBay_Invasion_v2
GooseBay_Invasion_v3
GooseBay_Invasion_v4
GooseBay_Invasion_v5
GooseBay_RAAS_v1
GooseBay_RAAS_v2
GooseBay_RAAS_v3
GooseBay_RAAS_v4
GooseBay_Seed_v1
GooseBay_Skirmish_v1

Gorodok_AAS_v1
Gorodok_AAS_v2
Gorodok_AAS_v3
Gorodok_AAS_v4
Gorodok_Destruction_v1
Gorodok_Insurgency_v1
Gorodok_Invasion_v1
Gorodok_Invasion_v2
Gorodok_Invasion_v3
Gorodok_Invasion_v4
Gorodok_RAAS_v01
Gorodok_RAAS_v02
Gorodok_RAAS_v03
Gorodok_RAAS_v04
Gorodok_RAAS_v05
Gorodok_RAAS_v06
Gorodok_RAAS_v07
Gorodok_RAAS_v08
Gorodok_RAAS_v09
Gorodok_RAAS_v10
Gorodok_RAAS_v11
Gorodok_RAAS_v12
Gorodok_RAAS_v13
Gorodok_Skirmish_v1
Gorodok_TC_v1
Gorodok_TC_v2

Harju_AAS_v1
Harju_AAS_v2
Harju_AAS_v3
Harju_Invasion_v1
Harju_Invasion_v2
Harju_Invasion_v3
Harju_Invasion_v4
Harju_Invasion_v5
Harju_RAAS_v1
Harju_RAAS_v2
Harju_RAAS_v3
Harju_RAAS_v4
Harju_RAAS_v5
Harju_RAAS_v6
Harju_Seed_v1
Harju_Skirmish_v1
Harju_Skirmish_v2

// Training layers are not intended for regular servers.
// JensensRange_ADF-PLA
// JensensRange_BAF-IMF
// JensensRange_CAF-INS
// JensensRange_PLANMC-VDV
// JensensRange_USA-RGF
// JensensRange_USA-TLF
// JensensRange_USMC-MEA

Kamdesh_AAS_v1
Kamdesh_Insurgency_v1
Kamdesh_Insurgency_v2
Kamdesh_Invasion_v1
Kamdesh_Invasion_v2
Kamdesh_Invasion_v3
Kamdesh_Invasion_v4
Kamdesh_Invasion_v5
Kamdesh_Invasion_v6
Kamdesh_Invasion_v7
Kamdesh_RAAS_v1
Kamdesh_RAAS_v2
Kamdesh_RAAS_v3
Kamdesh_RAAS_v4
Kamdesh_RAAS_v5
Kamdesh_RAAS_v6
Kamdesh_RAAS_v7
Kamdesh_Skirmish_v1
Kamdesh_TC_v1
Kamdesh_TC_v2
Kamdesh_TC_v3
Kamdesh_TC_v4

Kohat_AAS_v1
Kohat_AAS_v2
Kohat_AAS_v3
Kohat_Insurgency_v1
Kohat_Invasion_v1
Kohat_Invasion_v2
Kohat_Invasion_v3
Kohat_Invasion_v4
Kohat_Invasion_v5
Kohat_RAAS_v01
Kohat_RAAS_v02
Kohat_RAAS_v03
Kohat_RAAS_v04
Kohat_RAAS_v05
Kohat_RAAS_v06
Kohat_RAAS_v07
Kohat_RAAS_v08
Kohat_RAAS_v09
Kohat_RAAS_v10
Kohat_RAAS_v11
Kohat_Skirmish_v1
Kohat_TC_v1

Kokan_AAS_v1
Kokan_AAS_v2
Kokan_AAS_v3
Kokan_Insurgency_v1
Kokan_Invasion_v1
Kokan_RAAS_v1
Kokan_RAAS_v2
Kokan_RAAS_v3
Kokan_RAAS_v4
Kokan_RAAS_v5
Kokan_Skirmish_v1
Kokan_TC_v1

Lashkar_AAS_v1
Lashkar_AAS_v2
Lashkar_AAS_v3
Lashkar_AAS_v4
Lashkar_Insurgency_v1
Lashkar_Invasion_v1
Lashkar_Invasion_v2
Lashkar_Invasion_v3
Lashkar_Invasion_v4
Lashkar_Invasion_v5
Lashkar_RAAS_v1
Lashkar_RAAS_v2
Lashkar_RAAS_v3
Lashkar_RAAS_v4
Lashkar_RAAS_v5
Lashkar_Skirmish_v1
Lashkar_TC_v1
Lashkar_TC_v2
Lashkar_TC_v3
Lashkar_TC_v4
Lashkar_TC_v5

Logar_AAS_v1
Logar_AAS_v2
Logar_AAS_v3
Logar_AAS_v4
Logar_Insurgency_v1
Logar_RAAS_v1
Logar_RAAS_v2
Logar_Skirmish_v1
Logar_Seed_v1
Logar_TC_v1

Manicouagan_AAS_v1
Manicouagan_AAS_v2
Manicouagan_AAS_v3
Manicouagan_AAS_v4
Manicouagan_AAS_v5
Manicouagan_Invasion_v1
Manicouagan_Invasion_v2
Manicouagan_Invasion_v3
Manicouagan_Invasion_v4
Manicouagan_Invasion_v5
Manicouagan_Invasion_v6
Manicouagan_Invasion_v7
Manicouagan_Invasion_v8
Manicouagan_Invasion_v9
Manicouagan_RAAS_v01
Manicouagan_RAAS_v02
Manicouagan_RAAS_v03
Manicouagan_RAAS_v04
Manicouagan_RAAS_v05
Manicouagan_RAAS_v06
Manicouagan_RAAS_v07
Manicouagan_RAAS_v08
Manicouagan_RAAS_v09
Manicouagan_RAAS_v10
Manicouagan_RAAS_v11
Manicouagan_RAAS_v12
Manicouagan_RAAS_v13
Manicouagan_RAAS_v14
Manicouagan_RAAS_v15
Manicouagan_Seed_v1
Manicouagan_Skirmish_v1
Manicouagan_Skirmish_v2
Manicouagan_Skirmish_v3

Mestia_AAS_v1
Mestia_AAS_v2
Mestia_Invasion_v1
Mestia_Invasion_v2
Mestia_RAAS_v1
Mestia_RAAS_v2
Mestia_Skirmish_v1
Mestia_TC_v1

Mutaha_AAS_v1
Mutaha_AAS_v2
Mutaha_AAS_v3
Mutaha_AAS_v4
Mutaha_Invasion_v1
Mutaha_Invasion_v2
Mutaha_Invasion_v3
Mutaha_Invasion_v4
Mutaha_Invasion_v5
Mutaha_RAAS_v1
Mutaha_RAAS_v2
Mutaha_RAAS_v3
Mutaha_RAAS_v4
Mutaha_RAAS_v5
Mutaha_RAAS_v6
Mutaha_RAAS_v7
Mutaha_RAAS_v8
Mutaha_Seed_v1
Mutaha_Skirmish_v1
Mutaha_Tanks_v1
Mutaha_TC_v1
Mutaha_TC_v2

Narva_AAS_v1
Narva_AAS_v2
Narva_AAS_v3
Narva_AAS_v4
Narva_Destruction_v1
Narva_Invasion_v1
Narva_Invasion_v2
Narva_Invasion_v3
Narva_Invasion_v4
Narva_Invasion_v5
Narva_RAAS_v1
Narva_RAAS_v2
Narva_RAAS_v3
Narva_RAAS_v4
Narva_RAAS_v5
Narva_RAAS_v6
Narva_RAAS_v7
Narva_Skirmish_v1
Narva_TC_v1
Narva_TC_v2

PacificProvingGrounds_AAS_v1
PacificProvingGrounds_AAS_v2
PacificProvingGrounds_Seed_v1

// Training layers are not intended for regular servers.
// PacificProvingGrounds_PLANMC-VDV
// PacificProvingGrounds_USMC-PLA
// PacificProvingGrounds_USMC-RGF

Skorpo_AAS_v1
Skorpo_Invasion_v1
Skorpo_Invasion_v2
Skorpo_Invasion_v3
Skorpo_Invasion_v4
Skorpo_RAAS_v1
Skorpo_RAAS_v2
Skorpo_RAAS_v3
Skorpo_RAAS_v4
Skorpo_RAAS_v5
Skorpo_Skirmish_v1
Skorpo_TC_v1
Skorpo_TC_v2
Skorpo_TC_v3

Sumari_AAS_v1
Sumari_AAS_v2
Sumari_AAS_v3
Sumari_AAS_v4
Sumari_AAS_v5
Sumari_Insurgency_v1
Sumari_Invasion_v1
Sumari_RAAS_v1
Sumari_RAAS_v2
Sumari_RAAS_v3
Sumari_Seed_v1
Sumari_Seed_v2
Sumari_Seed_v3
Sumari_Seed_v4
Sumari_Skirmish_v1
Sumari_TC_v1

Tallil_AAS_v1
Tallil_AAS_v2
Tallil_Invasion_v1
Tallil_Invasion_v2
Tallil_Invasion_v3
Tallil_Invasion_v4
Tallil_Invasion_v5
Tallil_Invasion_v6
Tallil_RAAS_v1
Tallil_RAAS_v2
Tallil_RAAS_v3
Tallil_RAAS_v4
Tallil_RAAS_v5
Tallil_RAAS_v6
Tallil_RAAS_v7
Tallil_RAAS_v8
Tallil_RAAS_v9
Tallil_Seed_v1
Tallil_Seed_v2
Tallil_Skirmish_v1
Tallil_Skirmish_v2
Tallil_Skirmish_v3
Tallil_Tanks_v1
Tallil_Tanks_v2
Tallil_TC_v1

// Tutorial layers are not meant to be run on servers.
// Tutorial_Helicopter
// Tutorial_Infantry

Yehorivka_AAS_v1
Yehorivka_AAS_v2
Yehorivka_AAS_v3
Yehorivka_AAS_v4
Yehorivka_Destruction_v1
Yehorivka_Invasion_v1
Yehorivka_Invasion_v2
Yehorivka_Invasion_v3
Yehorivka_Invasion_v4
Yehorivka_Invasion_v5
Yehorivka_RAAS_v01
Yehorivka_RAAS_v02
Yehorivka_RAAS_v03
Yehorivka_RAAS_v04
Yehorivka_RAAS_v05
Yehorivka_RAAS_v06
Yehorivka_RAAS_v07
Yehorivka_RAAS_v08
Yehorivka_RAAS_v09
Yehorivka_RAAS_v10
Yehorivka_RAAS_v11
Yehorivka_RAAS_v12
Yehorivka_RAAS_v13
Yehorivka_RAAS_v14
Yehorivka_RAAS_v15
Yehorivka_Skirmish_v1
Yehorivka_Skirmish_v2
Yehorivka_Skirmish_v3
Yehorivka_TC_v1
Yehorivka_TC_v2
Yehorivka_TC_v3

Map Rotation: Add Steam-Workshop Maps

See this article: How to add one or more Steam Workshop Maps to the Squad Server

Message of the day in Motd.cfg

MOTD.cfg is an optional file that can be created the ServerConfig folder that will display a small text box to each player on entering the server. This is ideal for displaying server information, simple rules, or other messages. Be mindful though that text entered into this file will not wrap in game, and will overflow out of view.

  • Note: the file name must be uppercase, this is important for UNIX systems.

Two HTML tags are supported in motd.cfg. These are:

<a> Yellow Text</a>
<a href="link.com"> YELLOW LINK</a>

Remote Admin Lists in RemoteAdminListHosts.cfg

Each line should contain a URL to the admin file. The admin file will follow the exact same format as above. This should be used if you run multiple servers and would like to have a single admin file for all of them. If a player is listed in multiple files, their permissions will be combined.

Remote Ban Lists in RemoteBanListHosts.cfg

Each line should contain a URL to the ban file. The ban file will follow the exact same format as above. This should be used if you run multiple servers and would like to have a single ban file for all of them.

Server Configuration Settings in Server.cfg

This is the general server config file. Each variable should be on its own line. New additions will be added to this wiki. Since we do not overwrite config files you will need to manually add them to your existing server config if you wish to alter the default value.

  • Special characters in ServerName: If special characters in the server name show up as "????" in the Server browser, a possible solution is to use a word processor like Microsoft Word, open a new document and insert the character you want to use, then select and copy the character into the ServerName line in your Server.cfg file, e.g ServerName="Test Server Λ".
  • AutoTkBanTime: This option determines how long in seconds a players will be banned after 7 teamkills on the server. Example: AutoTkBanTime=1209600 will ban the player for 14 days.
  • PublicQueueLimit: Cap public queue. Standard is PublicQueueLimit=25 and this cap the public queue to 25. =0 means that there wont be public queue. =-1 is unlimited queue.
ServerName="Squad Dedicated Server"

// Control visibility in the server browser
ShouldAdvertise=true

// Set the server to LAN mode
IsLANMatch=false

// Max player count on the server
MaxPlayers=100

// Number of reserved slots for admins / members 
NumReservedSlots=0

// Size of the server queuing, for regular user 
PublicQueueLimit=25

// Tags for server exposure
// Use space as a delimiter, e.g.
// Tags=language_en language_nl mode_aas mode_raas mode_invasion playstyle_relaxed exp_experience maprot_voting
// For more information and the full list of tags please refer to https://squad.fandom.com/wiki/Server_Configuration#Tag_System
Tags=

// Rules for server in tags form
// Use space as a delimiter, e.g.
//Rules=rule_vehicle_name_claim rule_play_objective rule_no_main_camping rule_no_soloing_vehicle rule_mech_inf_restrictions rule_lock_restrictions
// For more information and the full list of rule tags please refer to https://squad.fandom.com/wiki/Server_Configuration#Tag_System
Rules=

// Map rotation mode: it can be 
// LevelList(use order in level rotation config file)
// LayerList (use order in layer rotation config file) 
// or 
// LevelList_Randomized
// LayerList_Randomized
// which are randomized version of previous options
MapRotationMode=LayerList

// Should the Map/Layer rotations list be randomized at start?
RandomizeAtStart=true

// Should Faction be voted for on generic layers? Randomized if false. 
UseVoteFactions=false

// Should next Map be voted for at end of round?
UseVoteLevel=false

// Should next Layer be voted for at end of round?
UseVoteLayer=false

// Completly Allow or Disallow Team change to all players. Only user with Level_Balance access level can bypass this flag
AllowTeamChanges=true

// If set to false, players can change teams regardless of team balance. Otherwise, the NumPlayersDiffForTeamChanges Value is used
PreventTeamChangeIfUnbalanced=true

// Maximum Allowed difference in player count between teams. This takes into account the team the player leaves and the team the player joins
NumPlayersDiffForTeamChanges=3

RejoinSquadDelayAfterKick=180
RecordDemos=false

// Whether public clients are allowed to record.
// If you do not want public clients to record, but you do want to allow certain ones to, you can give the admin access level "ClientDemos".
// There is a difference between "ClientDemos" and "Demos". "Demos" allows access to server commands for recording server-sided demos, while "ClientDemos" only allows clientside demos (no admin commands)
AllowPublicClientsToRecord=false

ServerMessageInterval=300

// Forces the server to do non-seamless travel (disconnect when changing maps) every X seconds
// ForceNonSeamlessTravelIntervalSeconds=43200

// The following are required for Licensed servers, but can be changed for non-licensed servers
TKAutoKickEnabled=true
AutoTKBanNumberTKs=7
AutoTKBanTime=300
VehicleKitRequirementDisabled=false
AllowCommunityAdminAccess=true

// Only Offworld Industries developers are admins
AllowDevProfiling=true

AllowQA=true

// The below commands are optional for all servers
VehicleClaimingDisabled=false


Tag System

Adding Tags

  • Tags can be configured in server.cfg
  • They are added to the ‘Tags’ line and delimited with space
  • By default all the client filters are set to show “Any” tags, which displays all the servers, including untagged ones. Filtering by tags on the client will narrow down the search result to servers that match the tag(s) used in the filter.
  • We recommend you use each category of tags that applies to your server, as it helps players filter the server list down to their play style and preferences. Not adding tags will mean that players will only see your server in the server browser if they're not filtering on that specific tag category.
  • A couple of notes on how Find Match works:
    • Only shows modded servers if the player has these mods installed
    • Doesn’t show full servers
    • The server browser filter uses game mode tags to narrow down the server selection. The Find Match will instead search by active gamemode.

Example

Tags= language_en language_nl mode_aas mode_raas mode_invasion playstyle_relaxed exp_experience maprot_voting

Tag List

You can add up to 2 language tags Note: We’re using ISO-639-1 two letter codes

English language_en
Chinese language_zh
Russian language_ru
German language_de
Turkish language_tr
Ukrainian language_uk
French language_fr
Portuguese language_pt
Polish language_pl
Swedish language_sv
Thai language_th
Dutch language_nl
Finnish language_fi
Korean language_ko
Spanish language_es
Norwegian language_no
Japanese language_ja
Danish language_da
Italian language_it
Czech language_cs
Tagalog language_tl
Indonesian language_id
Kazakh language_kk
Arabic language_ar
Hebrew language_he


Game Modes

You can add up to 3 game mode tags.

Invasion mode_invasion
AAS mode_aas
RAAS mode_raas
Destruction mode_destruction
Territory Control mode_tc
Insurgency mode_insurgency
Seed mode_seed
Skirmish mode_skirmish
Training mode_training


Playstyle

You can add 1 playstyle tag This tag is intended to help you better define your server identity and the type of players you want to attract

  • Relaxed - Communicate, coordinate, play for fun
  • Focused - Play the objective, play to win
  • Milsim - Tactics and subordination
Relaxed playstyle_relaxed
Focused playstyle_focused
Milsim playstyle_milsim


Experience

You can add 1 experience tag

New Player Friendly exp_newplayer
Experience Preferred exp_experience

Map Rotation

You can add 1 map rotation tag Note: We don’t have an in-game map voting. Map Voting tag is applicable to servers that have implemented their own voting system.

Set Rotation maprot_rotation
Map Voting maprot_voting

Rule List

  • Rule tags can be configured in server.cfg
  • They are added to the ‘Rules’ line and delimited with space
  • We recommend you to use rules that you apply to your server
  • Rule tags are only shown on the server preview card. They are not used in the Server Browser filters and Find Match feature.

Example

Rules=rule_vehicle_name_claim rule_play_objective rule_no_main_camping rule_no_soloing_vehicle rule_mech_inf_restrictions rule_lock_restrictions


Tag Name Description (info tooltip text)
rule_vehicle_name_claim NAME CLAIM Name your squad properly to claim vehicles.

See the server rules upon joining for more details.

rule_vehicle_fcfs FCFS Vehicles are claimed on a first come first served basis.

See the server rules upon joining for more details.

rule_play_objective PLAY OBJECTIVE Play the current objective, don't rush past revealed objectives.

See the server rules upon joining for more details.

rule_no_main_camping NO MAIN CAMPING Don't camp the enemy Main base.

See the server rules upon joining for more details.

rule_no_soloing_vehicle NO SOLOING ARMOR Don't solo vehicles that require a Crewman kit.

See the server rules upon joining for more details.

rule_mech_inf_restrictions MECH INF RULES Infantry squads cannot include armor, helicopters, or have a Crewman SL.

See the server rules upon joining for more details.

rule_lock_restrictions SQUAD LOCK RULES Locking squads is restricted by player count or squad type.

See the server rules upon joining for more details.

Server Messages in ServerMessages.cfg

This will rotate server messages every x seconds (based on Server.cfg setting). Each message should have its own line. This should be used to display server rules and contact information.

Rcon control in Rcon.cfg

If you do not want to use RCON, leave the password= empty. NOTE: Leaving the RCONIP=0.0.0.0 will bind it to the public default IP. If your server has multiple IP's please specify the address here.

// Edit this IP to bind the RCON socket to an alternate IP address.
// Alternatively, set this from the command line with the argument:
//   RCONIP=0.0.0.0
IP=0.0.0.0

// Edit this IP to bind the RCON socket to an alternate port.
// Alternatively, set this from the command line with the argument:
//   RCONPORT=21114
Port=21114

// Set this to enable the usage of RCON with the given password for login.
// Leaving this empty will keep RCON turned off.
// Alternatively, set this from the command line with the argument:
//   RCONPASSWORD=MyPassword
Password=

// Set this to set the maximum number of allowable concurrent RCON
// connections to the server.
// Alternatively, set this from the command line with the argument:
//   RCONMAXCONNECTIONS=5
MaxConnections=5

// Edit this to customize the number of seconds without contact from a connected
// console before the server checks with that computer to see if the session is
// still active, or if it got disconnected. Supports values between 30 and 3600.
// Alternatively, set this from the command line with the argument:
//   RCONSECONDSBEFORETIMEOUTCHECK=120
SecondsBeforeTimeoutCheck=120

Tournament Mode

1. To enable tournament mode, you must run the server instance at least once to generate the necessary file.

2. Go to your server folder, and locate the Game.ini file under \Saved\Config\WindowsServer, (or Saved\Config\LinuxServer), and add the below contents as needed.

3. A server restart is necessary to apply any changes to the tournament mode configuration.

For more information, see this forum post. This mode was added with Alpha 5.2.

V15 compatible version:

[/Script/Squad.SQGameMode]
bTournamentMode=true

[/Script/Squad.SQTournamentModeRuleset]
Restrictions=(Setting="r.ShadowQuality", Min=1, Max=5)
Restrictions=(Setting="r.ViewDistanceQuality", Min=3, Max=4)
Restrictions=(Setting="r.ViewDistanceScale", Min=1, Max=4)
Restrictions=(Setting="grass.MaxUpdateFrequency", Min=10, Max=40)

Old version:

[/Script/Squad.SQGameMode]
bTournamentMode=true

[/Script/Squad.SQTournamentModeRuleset]
Restrictions=(Setting="r.LightFunctionQuality", Min=1, Max=1)
Restrictions=(Setting="r.ShadowQuality", Min=3, Max=5)
Restrictions=(Setting="r.Shadow.CSM.MaxCascades", Min=1, Max=10)
Restrictions=(Setting="r.Shadow.MaxResolution", Min=1024, Max=4096)
Restrictions=(Setting="r.Shadow.RadiusThreshold", Min=0.03, Max=0.05)
Restrictions=(Setting="r.Shadow.DistanceScale", Min=0.5, Max=1.0)
Restrictions=(Setting="r.Shadow.CSM.TransitionScale", Min=0.4, Max=1.0)
Restrictions=(Setting="r.DistanceFieldShadowing", Min=0, Max=1)
Restrictions=(Setting="r.DistanceFieldAO", Min=0, Max=1)
Restrictions=(Setting="r.AllowLandscapeShadows", Min=0, Max=1)
Restrictions=(Setting="r.MotionBlurQuality", Min=0, Max=4)
Restrictions=(Setting="r.AmbientOcclusionMipLevelFactor", Min=0.4, Max=1.0)
Restrictions=(Setting="r.AmbientOcclusionMaxQuality", Min=0, Max=100)
Restrictions=(Setting="r.DepthOfFieldQuality", Min=0, Max=4)
Restrictions=(Setting="r.RenderTargetPoolMin", Min=300, Max=1000)
Restrictions=(Setting="r.LensFlareQuality", Min=0, Max=3)
Restrictions=(Setting="r.SceneColorFringeQuality", Min=0, Max=1)
Restrictions=(Setting="r.EyeAdaptationQuality", Min=0, Max=2)
Restrictions=(Setting="r.FastBlurThreshold", Min=0, Max=100)
Restrictions=(Setting="r.Upscale.Quality", Min=1, Max=3)
Restrictions=(Setting="r.Tonemapper.GrainQuantization", Min=0, Max=1)
Restrictions=(Setting="r.LightShaftQuality", Min=0, Max=1)
Restrictions=(Setting="r.Filter.SizeScale", Min=0.6, Max=1)
Restrictions=(Setting="r.Tonemapper.Quality", Min=0, Max=5)
Restrictions=(Setting="r.SkeletalMeshLODBias", Min=-1, Max=0)
Restrictions=(Setting="r.ViewDistanceScale", Min=1.0, Max=10.0)
Restrictions=(Setting="r.MipMapLODBias", Min=-1, Max=0)
Restrictions=(Setting="r.Streaming.MipBias", Min=0, Max=1.5)
Restrictions=(Setting="r.MaxAnisotropy", Min=0, Max=16)
Restrictions=(Setting="r.TranslucencyLightingVolumeDim", Min=24, Max=64)
Restrictions=(Setting="r.RefractionQuality", Min=0, Max=2)
Restrictions=(Setting="r.SSR.Quality", Min=0, Max=4)
Restrictions=(Setting="r.SceneColorFormat", Min=3, Max=4)
Restrictions=(Setting="r.DetailMode", Min=0, Max=2)
Restrictions=(Setting="r.TranslucencyVolumeBlur", Min=0, Max=1)
Restrictions=(Setting="r.MaterialQualityLevel", Min=0, Max=2)
Restrictions=(Setting="r.SSS.Scale", Min=0, Max=1)
Restrictions=(Setting="r.SSS.SampleSet", Min=0, Max=2)
Restrictions=(Setting="r.EmitterSpawnRateScale", Min=0.125, Max=1.0)
Restrictions=(Setting="r.ParticleMinTimeBetweenTicks", Min=8, Max=33)
Restrictions=(Setting="foliage.DensityScale", Min=0, Max=1.0)
Restrictions=(Setting="grass.DensityScale", Min=0, Max=1.0)
Restrictions=(Setting="grass.MaxUpdateFrequency", Min=10, Max=30)
Restrictions=(Setting="r.PostProcessAAQuality", Min=0, Max=6)
Restrictions=(Setting="r.Shadow.MaxCSMResolution", Min=512, Max=4096)
Restrictions=(Setting="r.VolumetricFog", Min=0, Max=1)
Restrictions=(Setting="r.Streaming.LimitPoolSizeToVRAM", Min=0, Max=1)
Restrictions=(Setting="r.Streaming.MaxEffectiveScreenSize", Min=0, Max=0)
Restrictions=(Setting="r.SSS.HalfRes", Min=0, Max=1)
Restrictions=(Setting="r.ParticleLightQuality", Min=0, Max=2)

Voting

Voting is currently extremely buggy, use at your own risk!

// Votes have several configurable variables, these are:
// Duration: The duration of the voting time.
// ResultPresentationDuration: The duration where players can see the results displayed, but cannot vote.
// AccessFilter: The minimum access level required in order to vote.
// TeamFilter: The teams that you must be a member of in order to vote.

// When using Level Vote, this value lets you control how many levels will be picked from your rotation and offered for each level vote
LevelCountPerVote=4
LevelVote_Duration=30
LevelVote_ResultPresentationDuration=5
LevelVote_AccessFilter=Public
LevelVote_TeamFilter=Team_Neutral+Team_One+Team_Two

// When not using Level Vote, this value lets you control how many layers will be picked from your rotation and offered in each layer vote
LayerCountPerVote=4
LayerVote_Duration=30
LayerVote_ResultPresentationDuration=5
LayerVote_AccessFilter=Public
LayerVote_TeamFilter=Team_Neutral+Team_One+Team_Two

Team_Neutral_Duration=30
Team_Neutral_ResultPresentationDuration=5
Team_Neutral_AccessFilter=Public
Team_Neutral_TeamFilter=Team_Neutral+Team_One+Team_Two

Team_One_Duration=30
Team_One_ResultPresentationDuration=5
Team_One_AccessFilter=Public
Team_One_TeamFilter=Team_Neutral+Team_One+Team_Two

Team_Two_Duration=30
Team_Two_ResultPresentationDuration=5
Team_Two_AccessFilter=Public
Team_Two_TeamFilter=Team_Neutral+Team_One+Team_Two

See also

Advertisement