Current Version: 1.5.1
A dynamic frontline operations mission for Arma 3 that creates an evolving battlefield with intelligent OPFOR forces, logistics systems, and garrison management.
- Dynamic frontline system with intelligent OPFOR forces
- Advanced logistics and supply network
- Garrison management system
- Intel gathering and radio tower control mechanics
- Automated resource management for OPFOR forces
- Dynamic vehicle spawning system
- Customizable faction loadouts and equipment
- Download the mission files (MAKE SURE YOU UNPACK THE PBO)
- Place in your Arma 3 missions folder:
Documents/Arma 3 (Or Other Profile)/missions/ - Load the mission in the Arma 3 editor to customize settings
- There are two ways to make factions.
- For people using it for individual Unit/Community Usage. I recommend using the files:
CUSTOM_CIVILIAN_FACTION, CUSTOM_FRIENDLY_FACTION, CUSTOM_ENEMY_FACTION
- Create a new faction file in
Scripts/factions/(e.g.,opf_custom.sqf) with the following structure. This is useful for people wanting to contribute to the Github by adding new factions that be used by everyone.
// Vehicle Arrays
East_Ground_Vehicles_Light = [
"O_MRAP_02_F",
"O_MRAP_02_hmg_F"
];
East_Ground_Vehicles_Heavy = [
"O_MBT_02_cannon_F",
"O_APC_Tracked_02_cannon_F"
];
East_Air_Heli = [
"O_Heli_Attack_02_F",
"O_Heli_Light_02_F"
];
// Infantry Arrays
East_Units = [
"O_Soldier_F",
"O_Soldier_GL_F",
"O_Soldier_AR_F"
];
// ... other arraysTo configure CAS aircraft pylons, find the Function called fn_AirSupport.sqf
private _pylonMags = [
"PylonRack_4Rnd_LG_scalpel", // SCALPEL missiles
"PylonRack_4Rnd_ACE_Hellfire_AGM114K", // AGM-114K Hellfire
"PylonRack_4Rnd_ACE_Hellfire_AGM114N", // AGM-114N Hellfire
"PylonRack_12Rnd_ACE_DAGR", // DAGR missiles 12x
"PylonRack_24Rnd_ACE_DAGR", // DAGR missiles 24x
"ace_hot_3_PylonRack_3Rnd", // HOT missiles 3x
"ace_hot_3_PylonRack_4Rnd" // HOT missiles 4x
];Configure artillery munitions in fn_ArtilleryPrep.sqf
private _artilleryMagazines = [
"32Rnd_155mm_Mo_shells_O",
"2Rnd_155mm_Mo_Cluster_O"
];The mission uses both automatic and manual marker placement systems for setting up the battlefield. You have two options:
The mission includes an automatic marker system (init_Markers.sqf) that:
- Places markers based on map features and objects
- Scales marker density based on
EnemyPrecparameter - Automatically identifies and marks:
- Radio Towers (
loc_Transmitter) nearLocationEvacPoint_F - Support locations (
o_support) near factories and military structures - Installations (
o_installation,n_installation) in cities and capitals - Barracks (
loc_Ruin) near military buildings - Radar sites (
loc_Power) near radar structures - AA positions (
o_antiair) on high ground - Infantry positions (
o_inf) in villages
- Radio Towers (
Key features of the automatic system:
- Centers around
LocationEvacPoint_Fobjects - Uses terrain features like mountains for placement
- Maintains minimum distances between markers
- Adjusts marker density based on map size
- Automatically places military infrastructure
When converting the mission to a new map:
- Default scale is based on map size:
worldSize / 2(This determines how dense the map will be with objectives besides the Dialog Menu % of Map Playable.) - Edit
EnemyPrecparameter to control overall enemy density (higher values = fewer markers)
The mission uses init_Markers.sqf to automatically place strategic objectives based on map features and editor-placed objects.
Place the following objects in the editor to help the marker system create objectives:
| Object Type | Purpose | Marker Type | Notes |
|---|---|---|---|
LocationEvacPoint_F |
Core distribution points | Various | Main reference points for all marker generation |
LocationBase_F |
Military bases | n_support |
Primary military installations |
LocationFOB_F |
Forward Operating Bases | o_support |
Converted to enemy outposts |
LocationResupplyPoint_F |
Factory/Supply points | o_support |
Industrial/factory areas |
LocationCamp_F |
Barracks | loc_Ruin |
Military barracks areas |
LocationCityCapital_F |
Capital cities | n_installation |
Major urban centers |
LocationCity_F |
Cities | o_installation |
Urban centers |
LocationVillage_F |
Villages | o_inf |
Insurgent infantry positions |
You can also use Logic objects with specific variable names:
| Variable Name | Creates | Example Use |
|---|---|---|
"RadioTower" |
Radio towers | Place on high terrain |
"ResupplyPoint" |
Supply points | Place in industrial areas |
"FOB" |
Forward bases | Place in strategic locations |
"BaseLocation" |
Military bases | Alternative to LocationBase_F |
"Capital" |
Capital markers | Alternative to LocationCityCapital_F |
"City" |
City markers | Alternative to LocationCity_F |
"Village" |
Village markers | Alternative to LocationVillage_F |
"Barracks" |
Barracks markers | Place near military areas |
"RadarS" |
Radar stations | Place on high terrain |
"AASite" |
Anti-Air positions | Place on mountaintops |
The script primarily relies on Location objects and variables rather than detecting physical structures. Here's a more accurate explanation of how it works:
-
Location Objects: The script first tries to find specific location type objects like
LocationBase_F,LocationCity_F, etc. -
Variable-Tagged Objects: If location objects aren't found, it looks for objects (often Logic) with specific variable names (e.g., "RadioTower", "FOB")
-
Fallback Mechanism: If neither of these are found, for most marker types it will:
- Find a nearby Mount location
- Create a marker there
- For radio towers specifically, it will also create a physical tower object
The script does not automatically detect physical structures like barracks buildings or radar installations by default. Instead, you need to:
- Place the appropriate location objects (
LocationBase_F, etc.) - OR add variables to objects (including Logic objects)
- OR let the script use its fallback mechanisms (generally placing on mountains)
For example, placing a Land_Radar_F by itself won't automatically create a radar marker unless you:
- Add the "RadarS" variable to it, OR
- Place a
LocationEvacPoint_Fnearby that will use it as a reference point
-
Start with LocationEvacPoint_F objects:
- Place these at key strategic points around the map
- These act as reference points for placing other markers
- Should be distributed evenly, avoid clustering
-
Add specialized location objects:
- Place
LocationBase_Fat main military installations - Place
LocationCity_ForLocationCityCapital_Fat urban centers - Place
LocationFOB_Fat strategic minor military points - Place
LocationCamp_Ffor smaller military installations
- Place
-
Add physical structures:
- Place radio towers on high terrain
- Add military structures to give the map more detail
- Use terrain features to your advantage (mountains for AA, etc.)
-
Fine-tune with Logic markers:
- Use Logic objects with variables to add specific markers
- Useful for adding exact positions that don't correspond to physical structures
-
Adjust safe positioning for water maps:
- For maps with lots of water, the script uses
BIS_fnc_findSafePosto ensure markers are on land - The default safe radius is set, but can be adjusted for specific map topography
- For maps with lots of water, the script uses
The script automatically scales marker density based on:
EnemyPrecglobal parameter (accessible in mission settings)- Map size (calculated from
worldSize) - Division factors for each marker type
For adding more markers of a specific type, you can:
- Place more objects of the corresponding type
- Adjust the division factor in the script (smaller = more markers)
- Reduce the
EnemyPrecparameter
- No markers appearing: Ensure you have placed
LocationEvacPoint_Fobjects - Markers in water: Check the
_useSafePosparameter and increase_safeRadius - Too many/few markers: Adjust
EnemyPrecor place more/fewer location objects - Missing specific marker types: Ensure you've placed the corresponding location objects
- Spawn Positions will be selected when you first join the mission as the Company Commander. You will be prompted with the Dialog Menu in which you can select Faction, Starting Aggression levels, Starting Civilian Relations, and More.
- Adjust OPFOR resource generation in
Functions/Logistics/fn_opforResources.sqf
- Modify intel decay rates and bonuses in
Functions/Logistics/fn_intelSystem.sqf - Adjust radio tower benefits in the intel system
- Configure view distance in
initServer.sqf - Adjust dynamic spawning ranges in garrison manager
The mission uses a restricted arsenal system (fn_restrictedArsenal.sqf) that works with both ACE and vanilla arsenals. It can be disabled & enabled in Lobby Parameters before Mission Start. You can customize available equipment in the following categories:
// Modify these arrays in fn_restrictedArsenal.sqf
private _rifles = [
"arifle_MX_F",
"arifle_MXC_F",
// ... add or remove weapons
];
private _launchers = [
"launch_B_Titan_F",
// ... add or remove launchers
];
private _attachments = [
"optic_Hamr",
"acc_flashlight",
// ... add or remove attachments
];private _uniforms = [
"U_B_CombatUniform_mcam",
// ... add or remove uniforms
];
private _vests = [
"V_PlateCarrier1_rgr",
// ... add or remove vests
];
private _headgear = [
"H_HelmetB",
// ... add or remove headgear
];
private _backpacks = [
"B_AssaultPack_mcamo",
// ... add or remove backpacks
];private _medicalItems = [
"kat_AFAK",
// ... add or remove medical items
];
private _toolItems = [
"ACE_CableTie",
// ... add or remove tools
];
private _navigationItems = [
"ItemMap",
"ItemGPS",
// ... add or remove navigation items
];private _magazines = [
"30Rnd_65x39_caseless_mag",
// ... add or remove magazines
];
private _grenades = [
"HandGrenade",
"SmokeShell",
// ... add or remove grenades
];-
The arsenal system automatically:
- Works with both ACE and vanilla arsenals
- Applies to all arsenal boxes, FOBs, and OPs
- Updates dynamically when new FOBs/OPs are created
-
Mod Compatibility:
- Supports ACE items and medical equipment
- Compatible with TFAR radio systems
- Works with KAT Advanced Medical items
- Supports custom mod items (just add their classnames)
-
To add new items:
- Find the appropriate category in
fn_restrictedArsenal.sqf - Add the classname to the corresponding array
- Items will be available in all arsenals automatically
- Find the appropriate category in
-
Performance Optimization:
- Arsenal restrictions are applied only once per box
- Uses efficient event handlers to manage updates
- Prevents duplicate initialization
Feel free to contribute improvements or report issues on our GitHub repository.
This mission is available under the GNU GENERAL PUBLIC LICENSE.
- Created by Frontline Operations Development Group
- Special thanks to the Early Supporters for being there for literal years of support.