Difference between revisions of "Server Configuration/Body"

From Holdfast: Nations At War
Jump to navigation Jump to search
(Server Performance changes to Standard and Competitive.)
 
(5 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
[[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:
+
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: <code>&lt;setting&gt; &lt;value&gt;</code> – the important ones.
 
* Setting lines: <code>&lt;setting&gt; &lt;value&gt;</code> – the important ones.
 
* Comment lines: starting with <code>#</code> – ignored; good for notes and saved rotations.
 
* Comment lines: starting with <code>#</code> – ignored; good for notes and saved rotations.
Line 47: Line 47:
 
! Parameter !! Usage
 
! Parameter !! Usage
 
|-
 
|-
| LowBandwidth || Reduced packet rate on close range (high player count). Default.
+
| Standard || Reduced packet rate on close range (high player count). Default.
 
|-
 
|-
| HighAccuracy || Increased packet rate on close range (low player count).
+
| Competitive || Highest bandwidth; use only for Melee Arena with lower player counts. (Max of 64 players)
|-
 
| Balanced || Between LowBandwidth and HighAccuracy; good for larger servers on strong hardware.
 
|-
 
| UltraHighAccuracy || Slightly lighter than Realtime; recommended only for Melee; higher caps than Realtime.
 
|-
 
| Realtime || Highest bandwidth; use only for Melee Arena with lower player counts.
 
 
|}
 
|}
 
Example:
 
Example:
<pre class="hf-code"><nowiki>network_broadcast_mode LowBandwidth</nowiki></pre>
+
<pre class="hf-code"><nowiki>network_broadcast_mode Standard</nowiki></pre>
  
 
'''Artillery respawn (seconds). Defaults are 120s:'''
 
'''Artillery respawn (seconds). Defaults are 120s:'''
Line 76: Line 70:
 
</nowiki></pre>
 
</nowiki></pre>
  
'''Warnings & rotation randomisation:'''
+
'''Warnings & rotation randomization:'''
 
<pre class="hf-code"><nowiki>
 
<pre class="hf-code"><nowiki>
 
show_serverperformance_warning true
 
show_serverperformance_warning true
Line 90: Line 84:
 
</nowiki></pre>
 
</nowiki></pre>
  
==Fro
+
==Frontlines specific commands==
 +
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>frontlines_mode true</nowiki></pre>
 +
 
 +
== Auto Shutdown/Restart System ==
 +
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.
 +
 
 +
=== 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:
 +
<pre class="hf-code"><nowiki>server_autoshutdown_interval_minutes 240</nowiki></pre>
 +
 
 +
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>
 +
server_autoshutdown_broadcasted_message Server will be shutting down.
 +
server_autoshutdown_broadcasted_message_interval_minutes 2
 +
</nowiki></pre>
 +
 
 +
=== Auto Restart ===
 +
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>
 +
server_autorestart_overtime_minutes 10
 +
server_autorestart_broadcasted_message Auto restart at the end of the round.
 +
server_autorestart_broadcasted_message_interval_minutes 2
 +
</nowiki></pre>
 +
 
 +
=Map Rotations=
 +
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''' – common per-rotation keys:
 +
<pre class="hf-code"><nowiki>
 +
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
 +
</nowiki></pre>
 +
 
 +
Spawn wave timers (defaults shown). ''vehicle'' = Cavalry; ''dynamic'' = Frontlines tables.
 +
<pre class="hf-code"><nowiki>
 +
wave_spawn_time_seconds 10
 +
wave_spawn_vehicle_time_seconds 20
 +
wave_spawn_dynamic_time_seconds 15
 +
</nowiki></pre>
 +
 
 +
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>
 +
 
 +
===Maps===
 +
Visit [[Maps|Maps]] or [[Server Configuration Enums|Server Configuration Enums]] for a full list of all maps.
 +
 
 +
==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):
 +
<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>
 +
 
 +
Cooldowns (seconds):
 +
<pre class="hf-code"><nowiki>
 +
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
 +
</nowiki></pre>
 +
 
 +
==Conquest config==
 +
(Also applies to Frontlines **Offensive**.)
 +
<pre class="hf-code"><nowiki>
 +
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>
 +
 
 +
==Weather and time of day==
 +
Preset on map load (set to <code>none</code> for random valid presets):
 +
<pre class="hf-code"><nowiki>nature_preset none</nowiki></pre>
 +
 
 +
==Friendly fire==
 +
Enable FF:
 +
<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>
 +
 
 +
==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>
 +
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>
 +
 
 +
==Automatic Console Commands==
 +
You can issue any [[Remote_Console_Commands|RCON]] at rotation start to reset defaults, spawn bots, or stage scenarios.
 +
 
 +
<div class="mw-collapsible">
 +
; '''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====
 +
[[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>
 +
* <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>
 +
# Override Commands
 +
spawn_override A Carpenter 200
 +
spawn_override B Rifleman 200
 +
</nowiki></pre>
 +
 
 +
'''exclusive_modded_uniforms''' – restrict to mod uniforms:
 +
<pre class="hf-code"><nowiki>exclusive_modded_uniforms british french</nowiki></pre>
 +
 
 +
'''Starting Weapon Override'''
 +
<pre class="hf-code"><nowiki>
 +
starting_weapons_selection_override <Faction> <Class> <MaxFirearms> <MaxMelee> <WeaponClass1>* <WeaponClass2>* <WeaponClass3>*
 +
</nowiki></pre>
 +
Multiple types in a slot: separate with commas.
 +
Example:
 +
<pre class="hf-code"><nowiki>
 +
# Override Commands
 +
starting_weapons_selection_override British Grenadier 4 2 Rifle
 +
starting_weapons_selection_override French  Grenadier 4 3 Rifle Pike,Spontoon,Sword Pistol
 +
</nowiki></pre>
 +
 
 +
'''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>
 +
# Override Commands
 +
firearm_ammo_override British LightInfantry Musket_NewLandPatternBrownBess 2 0
 +
firearm_ammo_override French  LightInfantry Musket_NewLandPatternBrownBess 0 1
 +
</nowiki></pre>
 +
 
 +
'''Weapon Class Ammo Override'''
 +
<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>
 +
# Sapper Configuration Commands
 +
sappers_buildlimit ExplosiveBarrel defending 0
 +
</nowiki></pre>
 +
 
 +
'''Sapper 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>
 +
# Sapper Configuration Commands
 +
sappers_attacking_starting_materials 50
 +
sappers_defending_starting_materials 200
 +
</nowiki></pre>
 +
 
 +
'''Spawn Overrides (land)'''
 +
<pre class="hf-code"><nowiki>
 +
objects_override spawnsection <Position> <Rotation> <ID>,<Spawn_Name>,<Category>,<Attacking|Defending|Neutral>,<SizeX>,<SizeY>
 +
</nowiki></pre>
 +
Categories: BaseSpawn, FortifiedPosition, OpenPlains, Farm, Field, Village, Camp, Lodge, Church, Ruins, Port, Ship.
 +
 
 +
=== Naval ===
 +
====Class Limit Override On Ships====
 +
<pre class="hf-code"><nowiki>ships_spawn_detail_override <ShipType> <Faction> <Class> <ClassLimit></nowiki></pre>
 +
Example:
 +
<pre class="hf-code"><nowiki>
 +
# Override Commands
 +
ships_spawn_detail_override Frigate50gun British Rifleman 200
 +
ships_spawn_detail_override Frigate50gun French  Rifleman 200
 +
</nowiki></pre>
 +
 
 +
====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_spawn Frigate50gun 1 British 0
 +
ships_spawn Rocketboat 10 French 4
 +
</nowiki></pre>
 +
 
 +
====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 French 70
 +
</nowiki></pre>
 +
 
 +
====Ship Spacemode====
 +
<pre class="hf-code"><nowiki>ships_spacemode true</nowiki></pre>
 +
 
 +
====Spawn Overrides (naval)====
 +
<pre class="hf-code"><nowiki>objects_override shipspawnsection <Position> <Rotation></nowiki></pre>
 +
</div>
 +
 
 +
===Object Override===
 +
Objects can be added following [[Map_Editing#Positioning|Map Editing]].
 +
 
 +
=Map Voting=
 +
<div class="mw-collapsible">
 +
==Basics==
 +
Global settings (not in a rotation):
 +
<pre class="hf-code"><nowiki>
 +
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
 +
</nowiki></pre>
 +
 
 +
==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.
 +
<pre class="hf-code"><nowiki>
 +
population_verylow_playable  <true/false>
 +
population_low_playable      <true/false>
 +
population_medium_playable  <true/false>
 +
population_high_playable    <true/false>
 +
</nowiki></pre>
 +
Note: load order matters—put modded maps first in the mod load order.
 +
 
 +
==Map vote history by population==
 +
<pre class="hf-code"><nowiki>
 +
map_voting_history_count_verylow 1
 +
map_voting_history_count_low    2
 +
map_voting_history_count_medium  4
 +
map_voting_history_count_high    10
 +
</nowiki></pre>
 +
 
 +
==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==
 +
<pre class="hf-code"><nowiki>map_voting_include_random_choice <true/false></nowiki></pre>
 +
</div>
 +
 
 +
= Workshop Mods =
 +
For creators, see [[Script Modding Guide]].
 +
 
 +
== Install mods ==
 +
Global (not in a rotation):
 +
<pre class="hf-code"><nowiki>
 +
mods_installed_server_only <steamid>
 +
mods_installed <steamid>
 +
</nowiki></pre>
 +
Per-rotation (requires the SteamID to be installed on server):
 +
<pre class="hf-code"><nowiki>
 +
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
 +
</nowiki></pre>
 +
 
 +
== Mod Variables ==
 +
<pre class="hf-code"><nowiki>
 +
mod_variable <string>        # global; not in a rotation
 +
mod_variable_local <string>  # only for the rotation it’s in
 +
</nowiki></pre>
 +
 
 +
=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).
 +
 
 +
<pre class="hf-code"><nowiki>
 +
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>
 +
</nowiki></pre>
 +
 
 +
==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 <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, each admin action posts:
 +
* Action performed
 +
* Title from <code>_tag_admin</code>
 +
* Admin (linked to Steam)
 +
* Target user (linked to Steam)
 +
* Server name
 +
* Reason
 +
* 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