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 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.
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
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: Xarkanoth — 2025-10-06 16:54 \1759769676\UTC\C
- —
- Edit wrapper (VE)
- Edit wrapper (source)
- Wrapper history
- What links here
- Changes to linked pages
- Purge cache






