Difference between revisions of "Server Configuration/Body"
(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...") |
m |
||
| (8 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | =Server Configuration Files= | |
| − | + | [[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 lines: | |
| − | + | * Setting lines: <code><setting> <value></code> – the important ones. | |
| − | + | * Comment lines: starting with <code>#</code> – ignored; good for notes and saved rotations. | |
| + | * Empty lines: spacing only – ignored. | ||
| − | The usual layout: server | + | 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== | |
| − | These | + | These define how the server shows up to players, how it talks to the server browser, and basic restrictions. |
| − | |||
| − | |||
| + | '''Ports''' – all '''must be unique per instance''' on the same machine: | ||
<pre class="hf-code"><nowiki> | <pre class="hf-code"><nowiki> | ||
server_port 20100 | server_port 20100 | ||
| Line 20: | Line 19: | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | + | '''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> | ||
| − | + | * <code>server_password</code> is optional (leave commented to keep the server public). | |
| − | + | * <code>server_admin_password</code> is used for [[Remote_Console_Commands|Remote Console Commands]]. | |
| − | + | * <code>server_intro_*</code> shows a join popup. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | '''Server regions''' (shown in the browser): | |
| − | + | {| class="wikitable" | |
| − | + | ! Region codes | |
| + | |- | ||
| + | | europe || usa || usaeast || usawest || australia | ||
| + | |- | ||
| + | | china || japan || russia || southkorea || brazil | ||
| + | |} | ||
| − | + | '''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> | ||
| − | + | '''Artillery dynamic spawns''' | |
| − | <pre class="hf-code"><nowiki> | + | Artillery dynamic spawns are setup for official maps, these are mostly used to allow event hosts to remove specific artillery pieces in their config without having to use a spawnable object to "block" the piece from being used. You can obtain the dynamic spawn ids from the server log when the map loads. Section ids always start from 0 |
| − | + | {| class="wikitable" | |
| − | </nowiki></pre> | + | ! ArtilleryType !! Usage |
| − | + | |- | |
| − | + | | FieldGun || Spawns 9PDR | |
| + | |- | ||
| + | | Howitzer || Spawns Howitzer | ||
| + | |- | ||
| + | |RocketLauncher | ||
| + | |Spawns Rocket Launcher | ||
| + | |- | ||
| + | |Mortar | ||
| + | |Spawns Motar | ||
| + | |- | ||
| + | |None | ||
| + | |Nothing spawns | ||
| + | |- | ||
| + | |Random | ||
| + | |Spawns random artillery piece. Pieces able to spawn are pre-set per spawn point by map developers. | ||
| + | |- | ||
| + | |RandomSymmetric | ||
| + | |Spawns random artillery piece, artillery spawn sections that share the same RandomSymetric ID will spawn the same artillery piece. | ||
| + | |} | ||
| + | <pre class="hf-code"><nowiki>artillery_spawn_override <slotId> <ArtilleryType></nowiki></pre> | ||
| + | '''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 94: | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | + | '''Warnings & rotation randomization:''' | |
| − | |||
<pre class="hf-code"><nowiki> | <pre class="hf-code"><nowiki> | ||
show_serverperformance_warning true | show_serverperformance_warning true | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
map_rotation_start_randomise true | map_rotation_start_randomise true | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | + | '''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 108: | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | + | ==Frontlines specific commands== | |
| − | Use this to set the game | + | 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> | |
| − | |||
| − | Define the | ||
| − | |||
| − | <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> | <pre class="hf-code"><nowiki> | ||
| − | |||
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 === | |
| − | + | 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_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 144: | ||
</nowiki></pre> | </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> | <pre class="hf-code"><nowiki> | ||
map_name | map_name | ||
| Line 194: | Line 182: | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | Spawn wave timers (defaults shown). | + | 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 190: | ||
Spawn immunity (max 5s): | Spawn immunity (max 5s): | ||
| + | <pre class="hf-code"><nowiki>spawn_immunity_timer 5</nowiki></pre> | ||
| − | + | == Melee Arena Settings == | |
| − | + | First round grace to let players load/spawn: | |
| − | + | <pre class="hf-code"><nowiki>round_spawn_close_timer_seconds 45</nowiki></pre> | |
| − | + | Subsequent rounds: | |
| − | + | <pre class="hf-code"><nowiki>round_spawn_close_timer_seconds_between_rounds 15</nowiki></pre> | |
| − | First | ||
| − | |||
| − | <pre class="hf-code"><nowiki> | ||
| − | round_spawn_close_timer_seconds 45 | ||
| − | </nowiki></pre> | ||
| − | |||
| − | |||
| − | |||
| − | <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> | ||
| − | + | ===Maps=== | |
| − | + | Visit [[Maps|Maps]] or [[Server Configuration Enums|Server Configuration Enums]] for a full list of all maps. | |
| − | |||
| − | |||
| − | |||
| − | Visit | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | ==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> | ||
| − | + | Cooldowns (seconds): | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | Cooldowns (seconds) | ||
| − | |||
<pre class="hf-code"><nowiki> | <pre class="hf-code"><nowiki> | ||
class_system_orders_reinforce_cooldown | class_system_orders_reinforce_cooldown | ||
| Line 275: | Line 232: | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | + | ==Conquest config== | |
| − | + | (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 242: | ||
</nowiki></pre> | </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> | ||
| − | <pre class="hf-code"><nowiki> | + | ==Friendly fire== |
| − | + | 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> | |
| − | <pre class="hf-code"><nowiki> | ||
| − | |||
| − | </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> | <pre class="hf-code"><nowiki> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
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 268: | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | + | ==Automatic Console Commands== | |
| − | You can issue any | + | You can issue any [[Remote_Console_Commands|RCON]] at rotation start to reset defaults, spawn bots, or stage scenarios. |
| − | |||
| − | |||
| − | |||
| − | <div class="mw-collapsible | + | <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> | <pre class="hf-code"><nowiki> | ||
| − | # | + | # 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''' – restrict to mod uniforms: |
| − | + | <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> | ||
| − | + | starting_weapons_selection_override <Faction> <Class> <MaxFirearms> <MaxMelee> <WeaponClass1>* <WeaponClass2>* <WeaponClass3>* | |
</nowiki></pre> | </nowiki></pre> | ||
| − | + | Multiple types in a slot: separate with commas. | |
| − | + | Example: | |
| − | |||
| − | |||
| − | |||
| − | |||
<pre class="hf-code"><nowiki> | <pre class="hf-code"><nowiki> | ||
| − | # | + | # 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 305: | ||
'''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> | ||
| − | + | # Override Commands | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
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 317: | ||
'''Weapon Class Ammo Override''' | '''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> | <pre class="hf-code"><nowiki> | ||
| − | + | # Sapper Configuration Commands | |
| + | sappers_buildlimit ExplosiveBarrel defending 0 | ||
</nowiki></pre> | </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> | <pre class="hf-code"><nowiki> | ||
| − | # | + | # Sapper Configuration Commands |
| − | |||
| − | |||
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)''' | |
| − | |||
| − | |||
<pre class="hf-code"><nowiki> | <pre class="hf-code"><nowiki> | ||
| − | objects_override spawnsection < | + | 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. | ||
| − | + | === 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> | <pre class="hf-code"><nowiki> | ||
| − | # | + | # 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> | ||
| − | + | ====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 | + | 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 British 20000 | ||
| − | ships_health_detail_override Frigate50gun French | + | ships_health_detail_override Frigate50gun French 70 |
| + | </nowiki></pre> | ||
| − | + | ====Ship Spacemode==== | |
| − | + | <pre class="hf-code"><nowiki>ships_spacemode true</nowiki></pre> | |
| − | |||
| − | |||
| − | |||
| − | </nowiki></pre> | ||
| + | ====Spawn Overrides (naval)==== | ||
| + | <pre class="hf-code"><nowiki>objects_override shipspawnsection <Position> <Rotation></nowiki></pre> | ||
</div> | </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> | <pre class="hf-code"><nowiki> | ||
map_voting_enabled true | map_voting_enabled true | ||
| Line 444: | Line 395: | ||
map_voting_allow_same_map false | map_voting_allow_same_map false | ||
map_voting_history_count 3 | map_voting_history_count 3 | ||
| + | map_voting_max_choices 3 | ||
map_voting_gameplay_modes ArmyBattlefield ArmyBattlefield ArmyConquest ArmySiege | map_voting_gameplay_modes ArmyBattlefield ArmyBattlefield ArmyConquest ArmySiege | ||
map_voting_log_file_path logs_output/mapvotinglogs.txt | map_voting_log_file_path logs_output/mapvotinglogs.txt | ||
</nowiki></pre> | </nowiki></pre> | ||
| − | + | ==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> | <pre class="hf-code"><nowiki> | ||
population_verylow_playable <true/false> | population_verylow_playable <true/false> | ||
| Line 465: | Line 408: | ||
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. | ||
| − | + | ==Map vote history by 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 | + | map_voting_history_count_high 10 |
</nowiki></pre> | </nowiki></pre> | ||
| − | + | ==Can I manually trigger map voting?== | |
| − | Not directly | + | 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> | |
| − | <pre class="hf-code"><nowiki> | + | </div> |
| − | map_voting_include_random_choice <true/false> | ||
| − | </nowiki></pre> | ||
| − | |||
| − | |||
| − | |||
| − | + | = Workshop Mods = | |
| − | + | 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 ( | ||
| − | |||
<pre class="hf-code"><nowiki> | <pre class="hf-code"><nowiki> | ||
| − | load_mod < | + | load_mod <steamid> # loads on client and server |
| − | load_mod_client_only <steamid> # | + | load_mod_client_only <steamid> # loads only on clients |
| − | load_mod_server_only <steamid> # server | + | load_mod_server_only <steamid> # loads only on server |
</nowiki></pre> | </nowiki></pre> | ||
| − | + | == Mod Variables == | |
| − | |||
| − | |||
<pre class="hf-code"><nowiki> | <pre class="hf-code"><nowiki> | ||
| − | mod_variable <string> # global | + | mod_variable <string> # global; not in a rotation |
| − | mod_variable_local <string> # | + | mod_variable_local <string> # only for the rotation it’s in |
</nowiki></pre> | </nowiki></pre> | ||
| − | + | =Discord Admin Webhook Logger= | |
| − | + | ==Basics== | |
| − | Enable Discord developer mode (Settings → Advanced). Warnings show admin PMs | + | 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 | + | 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 | + | discord_webhook_banmute_id <webhookID> |
| − | discord_webhook_banmute_token | + | discord_webhook_banmute_token <webhookToken> |
</nowiki></pre> | </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). | |
| − | Create two webhooks in | + | * 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 | * Action performed | ||
| − | * Title from <code> | + | * Title from <code>_tag_admin</code> |
| − | * Admin ( | + | * Admin (linked to Steam) |
| − | * Target user ( | + | * 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 23:12, 11 December 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 dynamic spawns
Artillery dynamic spawns are setup for official maps, these are mostly used to allow event hosts to remove specific artillery pieces in their config without having to use a spawnable object to "block" the piece from being used. You can obtain the dynamic spawn ids from the server log when the map loads. Section ids always start from 0
| ArtilleryType | Usage |
|---|---|
| FieldGun | Spawns 9PDR |
| Howitzer | Spawns Howitzer |
| RocketLauncher | Spawns Rocket Launcher |
| Mortar | Spawns Motar |
| None | Nothing spawns |
| Random | Spawns random artillery piece. Pieces able to spawn are pre-set per spawn point by map developers. |
| RandomSymmetric | Spawns random artillery piece, artillery spawn sections that share the same RandomSymetric ID will spawn the same artillery piece. |
artillery_spawn_override <slotId> <ArtilleryType>
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_max_choices 3 map_voting_gameplay_modes ArmyBattlefield ArmyBattlefield ArmyConquest ArmySiege map_voting_log_file_path logs_output/mapvotinglogs.txt
Help my map can't be voted for
Per-rotation flags (buckets by player count & mode). Set all to false to ignore; set all to true to allow regardless of count.
population_verylow_playable <true/false> population_low_playable <true/false> population_medium_playable <true/false> population_high_playable <true/false>
Note: load order matters—put modded maps first in the mod load order.
Map vote history by population
map_voting_history_count_verylow 1 map_voting_history_count_low 2 map_voting_history_count_medium 4 map_voting_history_count_high 10
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





