Server Configuration
![]() |
Configure Holdfast servers: globals, rotations, overrides, map voting, mods, and webhooks |
|---|
On this page
Server Configuration
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.
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_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
Tools
- Edit body (VE)
- Edit body (source)
- Body history
- Last body edit: Stan — 2025-12-11 23:12 \1765494742\UTC\C
- —
- Edit wrapper (VE)
- Edit wrapper (source)
- Wrapper history
- What links here
- Changes to linked pages
- Purge cache






