Difference between revisions of "Server Configuration/Body"

From Holdfast: Nations At War
Jump to navigation Jump to search
(Created page with "\= Server Configuration Files = \[\[File\:Hfconfig.png|thumb|right|Example Configuration File]] Server configuration files are plain text files containing settings defining th...")
 
(new server config commands)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
\= Server Configuration Files =
+
=Server Configuration Files=
\[\[File\:Hfconfig.png|thumb|right|Example Configuration File]]
+
[[File:Hfconfig.png|thumb|right|Example Configuration File]]
Server configuration files are plain text files containing settings defining the server setup and the maps/game modes available in rotation. There are three types of line in a configuration file:
 
  
* **Setting lines** — of the form <code>\<setting> \<value></code>.
+
Server configuration files are plain text files containing settings defining the server setup and the maps/game modes available in rotation. There are three types of lines:
* **Comment lines** — starting with a <code>#</code> character. Ignored by the server.
+
* '''Setting lines:''' <code>&lt;setting&gt; &lt;value&gt;</code> – the important ones.
* **Empty lines** — purely for spacing. Ignored by the server.
+
* '''Comment lines:''' starting with <code>#</code> – ignored; good for notes and saved rotations.
 +
* '''Empty lines:''' spacing only – ignored.
  
The usual layout: server-wide settings at the top, followed by one or more map rotations. Examples are included with the server download (see \[\[Server Hosting|Server Hosting]]).
+
The usual layout: global server settings at the top, followed by a list of map-rotation settings. Further examples ship with the server (see [[Server_Hosting|Server Hosting]]).
  
\= Server-Wide Settings =
+
==Importing Config Files==
These settings define how the server is visible to users, how it communicates with the server browser, and any restrictions on the server.
+
The <code>import</code> variable lets you pull settings from another server configuration file. Imported files must be <code>.txt</code> files, just like regular server config files. This is useful when several configs share the same header, admin settings, map voting setup, or repeated rotation settings.
  
First up are the **port** settings. These are mandatory, and all must be unique per server instance on the same box.
+
<pre class="hf-code"><nowiki>import <folder>/<file>.txt</nowiki></pre>
  
 +
Example:
 +
<pre class="hf-code"><nowiki>import monday-shared/header-shared.txt</nowiki></pre>
 +
 +
In this example, <code>monday-shared</code> is the folder and <code>header-shared.txt</code> is the imported config file.
 +
 +
'''Usage:'''
 +
* '''Global config:''' Use <code>import</code> near the top of the config to pull in shared server-wide settings.
 +
* '''Map rotation config:''' Use <code>import</code> inside a <code>!map_rotation start</code> / <code>!map_rotation end</code> block to pull in settings for that specific rotation.
 +
 +
'''Global example:'''
 +
<pre class="hf-code"><nowiki>### Server Details
 +
import monday-shared/header-shared.txt
 +
 +
server_name Monday Event Server
 +
server_region europe</nowiki></pre>
 +
 +
'''Rotation example:'''
 +
<pre class="hf-code"><nowiki>!map_rotation start
 +
map_name countryside
 +
game_mode FrontlinesOffensive
 +
import monday-shared/frontlines-rules.txt
 +
!map_rotation end</nowiki></pre>
 +
 +
==Server-Wide Settings==
 +
These define how the server shows up to players, how it talks to the server browser, and basic restrictions.
 +
 +
'''Ports''' – all '''must be unique per instance''' on the same machine:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
server_port 20100
 
server_port 20100
Line 20: Line 47:
 
</nowiki></pre>
 
</nowiki></pre>
  
Next are the settings defining how the server displays to players:
+
'''Display & access:'''
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
server_name New Server - Army Battlefield
 
server_name New Server - Army Battlefield
Line 32: Line 58:
 
</nowiki></pre>
 
</nowiki></pre>
  
The optional <code>server\_password</code> can remain commented out. The <code>server\_admin\_password</code> is used for \[\[Remote Console Commands|Remote Console Commands]]. The intro title/body define the join popup. The <code>server\_region</code> values are:
+
* <code>server_password</code> is optional (leave commented to keep the server public).
 +
* <code>server_admin_password</code> is used for [[Remote_Console_Commands|Remote Console Commands]].
 +
* <code>server_intro_*</code> shows a join popup.
  
{| class="wikitable sortable"
+
'''Server regions''' (shown in the browser):
 +
{| class="wikitable"
 +
! colspan="5" | Region codes
 +
|-
 +
| europe || usa || usaeast || usawest || australia
 +
|-
 +
| china || japan || russia || southkorea || brazil
 +
|}
  
| ! Region !! Also accepted |  |                  |
+
'''Broadcast mode''' – network usage focus for close-range combat:
| ------------------------- | - | ---------------- |
+
{| class="wikitable"
| europe                    |  |                 |
+
! Parameter !! Usage
| -                         |  |                  |
+
|-
| usa                      |   | usaeast, usawest |
+
| Standard || Reduced packet rate on close range (high player count). Default.
| -                        |  |                  |
+
|-
| australia                |  |                  |
+
| Competitive || Highest bandwidth; use only for Melee Arena with lower player counts. (Max of 64 players)
| -                        |  |                  |
+
|}
| china                    |  |                  |
+
Example:
| -                         |  |                  |
+
<pre class="hf-code"><nowiki>network_broadcast_mode Standard</nowiki></pre>
| japan                    |  |                  |
 
| -                        |  |                  |
 
| russia                    |  |                  |
 
| -                        |  |                  |
 
| southkorea                |  |                  |
 
| -                        |  |                  |
 
| brazil                    |  |                  |
 
| }                        |  |                  |
 
  
The **broadcast mode** determines network utilisation for close-range combat.
+
'''Maximum server player count:'''
{| class="wikitable sortable"
+
<pre class="hf-code"><nowiki>maximum_players 150</nowiki></pre>
 
 
| ! Parameter !! Usage |  |                                                                                                          |
 
| -------------------- | - | -------------------------------------------------------------------------------------------------------- |
 
| LowBandwidth        |  | Reduced packet rate on close-range (high player count). Default.                                        |
 
| -                    |  |                                                                                                          |
 
| HighAccuracy        |  | Increased packet rate on close-range (low player count).                                                |
 
| -                    |  |                                                                                                          |
 
| Balanced            |  | In-between LowBandwidth and HighAccuracy. Playable on big servers with good hardware.                    |
 
| -                    |  |                                                                                                          |
 
| UltraHighAccuracy    |  | Slightly less intensive than RealTime; recommended only for Melee; supports higher counts than RealTime. |
 
| -                    |  |                                                                                                          |
 
| Realtime            |  | Even higher bandwidth than HighAccuracy; only for small-count Melee Arena.                              |
 
| }                    |  |                                                                                                          |
 
| Example:            |  |                                                                                                          |
 
 
 
<pre class="hf-code"><nowiki>
 
network_broadcast_mode LowBandwidth
 
</nowiki></pre>
 
 
 
Artillery respawn timers (seconds). Defaults are 120s (2 minutes):
 
 
 
<pre class="hf-code"><nowiki>
 
artillery_fieldgun_respawn_timer 120
 
artillery_rocketlauncher_respawn_timer 120
 
</nowiki></pre>
 
 
 
Enable the anti-griefing mechanics for artillery pieces:
 
 
 
<pre class="hf-code"><nowiki>
 
antigriefing_enabled false
 
</nowiki></pre>
 
 
 
Population thresholds for low/medium/high player count map buckets (defaults below):
 
  
 +
'''Population thresholds''' (gate maps by player counts):
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
population_low_min_players 30
 
population_low_min_players 30
Line 97: Line 92:
 
</nowiki></pre>
 
</nowiki></pre>
  
Toggle performance warnings:
+
'''Warnings & rotation randomization:'''
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
show_serverperformance_warning true
 
show_serverperformance_warning true
 +
map_rotation_start_randomise true
 
</nowiki></pre>
 
</nowiki></pre>
  
Start on a random rotation entry:
+
'''Global officer chat''' (enable a separate chat channel that officers can speak in globally):
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
map_rotation_start_randomise true
+
include_officer_only_chat true
 +
include_sergeants_in_officer_chat true
 
</nowiki></pre>
 
</nowiki></pre>
  
Capture requirements for Conquest/Frontlines (by pop bucket):
+
'''Objective capture''' (Conquest/flag modes):
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
conquest_stealthcap_reqplayers_verylow 0
 
conquest_stealthcap_reqplayers_verylow 0
Line 118: Line 112:
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Frontlines specific commands ==
+
===Frontlines Mode===
Use this to set the game **type** to Frontlines (defaults to <code>false</code>). \[\[File\:Frontlines Config Example.png|thumb|Example Frontlines config]]
+
Use this to set the game type to Frontlines (defaults to false).
 
+
[[File:Frontlines Config Example.png|thumb|Example frontlines config]]
<pre class="hf-code"><nowiki>
+
<pre class="hf-code"><nowiki>frontlines_mode true</nowiki></pre>
frontlines_mode true
 
</nowiki></pre>
 
 
 
\== Auto Shutdown/Restart System ==
 
