Difference between revisions of "Server Configuration/Body"
(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 | + | 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><setting> <value></code> – the important ones. | * Setting lines: <code><setting> <value></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 | ||
|- | |- | ||
| − | | | + | | 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: | Example: | ||
| − | <pre class="hf-code"><nowiki>network_broadcast_mode | + | <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 | + | '''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> | ||
| − | == | + | ==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 <Spawn Point> <[[Server_Configuration_Enums#Class|Class]]> <Class Limit></code> | ||
| + | * <code><Spawn Point></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><@!USERID></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
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_passwordis optional (leave commented to keep the server public).server_admin_passwordis 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).
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
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.
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
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
idandtokenand paste into the *_id/*_token settings. _tag_adminlets 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





