Installation
Prerequisites [Windows only]
Before proceeding with your server installation, make sure you have installed the following prerequisites.
SteamCMD
Like other games published on Steam, Insurgency: Sandstorm’s server files are published through a command-line tool known as SteamCMD
. This GUI-less Steam client allows you to install and update the server files easily.
You can download SteamCMD from the following links:
If you’re using Windows, unzip SteamCMD to a known folder location or create a new one to use for the installation. You will frequently be navigating back to this location during the installation process.
Most commands through SteamCMD require knowledge of the app ID. For Insurgency: Sandstorm, the app ID is 581330
.
For a basic server setup, please follow the instructions below:
1) Open SteamCMD
and wait for it to update. This can take a few minutes.
2) Type login anonymous
and hit Enter. This will log you in anonymously, allowing you to download most game servers.
3) Type app_update 581330 validate
and hit Enter. This will install and validate the Insurgency: Sandstorm dedicated server.
4) Type quit
and hit Enter once you have received a message stating that the app was fully installed.
You will now be able to find your dedicated server in the common subfolder located within the Steamapps folder. The full path should look like this: SteamCMD\steamapps\common. You can create a shortcut to this folder for ease of access in the future.
Please note that the root directory for SteamCMD will vary based on what you have named it.
You can find more information about SteamCMD and how to use it here.
Launching
Once SteamCMD is installed, you will need to create a script to launch the server with your desired options and settings. On Windows, this is a batch file; on Linux, this is a shell script.
For Windows:
1) Create a new text document in the sandstorm_server
directory.
2) Open it and press CTRL + Shift + S
. A window should appear and ask you to save the file.
3) Name the file start.bat
and hit Enter.
For Linux:
1) Run cd .steam/steamapps/common/sandstorm_server
to navigate to the newly created Server directory.
2) Run touch start.sh
and hit Enter.
A new file with the specified name will be created in the specified location. You will need to edit this file with the specific command line for your operating system to launch the server.
The command line should include the starting map, the scenario, and any other launch parameters. For example:
Platform
|
Command Line
|
---|---|
Windows | InsurgencyServer.exe Oilfield?Scenario=Scenario_Refinery_Push_Security?MaxPlayers=28 -Port=27102 -QueryPort=27131 -log -hostname=”My Server” |
Linux | Insurgency/Binaries/Linux/InsurgencyServer-Linux-Shipping Oilfield?Scenario=Scenario_Refinery_Push_Security?MaxPlayers=28 -Port=27102 -QueryPort=27131 -log -hostname=”My Server” |
In this example, the server will be started on Refinery (Oilfield) Push Security, hosted on port 27102 with a maximum of 28 players. If there is a typo in the map or scenario name, the server will default to Farmhouse. If this happens, verify that you spelled everything correctly in the command line.
Port Forwarding
For your server to show up on the server browser, you will have to forward both TCP
and UDP
. You can find tutorials on port forwarding on a lot of websites. We suggest portforward.com, which offers tutorials for most router manufacturers.
You will need to put the ports that you have forwarded in the script that you created earlier. For example, if you forwarded ports 27102
and 27131
, your command line should look like this:
Platform
|
Command Line
|
---|---|
Windows | InsurgencyServer.exe Oilfield?Scenario=Scenario_Refinery_Push_Security?MaxPlayers=28 -Port=27102 -QueryPort=27131 -log -hostname=”My Server” |
Linux | Insurgency/Binaries/Linux/InsurgencyServer-Linux-Shipping Oilfield?Scenario=Scenario_Refinery_Push_Security?MaxPlayers=28 -Port=27102 -QueryPort=27131 -log -hostname=”My Server” |
Firewall
Now that you have forwarded your ports, you will need to make sure that your Firewall allows the connection to be made for your server to show up in the server browser.
For Windows:
1) Press Windows + R
. This will open the Run window.
2) Paste the following string: wf.msc
and hit Enter.
3) Click Inbound Rules
on the left panel, then click New Rule
on the right panel.
4) Select Port
and hit Next.
5) Select TCP
and make sure you have Specific local ports
selected, then put the ports you have forwarded into the box separated by a comma (for us, this is 27102
for our game port and 27131
for our query port).
6) Select Allow the connection
and hit Next.
7) Make sure that all of the boxes are checked and hit Next.
8) Name the rule: Insurgency Server
and hit Finish.
Repeat steps 3 to 8, but instead of allowing TCP at rule 5, you will need to allow UDP. In total, you should have two new rules in the Inbound Rules section.
You can edit your rules by going back to the Inbound Rules tab, right-clicking the rules you created, and then clicking Properties.
For Linux:
It’s a good idea to reference your distribution’s documentation to facilitate the configuration of the Firewall.
Once you’ve added your Inbound Rules to the Firewall, you can now launch your server with the batch/shell script file we created earlier in the Launching section. Please note that the server will be running a default configuration. The default configuration cycles through all Versus PVP scenarios available and follows the Official game rules.
If you wish to modify the server’s configuration, you can find the information you need within the following sections of this guide.
Configuration
Command Line Arguments
Most server configuration is performed through .INI files and launch parameters. These files can be edited with any text editor such as Notepad, Notepad++, Sublime Text, and VSCode.
The configuration files can be found in the following directories (relative to the server’s installation directory):
For Windows: Insurgency\Saved\Config\WindowsServer
For Linux: Insurgency/Saved/Config/LinuxServer
If the directory does not already exist, you will need to create one manually. You will also need to create new .INI files:
For Windows:
1) Create a new folder named WindowsServer
inside of the Config directory found here: Insurgency\Saved\Config
.
2) Create a new text document in the WindowsServer
folder.
3) Open it and press CTRL + Shift + S
. A window should appear and ask you to save the file.
4) Name the file Engine.ini
and hit Enter.
5) Open the new text document again and press CTRL + Shift + S
.
6) Name the file Game.ini
and hit Enter.
For Linux:
1) Type mkdir -p Insurgency/Saved/Config/LinuxServer
. This will create a new LinuxServer directory if it is missing.
2) Type cd Insurgency/Saved/Config/LinuxServer
to navigate to the newly created LinuxServer directory.
3) Type touch Engine.ini
and hit Enter.
4) Type touch Game.ini
and hit Enter.
Two new INI files with the specified names will be created in the same location.
-log |
Enables log window. |
-hostname="My Server" |
Set the server’s name as it appears on the server browser (replacing My Server with the name of your choice). |
-EnableCheats |
Enable cheats for testing. |
-Port=xxxx |
The UDP port that game connections are made to (replace XXXX with port number). |
-QueryPort=xxxx |
The port that Steam runs server queries on (replace XXXX with port number). |
Travel Parameters
Travel parameters are placed at the end of the map name in the command line, following it with a question mark (?) and then the setting variable and its value. In the above example, MaxPlayers is the travel parameter.
Parameter
|
Description
|
Password |
Sets a password for the server. |
MaxPlayers |
Sets the maximum number of players that can join the server. On coop servers, this is the number of human players. |
Admin List
The game has a built-in admin menu that provides basic functionality such as kicking, banning, and changing the level. To add admins, you will need to know their 64-bit Steam ID (aka steamID64). You can find this by using an online converter such as STEAMID I/O.
You will then need to create a file named Admins.txt
inside the following directory: Insurgency/Config/Server.
For Windows:
1) Create a new folder named Config
inside the Insurgency folder found in the root directory.
2) Create a new folder named server
inside the newly created Config
folder. Your path should now look like this: Insurgency/Config/Server.
3) Create a new text document in the Server
folder named Admins.txt
.
For Linux:
1) Run mkdir -p Insurgency/Config/Server
. This will create the new Server directory.
2) Run cd Insurgency/Config/Server
to navigate to the newly created Server directory.
3) Run touch Admins.txt
You can also override the file by specifying a command-line switch. For example, -AdminList=OtherAdminList would make the server read from OtherAdminList.txt instead.
For each admin you want to add, you will need to put their steamID64 on a new line inside the Admins.txt file. You can do this for as many admins as you would like to add. Adding new admins will require a server restart or level change for any changes to be reflected in-game. When a player with admin privileges connects to the server, they will be able to open the admin menu bound to the Keypad Subtract button by default and can be re-bound in the key bindings menu.
Message of the Day
The server can be configured with a MotD file to announce a message of the day during the loading screen. By default, this file must be placed in
Insurgency/Config/Server/Motd.txt
. This can be defined on the command line using the -motd
parameter. If you wanted it to read MyOtherMOTD
, you would specify -motd=MyOtherMOTD.txt
If this file does not exist, you will need to create it.
For Windows:
- Create a new text document in the Server folder named
Motd.txt
.
For Linux:
- Run
cd Insurgency/Config/Server
to navigate to the Server directory. - Run
touch Motd.txt
to create the text file.
The file does not allow for any formatting and will only display text.
Remote Access (Rcon)
Rcon can be enabled to provide remote access to the server for administrative tasks that don’t require you to join the server. This is implemented using the Source Engine Rcon Protocol, which has clients available for it, such as mcrcon and Simple SourceDS RCON.
Enabling Access
Rcon can be enabled by modifying the Game.ini file or through the server’s command line. To enable it via the command line, you can provide the following arguments:
-Rcon -RconPassword=password -RconListenPort=27015
The values for the password and port arguments can be replaced with ones of your preference.
Through Game.ini, you can add the following options:
|
The following additional config variables are also available:
bUseBroadcastAddress |
True | If enabled, then the rcon socket will listen on all available network devices. |
ListenAddressOverride |
0.0.0.0 | If bUseBroadcastAddress is False, this is the network IP the rcon socket is bound to. |
bAllowConsoleCommands |
True | When enabled, any unknown rcon commands will be interpreted as console commands. |
MaxPasswordAttempts |
3 | The maximum number of failed authentication attempts before the IP address is temporarily banned. |
IncorrectPasswordBanTime |
30 | The amount of time (in minutes) a client is banned from attempting to connect to rcon if they’ve reached their maximum number of attempts. |
Commands
You can get a list of commands at any time by typing help
into the console. This will show a summary of all available commands, their usage, and a description of the command’s function.
The table below shows the available commands. Mandatory parameters are shown surrounded by „<” and „>„, while optional parameters are surrounded with „[” and „]”. A „net ID” typically refers to a user’s Steam ID.
help |
Displays a list of commands. | |
---|---|---|
listplayers |
Lists players currently connected to the server. | |
kick |
<id/netid/name> [reason] | Kicks a player from the server. |
ban |
<id/netid/name> [duration in minutes] [reason] | Bans a player from the server. |
banid |
[duration in minutes] [reason] | Bans a player (by net ID) from the server. Does not require the player to be on the server. |
permban |
<id/netid/name> [reason] | Permanently bans a player from the server. |
unban |
Lifts a ban for a user. | |
listbans |
Shows the ban list for the server. | |
say |
Shows a message to all players in the chatbox. | |
restartround |
[0 = no team switch, 1 = swap teams] | Restarts the current round. |
maps |
[level filter] | Lists available maps. |
scenarios |
[level filter] | Lists available scenarios. |
travelscenario |
Change level to given scenario. | |
travel |
Transitions the server to a different level. | |
gamemodeproperty |
[new value] | Gets or sets a gamemode property for the length of the scenario. |
listgamemodeproperties |
[property filter] | Lists all properties available for the currently loaded gamemode. |
By default, any unknown commands will be executed as console commands.
Enabling Stats
Any Insurgency: Sandstorm community server can host a stats-enabled game. Enabling stats on your server also enables experience gain while playing on the server. The only requirement is that you must use a Steam GSLT, and you must not have a server password.
1. Visit the GameStats Token Generator and authenticate through your Stream profile.
2. Click on „Generate Token” which will create you a GameStats token.
Your token will look something like this:
-GameStatsToken=1417264D1C6549CC95E10CA1E9BE8F09
Simply add the generated token to your launch parameters, and stats will be enabled! Make sure not to share your GameStats token with a third party. Server admins found to be abusing the system will have their tokens revoked, and your account will be investigated. If you suspect your GameStats token has been shared, please generate a new token.
GSLT Authentication
For your server to authenticate with the stats server, you must authenticate your server through Steam GSLT (Game Server Login Token). GSLTs can be obtained from Steam’s Game Server Account Management page. As this page states, there are various criteria your Steam account needs to meet to generate a token. This includes ownership of the game, linking your Steam account with a phone number, and having your account in good standing.
To generate a token for Insurgency: Sandstorm, enter the App ID: 581320. The memo field can be set to anything, so use it to help you remember which token you are assigning to each of your servers. You will need a unique token for each server you are hosting.
To start your server with GSLT authentication, add -GSLTToken=xxxxxxxxxxxxxxx
to the server’s command line where xxxxxxxxxxxxxxx is the token displayed on the Steam Game Server Account page.
Stats Opt-in
By default, the game servers will not attempt to report to the stats system. Following the GSLT login steps above, adding -GameStats
to your server’s command line will enable the opt-in to the system.
Optional: Official Rules
The game ships with a ruleset which are considered official rules; this locks down the options you can change on your dedicated server. If you are running a mostly vanilla server, you may consider opting into this ruleset for your server to appear under the „official rules” filter. To opt-in, add -ruleset=OfficialRules
to your server’s command line.
Map Cycle
By default, a server will cycle through all Versus PVP scenarios available.
The server can be configured with a map cycle file that contains a list of scenarios separated by newlines. By default, this file must be placed in Insurgency/Config/Server/MapCycle.txt. This can be defined on the command line using the -MapCycle
parameter. So if you wanted it to read MyOtherMapCycle.txt, you would specify -MapCycle=MyOtherMapCycle
.
If this file does not exist, you will need to create it.
For Windows:
1) Create a new text document in the Server folder named MapCycle.txt
.
For Linux:
1) Run cd Insurgency/Config/Server
to navigate to the Server directory.
2) Run touch MapCycle.txt
to create the text file.
For example, a Skirmish only server’s MapCycle.txt should look like the following:
Scenario_Crossing_Skirmish
Scenario_Hideout_Skirmish
Scenario_Precinct_Skirmish
Scenario_Refinery_Skirmish
Scenario_Farmhouse_Skirmish
Scenario_Summit_Skirmish
Additionally, you may define an entry with an override game mode as some game modes can share scenarios. For example, to have Hardcore Checkpoint Security on Hideout, you would enter the following:
(Scenario="Scenario_Town_Checkpoint_Security",Mode="CheckpointHardcore")
Scenario List
For Checkpoint scenarios, „Insurgents” and „Security” refer to the faction you play as. For Push, the faction names represent the team you attack as. Firefight for most maps will contain a West and an East layout.
Bab
|
|
---|---|
Scenario Name
|
Description
|
Scenario_Bab_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Bab_Checkpoint_Security | Checkpoint Security |
Scenario_Bab_Domination | Domination |
Scenario_Bab_Firefight_East | Firefight East |
Scenario_Bab_Outpost | Outpost |
Scenario_Bab_Push_Insurgents | Push Insurgents |
Scenario_Bab_Push_Security | Push Security |
Crossing (Canyon)
|
|
Scenario Name
|
Description
|
Scenario_Crossing_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Crossing_Checkpoint_Security | Checkpoint Security |
Scenario_Crossing_Domination | Domination |
Scenario_Crossing_Firefight_West | Firefight West |
Scenario_Crossing_Frontline | Frontline |
Scenario_Crossing_Outpost | Outpost |
Scenario_Crossing_Push_Insurgents | Push Insurgents |
Scenario_Crossing_Push_Security | Push Security |
Scenario_Crossing_Skirmish | Skirmish |
Scenario_Crossing_Team_Deathmatch | Team Deathmatch |
Farmhouse
|
|
Scenario Name
|
Description
|
Scenario_Farmhouse_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Farmhouse_Checkpoint_Security | Checkpoint Security |
Scenario_Farmhouse_Domination | Domination |
Scenario_Farmhouse_Firefight_East | Firefight East |
Scenario_Farmhouse_Firefight_West | Firefight West |
Scenario_Farmhouse_Frontline | Frontline |
Scenario_Farmhouse_Push_Insurgents | Push Insurgents |
Scenario_Farmhouse_Push_Security | Push Security |
Scenario_Farmhouse_Skirmish | Skirmish |
Scenario_Farmhouse_Team_Deathmatch | Team Deathmatch |
Hideout (Town)
|
|
Scenario Name
|
Description
|
Scenario_Hideout_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Hideout_Checkpoint_Security | Checkpoint Security |
Scenario_Hideout_Domination | Domination |
Scenario_Hideout_Firefight_East | Firefight East |
Scenario_Hideout_Firefight_West | Firefight West |
Scenario_Hideout_Frontline | Frontline |
Scenario_Hideout_Push_Insurgents | Push Insurgents |
Scenario_Hideout_Push_Security | Push Security |
Scenario_Hideout_Skirmish | Skirmish |
Scenario_Hideout_Team_Deathmatch | Team Deathmatch |
Hillside (Sinjar)
|
|
Scenario Name
|
Description
|
Scenario_Hillside_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Hillside_Checkpoint_Security | Checkpoint Security |
Scenario_Hillside_Domination | Domination |
Scenario_Hillside_Firefight_East | Firefight East |
Scenario_Hillside_Firefight_West | Firefight West |
Scenario_Hillside_Frontline | Frontline |
Scenario_Hillside_Outpost | Outpost |
Scenario_Hillside_Push_Insurgents | Push Insurgents |
Scenario_Hillside_Push_Security | Push Security (INS2014 layout) |
Scenario_Hillside_Skirmish | Skirmish |
Scenario_Hillside_Team_Deathmatch | Team Deathmatch |
Ministry
|
|
Scenario Name
|
Description
|
Scenario_Ministry_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Ministry_Checkpoint_Security | Checkpoint Security |
Scenario_Ministry_Domination | Domination |
Scenario_Ministry_Firefight_A | Firefight |
Scenario_Ministry_Outpost | Outpost |
Scenario_Ministry_Skirmish | Skirmish |
Scenario_Ministry_Team_Deathmatch | Team Deathmatch |
Outskirts (Compound)
|
|
Scenario Name
|
Description
|
Scenario_Outskirts_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Outskirts_Checkpoint_Security | Checkpoint Security |
Scenario_Outskirts_Domination | Domination |
Scenario_Outskirts_Firefight_East | Firefight East |
Scenario_Outskirts_Firefight_West | Firefight West |
Scenario_Outskirts_Frontline | Frontline |
Scenario_Outskirts_Outpost | Outpost |
Scenario_Outskirts_Push_Insurgents | Push Insurgents |
Scenario_Outskirts_Push_Security | Push Security |
Scenario_Outskirts_Skirmish | Skirmish |
Scenario_Outskirts_Team_Deathmatch | Team Deathmatch |
Power Plant (PowerPlant)
|
|
Scenario Name
|
Description
|
Scenario_PowerPlant_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_PowerPlant_Checkpoint_Security | Checkpoint Security |
Scenario_PowerPlant_Domination | Domination |
Scenario_PowerPlant_Firefight_East | Firefight East |
Scenario_PowerPlant_Firefight_West | Firefight West |
Scenario_PowerPlant_Outpost | Outpost |
Scenario_PowerPlant_Push_Insurgents | Push Insurgents |
Scenario_PowerPlant_Push_Security | Push Security |
Precinct
|
|
Scenario Name
|
Description
|
Scenario_Precinct_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Precinct_Checkpoint_Security | Checkpoint Security |
Scenario_Precinct_Domination | Domination |
Scenario_Precinct_Firefight_East | Firefight East |
Scenario_Precinct_Firefight_West | Firefight West |
Scenario_Precinct_Frontline | Frontline |
Scenario_Precinct_Push_Insurgents | Push Insurgents |
Scenario_Precinct_Push_Security | Push Security |
Scenario_Precinct_Skirmish | Skirmish |
Scenario_Precinct_Team_Deathmatch | Team Deathmatch |
Refinery (Oilfield)
|
|
Scenario Name
|
Description
|
Scenario_Refinery_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Refinery_Checkpoint_Security | Checkpoint Security |
Scenario_Refinery_Domination | Domination |
Scenario_Refinery_Firefight_West | Firefight West |
Scenario_Refinery_Frontline | Frontline |
Scenario_Refinery_Push_Insurgents | Push Insurgents |
Scenario_Refinery_Push_Security | Push Security |
Scenario_Refinery_Skirmish | Skirmish |
Scenario_Refinery_Team_Deathmatch | Team Deathmatch |
Summit (Mountain)
|
|
Scenario Name
|
Description
|
Scenario_Summit_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Summit_Checkpoint_Security | Checkpoint Security |
Scenario_Summit_Domination | Domination |
Scenario_Summit_Firefight_East | Firefight East |
Scenario_Summit_Firefight_West | Firefight West |
Scenario_Summit_Frontline | Frontline |
Scenario_Summit_Push_Insurgents | Push Insurgents |
Scenario_Summit_Push_Security | Push Security |
Scenario_Summit_Skirmish | Skirmish |
Scenario_Summit_Team_Deathmatch | Team Deathmatch |
Tell
|
|
Scenario Name
|
Description
|
Scenario_Tell_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Tell_Checkpoint_Security | Checkpoint Security |
Scenario_Tell_Outpost | Outpost |
Scenario_Tell_Domination | Domination |
Scenario_Tell_Firefight_East | Firefight East |
Scenario_Tell_Firefight_West | Firefight West |
Scenario_Tell_Frontline | Frontline |
Scenario_Tell_Push_Insurgents | Push Insurgents |
Scenario_Tell_Push_Security | Push Security |
Tideway (Buhriz)
|
|
Scenario Name
|
Description
|
Scenario_Tideway_Checkpoint_Insurgents | Checkpoint Insurgents |
Scenario_Tideway_Checkpoint_Security | Checkpoint Security |
Scenario_Tideway_Domination | Domination |
Scenario_Tideway_Firefight_West | Firefight West |
Scenario_Tideway_Frontline | Frontline |
Scenario_Tideway_Push_Insurgents | Push Insurgents |
Scenario_Tideway_Push_Security | Push Security |
Lighting Scenarios
In addition to day scenarios, night scenarios are also available. This is controlled through the travel parameter ?Lighting=
, valid values are Night or Day.
For the map cycle, you control this through a Lighting parameter, similar to the Mode parameter. You should make sure that this parameter is specified for the correct voting image to show. For example:
(Scenario="Scenario_Town_Checkpoint_Security",Lighting="Night")
This will set the map cycle entry to use Hideout (Town) at Night on the Checkpoint Security scenario. You can mix Day and Night scenarios in the same map cycle by explicitly defining the Lighting parameter for both Day and Night, for example:
(Scenario="Scenario_Town_Checkpoint_Security",Lighting="Night") (Scenario="Scenario_Town_Checkpoint_Security",Lighting="Day")
This will allow you to play Hideout Checkpoint Security on both Day and Night which will show the appropriate images on the voting screen.
Mods
Mods are delivered using Mod.io. To get started, you will need a Mod.io account. Once you have signed in, click your username at the top right, and click API Access from the left navigation.
Under OAuth 2 Management, under Generate Access Token, enter a name to give your token and give it read access (write access is not needed) and click Create Token.
You will then be presented with your auth token; you may copy this to your clipboard. In your server’s Engine.ini, you will enter the following to authenticate your server with the token (replace „TOKEN HERE” with what you just copied):
[/Script/ModKit.ModIOClient] bHasUserAcceptedTerms=True AccessToken=TOKEN HERE
Now you have entered your authentication token and your server is ready to start accepting mods. Your server must include -Mods
on the command line for this to function.
To specify a list of mods your server is running, you can add a text file in the following directory Insurgency/Config/Server/
specifying each mod ID line by line. If this file does not exist, you will need to create it.
For Windows:
1) Create a new text document in the Server folder named Mods.txt
.
For Linux:
1) Run cd Insurgency/Config/Server
to navigate to the Server directory.
2) Run touch Mods.txt
to create the text file.
You can also override the text file read by specifying -ModList=MyCustomModList.txt
on the command line.
If you wish to specify a list of mods on the command line, you may do this through specifying -CmdModList="mod1,mod2,mod3"
where mod1,mod2,mod3 is a comma-separated list of mod IDs.
You may specify a map to travel to after mods are downloaded by specifying the ModDownloadTravelTo=
command-line argument, followed by the travel URL argument to change to.
An excellent resource for newcomers is the community guides available on Mod.io.
Mutators
Mutators (formerly rulesets) are packaged gameplay configuration assets which the game ships with. You may use these on your own servers by specifying -mutators=MutatorName
on the server command line where „MutatorName” is from the following options:
AllYouCanEat |
All You Can Eat | Start with 100 supply points. |
AntiMaterielRiflesOnly |
Anti-Materiel Only | Only anti-materiel rifles are available along with normal equipment and explosives. |
BoltActionsOnly |
Bolt-Actions Only | Only bolt-action rifles are available along with normal equipment and explosives. |
Broke |
Broke | Start with 0 supply points. |
BulletSponge |
Bullet Sponge | Health is increased. |
Competitive |
Competitive | Equipment is more expensive, rounds are shorter, and capturing objectives is faster. |
CompetitiveLoadouts |
Competitive Loadouts | Player classes are replaced with those from Competitive. |
FastMovement |
Fast Movement | Move faster. |
Frenzy |
Frenzy | Fight against AI enemies who only use melee attacks. Watch out for special enemies. |
Guerrillas |
Guerrillas | Start with 5 supply points. |
Hardcore |
Hardcore | Mutator featuring slower movement speeds and longer capture times. |
HeadshotOnly |
Headshots Only | Players only take damage when shot in the head. |
HotPotato |
Hot Potato | A live fragmentation grenade is dropped on death. |
LockedAim |
Locked Aim | Weapons always point to the center of the screen. |
NoAim |
No Aim Down Sights | Aiming down sights is disabled. |
PistolsOnly |
Pistols Only | Only pistols are available along with normal equipment and explosives. |
ShotgunsOnly |
Shotguns Only | Only Shotguns are available along with normal equipment and explosives. |
SlowCaptureTimes |
Slow Capture Times | Objectives will take longer to capture. |
SlowMovement |
Slow Movement | Move slower. |
SoldierOfFortune |
Soldier of Fortune | Gain supply points as your score increases. |
SpecialOperations |
Special Operations | Start with 30 supply points. |
Strapped |
Strapped | Start with 1 supply point. |
Ultralethal |
Ultralethal | Everyone dies with one shot. |
Vampirism |
Vampirism | Receive health when dealing damage to enemies equal to the amount of damage dealt. |
Warlords |
Warlords | Start with 10 supply points. |
You may specify multiple mutators by using a comma-separated list. For example, to enable Hot Potato and Vampirism, specify -mutators=HotPotato,Vampirism
on the server command line.
Some mutators can be configured beyond what is provided by the defaults. These mutators are listed below. All Mutator settings go in Game.ini.
Headshots Only
Headshots Only settings can be configured under [/Script/Insurgency.Mutator_HeadshotOnly]
.
bCheckMeleeDamage |
false | N/A | Should melee be checked for headshots |
Hot Potato
Hot Potato settings can be configured under [/Script/Insurgency.Mutator_HotPotato]
.
GrenadeClass |
/Game/Game/Actors/Projectiles/BP_Projectile_M67.BP_Projectile_M67_C | N/A | The grenade type to be dropped on death. |
ThrowbackWeaponClass |
/Game/Game/Actors/Weapons/Grenade/BP_Grenade_M67.BP_Grenade_M67_C | N/A | Weapon used for throwing back the dropped grenade. |
bIgnoreHeadshots |
false | HotPotato_bIgnoreHeadshots |
Don’t drop a grenade if it was a headshot? |
bBotsOnly |
false | HotPotato_bBotsOnly |
Only drop grenades for bots? |
Vampirism
Vampirism settings can be configured under [/Script/Insurgency.Mutator_Vampirism]
.
bCountFriendlyFire |
false | Vampirism_bCountFriendlyFire |
Count friendly fire towards health gain? |
MaxHealth |
1000 | Vampirism_MaxHealth |
The maximum amount of health that you can gain from damaging other players. |
General Configuration
A bunch of general gameplay options can be added to Game.ini. Below is a table that lists the section they need to be under (find or add them to the file) as well as the options available under that section.
|
||
---|---|---|
Variable | Default | Description |
bKillFeed |
False | Is the kill feed enabled? |
bKillFeedSpectator |
True | Is the kill feed enabled for dedicated spectators and replays? |
bKillerInfo |
True | Show information about a death (killer, weapon) to the victim? |
bKillerInfoRevealDistance |
False | Reveal distance of kills? |
TeamKillLimit |
3 | Limit for the number of team kills one player can perform before being kicked. |
TeamKillGrace |
0.2 | Grace timer between team killing incidents. |
TeamKillReduceTime |
90 | How long until a player’s TK count reduces by 1. |
bDeadSay |
False | Can alive players see messages from the dead? |
bDeadSayTeam |
True | Can alive players see messages from dead teammates using team-only chat? |
bVoiceAllowDeadChat |
False | Can alive players hear voice chat from dead players? |
bVoiceEnemyHearsLocal |
True | Can proximity voice chat be heard by enemies? |
|
||
Variable | Default | Description |
GameStartingIntermissionTime |
5 | The additional time to wait for additional players during the starting intermission. |
WinTime |
5 | How long players are frozen before transitioning to the round intermission screen. |
PostRoundTime |
15 | How long is spent on the intermission screen. |
PostGameTime |
15 | How much time is spent between last post-round and game over |
bAllowDeathCamera |
True | True when players can use the death camera on this server. |
bAllowThirdPersonSpectate |
True | Are players permitted to use the 3rd person camera while spectating? |
bAllowFriendlyFire |
True | Enables friendly fire. |
bAllowPlayerTeamSelect |
True | Allow players to switch between teams of their choice? |
bAutoAssignTeams |
True | Should teams be assigned on connect? |
FriendlyFireModifier |
0.2 | Damage modifier for friendly fire. |
FriendlyFireReflect |
0 | Damage modifier for friendly fire that is mirrored back at the attacker. |
AutoBalanceDelay |
10 | How long to wait after detecting unbalanced teams. |
bMapVoting |
True | Enabled map voting at the end of each game. |
bUseMapCycle |
True | Enables the use of the map cycle. If disabled, the current map loops indefinitely. |
bVoiceIntermissionAllowAll |
True | Allow both teams to talk to each other between rounds. |
IdleLimit |
150 | How long a player can be idle before being kicked. |
IdleLimitLowReinforcements |
90 | How long a player can idle for when there are low reinforcements. |
IdleCheckFrequency |
30 | How frequently to check for idle players. |
For example, enable the kill feed, show kill distance, and disable friendly fire; you would enter the following in your Game.ini:
|
Gamemode Configuration
Gamemode options can be defined through Game.ini, with each section corresponding to a given gamemode. The INI sections are as follows:
- Push:
[/Script/Insurgency.INSPushGameMode]
- Frontline:
[/Script/Insurgency.INSFrontlineGameMode]
- Skirmish:
[/Script/Insurgency.INSSkirmishGameMode]
- Firefight:
[/Script/Insurgency.INSFirefightGameMode]
- Checkpoint:
[/Script/Insurgency.INSCheckpointGameMode]
- Team Deathmatch:
[/Script/Insurgency.INSTeamDeathmatchGameMode]
Any of the below settings under the general sections can be applied globally by putting them in the appropriate INI section.
General ([/Script/Insurgency.INSGameMode])
|
||
---|---|---|
Variable | Default | Description |
ObjectiveCaptureTime |
Varies | How long it takes to capture territorial objectives. |
ObjectiveResetTime |
-1 | How long objective progress decays with no one on the point. Negative value disables. |
ObjectiveSpeedup |
0.25 | Additional capture speed-up for each player on the point. |
ObjectiveMaxSpeedupPlayers |
4 | Maximum players taken into account for capture speed-up. |
General ([/Script/Insurgency.INSMultiplayerMode])
|
||
Variable | Default | Description |
MinimumPlayers |
1 | Minimum players required on each team to start the game. |
RoundLimit |
Varies | Maximum number of rounds to play. |
WinLimit |
Varies | Number of rounds required for game victory. |
GameTimeLimit |
-1 | Maximum duration a game can last. Negative value disables. |
PreRoundTime |
10 | Amount of „freeze time” at the start of a round. |
RoundTime |
Varies | Duration of the round. |
OverTime |
60 | Amount of overtime given when there’s an objective being contested after the round timer expires. |
TeamSwitchTime |
10 | Minimum additional time spent between team switches. |
SwitchTeamsEveryRound |
Varies | How often to switch teams. 0 = never, 1 = every round, 2 = every other round, etc. |
bAllowPlayerTeamSelect |
True | Allow players to switch to the other team? |
bBots |
False | Enable bots? |
BotQuota |
Varies | Bot quota to fill. |
InitialSupply |
15 | Amount of starting supply points. |
MaximumSupply |
15 | Maximum supply that can be earned. |
bSupplyGainEnabled |
False | Enable supply gain throughout the round? |
bAwardSupplyInstantly |
False | Should supply gain be awarded instantly? |
SupplyGainFrequency |
150 | Score threshold for earning supply. |
bRestrictClassByPlayerLevel |
True | Should player classes enforce their minimum level requirements? |
Push [/Script/Insurgency.INSPushGameMode]
|
||
Variable | Default | Description |
RoundTimeExtension |
300 | How long a round is extended for each successful capture. |
AttackerWavesPerObjective |
5 | Number of waves attackers get per-objective. |
AttackerWaveDPR |
0.25 | Percentage of attacker team that has to be dead to trigger a reinforcement wave. |
AttackerWaveTimer |
20 | Duration of attacker reinforcement wave timer. |
DefenderWavesPerObjective |
5 | Number of waves attackers get per-objective. |
DefenderWaveDPR |
0.25 | Percentage of defending team that has to be dead to trigger a reinforcement wave. |
DefenderWaveTimer |
35 | Duration of defender reinforcement wave timer. |
LastStandSetupDelay |
10 | Delay for the last defender spawn zone to be disabled. |
AdvanceAttackerSpawnsDelay |
30 | Delay in advancing the attacker spawns. |
Frontline [/Script/Insurgency.INSFrontlineGameMode]
|
||
Variable | Default | Description |
StartingWaves |
15 | Number of waves each team starts with. |
CapturingBonusWave |
2 | Number of waves a team gains for capturing an objective. |
RegressSpawnsTimer |
20 | Timer used for giving players a chance to fallback after losing an objective. |
Skirmish [/Script/Insurgency.INSSkirmishGameMode]
|
||
Variable | Default | Description |
DefaultReinforcementWaves |
5 | Starting reinforcement waves for each team. |
CaptureBonusWaves |
1 | Number of bonus waves to get when an objective is taken while the team cache is still intact. |
Firefight [/Script/Insurgency.INSFirefightGameMode]
|
||
Variable | Default | Description |
General Coop [/Script/Insurgency.INSCoopMode]
|
||
Variable | Default | Description |
AIDifficulty |
0.5 | AI difficulty factor (0-1 range). |
bUseVehicleInsertion |
True | Use vehicle insertion sequences where possible. |
FriendlyBotQuota |
4 | Friendly bots for coop. |
MinimumEnemies |
6 | Minimum number of enemy bots. |
MaximumEnemies |
12 | Maximum number of enemy bots. |
Checkpoint [/Script/Insurgency.INSCheckpointGameMode]
|
||
Variable | Default | Description |
DefendTimer |
90 | Time to defend against counter attack with small player team. |
DefendTimerFinal |
180 | Extend duration of counter-attack by this on the final point. |
RetreatTimer |
10 | Time to force bots to retreat after a counter-attack. |
RespawnDPR |
0.1 | „Dead player ratio” that must be reached before respawning the bot team. |
RespawnDelay |
20 | Bot respawn delay. |
PostCaptureRushTimer |
30 | Time bots will rush the cache after destruction. |
CounterAttackRespawnDPR |
0.2 | „Dead player ratio” that must be reached before respawning the bot team during a counter-attack. |
CounterAttackRespawnDelay |
20 | Bot respawn delay during counter-attack. |
ObjectiveTotalEnemyRespawnMultiplierMin |
1 | Multiplier of bots to respawn with minimum player count. |
ObjectiveTotalEnemyRespawnMultiplierMax |
1 | Multiplier of bots to respawn with maximum player count. |
FinalCacheBotQuotaMultiplier |
1.5 | Increase in bot quota for final objective if it’s a cache. |
Outpost [/Script/Insurgency.INSOutpostGameMode]
|
||
Variable | Default | Description |
InitialPrepareTimer |
15 | Preparation timer given at the start of a round. |
PrepareTimer |
45 | Preparation timer given between waves. |
WaveSurvivalSupplyAward |
1 | Amount of supply awarded to all players for wave survival |
NumWaves |
7 | Number of waves human players have to survive |
bDeductWaveAfterRetreat |
False | Should a wave be deducted from a defense phase if we had to retreat? |
bResetWavesOnRetreat |
False | Should the wave count reset if we have to fall back? |
bForceRespawnOnRetreat |
True | Should all players, including alive ones, be respawned on retreat? |
bRetreatOnElimination |
True | Should the human players retreat when the team is eliminated rather than ending the round? |
EliminationRetreatDelay |
2 | Delay on elimination respawning the team at the next objective group |
bAllowRetreatOnFinalWave |
True | Do the players fallback if they lose against the final wave, or just lose the game? |
DefendTimer |
120 | Time for each attack wave |
FinalDefendTimer |
180 | Timer used for the final wave |
RetreatTimer |
0 | If the bots capture a point, this is how long the human team is given to retreat and get into position |
MinimumBotsPerAdditionalObjective |
2 | At minimum player count, the number of bots to add per additional active objective |
MaximumBotsPerAdditionalObjective |
6 | At maximum player count, the number of bots to add per additional active objective |
MinimumBotsPerCompletedWave |
0.5 | At minimum player count, the number of bots to add per completed wave |
MaximumBotsPerCompletedWave |
1 | At maximum player count, the number of bots to add per completed wave |
BotDPRRespawnFirst |
0.5 | Bot respawn DPR (dead player ratio) for the first objective |
BotDPRRespawnFinal |
0.2 | Bot respawn DPR (dead player ratio) for the final objective |
BotDPRMinimumTimeRemaining |
15 | Minimum round time remaining required to use the DPR respawning for bots |
bUseSpecialWaves |
True | Should special waves be used? |
SpecialWaveFrequency |
2 | If special waves are enabled, how often should they be used? |
bResetLoadoutOnNewRound |
True | Should the player’s loadout and supply be reset on failure? |
StartingItems |
(Item=”/Game/Game/Actors/Weapons/SideArm/BP_Firearm_Makarov.BP_Firearm_Makarov_C”) | When loadout reset is enabled, these are the items given to the player. |
OutpostWaveConfigAssetPath |
/Game/Game/Data/Gamemodes/OutpostWaveConfig_Default.OutpostWaveConfig_Default | Contains path to asset with special enemy config |
Player Voting
Community servers can opt into enabling player voting on their servers. This can be enabled by entering the following into Game.ini:
|
This will enable voting and include the vote kick issue, which is the only supported voting issue. When additional vote issues are available, you would add a new line below for each issue you want to enable.
When voting is enabled, players can press Esc and click Call Vote to vote for a voting issue. Pressing F1 will vote yes, and pressing F2 will vote no.
Vote Kick Options
INI Section: [/Script/Insurgency.VoteIssueKick]
MinimumPlayersRequired |
3 | The number of players required to start a vote. |
---|---|---|
bRequiresMinimumToStart |
True | Does this issue require a minimum number of players to show their voting intentions before commencing the vote? |
MinimumPlayerRatio |
0.25 | Minimum ratio of team required to start a vote. |
VotePassRatio |
0.75 | Ratio of team required to vote yes for vote to pass. |
MinimumYesNoDifference |
2 | For the vote to succeed, yes must have this number of votes over no. |
VoteTimeout |
90 | How long until this vote can be called again. |
bCanTargetEnemies |
false | Can the vote target an enemy player? |
IdleVoteBanDuration |
-1 | How long voting an idle player will ban them for in seconds, -1 represents a kick only. |
DefaultVoteBanDuration |
120 | How long a ban for any other reason will last in seconds. |
Parametry game.ini
;Enable rcon for the server
[Rcon]
bEnabled=True
Password=ins_sandstorm_password_yadiyadanana
ListenPort=29099
bAllowConsoleCommands=True
;To remove movement lag and stutter on server
[/Script/Engine.GameNetworkManager]
bMovementTimeDiscrepancyDetection=false
bMovementTimeDiscrepancyResolution=false
;GameSession (Exist but doesn't work)
[/Script/Engine.GameSession]
;MaxPlayers currently limited by the server
MaxPlayers=50
MaxSpectators=0
;AISystem for bot when bot move and navigating to each path
[/Script/AIModule.AISystem]
;Strafing = bot spray and suppress and shoot faster while walking and runing
;Enable this if u want ur bot to shoot player instantly when they walking/running
;This doesn't change bot accuracy but also reveal bot location to players if they spray and miss
bAllowStrafing=False
bAcceptPartialPaths=True
bEnableBTAITasks=False
bFinishMoveOnGoalOverlap=False
[/Script/AIModule.AIController]
;Allow strafe when bot is camping and not navigating
;Enable this to make bot deadly when they walk in the checkpoint where bot is camping
;Bot will instant shoot them and spray on them
bAllowStrafe=True
bLOSflag=True
bSkipExtraLOSChecks=False
bWantsPlayerState=True
bAdvancedTactics=True
bSetControlRotationFromPawnOrientation=True
[/Script/AIModule.AIPerceptionComponent]
;Change other AI info to make AI deadly
HearingRange=768
SightRadius=3000
LoseSightRadius=3500
LoSHearingRange=1500
;Change AI Vision Angle
PeripheralVisionAngle=360
[/Script/AIModule.AISenseConfig_Hearing]
HearingRange=768
LoSHearingRange=1500
[/Script/AIModule.AISenseConfig_Sight]
;Change other AI sight config
SightRadius=3000
LoseSightRadius=3500
;Change AI Vision Angle Degree for sight
PeripheralVisionAngleDegrees=360
;Last seen location (Default -1)
AutoSuccessRangeFromLastSeenLocation=500
[/Script/AIModule.EnvQueryManager]
;Lower the interval will check the environment faster but will eat up ur CPU resource
QueryCountWarningInterval=5.0
[/script/Insurgency.INSGameInstance]
;Require bAllowMatureLanguage to be false in engine.ini for profanity word to work
;Remove default profanity words (If you don't want to remove the default profanity config then remove this line)
;Look like the clearing doesn't work
!ProfaneWords=ClearArray
;Add profanity words (If you don't want this, remove it)
+ProfaneWords=(Word="Faggot", bIsStrongWord="true")
+ProfaneWords=(Word="Fag", bIsStrongWord="true")
[/Script/Insurgency.Mutator_HeadshotOnly]
bCheckMeleeDamage=False
[/Script/Insurgency.Mutator_HotPotato]
GrenadeClass="/Game/Game/Actors/Projectiles/BP_Projectile_M67.BP_Projectile_M67_C"
ThrowbackWeaponClass="/Game/Game/Actors/Weapons/Grenade/BP_Grenade_M67.BP_Grenade_M67_C"
bIgnoreHeadshots=False
bBotsOnly=False
[/Script/Insurgency.Mutator_Vampirism]
bCountFriendlyFire=False
MaxHealth=1000
[/Script/Insurgency.Mutator_SupplyBase]
bAllowLoadoutSaving=False
MaxSupply=999
bOverrideMaxSupply=False
InitialSupply=18
[/Script/Insurgency.INSGameMode]
;Server Hostname (If you don't want to use -hostname param)
ServerHostname="[INS] Coop (www.insurgency.pro)"
Rulesets = ""
;Turn on KillFeed/Deathmessage in top right
bKillFeed=True
bKillFeedSpectator=True
;Turn on killer info (Show killer weapon, name, and distance when you died)
bKillerInfo=True
bKillerInfoRevealDistance=True
;Teamkill settings
bEnforceFriendlyFireReflect=False
MinimumTotalFriendlyFireDamageToReflect=20
TeamKillLimit=3
TeamKillGrace=0.2
TeamKillReduceTime=90
;Chat message
bDeadSay=True
bDeadSayTeam=True
;Voice
bVoiceAllowDeadChat=True
bVoiceEnemyHearsLocal=True
;Objective time
;Time require to capture the objective in seconds
ObjectiveCaptureTime=30
;Objective reset when nobody on the capture point (-1 to disable)
ObjectiveResetTime=-1
;Speed up 25% per player on objective
ObjectiveSpeedup=0.25
;Max amount of players for speed up. If 25% with 4 players then its 25 x 4 = 100% then that's mean double the speed up with 4 players
ObjectiveMaxSpeedupPlayers=4
;Not sure wat this radio thing is
ObjectiveRadioSpeedup=0.6
;Objective visibility setting
FloatingObjectiveVisibility="ShowActiveOnly"
;Use Restricted area in game or not (Best to have it off for Coop and have it on for PvP)
;Somehow it not working
bAllowRestrictedAreas=False
bDisableRestrictedAreasOnWaveDepletion=True
;Spawn Protection
;Default for protection on move is true
bLoseSpawnProtectionOnMove=False
;Default for move grace is 0.3 second
LoseSpawnProtectionOnMoveGrace=5.0
;Disable vehicles for whole game? (Default is false)
bDisableVehicles=False
;Amount of time in seconds before weapon on group dissapear
DroppedWeaponLifespan=90
;Others
WarmupEnterTime=0.0
;Start player as spectator
bStartPlayersAsSpectators=False
[/Script/Insurgency.INSMultiplayerMode]
bAutoRecordReplaysDedicated=True
bHandleDedicatedServerReplays=True
;Pregame time (Before the first round)
GameStartingIntermissionTime=30
;Other Time
;PreRoundTime is the time you on the truck in the beginning of the game
PreRoundTime=10
PostRoundTime=15
PostGameTime=15
;Friendly Fire
bAllowFriendlyFire=True
FriendlyFireModifier=0.2
FriendlyFireReflect=0
;Map (Only 1 of them can be true)
bMapVoting=True
bUseMapCycle=False
;Allow players to talk to other team (PvP)
bVoiceIntermissionAllowAll=True
;AFK (Idle) Time
IdleLimit=150
IdleLimitLowReinforcements=90
IdleLimitLastOneStandingCombatZone=60
IdleLimitLastOneStandingSpawnZone=10
IdleCheckFrequency=30
bCheckLastPersonStanding=True
;Leaver penalty
LeaverPenaltyPlayerLeaveTime=840
LeaverPenaltyGameStartTimeLimit=60
LeaverPenaltyPlayerLeftTimeLimit=120
;Minimum player before the game start
MinimumPlayers=1
;Total round for each map
RoundLimit=3
;Total win for each map before map change
WinLimit=1
;bRoundWonOnceWinLimitReached
;bResetPointsEachRound
;Supply point
InitialSupply=18
MaximumSupply=50
;Gain Supply point
bSupplyGainEnabled=True
bAwardSupplyInstantly=True
;Gain supply point every 250 score
SupplyGainFrequency=250
;Allow spectator can look at other in 3rd person instead of first person
bAllowThirdPersonSpectate=True
;Allow deathcam
bAllowDeathCamera=True
;Other Time
GameTimeLimit=-1
bOvertime=False
OvertimeTime=60
TeamSwitchTime=10
;Advance spawning (Not sure how this work)
bUsesAdvancedSpawning=True
;Switch Team Every round? (1 is true and 0 is false)
SwitchTeamsEveryRound=0
;Scoreboard config
ScoreboardConfig=(bDisplayRoundsWon=True,bDisplayTeamScore=True,bDisplayTeamPoints=True,PointsText="",bDisplayPlayerScore=True,bDisplayPlayerKAD=True,bDisplayPlayerObjectives=True,bAlwaysShowExtendedInfo=True,bDisplayObjectiveBriefing=True)
;Other stuff
bIgnoreBotPurge=False
bIgnoreRoundOver=False
;Some scoring system (Not sure what this is)
bUsePlayerStartScoring=False
MaxPlayerStartsToScore=20
;How long the screen for exp to show up
PostGameTimeExp=15
PostGameTimeMatch=2
;Changing the way to earn score
ScoringAmounts=(("Kill", 10),("OffensiveKill", 5),("DefensiveKill", 5),("Assist", 5),("DriverAssist", 5),("FireSupportKill", 5),("ObjectiveCapture", 50),("ObjectiveDestroy", 100),("ObjectiveReset", 20),("ObjectiveCaptureTick", 10),("ObjectiveResetTick", 10))
;Automatic assign player class instead of letting them pick (I think only work if bAllowPlayerTeamSelect is true)
bPromptKitMenuIfAutoAssignedClass=False
bAutoAssignClass=False
;bAutoAssignTeams
;bAllowUnbalancedTeams
;Allow fire support or not
bFireSupportAllowed=True
;Others (No idea what these are. If test it out and found it working, please let me know)
;GamemodeOvertimeSwitchTeamsEveryRound=0
;GamemodeOvertimeAdditionalWins=0
;GamemodeOvertimeAdditionalRounds=0
;bGamemodeHasOvertime=False
;bGamemodeOvertime=False
;GamemodeOvertimeSwitchTeamsEveryRound=0
;bLastRoundDraw=False
;bRedoRoundOnDraw=False
;bUsesPointsScoring=False
;bCanBeInCluster=False
;bCollideWhenPlacing=False
;bCanBeDamaged=False
;bReplicateMovement=False
;bTearOff=False
[/Script/Insurgency.INSPushGameMode]
RoundTimeExtension=300
AttackerWavesPerObjective=5
AttackerWaveDPR=0.25
AttackerWaveTimer=20
DefenderWavesPerObjective=5
DefenderWaveDPR=0.25
DefenderWaveTimer=35
LastStandSetupDelay=10
AdvanceAttackerSpawnsDelay=30
;WavesDepletedClockTime (Float)
;LastManStandingClockTime (Float)
;LastStandSetupDelay (Float)
;bLastStand (Bool)
[/Script/Insurgency.INSFrontlineGameMode]
StartingWaves=15
CapturingBonusWave=2
RegressSpawnsTimer=20
;LastStandDisableSpawnsDelay (Float)
[/Script/Insurgency.INSTeamDeathmatchGameMode]
;NearWinLimitThreshold (Int)
;bNearWinLimit (Bool)
;DeathmatchSpawnPointDelay (Float)
;SpawnScoringRecentSpawnCheckTime (Float)
;SpawnScoringRecentSpawnPenalty (Float)
;SpawnScoringEnemyDistanceFactor (Float)
;SpawnScoringFriendyDistanceFactor (Float)
;SpawnScoringMinDistanceEnemy (Float)
;SpawnScoringMinDistanceFriendly (Float)
;SpawnScoringMaxDistance (Float)
;bScoreKills (Bool)
[/Script/Insurgency.INSSkirmishGameMode]
DefaultReinforcementWaves=5
CaptureBonusWaves=1
[/Script/Insurgency.INSCaptureTheBaseGameMode]
CapturingBonusWave=1
StartingWaves=10
[/Script/Insurgency.INSConvoyGameMode]
RoundTimeExtension=300
[/Script/Insurgency.INSMissionGameMode]
;TotalDeadPlayers (Int)
;bStartedEvac (Bool)
;EvacTimerHandle
;EvacDestination
;EvacHelicopter
;HelicopterClass
;MortarClass
;ActiveObjective
;MissionScenario
[/Script/Insurgency.INSOccupyGameMode]
;BonusReinforcementWaves (Int)
;DefaultReinforcementWaves (Int)
[/Script/Insurgency.INSOutpostGameMode]
;BotDPRRespawnFirst (Float)
;BotDPRRespawnFinal (Float)
;MinVehicleWave (Int)
;TotalWaves (Int)
;InitialPrepareTimer (Float)
;DefendExtensionTimer (Float)
;DefendTimer (Float)
;PrepareTimer (Float)
[/Script/Insurgency.DominationGameMode]
;DominationScoreFrequency (Int)
[/Script/Insurgency.INSCoopMode]
;Allow bot to show up with vehicle
bUseVehicleInsertion=True
;Total bots (Scale with amount of players)
MinimumEnemies=6
MaximumEnemies=20
;Allow friendly bots
;The following will require bBots enabled to use it
bBots=False
;Set amount of friendly bot (Require bBots)
FriendlyBotQuota=5
;Amount of wave player get when game start (Require bBots)
SoloWaves=0
;Reinforcement time in second for each wave (Require bBots)
SoloReinforcementTime=60
;Increase the total amount of wave each objective is captured or destroyed (Require bBots)
SoloWaveIncrementOnObjectiveCapture=0
;Set amount of enemies total. Since enabling bBots will ignore your MinimumEnemies and MaximumEnemies (Require bBots)
SoloEnemies=30
;If you are using bBots then your round time will set to default. Use this to override your roundtime (Require bBots)
SoloRoundTime=1080
;Lose when all players dead.
bLoseWhenAllPlayersDead=True
;Amount of time bot go alert (When they alert they seem to shoot at player more)
;Default is 15
AlarmDuration=60
;Scale the min and max enemies with this amount of players
;If set to 8 then regardless if u have more than 8 players or not, it will use the MaximumEnemies count when it reach 8 players in game
MaxPlayersToScaleEnemyCount=8
;Adjust AI Difficulty (0.0 - 1.0)
AIDifficulty=1.0
;Make bot follows player loadouts
;Its useful for pistol only or shotgun only mutator (Enable this so the mutator rule will apply to bot too)
bBotsUseHumanLoadouts=False
;Restrict the class depends on the player level
bRestrictClassByPlayerLevel=True
[/Script/Insurgency.INSCheckpointGameMode]
;Each objective round time
RoundTime=1080
;Checkpoint defense timer (sec)
DefendTimer=90
;Last checkpoint defense timer (sec)
DefendTimerFinal=180
;Amount of second bot will retreat after an object is capture
;Also after counter attack
RetreatTimer=10
;Bot respawn
;DPR is counter as amount of bot died before it trigger the spawning
;Example 0.2 = 20% of bots dead before it respawn the bot
;Set DPR to 1.0 = 100% of the bot died before it respawn the bot (However, that seem to bug out so setting 1.0 is to stop bot from respawning)
RespawnDPR=1.0
RespawnDelay=1
;Bot respawn for counter attack
;Set DPR 1.0 for counter attack to prevent bot from spawning for counter attack
CounterAttackRespawnDPR=1.0
CounterAttackRespawnDelay=0
;Bot will rush to the last objective after player captured/destroyed the last objective
;0 so bot will not rush and keep defense the next objective
PostCaptureRushTimer=0
;Respawn player when it counter attack
bCounterAttackReinforce=False
;This will only trigger when player is on the capture point bot will respawn base on this
;Set multiplier to 0 will also prevent bot from spawning when capturing objective
;(1 = respawn all the bot. 0.5 = respawn half of the bots)
ObjectiveTotalEnemyRespawnMultiplierMin=1
ObjectiveTotalEnemyRespawnMultiplierMax=1
FinalCacheBotQuotaMultiplier=1.5
;Bot ambush player (Not sure how this work. Probably bot will come rushing at player between these 2 ratios)
;Bot will ambush between 40% and 80% of bots are dead
;Default 0.8
BotAmbushRatioCheckpointMaxDeaths=0.8
;Default 0.4
BotAmbushRatioCheckpointMinDeaths=0.4
;Other ambush config
BotAmbushRatio=0.25
BotAmbushRadius=5000
;Bot attack range (Default 12000.0)
BotTerritoryRadius=12000.0
;Bot wandering range when they didn't spot a player (Default 10000.0)
BotWanderRadius =10000.0
;Use random counter attack type
bUseRandomCounterAttackTypes=True
[/Script/Insurgency.INSCheckpointHardcoreGameMode]
;Remove all player gear and use default gear on respawn
bStripWeaponsOnRespawn=False
;The weapon player are spawn with if bStripWeaponsOnRespawn=True
RespawnLoadoutsDataAsset="CheckpointHardcoreLoadouts'/Game/Game/Data/Gamemodes/HardcoreCheckpoint_Loadouts.HardcoreCheckpoint_Loadouts'"
RespawnLoadoutsDataAssetPath = "/Game/Game/Data/Gamemodes/HardcoreCheckpoint_Loadouts.HardcoreCheckpoint_Loadouts"
;Set the weapon player spawn with
RandonPrimaryWeaponsToGiveOnSpawn = "((Item=/Game/Game/Actors/Weapons/SniperRifle/BP_Firearm_Mosin.BP_Firearm_Mosin_C),(Item=/Game/Game/Actors/Weapons/SideArm/BP_Firearm_Makarov.BP_Firearm_Makarov_C),(Item=/Game/Game/Actors/Weapons/Grenade/BP_Grenade_M18.BP_Grenade_M18_C))"
;No idea wat this is
PlayersWhoHaveSpawnedWithLoadout = ""
;Between 1 to 3 objects, there will be a supply crate
MinObjectiveForCrate=1
MaxObjectiveForCrate=3
;Amount of ammo box that spawn randomly in objective you captured or destroyed. 4 to 6 ammo box each objective
MinAmmoPerObjective=4
MaxAmmoPerObjective=6
;Ammobox spawn chance 1.0 = 100%
AmmoBoxSpawnChance=1.0
[/Script/Insurgency.TeamInfo]
bVotingEnabled=True
TeamVoteIssues=/Script/Insurgency.VoteIssueKick
[/Script/Insurgency.VoteIssueKick]
MinimumPlayersRequired=3
bRequiresMinimumToStart=True
MinimumPlayerRatio=0.25
VotePassRatio=0.75
MinimumYesNoDifference=2
VoteTimeout=90
bCanTargetEnemies=False
IdleVoteBanDuration=-1
DefaultVoteBanDuration=120
bOnlyAdminCanCall=False
bCanTargetAdmins=False
Skrypt instalacyjny LGSM (linux)
1.Potrzebne biblioteki:
sudo dpkg –add-architecture i386; sudo apt update; sudo apt install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux lib32gcc1 libstdc++6 libstdc++6:i386
- Utwórz osobne konto użytkownika dla serwera.
adduser inssserver
note: do NOT set the password as inssserver. Use a strong password.
random password: jAzOTc2NzkxO
passwd inssserver su - inssserver
- Pobierz skrypt instalacyjny linuxgsm.sh.
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh inssserver
- Uruchom instalator i zainstaluj serwer.
./inssserver install
All Commands
A complete list of commands can be found by typing
./inssserver
4.Przydatne komendy skryptu.
Running
start
./inssserver start
stop
./inssserver stop
restart
./inssserver restart
console
Console allows you to view the live console of a server as it is running and allow you to enter commands; if supported.
./inssserver console
To exit the console press CTRL+b d. Pressing CTRL+c will terminate the server.
Updating
update
Update checks for any server updates and applies them. The server will update and restart only if required.
./inssserver update
Bypass the check and go straight to SteamCMD update.
./inssserver force-update
validate
You can use the SteamCMD validate option when updating the server.
./inssserver validate
Debugging
Details
You can get all important and useful details about the server such as passwords, ports, config files etc.
./inssserver details
Debug
Use debug mode to help you if you are having issues with the server. Debug allows you to see the output of the server directly to your terminal allowing you to diagnose any problems the server might be having.
./inssserver debug
Logs
Server logs are available to monitor and diagnose your server. Script, console and game server (if available) logs are created for the server.
/home/inssserver/logs
Backup
Backup will allow you to create a complete bzip2 archive of the whole server.
./inssserver backup
Monitor
LinuxGSM can monitor the game server by checking that the proccess is running and querying it. Should the server go offline LinuxGSM can restart the server and send you an alert. You can use cronjobs to setup monitoring.
./inssserver monitor
Przykłady plików konfiguracyjnych:
1.Start.bat ( skrypt startowy)
Windows Servers
InsurgencyServer.exe "MapCodeName"?Scenario="Scenario_"MapName"_Checkpoint_"Faction"?MaxPlayers="12"?password="password" -multihome="@SERVERIP" -Port="@SERVERPORT" -QueryPort="@SERVERPORT1" -Rcon -RconPassword="RconPassword" -RconListenPort="@SERVERPORT2" -log -hostname=""ServerName"" -mutators=ISMCarmory_legacy -GSLTToken="GSLTToken" -GameStatsToken="GameStatsToken" -GameStats -Mods ModDownloadTravelTo="MapCodeName"?Scenario=Scenario_"MapName"_"GameMode"_"Faction"
For Linux Servers
./Insurgency/Binaries/Linux/InsurgencyServer-Linux-Shipping "MapCodeName"?Scenario="Scenario_"MapName"_Checkpoint_Security"?MaxPlayers="12"?password="password" -multihome="@SERVERIP" -Port="@SERVERPORT" -QueryPort="@SERVERPORT1" -Rcon -RconPassword="RconPassword" -RconListenPort="@SERVERPORT2" -log -hostname=""Server Name"" -mutators=ISMCarmory_legacy -GSLTToken="GSLTToken" -GameStatsToken="GameStatsToken" -GameStats -Mods ModDownloadTravelTo="MapCodeName"?Scenario=Scenario_"MapName"_"GameMode"_"Faction"
2.MapCycle.txt
Scenariusze coop checkpoint:
(Scenario=”Scenario_Tideway_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Tideway_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Refinery_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Refinery_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Refinery_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Refinery_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Hideout_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Hideout_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Hideout_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Hideout_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Farmhouse_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Farmhouse_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Farmhouse_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Farmhouse_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Crossing_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Crossing_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Crossing_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Crossing_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Summit_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Summit_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Summit_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Summit_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Outskirts_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Outskirts_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Outskirts_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Outskirts_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Ministry_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Ministry_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Ministry_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Ministry_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Hillside_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Hillside_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Hillside_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Hillside_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_PowerPlant_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_PowerPlant_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_PowerPlant_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_PowerPlant_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Tideway_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Tideway_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Tideway_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Tideway_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Tell_Checkpoint_Insurgents”,Lighting=”Night”)
(Scenario=”Scenario_Tell_Checkpoint_Insurgents”,Lighting=”Day”)
(Scenario=”Scenario_Tell_Checkpoint_Security”,Lighting=”Night”)
(Scenario=”Scenario_Tell_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Highlands_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Noshahr_Canals_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_ps_cp_sec”,Mode=”Checkpoint”,Lighting=”Day”)
(Scenario=”Scenario: Scenario_HaaOya_Coop”,Lighting=”Day”)
(Scenario=”Scenario_Macedonia_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_MountainPass_Checkpoint”,Lighting=”Day”)
(Scenario=”Scenario_Paluja_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_der_Bunker_CP_Sec”,Mode=”Checkpoint”)
(Scenario=”Scenario_the_Tower_CP_Sec”,Mode=”Checkpoint”,Lighting=”Night”)
(Scenario=”Scenario=Scenario_Diplomacy_Checkpoint_Security”,Lighting=”Day”)
(Scenario=”Scenario_Polar_Checkpoint_Security”,Lighting=”Day”)
Scenariusze PVP Firefight
(Scenario=”Scenario_Hideout_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Hideout_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Farmhouse_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Farmhouse_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Refinery_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Crossing_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Precinct_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Precinct_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Summit_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Summit_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Outskirts_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Outskirts_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Ministry_Firefight_A”,Lighting=”Day”)
(Scenario=”Scenario_Hillside_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Hillside_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_PowerPlant_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_PowerPlant_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Tideway_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Tell_Firefight_West”,Lighting=”Day”)
(Scenario=”Scenario_Tell_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Bab_Firefight_East”,Lighting=”Day”)
(Scenario=”Scenario_Embassy_Firefight”,Lighting=”Day”)
(Scenario=”Scenario_Heights_Firefight”,Lighting=”Day”)
(Scenario=”Scenario_Market_Firefight”,Lighting=”Day”)
(Scenario=”Scenario_Revolt_Firefight”,Lighting=”Day”)
(Scenario=”Scenario_Station_Firefight”,Lighting=”Day”)
Local Play Instructions:
If you want to play the mod offline in local play subscribe to the mod on mod.io Insurgencysandstorm.mod.io to download the mod. Launch into any game of local play enter in these console commands (Press ` the Tilde key) :
Open "MapCodeName"?Scenario=Scenario_"MapName"_"GameMode"_"Faction"?Lighting="Day"?mutators=ISMCarmory_legacy