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...")
 
(Server Performance changes to Standard and Competitive.)
 
(6 intermediate revisions by 2 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 =
+
==Server-Wide Settings==
These settings define how the server is visible to users, how it communicates with the server browser, and any restrictions on the server.
+
These define how the server shows up to players, how it talks to the server browser, and basic restrictions.
 
 
First up are the **port** settings. These are mandatory, and all must be unique per server instance on the same box.
 
  
 +
'''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 19:
 
</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 30:
 
</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]].
{| class="wikitable sortable"
+
* <code>server_intro_*</code> shows a join popup.
 
 
| ! Region !! Also accepted |  |                  |
 
| ------------------------- | - | ---------------- |
 
| europe                    |  |                  |
 
| -                        |  |                  |
 
| usa                      |  | usaeast, usawest |
 
| -                        |  |                  |
 
| australia                |  |                  |
 
| -                        |  |                  |
 
| china                    |  |                  |
 
| -                        |  |                  |
 
| japan                    |  |                  |
 
| -                        |  |                  |
 
| russia                    |  |                  |
 
| -                        |  |                  |
 
| southkorea                |  |                  |
 
| -                        |  |                  |
 
| brazil                    |  |                  |
 
| }                        |  |                  |
 
 
 
The **broadcast mode** determines network utilisation for close-range combat.
 
{| class="wikitable sortable"
 
 
 
| ! 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>
+
'''Server regions''' (shown in the browser):
network_broadcast_mode LowBandwidth
+
{| class="wikitable"
</nowiki></pre>
+
! Region codes
 +
|-
 +
| europe || usa || usaeast || usawest || australia
 +
|-
 +
| china || japan || russia || southkorea || brazil
 +
|}
  
Artillery respawn timers (seconds). Defaults are 120s (2 minutes):
+
'''Broadcast mode''' – network usage focus for close-range combat:
 +
{| class="wikitable"
 +
! 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:
 +
<pre class="hf-code"><nowiki>network_broadcast_mode Standard</nowiki></pre>
  
 +
'''Artillery respawn (seconds). Defaults are 120s:'''
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
artillery_fieldgun_respawn_timer 120
 
artillery_fieldgun_respawn_timer 120
Line 83: Line 60:
 
</nowiki></pre>
 
</nowiki></pre>
  
Enable the anti-griefing mechanics for artillery pieces:
+
'''Artillery anti-grief:'''
 
+
<pre class="hf-code"><nowiki>antigriefing_enabled false</nowiki></pre>
<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 70:
 
</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
</nowiki></pre>
 
 
Start on a random rotation entry:
 
 
<pre class="hf-code"><nowiki>
 
 
map_rotation_start_randomise true
 
map_rotation_start_randomise 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 84:
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Frontlines specific commands ==
+
==Frontlines specific commands==
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 120:
 
</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==
 +
'''In Progress''' – common per-rotation keys:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
map_name
 
map_name
Line 194: Line 158:
 
</nowiki></pre>
 
</nowiki></pre>
  
Spawn wave timers (defaults shown). <code>vehicle</code> applies to Cavalry; <code>dynamic</code> for Frontlines tables:
+
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 166:
  
 
Spawn immunity (max 5s):
 
Spawn immunity (max 5s):
 +
<pre class="hf-code"><nowiki>spawn_immunity_timer 5</nowiki></pre>
  
<pre class="hf-code"><nowiki>
+
== Melee Arena Settings ==
spawn_immunity_timer 5
+
First round grace to let players load/spawn:
</nowiki></pre>
+
<pre class="hf-code"><nowiki>round_spawn_close_timer_seconds 45</nowiki></pre>
 
+
Subsequent rounds:
\=== Melee Arena Settings ===
+
<pre class="hf-code"><nowiki>round_spawn_close_timer_seconds_between_rounds 15</nowiki></pre>
First-round spawn window (allow time for initial load):
 
 
 
<pre class="hf-code"><nowiki>
 
round_spawn_close_timer_seconds 45
 
</nowiki></pre>
 
 
 
Between-round spawn window (shorter for flow):
 
 
 
<pre class="hf-code"><nowiki>
 
round_spawn_close_timer_seconds_between_rounds 15
 
</nowiki></pre>
 
 
 
 
Rounds to win:
 
Rounds to win:
 +
<pre class="hf-code"><nowiki>amount_of_rounds 50</nowiki></pre>
  
<pre class="hf-code"><nowiki>
+
===Maps===
amount_of_rounds 50
+
Visit [[Maps|Maps]] or [[Server Configuration Enums|Server Configuration Enums]] for a full list of all maps.
</nowiki></pre>
 
 
 
\=== Maps ===
 
Visit \[\[Maps|Maps]] or \[\[Server Configuration Enums|Server Configuration Enums]] for a full list of Holdfast maps.
 
 
 
\== Officer Orders ==
 
Enable/disable the officers order system.
 
 
 
<pre class="hf-code"><nowiki>
 
class_system_orders <true/false>
 
</nowiki></pre>
 
 
 
Enable/disable the officers reinforcement system (flag in NaW; table in Frontlines).
 
 
 
<pre class="hf-code"><nowiki>
 
class_system_orders_reinforce <true/false>
 
</nowiki></pre>
 
  
 +
==Officer orders==
 +
Enable/disable officer orders system:
 +
<pre class="hf-code"><nowiki>class_system_orders <true/false></nowiki></pre>
 +
Enable/disable reinforcement system (flag in NaW, table in Frontlines):
 +
<pre class="hf-code"><nowiki>class_system_orders_reinforce <true/false></nowiki></pre>
 
Reinforcement cooldown (seconds):
 
Reinforcement cooldown (seconds):
 +
<pre class="hf-code"><nowiki>class_system_orders_reinforce_cooldown 240</nowiki></pre>
 +
Spawn limit on placed flag (set to -1 on Frontlines):
 +
<pre class="hf-code"><nowiki>class_system_orders_reinforce_limit 25</nowiki></pre>
  
<pre class="hf-code"><nowiki>
+
Cooldowns (seconds):
class_system_orders_reinforce_cooldown 240
 
</nowiki></pre>
 
 
 
Reinforcement spawn count per flag (set to <code>-1</code> for Frontlines):
 
 
 
<pre class="hf-code"><nowiki>
 
class_system_orders_reinforce_limit 25
 
</nowiki></pre>
 
 
 
Cooldowns (seconds) for leading abilities:
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
class_system_orders_reinforce_cooldown
 
class_system_orders_reinforce_cooldown
Line 275: Line 208:
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Conquest config ==
+
==Conquest config==
These options also affect Frontlines "Offensive".
+
(Also applies to Frontlines **Offensive**.)
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
conquest_tick_reward 3
 
conquest_tick_reward 3
Line 286: Line 218:
 
</nowiki></pre>
 
</nowiki></pre>
  
\== Weather and time of day ==
+
==Weather and time of day==
Set the weather/time preset active on map load. <code>none</code> = random pool of valid presets for map type.
+
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>
 
nature_preset none
 
</nowiki></pre>
 
 
 
\== Friendly fire ==
 
Enable friendly fire?
 
  
<pre class="hf-code"><nowiki>
+
==Friendly fire==
friendly_fire <true/false>
+
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>
  
Melee bounce when FF disabled (true = weapon collides with friendlies):
+
==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>
friendly_fire_melee_bounce <true/false>
 
</nowiki></pre>
 
 
Reflect a percentage of FF damage back to attacker:
 
 
<pre class="hf-code"><nowiki>
 
damage_split 50
 
</nowiki></pre>
 
 
\== Frontlines ==
 
Time (seconds) to domination loss in Offensive mode:
 
 
<pre class="hf-code"><nowiki>
 
frontline_offensive_domination_duration_seconds 120
 
</nowiki></pre>
 
 
Capture point overrides:
 
 
<pre class="hf-code"><nowiki>
 
capture_point_override <objective> <num_respawns> <time_for_1_person_to_capture> <max_people_affecting_time>
 
# Examples
 
 
capture_point_override A 150 30 1
 
capture_point_override A 150 30 1
 
capture_point_override B 175 30 1
 
capture_point_override B 175 30 1
Line 330: Line 244:
 
</nowiki></pre>
 
</nowiki></pre>
  
\= Automatic Console Commands =
+
==Automatic Console Commands==
You can issue any \[\[Remote Console Commands|RC commands]] at the start of a rotation to reset defaults, spawn bots, or set up scenarios.
+
You can issue any [[Remote_Console_Commands|RCON]] at rotation start to reset defaults, spawn bots, or stage scenarios.
  
\= Override Commands =
+
<div class="mw-collapsible">
Server administrators can customise roleplay scenarios via server-side overrides: class limits, spawnable classes, weapon/equipment selection, props/artillery per rotation, etc.
+
; '''Override Commands'''
 +
Server administrators can craft RP scenarios: limits per class, spawn lists per point, starting equipment, racks, props, artillery, etc.
  
<div class="mw-collapsible mw-collapsed">
+
=== Land ===
; '''Land — Class Limit Override On Spawn Points'''
+
====Class Limit Override On Spawn Points====
Spawn override commands define which classes appear on which spawn locations and their limits. (Note: replaces existing classes on that spawn.)
+
[[File:200 Carpenters vs 200 Rifleman.png|thumb|right|Tahir Desert Army Battlefield 200 Carpenters vs 200 Riflemen]]
 
+
;<code>spawn_override &lt;Spawn Point&gt; &lt;[[Server_Configuration_Enums#Class|Class]]&gt; &lt;Class Limit&gt;</code>
\[\[File:200 Carpenters vs 200 Rifleman.png|thumb|right|Tahir Desert Army Battlefield 200 Carpenters vs 200 Riflemen]]
+
* <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>
# Example — 1 team 200 Carpenter, the other 200 Rifleman
+
# Override Commands
 
spawn_override A Carpenter 200
 
spawn_override A Carpenter 200
 
spawn_override B Rifleman 200
 
spawn_override B Rifleman 200
 
</nowiki></pre>
 
</nowiki></pre>
  
'''Exclusive modded uniforms'''
+
'''exclusive_modded_uniforms''' – restrict to mod uniforms:
Limit spawns to modded uniforms only:
+
<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>
exclusive_modded_uniforms british french
+
starting_weapons_selection_override <Faction> <Class> <MaxFirearms> <MaxMelee> <WeaponClass1>* <WeaponClass2>* <WeaponClass3>*
 
</nowiki></pre>
 
</nowiki></pre>
 
+
Multiple types in a slot: separate with commas.
<i>Place after <code>!map\_rotation start</code> and before <code>!map\_rotation end</code>.</i>
+
Example:
 
 
; '''Starting Weapon Override'''
 
Define starting weapons per faction/class (multiple per slot allowed via commas). Place within a rotation.
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
# Examples
+
# Override Commands
 
starting_weapons_selection_override British Grenadier 4 2 Rifle
 
starting_weapons_selection_override British Grenadier 4 2 Rifle
 
starting_weapons_selection_override French  Grenadier 4 3 Rifle Pike,Spontoon,Sword Pistol
 
starting_weapons_selection_override French  Grenadier 4 3 Rifle Pike,Spontoon,Sword Pistol
Line 367: Line 281:
  
 
'''Starting Weapon Bayonet Override'''
 
'''Starting Weapon Bayonet Override'''
 +
<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>
starting_weapons_bayonet_enabled <Faction> <Class> <true/false>
+
# Override Commands
</nowiki></pre>
 
 
 
; '''Firearm Ammo Override'''
 
Per firearm, per class:
 
 
 
<pre class="hf-code"><nowiki>
 
# Examples
 
 
firearm_ammo_override British LightInfantry Musket_NewLandPatternBrownBess 2 0
 
firearm_ammo_override British LightInfantry Musket_NewLandPatternBrownBess 2 0
 
firearm_ammo_override French  LightInfantry Musket_NewLandPatternBrownBess 0 1
 
firearm_ammo_override French  LightInfantry Musket_NewLandPatternBrownBess 0 1
Line 382: Line 293:
  
 
'''Weapon Class Ammo Override'''
 
'''Weapon Class Ammo Override'''
Apply the same values to an entire weapon class:
+
<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>
weapon_class_ammo_override <Faction> <Class> <WeaponClass> <Starting> <Loaded> <MaxCarry>
+
# Sapper Configuration Commands
 +
sappers_buildlimit ExplosiveBarrel defending 0
 
</nowiki></pre>
 
</nowiki></pre>
  
; '''Sapper Buildable Defences — Limits & Materials'''
+
'''Sapper Starting Materials'''
Disable/limit emplacements or set starting materials:
+
<pre class="hf-code"><nowiki>
 
+
sappers_attacking_starting_materials <MaterialLimit>
 +
sappers_defending_starting_materials <MaterialLimit>
 +
</nowiki></pre>
 +
Example:
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
# Disable explosives for defenders
+
# Sapper Configuration Commands
sappers_buildlimit ExplosiveBarrel defending 0
 
# Starting materials
 
 
sappers_attacking_starting_materials 50
 
sappers_attacking_starting_materials 50
 
sappers_defending_starting_materials 200
 
sappers_defending_starting_materials 200
 
</nowiki></pre>
 
</nowiki></pre>
  
; '''Spawn Overrides (Land)'''
+
'''Spawn Overrides (land)'''
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>
+
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.
  
</div>
+
=== Naval ===
 
+
====Class Limit Override On Ships====
<div class="mw-collapsible mw-collapsed">
+
<pre class="hf-code"><nowiki>ships_spawn_detail_override <ShipType> <Faction> <Class> <ClassLimit></nowiki></pre>
; '''Naval — Class Limits, Spawns, Health, Spacemode, Ship Spawns'''
+
Example:
Allow army classes on ships, define ship spawns, adjust health, enable flight, and set custom ship spawn locations.
 
 
 
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
# Class limits per ship type
+
# Override Commands
 
ships_spawn_detail_override Frigate50gun British Rifleman 200
 
ships_spawn_detail_override Frigate50gun British Rifleman 200
 
ships_spawn_detail_override Frigate50gun French  Rifleman 200
 
ships_spawn_detail_override Frigate50gun French  Rifleman 200
 +
</nowiki></pre>
  
# Spawning & presets (use ships_preset 37 before custom spawns)
+
====Ship Spawning & Custom Ship Presets====
 +
Set <code>ships_preset 37</code> first, then:
 +
<pre class="hf-code"><nowiki>ships_spawn <ShipType> <Amount> <Faction> <Color> <ShipName></nowiki></pre>
 +
Example:
 +
<pre class="hf-code"><nowiki>
 +
# Override Commands
 
ships_preset 37
 
ships_preset 37
 
ships_spawn Frigate50gun 1 British 0
 
ships_spawn Frigate50gun 1 British 0
ships_spawn Rocketboat 10 French 4
+
ships_spawn Rocketboat 10 French 4
 +
</nowiki></pre>
  
# Health overrides
+
====Health Override For Ships====
 +
<pre class="hf-code"><nowiki>ships_health_detail_override <ShipType> <Faction> <HP></nowiki></pre>
 +
Defaults: Frigate 5500; 12GunBrigg 3000; 8GunSchooner 2000; 2GunSchooner 1250; Gunboat 500; Rocketboat 500.
 +
Example:
 +
<pre class="hf-code"><nowiki>
 +
# Override Commands
 
ships_health_detail_override Frigate50gun British 20000
 
ships_health_detail_override Frigate50gun British 20000
ships_health_detail_override Frigate50gun French 70
+
ships_health_detail_override Frigate50gun French 70
 +
</nowiki></pre>
  
# Flight mode (fun)
+
====Ship Spacemode====
ships_spacemode true
+
<pre class="hf-code"><nowiki>ships_spacemode true</nowiki></pre>
 
 
# Spawn overrides (ocean maps)
 
objects_override shipspawnsection <PosXYZ> <RotXYZ>
 
</nowiki></pre>
 
  
 +
====Spawn Overrides (naval)====
 +
<pre class="hf-code"><nowiki>objects_override shipspawnsection <Position> <Rotation></nowiki></pre>
 
</div>
 
</div>
  
\= Map Voting =
+
===Object Override===
\== Basics ==
+
Objects can be added following [[Map_Editing#Positioning|Map Editing]].
Enable and configure map voting in the global section (not inside rotations):
 
  
 +
=Map Voting=
 +
<div class="mw-collapsible">
 +
==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 448: Line 375:
 
</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 383:
 
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? ==
+
==Can I manually trigger map voting?==
Not directly, but you can end the round via a win condition object or the dynamic win condition flag to force a vote.
+
Not directly. Workaround: end the round via a win-condition object or the dynamic win-condition flag.
  
\== Include a random map choice ==
+
==Including a “Random” option==
 
+
<pre class="hf-code"><nowiki>map_voting_include_random_choice <true/false></nowiki></pre>
<pre class="hf-code"><nowiki>
+
</div>
map_voting_include_random_choice <true/false>
 
</nowiki></pre>
 
 
 
\= 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:54, 6 October 2025

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).

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

Artillery respawn (seconds). Defaults are 120s:

artillery_fieldgun_respawn_timer 120
artillery_rocketlauncher_respawn_timer 120

Artillery anti-grief:

antigriefing_enabled false

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

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 specific commands

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

In Progress – common per-rotation keys:

map_name
game_mode
game_type
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_discrepancy_amount
max_accumulated_faction_points
ships_preset
faction_attacking
faction_defending
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

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

Maps

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

Officer orders

Enable/disable officer orders system:

class_system_orders <true/false>

Enable/disable reinforcement system (flag in NaW, table in Frontlines):

class_system_orders_reinforce <true/false>

Reinforcement cooldown (seconds):

class_system_orders_reinforce_cooldown 240

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

class_system_orders_reinforce_limit 25

Cooldowns (seconds):

class_system_orders_reinforce_cooldown
class_system_orders_charge_cooldown
class_system_orders_formline_cooldown
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

Conquest config

(Also applies to Frontlines **Offensive**.)

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

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

exclusive_modded_uniforms – restrict to mod uniforms:

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

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.

Naval

Class Limit Override On Ships

ships_spawn_detail_override <ShipType> <Faction> <Class> <ClassLimit>

Example:

# Override Commands
ships_spawn_detail_override Frigate50gun British Rifleman 200
ships_spawn_detail_override Frigate50gun French  Rifleman 200

Ship Spawning & Custom Ship Presets

Set ships_preset 37 first, then:

ships_spawn <ShipType> <Amount> <Faction> <Color> <ShipName>

Example:

# Override Commands
ships_preset 37
ships_spawn Frigate50gun 1 British 0
ships_spawn Rocketboat 10 French 4

Health Override For Ships

ships_health_detail_override <ShipType> <Faction> <HP>

Defaults: Frigate 5500; 12GunBrigg 3000; 8GunSchooner 2000; 2GunSchooner 1250; Gunboat 500; Rocketboat 500. Example:

# Override Commands
ships_health_detail_override Frigate50gun British 20000
ships_health_detail_override Frigate50gun French 70

Ship Spacemode

ships_spacemode true

Spawn Overrides (naval)

objects_override shipspawnsection <Position> <Rotation>

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_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

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