An auto-shutdown and auto-restart system can be configured either in the config file or using the \[[https://docs.google.com/document/d/1eljq4DgrJ1sD44rWTKnGzYgckh7EBs5AlfKABzGwclM](https://docs.google.com/document/d/1eljq4DgrJ1sD44rWTKnGzYgckh7EBs5AlfKABzGwclM) VapuriLoadTester] launcher.
 
  
\=== Auto Shutdown ===
+
==Auto Shutdown/Restart System==
The game server can shut itself down after a specified number of minutes. This also closes the VLT helper program upon shutdown.
+
An auto-shutdown and auto-restart system can be configured in the config or via the [https://docs.google.com/document/d/1eljq4DgrJ1sD44rWTKnGzYgckh7EBs5AlfKABzGwclM VapuriLoadTester] launcher.
  
Define the time after which the server will shut down (minutes):
+
===Auto Shutdown===
 +
The server can shut itself down after a set number of minutes (doesn't require VLT). VLT helper also closes on shutdown.
  
<pre class="hf-code"><nowiki>
+
Define the interval:
server_autoshutdown_interval_minutes 240
+
<pre class="hf-code"><nowiki>server_autoshutdown_interval_minutes 240</nowiki></pre>
</nowiki></pre>
 
  
Shutdown does **not** wait for round end once <code>interval + overtime</code> elapses. Ensure players are warned via broadcasts:
+
If the round is still running, the server won't wait; it proceeds after ''interval + overtime''. Make sure players get warned.
 +
<pre class="hf-code"><nowiki>server_autoshutdown_overtime_minutes 10</nowiki></pre>
  
 +
Broadcast message and frequency:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
server_autoshutdown_overtime_minutes 10
 
 
server_autoshutdown_broadcasted_message Server will be shutting down.
 
server_autoshutdown_broadcasted_message Server will be shutting down.
 
server_autoshutdown_broadcasted_message_interval_minutes 2
 
server_autoshutdown_broadcasted_message_interval_minutes 2
 
</nowiki></pre>
 
</nowiki></pre>
  
\=== Auto Restart ===
+
===Auto Restart===
The server can restart itself every X minutes. This **does** wait for the round to complete unless overtime is exceeded.
+
Restarts the server every N minutes (doesn't require VLT). It waits for round end unless overtime is hit.
  
 +
Interval:
 +
<pre class="hf-code"><nowiki>server_autorestart_interval_minutes 320</nowiki></pre>
 +
 +
Overtime and messaging:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
server_autorestart_interval_minutes 320
 
 
server_autorestart_overtime_minutes 10
 
server_autorestart_overtime_minutes 10
 
server_autorestart_broadcasted_message Auto restart at the end of the round.
 
server_autorestart_broadcasted_message Auto restart at the end of the round.
Line 155: Line 148:
 
</nowiki></pre>
 
</nowiki></pre>
  
\= Map Rotations =
+
=Map Rotations=
Studying the example config files bundled with the server is the best way to understand rotations. Additionally, Big Mamba has compiled a list of AGS-made configuration files: \[[https://github.com/ankit2951/holdfast-config](https://github.com/ankit2951/holdfast-config) here].
+
A number of example configs ship with the server files. Big Mamba also compiled AGS examples: [https://github.com/ankit2951/holdfast-config here].
 
 
\== Basic Map Settings ==
 
'''In Progress'''
 
  
 +
==Basic Map Settings==
 +
Common per-rotation keys:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
map_name
 
map_name
Line 166: Line 158:
 
game_type
 
game_type
 
round_time_minutes
 
round_time_minutes
ships_respawn_timer
 
allow_midround_spawning
 
allow_faction_switching
 
allow_spectating
 
max_player_respawns
 
deathmatch_max_kills
 
reinforcements_per_faction
 
minimum_players
 
maximum_players
 
melee_weapons_only
 
 
faction_balancing
 
faction_balancing
faction_balancing_discrepancy_amount
 
max_accumulated_faction_points
 
ships_preset
 
 
faction_attacking
 
faction_attacking
 
faction_defending
 
faction_defending
 
max_tickets
 
max_tickets
ships_spawn
 
rowboat_cooldown_timer
 
rowboat_cooldown_while_sinking_timer
 
ships_spacemode
 
sappers_buildlimit
 
sappers_attacking_starting_materials
 
sappers_defending_starting_materials
 
max_player_respawn
 
officers_spawn_mounted
 
 
</nowiki></pre>
 
</nowiki></pre>
  
Spawn wave timers (defaults shown). <code>vehicle</code> applies to Cavalry; <code>dynamic</code> for Frontlines tables:
+
Most map rotation commands can now be placed at the top of the server config file, before the map rotations section, and they will be applied to all map rotations that don't already have the same command. Some exceptions are commands that are map-specific such as <code>map_name</code> and <code>game_mode</code>.
 +
 
 +
==Maps==
 +
Visit [[Maps|Maps]] or [[Server Configuration Enums|Server Configuration Enums]] for a full list of all maps.
 +
 
 +
General map rotation commands:
 +
* <code>map_name</code> - the map for this rotation
 +
* <code>game_mode</code> - the game mode for this rotation (ArmyBattlefield, CoastalSiege etc)
 +
* <code>game_type</code> - the game type for this rotation (Standard or Hardcore)
 +
* <code>faction_attacking</code> - the attacking faction for this rotation
 +
* <code>faction_defending</code> - the defending faction for this rotation
 +
* <code>round_time_minutes</code> - round length, in minutes
 +
* <code>allow_midround_spawning</code> - whether players can spawn after the round has started
 +
* <code>allow_faction_switching</code> - whether players may switch faction mid round
 +
* <code>minimum_players</code> - minimum players required before the round starts
 +
* <code>reinforcements_per_faction</code> - shared respawn tickets available to each faction
 +
* <code>max_accumulated_faction_points</code> - cap on faction points that can accumulate in a round
 +
* <code>deathmatch_max_kills</code> - kills required to win in deathmatch mode
 +
* <code>max_player_respawns</code> - maximum times a player can respawn (-1 for unlimited)
 +
 
 +
Randomly assign a faction to the chosen side(s) each round:
 +
<pre class="hf-code"><nowiki>faction_randomiser <Attacking/Defending/Both></nowiki></pre>
 +
 
 +
==Faction Balancing==
 +
When <code>faction_balancing</code> is enabled, players will be prevented to join a faction that has a significantly higher player count than the other faction. <code>faction_balancing_discrepancy_amount</code> sets how large the player-count difference between factions is allowed to get before balancing kicks in.
 +
 
 +
The allowed discrepancy can also be set individually per population bracket, overriding the global value at that bracket:
 +
<pre class="hf-code"><nowiki>
 +
faction_balancing_discrepancy_amount_very_low 4
 +
faction_balancing_discrepancy_amount_low 6
 +
faction_balancing_discrepancy_amount_medium 8
 +
faction_balancing_discrepancy_amount_high 10
 +
</nowiki></pre>
 +
 
 +
You can also set a target population ratio between attackers and defenders (both values must be above 0). Useful on asymmetric maps where one side should hold more players:
 +
<pre class="hf-code"><nowiki>
 +
faction_balancing_ratio <attackers> <defenders>
 +
faction_balancing_ratio 3 2
 +
</nowiki></pre>
  
 +
==Spawn Settings==
 +
Spawn wave timers (defaults shown). ''vehicle'' = Cavalry; ''dynamic'' = Frontlines tables.
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
wave_spawn_time_seconds 10
 
wave_spawn_time_seconds 10
Line 203: Line 213:
  
 
Spawn immunity (max 5s):
 
Spawn immunity (max 5s):
 +
<pre class="hf-code"><nowiki>spawn_immunity_timer 5</nowiki></pre>
 +
 +
==Melee Arena Settings==
 +
First round grace to let players load/spawn:
 +
<pre class="hf-code"><nowiki>round_spawn_close_timer_seconds 45</nowiki></pre>
 +
Subsequent rounds:
 +
<pre class="hf-code"><nowiki>round_spawn_close_timer_seconds_between_rounds 15</nowiki></pre>
 +
Rounds to win:
 +
<pre class="hf-code"><nowiki>amount_of_rounds 50</nowiki></pre>
 +
Countdown before a round begins:
 +
<pre class="hf-code"><nowiki>round_countdown_timer_seconds 10</nowiki></pre>
 +
 +
==Officer Orders==
 +
Enable/disable officer orders system:
 +
<pre class="hf-code"><nowiki>class_system_orders <true/false></nowiki></pre>
 +
Enable/disable squad camp system (tent in NaW, table in Frontlines):
 +
<pre class="hf-code"><nowiki>class_system_orders_reinforce <true/false></nowiki></pre>
 +
Spawn limit on placed squad camp (set to -1 on Frontlines):
 +
<pre class="hf-code"><nowiki>class_system_orders_reinforce_limit 25</nowiki></pre>
 +
Enable/disable hoist flag order in naval:
 +
<pre class="hf-code"><nowiki>hoist_flag_order_enabled <true/false></nowiki></pre>
 +
Have officers spawn mounted on horses:
 +
<pre class="hf-code"><nowiki>officers_spawn_mounted <true/false></nowiki></pre>
 +
 +
==Abilities==
 +
Enable/disable throwable grenade abilities for grenadiers and carpenters:
 +
<pre class="hf-code"><nowiki>grenade_abilities_enabled <true/false></nowiki></pre>
 +
Enable/disable grenade damage on artillery pieces:
 +
<pre class="hf-code"><nowiki>grenades_damage_artillery <true/false></nowiki></pre>
  
 +
==Conquest Config==
 +
(Also applies to '''Offensive''' in Frontlines and American Revolution.)
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
spawn_immunity_timer 5
+
conquest_tick_reward 3
 +
conquest_ticker_time_seconds 1
 +
conquest_tickets_per_capture 100
 +
conquest_max_tickets 7500
 +
conquest_territory_lock_time_seconds 0
 
</nowiki></pre>
 
</nowiki></pre>
  
\=== Melee Arena Settings ===
+
==Weather and Time of Day==
First-round spawn window (allow time for initial load):
+
Preset on map load (set to <code>none</code> for random valid presets):
 +
<pre class="hf-code"><nowiki>nature_preset none</nowiki></pre>
  
<pre class="hf-code"><nowiki>
+
==Friendly Fire==
round_spawn_close_timer_seconds 45
+
Enable FF:
</nowiki></pre>
+
<pre class="hf-code"><nowiki>friendly_fire <true/false></nowiki></pre>
 +
Melee "bounce" when FF is off:
 +
<pre class="hf-code"><nowiki>friendly_fire_melee_bounce <true/false></nowiki></pre>
 +
Reflect % of FF damage back to attacker:
 +
<pre class="hf-code"><nowiki>damage_split 50</nowiki></pre>
  
Between-round spawn window (shorter for flow):
+
==Frontlines==
 +
Domination time (Offensive):
 +
<pre class="hf-code"><nowiki>frontline_offensive_domination_duration_seconds 120</nowiki></pre>
  
 +
Capture point override:
 +
<pre class="hf-code"><nowiki>capture_point_override <objective> <num_respawns> <time_for_1_person_to_capture> <max_people_affecting_time></nowiki></pre>
 +
Example:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
round_spawn_close_timer_seconds_between_rounds 15
+
capture_point_override A 150 30 1
 +
capture_point_override B 175 30 1
 +
capture_point_override C 350 60 2
 +
capture_point_override D -1 90 3
 
</nowiki></pre>
 
</nowiki></pre>
  
Rounds to win:
+
==Other Commands==
 
+
Set whether muskets start with their bayonets attached or not on spawn:
 +
<pre class="hf-code"><nowiki>start_bayonet_attached <true/false></nowiki></pre>
 +
Restrict players to melee weapons only:
 +
<pre class="hf-code"><nowiki>melee_weapons_only <true/false></nowiki></pre>
 +
Allow players to enter spectate mode:
 +
<pre class="hf-code"><nowiki>allow_spectating <true/false></nowiki></pre>
 +
Set whether enemy players should still show their name tags:
 +
<pre class="hf-code"><nowiki>show_enemy_player_name_tags <true/false></nowiki></pre>
 +
Enable or disable use of the in-game admin console on this rotation (if disabled, admins can only use P menu actions):
 +
<pre class="hf-code"><nowiki>admin_console_allowed <true/false></nowiki></pre>
 +
Show a custom rule message to specific player classes at the start of the round. List the classes separated by commas, then a <code>&#124;</code>, then the message:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
amount_of_rounds 50
+
server_round_rule <Class>,<Class>|<message>
 +
server_round_rule Rifleman,Skirmisher|No firing until the first line clashes.
 
</nowiki></pre>
 
</nowiki></pre>
  
\=== Maps ===
+
==Admin Features==
Visit \[\[Maps|Maps]] or \[\[Server Configuration Enums|Server Configuration Enums]] for a full list of Holdfast maps.
+
For any admin features, including all charge and fire out of line settings, you can find more details in the [[Admin_Features|Admin Features]] page.
  
\== Officer Orders ==
+
==Automatic Console Commands==
Enable/disable the officers order system.
+
You can issue any [[Remote_Console_Commands|RCON]] at rotation start to reset defaults, spawn bots, or stage scenarios.
  
<pre class="hf-code"><nowiki>
+
=Override Commands=
class_system_orders <true/false>
+
Server administrators can craft RP scenarios: limits per class, spawn lists per point, starting equipment, racks, props, artillery, etc.
</nowiki></pre>
 
  
Enable/disable the officers reinforcement system (flag in NaW; table in Frontlines).
+
<div class="mw-collapsible">
 +
==Land==
 +
===Class Limit Override On Spawn Points===
 +
[[File:200 Carpenters vs 200 Rifleman.png|thumb|right|Tahir Desert Army Battlefield – 200 Carpenters vs 200 Riflemen]]
 +
<pre class="hf-code"><nowiki>spawn_override <Spawn Point> <Class> <Class Limit></nowiki></pre>
 +
* <code>&lt;Spawn Point&gt;</code> = A/B/C… (see spawn menu)
 +
* Overwrites the classes available at that point.
  
 +
Example (200 Carpenters vs 200 Riflemen):
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
class_system_orders_reinforce <true/false>
+
# Override Commands
 +
spawn_override A Carpenter 200
 +
spawn_override B Rifleman 200
 
</nowiki></pre>
 
</nowiki></pre>
  
Reinforcement cooldown (seconds):
+
To add a class with a spawn limit to a spawn point while '''keeping''' the classes already available there (instead of overwriting them), use the inclusive variant:
 +
<pre class="hf-code"><nowiki>spawn_inclusive_override <Spawn Point> <Class> <Class Limit></nowiki></pre>
 +
Example:
 +
<pre class="hf-code"><nowiki>spawn_inclusive_override A Carpenter 20</nowiki></pre>
  
 +
===Spawn Overrides (Land)===
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
class_system_orders_reinforce_cooldown 240
+
objects_override spawnsection <Position> <Rotation> <ID>,<Spawn_Name>,<Category>,<Attacking|Defending|Neutral>,<SizeX>,<SizeY>
 
</nowiki></pre>
 
</nowiki></pre>
 +
Categories: BaseSpawn, FortifiedPosition, OpenPlains, Farm, Field, Village, Camp, Lodge, Church, Ruins, Port, Ship.
  
Reinforcement spawn count per flag (set to <code>-1</code> for Frontlines):
+
===Exclusive Modded Uniforms===
 +
Restrict specific factions to using only uniforms from the currently loaded mods.
 +
<pre class="hf-code"><nowiki>exclusive_modded_uniforms british french</nowiki></pre>
  
 +
===Starting Weapon Override===
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
class_system_orders_reinforce_limit 25
+
starting_weapons_selection_override <Faction> <Class> <MaxFirearms> <MaxMelee> <WeaponClass1>* <WeaponClass2>* <WeaponClass3>*
 
</nowiki></pre>
 
</nowiki></pre>
 
+
Multiple types in a slot: separate with commas.
Cooldowns (seconds) for leading abilities:
+
Example:
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
class_system_orders_reinforce_cooldown
+
# Override Commands
class_system_orders_charge_cooldown
+
starting_weapons_selection_override British Grenadier 4 2 Rifle
class_system_orders_formline_cooldown
+
starting_weapons_selection_override French  Grenadier 4 3 Rifle Pike,Spontoon,Sword Pistol
class_system_orders_breakrankandfollow_cooldown
 
class_system_orders_fireatwill_cooldown
 
class_system_orders_makeready_cooldown
 
class_system_orders_fireorder_cooldown
 
class_system_orders_ceasefire_cooldown
 
class_system_orders_sergeantformline_cooldown
 
class_system_orders_sergeantrally_cooldown
 
class_system_orders_sergeantfireatwill_cooldown
 
class_system_orders_sergeantfireorder_cooldown
 
class_system_orders_sergeantceasefire_cooldown
 
class_system_orders_sergeantmakeready_cooldown
 
class_system_orders_sergeantbreakrankandfollow_cooldown
 
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Conquest config ==
+
===Starting Weapon Bayonet Override===
These options also affect Frontlines "Offensive".
+
<pre class="hf-code"><nowiki>starting_weapons_bayonet_enabled <Faction> <Class> <true/false></nowiki></pre>
  
 +
===Firearm Ammo Override===
 +
<pre class="hf-code"><nowiki>firearm_ammo_override <Faction> <Class> <Firearm> <StartingAmmo> <LoadedInBarrel> <MaxCarry></nowiki></pre>
 +
Example:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
conquest_tick_reward 3
+
# Override Commands
conquest_ticker_time_seconds 1
+
firearm_ammo_override British LightInfantry Musket_NewLandPatternBrownBess 2 0
conquest_tickets_per_capture 100
+
firearm_ammo_override French  LightInfantry Musket_NewLandPatternBrownBess 0 1
conquest_max_tickets 7500
 
conquest_territory_lock_time_seconds 0
 
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Weather and time of day ==
+
===Weapon Class Ammo Override===
Set the weather/time preset active on map load. <code>none</code> = random pool of valid presets for map type.
+
<pre class="hf-code"><nowiki>weapon_class_ammo_override <Faction> <Class> <WeaponClass> <StartingAmmo> <LoadedInBarrel> <MaxCarry></nowiki></pre>
  
 +
===Sapper Buildable Defences – Limits===
 +
<pre class="hf-code"><nowiki>sappers_buildlimit <EmplacementType> <attacking|defending> <Limit></nowiki></pre>
 +
Example:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
nature_preset none
+
# Sapper Configuration Commands
 +
sappers_buildlimit ExplosiveBarrel defending 0
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Friendly fire ==
+
===Sapper Starting Materials===
Enable friendly fire?
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
friendly_fire <true/false>
+
sappers_attacking_starting_materials <MaterialLimit>
 +
sappers_defending_starting_materials <MaterialLimit>
 
</nowiki></pre>
 
</nowiki></pre>
 
+
Example:
Melee bounce when FF disabled (true = weapon collides with friendlies):
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
friendly_fire_melee_bounce <true/false>
+
# Sapper Configuration Commands
 +
sappers_attacking_starting_materials 50
 +
sappers_defending_starting_materials 200
 
</nowiki></pre>
 
</nowiki></pre>
  
Reflect a percentage of FF damage back to attacker:
+
==Artillery Dynamic Spawn Sections==
 +
Artillery dynamic spawns are set up for official maps, mostly used to allow event hosts to remove specific artillery pieces in their config without having to use a spawnable object to "block" the piece. You can obtain the dynamic spawn IDs from the server log when the map loads. Section IDs always start from 0.
  
<pre class="hf-code"><nowiki>
+
{| class="wikitable"
damage_split 50
+
! ArtilleryType !! Usage
</nowiki></pre>
+
|-
 +
| FieldGun || Spawns 9PDR
 +
|-
 +
| Howitzer || Spawns Howitzer
 +
|-
 +
| RocketLauncher || Spawns Rocket Launcher
 +
|-
 +
| Mortar || Spawns Mortar
 +
|-
 +
| None || Nothing spawns
 +
|-
 +
| Random || Spawns random artillery piece. Pieces able to spawn are pre-set per spawn point by map developers.
 +
|-
 +
| RandomSymmetric || Spawns random artillery piece; artillery spawn sections that share the same RandomSymmetric ID will spawn the same artillery piece.
 +
|}
  
\== Frontlines ==
+
<pre class="hf-code"><nowiki>artillery_spawn_override <slotId> <ArtilleryType></nowiki></pre>
Time (seconds) to domination loss in Offensive mode:
 
  
<pre class="hf-code"><nowiki>
+
Set whether dynamic artillery come with cannoneer spawn sections or not, and whether they should be locked to their owners or usable by anyone (Note: If disabled, you may want to use spawn overrides to add cannoneer slots to the HQ spawns, since they don't come with cannoneer slots any more on default maps.)
frontline_offensive_domination_duration_seconds 120
+
<pre class="hf-code"><nowiki>artillery_spawn_sections_enabled <true/false></nowiki></pre>
</nowiki></pre>
 
  
Capture point overrides:
+
==Naval==
 +
For these commands, "FactionSide" needs to be set to either "Attacking", "Defending", or "Both".
  
 +
===Class Limit Override On Ships===
 +
<pre class="hf-code"><nowiki>ships_spawn_detail_override <ShipType> <FactionSide> <Class> <ClassLimit></nowiki></pre>
 +
Example:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
capture_point_override <objective> <num_respawns> <time_for_1_person_to_capture> <max_people_affecting_time>
+
# Override Commands
# Examples
+
ships_spawn_detail_override Frigate50gun Attacking Rifleman 200
capture_point_override A 150 30 1
+
ships_spawn_detail_override Frigate50gun Defending Rifleman 200
capture_point_override B 175 30 1
 
capture_point_override C 350 60 2
 
capture_point_override D -1 90 3
 
 
</nowiki></pre>
 
</nowiki></pre>
  
\= Automatic Console Commands =
+
To add or change a single class limit on a ship '''without''' overwriting the other classes available on it, use the "modify" variant:
You can issue any \[\[Remote Console Commands|RC commands]] at the start of a rotation to reset defaults, spawn bots, or set up scenarios.
+
<pre class="hf-code"><nowiki>ships_spawn_detail_modify_override <ShipType> <FactionSide> <Class> <ClassLimit></nowiki></pre>
 
+
Example:
\= Override Commands =
+
<pre class="hf-code"><nowiki>ships_spawn_detail_modify_override Frigate50gun Attacking Rifleman 50</nowiki></pre>
Server administrators can customise roleplay scenarios via server-side overrides: class limits, spawnable classes, weapon/equipment selection, props/artillery per rotation, etc.
 
  
<div class="mw-collapsible mw-collapsed">
+
===Ship Spawning===
; '''Land — Class Limit Override On Spawn Points'''
+
Spawn ships with custom names and colors:
Spawn override commands define which classes appear on which spawn locations and their limits. (Note: replaces existing classes on that spawn.)
+
<pre class="hf-code"><nowiki>ships_spawn <ShipType> <Amount> <FactionSide> <shipVariationIndex> <shipNameIndex / shipNameOverride> <hullColor1Override> <hullColor2Override></nowiki></pre>
  
\[\[File:200 Carpenters vs 200 Rifleman.png|thumb|right|Tahir Desert Army Battlefield — 200 Carpenters vs 200 Riflemen]]
+
Custom ship names can include spaces by putting an underscore in place of each space.
  
 +
Example:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
# Example — 1 team 200 Carpenter, the other 200 Rifleman
+
# Override Commands
spawn_override A Carpenter 200
+
ships_spawn Frigate50gun 1 Attacking 0 The_Most_Amazing_Ship Black Green
spawn_override B Rifleman 200
+
ships_spawn Rocketboat 2 Defending 0 The_Sturdy_Rocketboat Black White
 
</nowiki></pre>
 
</nowiki></pre>
  
'''Exclusive modded uniforms'''
+
Set whether port spawners spawn gunboats instead of rowboats (default true):
Limit spawns to modded uniforms only:
+
<pre class="hf-code"><nowiki>gunboat_spawner_enabled <true/false></nowiki></pre>
 
+
Seconds before a destroyed ship respawns:
 +
<pre class="hf-code"><nowiki>ships_respawn_timer <Seconds></nowiki></pre>
 +
Rowboat spawner cooldown timers:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
exclusive_modded_uniforms british french
+
rowboat_cooldown_timer <Seconds>
 +
rowboat_cooldown_while_sinking_timer <Seconds>
 
</nowiki></pre>
 
</nowiki></pre>
  
<i>Place after <code>!map\_rotation start</code> and before <code>!map\_rotation end</code>.</i>
+
===Health Override For Ships===
 
+
Override the starting HP of each ship type:
; '''Starting Weapon Override'''
+
<pre class="hf-code"><nowiki>ships_health_detail_override <ShipType> <FactionSide> <HP></nowiki></pre>
Define starting weapons per faction/class (multiple per slot allowed via commas). Place within a rotation.
+
Example:
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
# Examples
+
# Override Commands
starting_weapons_selection_override British Grenadier 4 2 Rifle
+
ships_health_detail_override Frigate50gun Attacking 20000
starting_weapons_selection_override French  Grenadier 4 3 Rifle Pike,Spontoon,Sword Pistol
+
ships_health_detail_override Frigate50gun Defending 70
 
</nowiki></pre>
 
</nowiki></pre>
  
'''Starting Weapon Bayonet Override'''
+
Set whether ships inside the spawn area should be protected from enemy damage:
 +
<pre class="hf-code"><nowiki>ship_spawn_protection <ShipType> <FactionSide> <woodResources> <metalResources></nowiki></pre>
  
<pre class="hf-code"><nowiki>
+
===Ship Resource Overrides===
starting_weapons_bayonet_enabled <Faction> <Class> <true/false>
+
Set the starting amounts of wood resources and metal resources for each ship type:
</nowiki></pre>
+
<pre class="hf-code"><nowiki>ships_starting_resources_detail_override <ShipType> <FactionSide> <woodResources> <metalResources></nowiki></pre>
  
; '''Firearm Ammo Override'''
+
Set details about how much loot each ship type drops:
Per firearm, per class:
+
<pre class="hf-code"><nowiki>ships_resources_loot_detail_override <ShipType> <FactionSide> <percentStartingResourcesDroppedWhenCaptured> <percentResourcesLooted></nowiki></pre>
 +
* Parameter 1: You can change the percentage of starting resources a ship drops when captured.
 +
* Parameter 2: You can set certain ship types to acquire fewer resources than other ships when looting the same crate.
  
<pre class="hf-code"><nowiki>
+
===Ship Stealing Overrides===
# Examples
+
Enable ship stealing globally:
firearm_ammo_override British LightInfantry Musket_NewLandPatternBrownBess 2 0
+
<pre class="hf-code"><nowiki>ship_stealing <true/false></nowiki></pre>
firearm_ammo_override French  LightInfantry Musket_NewLandPatternBrownBess 0 1
+
Set whether capturing an enemy ship should instantly sink it or let it be controlled by the new faction:
</nowiki></pre>
+
<pre class="hf-code"><nowiki>sink_ships_on_capture <true/false></nowiki></pre>
 +
Set whether players can still respawn on a ship that is currently being contested:
 +
<pre class="hf-code"><nowiki>allow_respawn_on_contested_ships <true/false></nowiki></pre>
 +
Set whether players from the new ship faction owner can start spawning after capturing a ship:
 +
<pre class="hf-code"><nowiki>allow_spawn_on_captured_ships <true/false></nowiki></pre>
 +
Override the score obtained when capturing a specific ship type:
 +
<pre class="hf-code"><nowiki>ship_score_override <ShipType> <FactionSide> <score> <stealMultiplier></nowiki></pre>
 +
Set the time required to capture a ship:
 +
<pre class="hf-code"><nowiki>ship_steal_time_override <ShipType> <FactionSide> <seconds></nowiki></pre>
 +
Set the time required for rowboats to be auto destroyed when abandoned:
 +
<pre class="hf-code"><nowiki>ship_auto_kill_override <ShipType> <FactionSide> <seconds></nowiki></pre>
  
'''Weapon Class Ammo Override'''
+
===Ship Ramming Damage Overrides===
Apply the same values to an entire weapon class:
+
Set whether ships should drop any resources at all when sunk:
 +
<pre class="hf-code"><nowiki>ships_drop_resources_on_sink <true/false></nowiki></pre>
  
<pre class="hf-code"><nowiki>
+
Override ramming damage details for each ship type:
weapon_class_ammo_override <Faction> <Class> <WeaponClass> <Starting> <Loaded> <MaxCarry>
+
<pre class="hf-code"><nowiki>ships_ramming_detail_override <ShipType> <FactionSide> <ramBaseDamage> <ramDamageReflectionPercent> <ramMinVelocity> <ramImpactSlowdownPercent></nowiki></pre>
</nowiki></pre>
+
* Parameter 1: Base damage dealt when ramming.
 +
* Parameter 2: Percentage damage that is reflected back to the ship when ramming.
 +
* Parameter 3: Minimum velocity the ship needs to be travelling at to deal any ramming damage.
 +
* Parameter 4: Percentage reduction in ship speed when ramming.
  
; '''Sapper Buildable Defences — Limits & Materials'''
+
===Ship Space Mode===
Disable/limit emplacements or set starting materials:
+
<pre class="hf-code"><nowiki>ships_spacemode true</nowiki></pre>
  
 +
===Wind===
 +
Set the starting wind direction. Provide a single direction, or several separated by spaces to pick one at random on map load:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
# Disable explosives for defenders
+
wind_direction <Direction>
sappers_buildlimit ExplosiveBarrel defending 0
+
wind_direction North
# Starting materials
+
wind_direction North East SouthWest
sappers_attacking_starting_materials 50
 
sappers_defending_starting_materials 200
 
 
</nowiki></pre>
 
</nowiki></pre>
 +
Valid directions: North, NorthEast, East, SouthEast, South, SouthWest, West, NorthWest.
  
; '''Spawn Overrides (Land)'''
+
Enable wind that changes direction on its own over time. Pass just <code>true</code>/<code>false</code>, or add four values for the random interval and transition ranges (seconds):
Add or replace spawn points depending on the game type. Use <code>get playerPosition</code> and <code>get playerRotation</code> in the console to capture coordinates.
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
objects_override spawnsection <PosXYZ> <RotXYZ> <ID>,<Spawn_Name>,<Category>,<Side>,<SizeX>,<SizeY>
+
dynamic_wind <true/false>
 +
dynamic_wind <true/false> <minInterval> <maxInterval> <minTransition> <maxTransition>
 +
dynamic_wind true 30 90 5 15
 
</nowiki></pre>
 
</nowiki></pre>
  
</div>
+
===Spawn Overrides (Naval)===
 +
<pre class="hf-code"><nowiki>objects_override shipspawnsection <Position> <Rotation></nowiki></pre>
 +
 
 +
==Buffs & Traits==
 +
These override commands make use of the BuffPropertyType enum. A single buff or trait can have one, more than one, or none of these buff properties that you can override. You can typically tell which property types a buff or trait has by looking at its barracks description, or just its behaviour in-game. The full list of BuffPropertyType values can be found in this page: [[Server Configuration Enums|Server Configuration Enums]]. As an example, the SteadyAim buff can have these 2 buff property types overridden: Accuracy, CameraZoom
  
<div class="mw-collapsible mw-collapsed">
+
===Class Traits===
; '''Naval — Class Limits, Spawns, Health, Spacemode, Ship Spawns'''
+
Each player class can have multiple traits that give the player some specific benefits. The values of these trait properties can be overridden with this command:
Allow army classes on ships, define ship spawns, adjust health, enable flight, and set custom ship spawn locations.
+
<pre class="hf-code"><nowiki>trait_property_override <Trait> <BuffPropertyType> <Value></nowiki></pre>
  
<pre class="hf-code"><nowiki>
+
===Buff Types===
# Class limits per ship type
+
Buffs can be applied either through high command orders or through class specific abilities. You can override their property values via this command:
ships_spawn_detail_override Frigate50gun British Rifleman 200
+
<pre class="hf-code"><nowiki>buff_property_override <BuffType> <BuffPropertyType> <Value></nowiki></pre>
ships_spawn_detail_override Frigate50gun French  Rifleman 200
 
  
# Spawning & presets (use ships_preset 37 before custom spawns)
+
===High Command Orders===
ships_preset 37
+
The cooldown duration of any high command order can be overridden via this command:
ships_spawn Frigate50gun 1 British 0
+
<pre class="hf-code"><nowiki>order_cooldown_override <HighCommandOrderType> <CooldownDuration></nowiki></pre>
ships_spawn Rocketboat  10 French  4
 
  
# Health overrides
+
Note that most orders and class abilities in the game have both a HighCommandOrderType and a BuffType. These can have different enum names for the same order or ability.
ships_health_detail_override Frigate50gun British 20000
 
ships_health_detail_override Frigate50gun French  70
 
  
# Flight mode (fun)
+
==Festive Season Override==
ships_spacemode true
+
Festive seasonal events are usually active during specific periods of the year, but they can be overridden via this command:
 +
<pre class="hf-code"><nowiki>festive_season_override <HoldfastSeason></nowiki></pre>
  
# Spawn overrides (ocean maps)
+
A value of 'None' will disable any festive seasonal objects.
objects_override shipspawnsection <PosXYZ> <RotXYZ>
 
</nowiki></pre>
 
  
 +
==Object Override==
 +
Objects can be added following [[Map_Editing#Positioning|Map Editing]].
 
</div>
 
</div>
  
\= Map Voting =
+
=Map Voting=
\== Basics ==
+
<div class="mw-collapsible">
Enable and configure map voting in the global section (not inside rotations):
+
==Basics==
 
+
Global settings (not in a rotation):
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
map_voting_enabled true
 
map_voting_enabled true
Line 444: Line 555:
 
map_voting_allow_same_map false
 
map_voting_allow_same_map false
 
map_voting_history_count 3
 
map_voting_history_count 3
 +
map_voting_max_choices 3
 
map_voting_gameplay_modes ArmyBattlefield ArmyBattlefield ArmyConquest ArmySiege
 
map_voting_gameplay_modes ArmyBattlefield ArmyBattlefield ArmyConquest ArmySiege
 
map_voting_log_file_path logs_output/mapvotinglogs.txt
 
map_voting_log_file_path logs_output/mapvotinglogs.txt
 
</nowiki></pre>
 
</nowiki></pre>
  
\==== Parameter notes ====
+
==Help my map can't be voted for==
 
+
Per-rotation flags (buckets by player count & mode). Set all to <code>false</code> to ignore; set all to <code>true</code> to allow regardless of count.
* <code>map\_voting\_duration</code> — seconds the vote remains open.
 
* <code>map\_voting\_allow\_same\_map</code> — can the same map appear again (e.g., RandomWaters with different configs).
 
* <code>map\_voting\_history\_count</code> — how long since a map was played before it’s eligible again.
 
* <code>map\_voting\_gameplay\_modes</code> — which modes are eligible (repeats allowed to weight).
 
* <code>map\_voting\_log\_file\_path</code> — optional logging target.
 
 
 
\== Help my map can’t be voted ==
 
Maps are bucketed by player count and mode. To hide a map from voting set all buckets to <code>false</code>. To enable broadly, set all to <code>true</code> (or leave commented).
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
population_verylow_playable  <true/false>
 
population_verylow_playable  <true/false>
Line 465: Line 568:
 
population_high_playable    <true/false>
 
population_high_playable    <true/false>
 
</nowiki></pre>
 
</nowiki></pre>
 +
Note: load order matters—put modded maps first in the mod load order.
  
'''Note:''' For modded maps, load order matters — put the map first in the mod load order.
+
==Map vote history by population==
 
 
\== Map vote history by server population ==
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
map_voting_history_count_verylow 1
 
map_voting_history_count_verylow 1
 
map_voting_history_count_low    2
 
map_voting_history_count_low    2
 
map_voting_history_count_medium  4
 
map_voting_history_count_medium  4
map_voting_history_count_high   10
+
map_voting_history_count_high   10
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Can I manually trigger map voting? ==
+
The map-voting history normally stops recently-played maps from reappearing in votes. You can use this command to exclude specific game modes from the history, so maps of those modes can be voted for again without waiting:
Not directly, but you can end the round via a win condition object or the dynamic win condition flag to force a vote.
+
<pre class="hf-code"><nowiki>exclude_from_map_voting_history <GameMode> <GameMode> ...</nowiki></pre>
  
\== Include a random map choice ==
+
==Can I manually trigger map voting?==
 +
Not directly. Workaround: end the round via a win-condition object or the dynamic win-condition flag.
  
<pre class="hf-code"><nowiki>
+
==Including a "Random" option==
map_voting_include_random_choice <true/false>
+
<pre class="hf-code"><nowiki>map_voting_include_random_choice <true/false></nowiki></pre>
</nowiki></pre>
+
</div>
 
 
\= Workshop Mods =
 
For creators, see \[\[Script Modding Guide]] for deeper details.
 
  
\== Install mods ==
+
=Workshop Mods=
Global (not inside a rotation):
+
For creators, see [[Script Modding Guide]].
  
 +
==Install mods==
 +
Global (not in a rotation):
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
mods_installed_server_only <steamid>
 
mods_installed_server_only <steamid>
 
mods_installed <steamid>
 
mods_installed <steamid>
 
</nowiki></pre>
 
</nowiki></pre>
 
+
Per-rotation (requires the SteamID to be installed on server):
Per rotation (mod must be installed on server):
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
load_mod <steam_id>           # client + server
+
load_mod <steamid>             # loads on client and server
load_mod_client_only <steamid> # client only
+
load_mod_client_only <steamid> # loads only on clients
load_mod_server_only <steamid> # server only
+
load_mod_server_only <steamid> # loads only on server
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Mod Variables ==
+
==Mod Variables==
Some workshop mods expose config variables:
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
mod_variable <string>        # global (all rotations)
+
mod_variable <string>        # global; not in a rotation
mod_variable_local <string>  # local to the current rotation
+
mod_variable_local <string>  # only for the rotation it's in
 
</nowiki></pre>
 
</nowiki></pre>
  
\= Discord Admin Webhook Logger =
+
=Discord Admin Webhook Logger=
\== Basics ==
+
==Basics==
Enable Discord developer mode (Settings → Advanced). Warnings show admin PMs/slays/kicks/revives/slaps. Banmutes show config-writing actions (kicks, VOIP/chat mutes, spammer, etc.).
+
Enable Discord developer mode (Settings → Advanced).
 +
Warnings show admin PMs, slays, kicks, revives, slaps.
 +
Banmutes log config-writing actions (kicks, VOIP/text mutes, VOIP spammer).
  
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
discord_webhook_warning_tag_admin <@!ID> | <@!ID>
 
discord_webhook_warning_tag_admin <@!ID> | <@!ID>
discord_webhook_warning_id   <webhookID>
+
discord_webhook_warning_id <webhookID>
 
discord_webhook_warning_token <webhookToken>
 
discord_webhook_warning_token <webhookToken>
  
 
discord_webhook_banmute_tag_admin <@!ID> | <@!ID>
 
discord_webhook_banmute_tag_admin <@!ID> | <@!ID>
discord_webhook_banmute_id       <webhookID>
+
discord_webhook_banmute_id <webhookID>
discord_webhook_banmute_token   <webhookToken>
+
discord_webhook_banmute_token <webhookToken>
 
</nowiki></pre>
 
</nowiki></pre>
  
\== How to set up ==
+
==How to setup==
Place these in the **global** section of the server config (not inside a rotation).
+
* Put these in the '''global''' settings area (not inside a rotation).
 
+
* Create two webhooks in Discord (one for warnings, one for ban/mute).
Create two webhooks in your Discord channel and click **Copy Webhook URL** for each. Open each URL in a browser and copy the values of <code>id</code> and <code>token</code> into the corresponding config keys above. To tag users at the top of messages, right-click their name, **Copy ID**, and use the format <code><@!1234567890></code>.
+
* Click '''Copy Webhook URL''' and open it; extract the <code>id</code> and <code>token</code> and paste into the *_id/*_token settings.
 
+
* <code>_tag_admin</code> lets you prefix text or pings. To ping a user, enable Dev Mode, right-click → '''Copy ID''' and use <code>&lt;@!USERID&gt;</code>.
If configured correctly, admin actions will log the following to the target channel:
 
  
 +
If configured correctly, each admin action posts:
 
* Action performed
 
* Action performed
* Title from <code>\_tag\_admin</code>
+
* Title from <code>_tag_admin</code>
* Admin (with Steam profile link)
+
* Admin (linked to Steam)
* Target user (with Steam profile link)
+
* Target user (linked to Steam)
 
* Server name
 
* Server name
 
* Reason
 
* Reason
 
* Date/time
 
* Date/time
 +
 +
{|style="margin: 0 auto;"
 +
| [[File:DiscordWebhookCopyUrl.png|thumb|Where to create webhooks]]
 +
| [[File:DiscordWebhookURL.png|thumb|Where to find the id and token]]
 +
| [[File:DiscordWebhookPreview.png|thumb|Discord admin webhook example]]
 +
|}

Latest revision as of 16:32, 6 August 2026

Server Configuration Files

Example Configuration File

Server configuration files are plain text files containing settings defining the server setup and the maps/game modes available in rotation. There are three types of lines:

  • Setting lines: <setting> <value> – the important ones.
  • Comment lines: starting with # – ignored; good for notes and saved rotations.
  • Empty lines: spacing only – ignored.

The usual layout: global server settings at the top, followed by a list of map-rotation settings. Further examples ship with the server (see Server Hosting).

Importing Config Files

The import variable lets you pull settings from another server configuration file. Imported files must be .txt files, just like regular server config files. This is useful when several configs share the same header, admin settings, map voting setup, or repeated rotation settings.

import <folder>/<file>.txt

Example:

import monday-shared/header-shared.txt

In this example, monday-shared is the folder and header-shared.txt is the imported config file.

Usage:

  • Global config: Use import near the top of the config to pull in shared server-wide settings.
  • Map rotation config: Use import inside a !map_rotation start / !map_rotation end block to pull in settings for that specific rotation.

Global example:

### Server Details
import monday-shared/header-shared.txt

server_name Monday Event Server
server_region europe

Rotation example:

!map_rotation start
map_name countryside
game_mode FrontlinesOffensive
import monday-shared/frontlines-rules.txt
!map_rotation end

Server-Wide Settings

These define how the server shows up to players, how it talks to the server browser, and basic restrictions.

Ports – all must be unique per instance on the same machine:

server_port 20100
steam_communications_port 8700
steam_query_port 27000

Display & access:

server_name New Server - Army Battlefield
server_welcome_message Welcome to my new game server!
server_region europe
server_admin_password ChangeThisPassword
#server_password ChangeThisPassword
server_intro_title Welcome to my server!
server_intro_body Greetings fellow humans
  • server_password is optional (leave commented to keep the server public).
  • server_admin_password is used for Remote Console Commands.
  • server_intro_* shows a join popup.

Server regions (shown in the browser):

Region codes
europe usa usaeast usawest australia
china japan russia southkorea brazil

Broadcast mode – network usage focus for close-range combat:

Parameter Usage
Standard Reduced packet rate on close range (high player count). Default.
Competitive Highest bandwidth; use only for Melee Arena with lower player counts. (Max of 64 players)

Example:

network_broadcast_mode Standard

Maximum server player count:

maximum_players 150

Population thresholds (gate maps by player counts):

population_low_min_players 30
population_medium_min_players 50
population_high_min_players 100

Warnings & rotation randomization:

show_serverperformance_warning true
map_rotation_start_randomise true

Global officer chat (enable a separate chat channel that officers can speak in globally):

include_officer_only_chat true
include_sergeants_in_officer_chat true

Objective capture (Conquest/flag modes):

conquest_stealthcap_reqplayers_verylow 0
conquest_stealthcap_reqplayers_low 2
conquest_stealthcap_reqplayers_medium 3
conquest_stealthcap_reqplayers_high 4

Frontlines Mode

Use this to set the game type to Frontlines (defaults to false).

Example frontlines config
frontlines_mode true

Auto Shutdown/Restart System

An auto-shutdown and auto-restart system can be configured in the config or via the VapuriLoadTester launcher.

Auto Shutdown

The server can shut itself down after a set number of minutes (doesn't require VLT). VLT helper also closes on shutdown.

Define the interval:

server_autoshutdown_interval_minutes 240

If the round is still running, the server won't wait; it proceeds after interval + overtime. Make sure players get warned.

server_autoshutdown_overtime_minutes 10

Broadcast message and frequency:

server_autoshutdown_broadcasted_message Server will be shutting down.
server_autoshutdown_broadcasted_message_interval_minutes 2

Auto Restart

Restarts the server every N minutes (doesn't require VLT). It waits for round end unless overtime is hit.

Interval:

server_autorestart_interval_minutes 320

Overtime and messaging:

server_autorestart_overtime_minutes 10
server_autorestart_broadcasted_message Auto restart at the end of the round.
server_autorestart_broadcasted_message_interval_minutes 2

Map Rotations

A number of example configs ship with the server files. Big Mamba also compiled AGS examples: here.

Basic Map Settings

Common per-rotation keys:

map_name
game_mode
game_type
round_time_minutes
faction_balancing
faction_attacking
faction_defending
max_tickets

Most map rotation commands can now be placed at the top of the server config file, before the map rotations section, and they will be applied to all map rotations that don't already have the same command. Some exceptions are commands that are map-specific such as map_name and game_mode.

Maps

Visit Maps or Server Configuration Enums for a full list of all maps.

General map rotation commands:

  • map_name - the map for this rotation
  • game_mode - the game mode for this rotation (ArmyBattlefield, CoastalSiege etc)
  • game_type - the game type for this rotation (Standard or Hardcore)
  • faction_attacking - the attacking faction for this rotation
  • faction_defending - the defending faction for this rotation
  • round_time_minutes - round length, in minutes
  • allow_midround_spawning - whether players can spawn after the round has started
  • allow_faction_switching - whether players may switch faction mid round
  • minimum_players - minimum players required before the round starts
  • reinforcements_per_faction - shared respawn tickets available to each faction
  • max_accumulated_faction_points - cap on faction points that can accumulate in a round
  • deathmatch_max_kills - kills required to win in deathmatch mode
  • max_player_respawns - maximum times a player can respawn (-1 for unlimited)

Randomly assign a faction to the chosen side(s) each round:

faction_randomiser <Attacking/Defending/Both>

Faction Balancing

When faction_balancing is enabled, players will be prevented to join a faction that has a significantly higher player count than the other faction. faction_balancing_discrepancy_amount sets how large the player-count difference between factions is allowed to get before balancing kicks in.

The allowed discrepancy can also be set individually per population bracket, overriding the global value at that bracket:

faction_balancing_discrepancy_amount_very_low 4
faction_balancing_discrepancy_amount_low 6
faction_balancing_discrepancy_amount_medium 8
faction_balancing_discrepancy_amount_high 10

You can also set a target population ratio between attackers and defenders (both values must be above 0). Useful on asymmetric maps where one side should hold more players:

faction_balancing_ratio <attackers> <defenders>
faction_balancing_ratio 3 2

Spawn Settings

Spawn wave timers (defaults shown). vehicle = Cavalry; dynamic = Frontlines tables.

wave_spawn_time_seconds 10
wave_spawn_vehicle_time_seconds 20
wave_spawn_dynamic_time_seconds 15

Spawn immunity (max 5s):

spawn_immunity_timer 5

Melee Arena Settings

First round grace to let players load/spawn:

round_spawn_close_timer_seconds 45

Subsequent rounds:

round_spawn_close_timer_seconds_between_rounds 15

Rounds to win:

amount_of_rounds 50

Countdown before a round begins:

round_countdown_timer_seconds 10

Officer Orders

Enable/disable officer orders system:

class_system_orders <true/false>

Enable/disable squad camp system (tent in NaW, table in Frontlines):

class_system_orders_reinforce <true/false>

Spawn limit on placed squad camp (set to -1 on Frontlines):

class_system_orders_reinforce_limit 25

Enable/disable hoist flag order in naval:

hoist_flag_order_enabled <true/false>

Have officers spawn mounted on horses:

officers_spawn_mounted <true/false>

Abilities

Enable/disable throwable grenade abilities for grenadiers and carpenters:

grenade_abilities_enabled <true/false>

Enable/disable grenade damage on artillery pieces:

grenades_damage_artillery <true/false>

Conquest Config

(Also applies to Offensive in Frontlines and American Revolution.)

conquest_tick_reward 3
conquest_ticker_time_seconds 1
conquest_tickets_per_capture 100
conquest_max_tickets 7500
conquest_territory_lock_time_seconds 0

Weather and Time of Day

Preset on map load (set to none for random valid presets):

nature_preset none

Friendly Fire

Enable FF:

friendly_fire <true/false>

Melee "bounce" when FF is off:

friendly_fire_melee_bounce <true/false>

Reflect % of FF damage back to attacker:

damage_split 50

Frontlines

Domination time (Offensive):

frontline_offensive_domination_duration_seconds 120

Capture point override:

capture_point_override <objective> <num_respawns> <time_for_1_person_to_capture> <max_people_affecting_time>

Example:

capture_point_override A 150 30 1
capture_point_override B 175 30 1
capture_point_override C 350 60 2
capture_point_override D -1 90 3

Other Commands

Set whether muskets start with their bayonets attached or not on spawn:

start_bayonet_attached <true/false>

Restrict players to melee weapons only:

melee_weapons_only <true/false>

Allow players to enter spectate mode:

allow_spectating <true/false>

Set whether enemy players should still show their name tags:

show_enemy_player_name_tags <true/false>

Enable or disable use of the in-game admin console on this rotation (if disabled, admins can only use P menu actions):

admin_console_allowed <true/false>

Show a custom rule message to specific player classes at the start of the round. List the classes separated by commas, then a |, then the message:

server_round_rule <Class>,<Class>|<message>
server_round_rule Rifleman,Skirmisher|No firing until the first line clashes.

Admin Features

For any admin features, including all charge and fire out of line settings, you can find more details in the Admin Features page.

Automatic Console Commands

You can issue any RCON at rotation start to reset defaults, spawn bots, or stage scenarios.

Override Commands

Server administrators can craft RP scenarios: limits per class, spawn lists per point, starting equipment, racks, props, artillery, etc.

Land

Class Limit Override On Spawn Points

Tahir Desert Army Battlefield – 200 Carpenters vs 200 Riflemen
spawn_override <Spawn Point> <Class> <Class Limit>
  • <Spawn Point> = A/B/C… (see spawn menu)
  • Overwrites the classes available at that point.

Example (200 Carpenters vs 200 Riflemen):

# Override Commands
spawn_override A Carpenter 200
spawn_override B Rifleman 200

To add a class with a spawn limit to a spawn point while keeping the classes already available there (instead of overwriting them), use the inclusive variant:

spawn_inclusive_override <Spawn Point> <Class> <Class Limit>

Example:

spawn_inclusive_override A Carpenter 20

Spawn Overrides (Land)

objects_override spawnsection <Position> <Rotation> <ID>,<Spawn_Name>,<Category>,<Attacking|Defending|Neutral>,<SizeX>,<SizeY>

Categories: BaseSpawn, FortifiedPosition, OpenPlains, Farm, Field, Village, Camp, Lodge, Church, Ruins, Port, Ship.

Exclusive Modded Uniforms

Restrict specific factions to using only uniforms from the currently loaded mods.

exclusive_modded_uniforms british french

Starting Weapon Override

starting_weapons_selection_override <Faction> <Class> <MaxFirearms> <MaxMelee> <WeaponClass1>* <WeaponClass2>* <WeaponClass3>*

Multiple types in a slot: separate with commas. Example:

# Override Commands
starting_weapons_selection_override British Grenadier 4 2 Rifle
starting_weapons_selection_override French  Grenadier 4 3 Rifle Pike,Spontoon,Sword Pistol

Starting Weapon Bayonet Override

starting_weapons_bayonet_enabled <Faction> <Class> <true/false>

Firearm Ammo Override

firearm_ammo_override <Faction> <Class> <Firearm> <StartingAmmo> <LoadedInBarrel> <MaxCarry>

Example:

# Override Commands
firearm_ammo_override British LightInfantry Musket_NewLandPatternBrownBess 2 0
firearm_ammo_override French  LightInfantry Musket_NewLandPatternBrownBess 0 1

Weapon Class Ammo Override

weapon_class_ammo_override <Faction> <Class> <WeaponClass> <StartingAmmo> <LoadedInBarrel> <MaxCarry>

Sapper Buildable Defences – Limits

sappers_buildlimit <EmplacementType> <attacking|defending> <Limit>

Example:

# Sapper Configuration Commands
sappers_buildlimit ExplosiveBarrel defending 0

Sapper Starting Materials

sappers_attacking_starting_materials <MaterialLimit>
sappers_defending_starting_materials <MaterialLimit>

Example:

# Sapper Configuration Commands
sappers_attacking_starting_materials 50
sappers_defending_starting_materials 200

Artillery Dynamic Spawn Sections

Artillery dynamic spawns are set up for official maps, mostly used to allow event hosts to remove specific artillery pieces in their config without having to use a spawnable object to "block" the piece. You can obtain the dynamic spawn IDs from the server log when the map loads. Section IDs always start from 0.

ArtilleryType Usage
FieldGun Spawns 9PDR
Howitzer Spawns Howitzer
RocketLauncher Spawns Rocket Launcher
Mortar Spawns Mortar
None Nothing spawns
Random Spawns random artillery piece. Pieces able to spawn are pre-set per spawn point by map developers.
RandomSymmetric Spawns random artillery piece; artillery spawn sections that share the same RandomSymmetric ID will spawn the same artillery piece.
artillery_spawn_override <slotId> <ArtilleryType>

Set whether dynamic artillery come with cannoneer spawn sections or not, and whether they should be locked to their owners or usable by anyone (Note: If disabled, you may want to use spawn overrides to add cannoneer slots to the HQ spawns, since they don't come with cannoneer slots any more on default maps.)

artillery_spawn_sections_enabled <true/false>

Naval

For these commands, "FactionSide" needs to be set to either "Attacking", "Defending", or "Both".

Class Limit Override On Ships

ships_spawn_detail_override <ShipType> <FactionSide> <Class> <ClassLimit>

Example:

# Override Commands
ships_spawn_detail_override Frigate50gun Attacking Rifleman 200
ships_spawn_detail_override Frigate50gun Defending Rifleman 200

To add or change a single class limit on a ship without overwriting the other classes available on it, use the "modify" variant:

ships_spawn_detail_modify_override <ShipType> <FactionSide> <Class> <ClassLimit>

Example:

ships_spawn_detail_modify_override Frigate50gun Attacking Rifleman 50

Ship Spawning

Spawn ships with custom names and colors:

ships_spawn <ShipType> <Amount> <FactionSide> <shipVariationIndex> <shipNameIndex / shipNameOverride> <hullColor1Override> <hullColor2Override>

Custom ship names can include spaces by putting an underscore in place of each space.

Example:

# Override Commands
ships_spawn Frigate50gun 1 Attacking 0 The_Most_Amazing_Ship Black Green
ships_spawn Rocketboat 2 Defending 0 The_Sturdy_Rocketboat Black White

Set whether port spawners spawn gunboats instead of rowboats (default true):

gunboat_spawner_enabled <true/false>

Seconds before a destroyed ship respawns:

ships_respawn_timer <Seconds>

Rowboat spawner cooldown timers:

rowboat_cooldown_timer <Seconds>
rowboat_cooldown_while_sinking_timer <Seconds>

Health Override For Ships

Override the starting HP of each ship type:

ships_health_detail_override <ShipType> <FactionSide> <HP>

Example:

# Override Commands
ships_health_detail_override Frigate50gun Attacking 20000
ships_health_detail_override Frigate50gun Defending 70

Set whether ships inside the spawn area should be protected from enemy damage:

ship_spawn_protection <ShipType> <FactionSide> <woodResources> <metalResources>

Ship Resource Overrides

Set the starting amounts of wood resources and metal resources for each ship type:

ships_starting_resources_detail_override <ShipType> <FactionSide> <woodResources> <metalResources>

Set details about how much loot each ship type drops:

ships_resources_loot_detail_override <ShipType> <FactionSide> <percentStartingResourcesDroppedWhenCaptured> <percentResourcesLooted>
  • Parameter 1: You can change the percentage of starting resources a ship drops when captured.
  • Parameter 2: You can set certain ship types to acquire fewer resources than other ships when looting the same crate.

Ship Stealing Overrides

Enable ship stealing globally:

ship_stealing <true/false>

Set whether capturing an enemy ship should instantly sink it or let it be controlled by the new faction:

sink_ships_on_capture <true/false>

Set whether players can still respawn on a ship that is currently being contested:

allow_respawn_on_contested_ships <true/false>

Set whether players from the new ship faction owner can start spawning after capturing a ship:

allow_spawn_on_captured_ships <true/false>

Override the score obtained when capturing a specific ship type:

ship_score_override <ShipType> <FactionSide> <score> <stealMultiplier>

Set the time required to capture a ship:

ship_steal_time_override <ShipType> <FactionSide> <seconds>

Set the time required for rowboats to be auto destroyed when abandoned:

ship_auto_kill_override <ShipType> <FactionSide> <seconds>

Ship Ramming Damage Overrides

Set whether ships should drop any resources at all when sunk:

ships_drop_resources_on_sink <true/false>

Override ramming damage details for each ship type:

ships_ramming_detail_override <ShipType> <FactionSide> <ramBaseDamage> <ramDamageReflectionPercent> <ramMinVelocity> <ramImpactSlowdownPercent>
  • Parameter 1: Base damage dealt when ramming.
  • Parameter 2: Percentage damage that is reflected back to the ship when ramming.
  • Parameter 3: Minimum velocity the ship needs to be travelling at to deal any ramming damage.
  • Parameter 4: Percentage reduction in ship speed when ramming.

Ship Space Mode

ships_spacemode true

Wind

Set the starting wind direction. Provide a single direction, or several separated by spaces to pick one at random on map load:

wind_direction <Direction>
wind_direction North
wind_direction North East SouthWest

Valid directions: North, NorthEast, East, SouthEast, South, SouthWest, West, NorthWest.

Enable wind that changes direction on its own over time. Pass just true/false, or add four values for the random interval and transition ranges (seconds):

dynamic_wind <true/false>
dynamic_wind <true/false> <minInterval> <maxInterval> <minTransition> <maxTransition>
dynamic_wind true 30 90 5 15

Spawn Overrides (Naval)

objects_override shipspawnsection <Position> <Rotation>

Buffs & Traits

These override commands make use of the BuffPropertyType enum. A single buff or trait can have one, more than one, or none of these buff properties that you can override. You can typically tell which property types a buff or trait has by looking at its barracks description, or just its behaviour in-game. The full list of BuffPropertyType values can be found in this page: Server Configuration Enums. As an example, the SteadyAim buff can have these 2 buff property types overridden: Accuracy, CameraZoom

Class Traits

Each player class can have multiple traits that give the player some specific benefits. The values of these trait properties can be overridden with this command:

trait_property_override <Trait> <BuffPropertyType> <Value>

Buff Types

Buffs can be applied either through high command orders or through class specific abilities. You can override their property values via this command:

buff_property_override <BuffType> <BuffPropertyType> <Value>

High Command Orders

The cooldown duration of any high command order can be overridden via this command:

order_cooldown_override <HighCommandOrderType> <CooldownDuration>

Note that most orders and class abilities in the game have both a HighCommandOrderType and a BuffType. These can have different enum names for the same order or ability.

Festive Season Override

Festive seasonal events are usually active during specific periods of the year, but they can be overridden via this command:

festive_season_override <HoldfastSeason>

A value of 'None' will disable any festive seasonal objects.

Object Override

Objects can be added following Map Editing.

Map Voting

Basics

Global settings (not in a rotation):

map_voting_enabled true
map_voting_duration 15
map_voting_allow_same_map false
map_voting_history_count 3
map_voting_max_choices 3
map_voting_gameplay_modes ArmyBattlefield ArmyBattlefield ArmyConquest ArmySiege
map_voting_log_file_path logs_output/mapvotinglogs.txt

Help my map can't be voted for

Per-rotation flags (buckets by player count & mode). Set all to false to ignore; set all to true to allow regardless of count.

population_verylow_playable  <true/false>
population_low_playable      <true/false>
population_medium_playable   <true/false>
population_high_playable     <true/false>

Note: load order matters—put modded maps first in the mod load order.

Map vote history by population

map_voting_history_count_verylow 1
map_voting_history_count_low     2
map_voting_history_count_medium  4
map_voting_history_count_high    10

The map-voting history normally stops recently-played maps from reappearing in votes. You can use this command to exclude specific game modes from the history, so maps of those modes can be voted for again without waiting:

exclude_from_map_voting_history <GameMode> <GameMode> ...

Can I manually trigger map voting?

Not directly. Workaround: end the round via a win-condition object or the dynamic win-condition flag.

Including a "Random" option

map_voting_include_random_choice <true/false>

Workshop Mods

For creators, see Script Modding Guide.

Install mods

Global (not in a rotation):

mods_installed_server_only <steamid>
mods_installed <steamid>

Per-rotation (requires the SteamID to be installed on server):

load_mod <steamid>              # loads on client and server
load_mod_client_only <steamid>  # loads only on clients
load_mod_server_only <steamid>  # loads only on server

Mod Variables

mod_variable <string>        # global; not in a rotation
mod_variable_local <string>  # only for the rotation it's in

Discord Admin Webhook Logger

Basics

Enable Discord developer mode (Settings → Advanced). Warnings show admin PMs, slays, kicks, revives, slaps. Banmutes log config-writing actions (kicks, VOIP/text mutes, VOIP spammer).

discord_webhook_warning_tag_admin <@!ID> | <@!ID>
discord_webhook_warning_id <webhookID>
discord_webhook_warning_token <webhookToken>

discord_webhook_banmute_tag_admin <@!ID> | <@!ID>
discord_webhook_banmute_id <webhookID>
discord_webhook_banmute_token <webhookToken>

How to setup

  • Put these in the global settings area (not inside a rotation).
  • Create two webhooks in Discord (one for warnings, one for ban/mute).
  • Click Copy Webhook URL and open it; extract the id and token and paste into the *_id/*_token settings.
  • _tag_admin lets you prefix text or pings. To ping a user, enable Dev Mode, right-click → Copy ID and use <@!USERID>.

If configured correctly, each admin action posts:

  • Action performed
  • Title from _tag_admin
  • Admin (linked to Steam)
  • Target user (linked to Steam)
  • Server name
  • Reason
  • Date/time
Where to create webhooks
Where to find the id and token
Discord admin webhook example