Author SHA1 Message Date
MrFastwind 54c24088f0 adds lint check on build
Build Mission PBO / lint (push) Failing after 6s
Build Mission PBO / pack (push) Has been skipped
Build Mission PBO / deploy (push) Has been skipped
2026-07-24 19:00:54 +02:00
MrFastwind 2d3fc26827 missing comma with unrelated code 2026-07-24 19:00:26 +02:00
Samuele Lorefice 174342c3ac updated blufor for new mods
Build Mission PBO / pack (push) Successful in 8s
Build Mission PBO / deploy (push) Successful in 5s
2026-07-24 17:06:36 +02:00
InHooman 9df6dd91bd AFRF changes from Lena
Build Mission PBO / pack (push) Successful in 10s
Build Mission PBO / deploy (push) Successful in 8s
2026-07-24 01:09:20 +03:00
InHooman 041805be7f "You missed a comma" award
Build Mission PBO / pack (push) Successful in 10s
Build Mission PBO / deploy (push) Successful in 5s
2026-07-16 21:54:53 +03:00
InHooman 39afaa18ea Rebalanced shop prices (heavy/air)
Build Mission PBO / pack (push) Successful in 9s
Build Mission PBO / deploy (push) Successful in 8s
2026-07-16 12:51:07 +03:00
5 changed files with 340 additions and 336 deletions
+40
View File
@@ -8,9 +8,49 @@ on:
env: env:
PBO_NAME: "KPLib-Ruha.ruha.pbo" PBO_NAME: "KPLib-Ruha.ruha.pbo"
SQFVM_VERSION: "v2026.04.03-ed9f5f5"
SQFVM_URL: "https://github.com/SQFvm/runtime/releases/download/v2026.04.03-ed9f5f5/sqfvm_linux_x64_gcc.zip"
jobs: jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download SQFVM
run: |
curl -sL "$SQFVM_URL" -o /tmp/sqfvm.zip
unzip -o /tmp/sqfvm.zip -d /tmp/sqfvm
chmod +x /tmp/sqfvm/sqfvm_linux_x64_gcc/sqfvm
- name: Run SQFVM lint
run: |
SRC="$(realpath src)"
ARGS=()
while IFS= read -r -d '' f; do
ARGS+=(-i "$f")
done < <(find "$SRC" -name "*.sqf" -print0)
/tmp/sqfvm/sqfvm_linux_x64_gcc/sqfvm \
-a --parse-only --no-execute-print \
--input-config "$SRC/description.ext" \
"${ARGS[@]}" 2>&1 | tee lint_output.log
# Filter known false positive: SQFVM config parser chokes on & in author string
if grep -v "description.ext" lint_output.log | grep -q "^\[ERR\]"; then
echo "::error::SQFVM found syntax errors"
exit 1
fi
# - name: Upload lint log
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: sqfvm-lint.log
# path: lint_output.log
# if-no-files-found: warn
pack: pack:
needs: [lint]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
+5 -2
View File
@@ -51,7 +51,9 @@ KP_liberation_medical_vehicles = [
"uns_ch47a_medevac", "uns_ch47a_medevac",
"uns_H13_medevac_CAV", "uns_H13_medevac_CAV",
"uns_M577_amb", "uns_M577_amb",
"uns_uh1D_med" "uns_uh1D_med",
"tbd_mtlb_ambulance",
"b_afougf_Mi8MTV3_Evac"
]; ];
// Building classnames which also function as ACE medical facilities. // Building classnames which also function as ACE medical facilities.
@@ -794,7 +796,8 @@ vehicle_repair_sources = [
"UNS_Hanger_repair", "UNS_Hanger_repair",
"uns_M113_ENG", "uns_M113_ENG",
"uns_M35A2_repair", "uns_M35A2_repair",
"uns_motorpool1_repair" "uns_motorpool1_repair",
"tbd_mtlb_engineer"
]; ];
vehicle_rearm_sources = [ vehicle_rearm_sources = [
+135 -125
View File
@@ -1,10 +1,25 @@
/*
Needed Mods:
- None
Optional Mods:
- BWMod
- RHSUSAF
- F-15C
- F/A-18
- CUP Weapons
- CUP Vehicles
- USAF Main Pack
- USAF Fighters Pack
- USAF Utility Pack
*/
/* /*
--- Support classnames --- --- Support classnames ---
Each of these should be unique. Each of these should be unique.
The same classnames for different purposes may cause various unpredictable issues with player actions. The same classnames for different purposes may cause various unpredictable issues with player actions.
Or not, just don't try! Or not, just don't try!
*/ */
FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building.
FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container.
FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle.
@@ -34,74 +49,73 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This
The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build.
IMPORTANT: The last element inside each array must have no comma at the end! IMPORTANT: The last element inside each array must have no comma at the end!
*/ */
infantry_units = [ infantry_units = [
["UA_Azov_forwardobserver",15,0,0], // Rifleman (Light) ["b_afougf_rifleman_ak74",15,0,0], // Rifleman (Light)
["UA_Azov_rifleman",20,0,0], // Rifleman ["b_afougf_rifleman_gp25",20,0,0], // Rifleman
["UA_Azov_sapper",30,0,0], // Rifleman (AT) ["b_afougf_pt_rpg7",30,0,0], // Rifleman (AT)
["UA_Azov_grenadier",25,0,0], // Grenadier ["b_afougf_pt_maaws",25,0,0], // Grenadier
["UA_Azov_machinegunner",25,0,0], // Autorifleman ["b_afougf_mg_m240",25,0,0], // Autorifleman
["B_HeavyGunner_F",35,0,0], // Heavygunner ["b_afougf_mg_mg42",35,0,0], // Heavygunner
["UA_Azov_gunner",30,0,0], // Marksman ["b_afougf_mg_pkm",30,0,0], // Marksman
["UA_Azov_rangefinder",40,0,0], // Sharpshooter ["b_afougf_ptassist_fgm148",40,0,0], // Sharpshooter
["UA_Azov_operatoratgm",50,10,0], // AT Specialist ["b_afougf_pt_fgm148",50,10,0], // AT Specialist
["UA_Azov_operatormanpad",50,10,0], // AA Specialist ["b_afougf_aa_igla_specialist",50,10,0], // AA Specialist
["UA_Azov_riflemancombatlifesaver",30,0,0], // Combat Life Saver ["b_afougf_medic",30,0,0], // Combat Life Saver
["UA_Azov_driver",30,0,0], // Engineer ["b_afougf_tank_gunner_F",30,0,0], // Engineer
["UA_SSO_recon",20,0,0], // Recon Scout ["b_afougf_rifleman_ak74",20,0,0], // Recon Scout
["UA_SSO_reconsapper",30,0,0], // Recon Scout (AT) ["b_afougf_rifleman_gp25",30,0,0], // Recon Scout (AT)
["UA_SSO_reconradiotelephonist",30,0,0], // Recon Marksman ["b_afougf_pt_rpg7",30,0,0], // Recon Marksman
["UA_SSO_reconsniper",40,0,0], // Recon Sharpshooter ["b_afougf_marksman_m82",40,0,0], // Recon Sharpshooter
["UA_SSO_seniorrecon",30,0,0], // Recon Paramedic ["b_afougf_marksman_m14",30,0,0], // Recon Paramedic
["UA_SSO_reconoperatoruav",30,0,0], // Recon Demolition Expert ["b_afougf_pt_nlaw",30,0,0], // Recon Demolition Expert
["UA_Azov_sniper",70,5,0], // Sniper ["b_afougf_marksman_svdm",70,5,0], // Sniper
["UA_Azov_rangefinder",20,0,0], // Spotter ["b_afougf_grenadier_m32_mgl",20,0,0], // Spotter
["UA_Azov_driver",10,0,0], // Crewman ["b_afougf_tankist_F",10,0,0], // Crewman
["UA_DShV_lieutenant",20,0,0], // Para Trooper ["b_afougf_teamleader_gp25",20,0,0], // Para Trooper
["UA_VVS_helicopterpilot",10,0,0], // Helicopter Crew ["b_afougf_pilot_F",10,0,0], // Helicopter Crew
["UA_VVS_helicopterpilot",10,0,0], // Helicopter Pilot ["b_afougf_pilot_F",10,0,0], // Helicopter Pilot
["UA_VVS_pilot",10,0,0] // Pilot ["b_afougf_pilot_F",10,0,0] // Pilot
]; ];
light_vehicles = [ light_vehicles = [
["b_afougf_quadbike_01",50,0,25], ["b_afougf_quadbike_01",50,0,25],
["b_afougf_offroad_armored_01",75,0,50], ["b_afougf_offroad_armored_01",75,0,50],
["b_afougf_offroad_armored_at",75,40,50], ["b_afougf_offroad_armored_at",75,40,50],
["b_afougf_offroad_armored_01_dshkm",75,60,50], ["b_afougf_offroad_armored_01_dshkm",75,60,50],
["b_afougf_uaf_dozor",100,0,50], ["b_afougf_uaf_dozor",100,0,50],
["b_afougf_uaf_dozor_nsvt",100,40,50], ["b_afougf_uaf_dozor_nsvt",100,40,50],
["b_afougf_kozak5_unarmed_F",100,60,50], ["b_afougf_kozak5_unarmed_F",100,60,50],
["b_afougf_kozak5_turret_armored_full_F",100,0,50], ["b_afougf_kozak5_turret_armored_full_F",100,0,50],
["b_afougf_kozak5_turret_armored_F",100,40,50], ["b_afougf_kozak5_turret_armored_F",100,40,50],
["b_afougf_kozak5_turret_F",100,60,50], ["b_afougf_kozak5_turret_F",100,60,50],
["b_afougf_m1151_base",100,0,50], ["b_afougf_m1151_base",100,0,50],
["b_afougf_m1151_m2_v1",100,40,50], ["b_afougf_m1151_m2_v1",100,40,50],
["b_afougf_m1151_mk19_base",100,60,50], ["b_afougf_m1151_mk19_base",100,60,50],
["b_afougf_m1152_base",100,0,50], ["b_afougf_m1152_base",100,0,50],
["b_afougf_m1152_base_dshkm",100,0,50], ["b_afougf_m1152_base_dshkm",100,0,50],
["b_afougf_m1152_base_lcmr",120,0,60], ["b_afougf_m1152_base_lcmr",120,0,60],
["b_afougf_m1151_med",120,40,60], ["b_afougf_m1151_med",120,40,60],
["b_afougf_m998_sicps_base",120,60,60], ["b_afougf_m998_sicps_base",120,60,60],
["uaf_m1151_m2_v2",140,0,60], ["uaf_m1151_m2_v2",140,0,60],
["b_afougf_m998_2dr",140,40,60], ["b_afougf_m998_2dr",140,40,60],
["b_afougf_m998_2dr_dshkm",140,60,60], ["b_afougf_m998_2dr_dshkm",140,60,60],
["b_afougf_m998_2dr_fulltop",100,0,50], ["b_afougf_m998_2dr_fulltop",100,0,50],
["b_afougf_m998_4dr",100,100,50], ["b_afougf_m998_4dr",100,100,50],
["b_afougf_m998_w_s_4dr_fulltop",120,0,60], ["b_afougf_m998_w_s_4dr_fulltop",120,0,60],
["BBM_Varta",120,0,60], ["BBM_Varta",120,0,60],
["BBM_Varta_Turret",120,20,60], ["BBM_Varta_Turret",120,20,60],
["b_afougf_uaf_novator",125,0,75], ["b_afougf_uaf_novator",125,0,75],
["b_afougf_uaf_novator_atgm",125,0,75], ["b_afougf_uaf_novator_atgm",125,0,75],
["b_afougf_offroad_01",100,0,50], ["b_afougf_offroad_01",100,0,50],
["b_afougf_offroad_at",125,0,75], ["b_afougf_offroad_at",125,0,75],
["b_afougf_UAZ_Base",125,40,75], ["b_afougf_UAZ_Base",125,40,75],
["b_afougf_UAZ_open_Base",150,50,50], ["b_afougf_UAZ_open_Base",150,50,50],
["b_afougf_UAZ_AGS30_Base",150,0,50], ["b_afougf_UAZ_AGS30_Base",150,0,50],
["b_afougf_UAZ_DShKM_Base",150,40,50], ["b_afougf_UAZ_DShKM_Base",150,40,50],
["b_afougf_UAZ_SPG9_Base",100,0,25], ["b_afougf_UAZ_SPG9_Base",100,0,25],
["Kraz_Spartan",200,80,75], ["Kraz_Spartan",200,80,75],
["Kraz_Spartan_dshk",250,200,100], ["Kraz_Spartan_dshk",250,200,100],
["vurtual_maxxpro",150,0,50], ["vurtual_maxxpro",150,0,50],
["vurtual_maxxpro_MK19",150,0,50], ["vurtual_maxxpro_MK19",150,0,50],
["rhsusf_m1240a1_usmc_wd",150,0,50], ["rhsusf_m1240a1_usmc_wd",150,0,50],
["rhsusf_m1240a1_m2_usmc_wd",150,0,50], ["rhsusf_m1240a1_m2_usmc_wd",150,0,50],
@@ -117,33 +131,33 @@ light_vehicles = [
]; ];
heavy_vehicles = [ heavy_vehicles = [
["tbd_mtlb_s60",200,40,100], ["tbd_mtlb_s60",200,40,100],
["tbd_mtlb_vmk",200,60,100], ["tbd_mtlb_vmk",200,60,100],
["tbd_mtlb_shturm",200,0,100], ["tbd_mtlb_shturm",200,0,100],
["tbd_mtlb_s8",200,0,125], ["tbd_mtlb_s8",200,0,125],
["tbd_mtlb_pkt",200,75,125], ["tbd_mtlb_pkt",200,75,125],
["tbd_mtlb_mt12",200,75,125], ["tbd_mtlb_mt12",200,75,125],
["tbd_mtlb_engineer",300,100,150], ["tbd_mtlb_engineer",300,100,150],
["tbd_mtlb_bmo",300,150,150], ["tbd_mtlb_bmo",300,150,150],
["tbd_mtlb_bm21",300,200,150], ["tbd_mtlb_bm21",300,200,150],
["tbd_mtlb_ambulance",300,225,150], ["tbd_mtlb_ambulance",300,225,150],
["tbd_mtlb_6ma1_tkn4g",300,250,175], ["tbd_mtlb_6ma1_tkn4g",300,250,175],
["tbd_mtlb",300,250,175], ["tbd_mtlb",300,250,175],
["rhsusf_M1117_O",300,250,175], ["rhsusf_M1117_O",300,250,175],
["rhsusf_m113_usarmy_medical",300,250,175], ["rhsusf_m113_usarmy_medical",300,250,175],
["UAF_M113_MK19",300,250,175], ["UAF_M113_MK19",300,250,175],
["UAF_M113_M2",300,250,175], ["UAF_M113_M2",300,250,175],
["b_afougf_m113_unarmed",400,300,200], ["b_afougf_m113_unarmed",400,300,200],
["TSB_BRDM2_ZU23_g",400,300,200], ["TSB_BRDM2_ZU23_g",400,300,200],
["UF_M2A2_BUSKI",400,300,200], ["UF_M2A2_BUSKI",400,300,200],
["UF_M2A2",400,350,225], ["UF_M2A2",400,350,225],
["UAF_bmp_3m",500,350,225], ["UAF_bmp_3m",500,350,225],
["UAF_bmp_3",500,400,250], ["UAF_bmp_3",500,400,250],
["b_afougf_prp3_Base",500,400,250], ["b_afougf_prp3_Base",500,400,250],
["b_afougf_brm1k_Base",500,500,250], ["b_afougf_brm1k_Base",500,500,250],
["b_afougf_bmp2d",550,550,250], ["b_afougf_bmp2d",550,550,250],
["b_afougf_bmp2",600,1250,300], ["b_afougf_bmp2",600,1250,300],
["b_afougf_bmp1p",600,1250,300], ["b_afougf_bmp1p",600,1250,300],
["b_afougf_bmp1",800,1750,400], ["b_afougf_bmp1",800,1750,400],
["b_afougf_bmd2",800,1750,400], ["b_afougf_bmd2",800,1750,400],
["b_afougf_bmd1",800,1750,400], ["b_afougf_bmd1",800,1750,400],
@@ -153,7 +167,7 @@ heavy_vehicles = [
["b_afougf_BRDM2",800,1750,400], ["b_afougf_BRDM2",800,1750,400],
["FA_UAF_BTR4",800,1750,400], ["FA_UAF_BTR4",800,1750,400],
["FA_UAF_BTR3",800,1750,400], ["FA_UAF_BTR3",800,1750,400],
["FA_UAF_BMP1U",800,1750,400], ["FA_UAF_BMP1U",800,1750,400],
["FA_UAF_2S17",800,1750,400], ["FA_UAF_2S17",800,1750,400],
["FA_UAF_Zamak_MLRS",800,1750,400], ["FA_UAF_Zamak_MLRS",800,1750,400],
["UAF_2s1",800,1750,400], ["UAF_2s1",800,1750,400],
@@ -181,32 +195,32 @@ heavy_vehicles = [
]; ];
air_vehicles = [ air_vehicles = [
["UA_VVS_bayraktartb2",75,0,25], ["UA_VVS_bayraktartb2",75,0,25],
["RHS_UH60M2",80,0,30], ["RHS_UH60M2",80,0,30],
["RHS_UH60M",200,0,100], ["RHS_UH60M",200,0,100],
["b_afougf_Mi8MTV3_UPK23",200,100,100], ["b_afougf_Mi8MTV3_UPK23",200,100,100],
["b_afougf_Mi8MTV3_Evac",200,0,100], ["b_afougf_Mi8MTV3_Evac",200,0,100],
["b_afougf_Mi8MTV3_Cargo",200,200,100], ["b_afougf_Mi8MTV3_Cargo",200,200,100],
["b_afougf_Mi24V_UPK23",225,0,125], ["b_afougf_Mi24V_UPK23",225,0,125],
["b_afougf_Mi24V_AT",225,200,125], ["b_afougf_Mi24V_AT",225,200,125],
["b_afougf_a29",225,0,125], ["b_afougf_a29",225,0,125],
["b_afougf_l39m1",225,200,125], ["b_afougf_l39m1",225,200,125],
["b_afougf_Su25SM",500,400,200], ["b_afougf_Su25SM",500,400,200],
["FA_UAF_F16A",500,500,200], ["FA_UAF_F16A",500,500,200],
["b_afougf_mig29sm",750,750,250], ["b_afougf_mig29sm",750,750,250],
["Su27_ua",750,750,250] ["Su27_ua",750,750,250]
]; ];
static_vehicles = [ static_vehicles = [
["b_afougf_AGS30_TriPod",25,40,0], ["b_afougf_AGS30_TriPod",25,40,0],
["b_afougf_DSHKM",25,40,0], ["b_afougf_DSHKM",25,40,0],
["b_afougf_DSHkM_Mini_TriPod",35,40,0], ["b_afougf_DSHkM_Mini_TriPod",35,40,0],
["b_afougf_Stinger_AA_pod",35,60,0], ["b_afougf_Stinger_AA_pod",35,60,0],
["b_afougf_M2_TriPod_high",35,60,0], ["b_afougf_M2_TriPod_high",35,60,0],
["b_afougf_M2_TriPod_low",45,60,0], ["b_afougf_M2_TriPod_low",45,60,0],
["b_afougf_MK19_TriPod",50,100,0], ["b_afougf_MK19_TriPod",50,100,0],
["b_afougf_nsv_tripod",50,100,0], ["b_afougf_nsv_tripod",50,100,0],
["b_afougf_SPG9M",80,150,0], ["b_afougf_SPG9M",80,150,0],
["b_afougf_ZU23",100,200,0], ["b_afougf_ZU23",100,200,0],
["b_afougf_m119",100,200,0], ["b_afougf_m119",100,200,0],
["b_afougf_D30",100,200,0], ["b_afougf_D30",100,200,0],
@@ -214,7 +228,7 @@ static_vehicles = [
["b_afougf_2b14_82mm",100,200,0], ["b_afougf_2b14_82mm",100,200,0],
["tbd_d20",300,300,300], ["tbd_d20",300,300,300],
["tbd_2b9_vasilek",300,300,300], ["tbd_2b9_vasilek",300,300,300],
["tbd_mt12",300,300,300], ["tbd_mt12",300,300,300],
["b_afougf_SAM_System_04_green_F",1000,1000,1000] ["b_afougf_SAM_System_04_green_F",1000,1000,1000]
]; ];
@@ -370,16 +384,7 @@ support_vehicles = [
// Light infantry squad. // Light infantry squad.
blufor_squad_inf_light = [ blufor_squad_inf_light = [
"UA_TRO_efreitor",
"UA_TRO_lieutenant",
"UA_TRO_mainsergeant",
"UA_TRO_radiotelephonist",
"UA_TRO_rifleman",
"UA_TRO_riflemangrenadierassistant",
"UA_TRO_grenadier",
"UA_TRO_juniorsergeant",
"UA_TRO_machinegunner",
"UA_TRO_seniorlieutenant"
]; ];
// Heavy infantry squad. // Heavy infantry squad.
@@ -447,3 +452,8 @@ blufor_squad_para = [
"B_soldier_PG_F", "B_soldier_PG_F",
"B_soldier_PG_F" "B_soldier_PG_F"
]; ];
+1 -1
View File
@@ -115,7 +115,7 @@ opfor_troup_transports = [
"gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer)
"gm_ge_army_fuchsa0_reconnaissance_win", // Fuchs (Recon, MILAN) "gm_ge_army_fuchsa0_reconnaissance_win", // Fuchs (Recon, MILAN)
"gm_ge_army_m113a1g_apc_win", // M113A3 (MG3) "gm_ge_army_m113a1g_apc_win", // M113A3 (MG3)
"gm_ge_army_m113a1g_apc_milan_win" // M113A3 (MILAN) "gm_ge_army_m113a1g_apc_milan_win", // M113A3 (MILAN)
"gm_ge_army_ch53g" // CH-53G "gm_ge_army_ch53g" // CH-53G
]; ];
+159 -208
View File
@@ -1,253 +1,204 @@
// Enemy infantry classes // Enemy infantry classes
opfor_officer = "RUS_spn_deputyplatooncommander"; // Officer opfor_officer = "O_ORussianVDV_Efreitor_01"; // Officer
opfor_squad_leader = "RUS_spn_platooncommander"; // Squad Leader opfor_squad_leader = "O_ORussianVDV_Machine_Gunner_Asst_01"; // Squad Leader
opfor_team_leader = "RUS_spn_squadcommander"; // Team Leader opfor_team_leader = "O_ORussianVDV_Rifleman_01"; // Team Leader
opfor_sentry = "RUS_spn_recon"; // Rifleman (Lite) opfor_sentry = "O_ORussianVDV_Rifleman_Ligth_01"; // Rifleman (Lite)
opfor_rifleman = "rhs_msv_emr_rifleman"; // Rifleman opfor_rifleman = "O_ORussianVDV_Rifleman_01"; // Rifleman
opfor_rpg = "RUS_spn_recongrenadier"; // Rifleman (LAT) opfor_rpg = "O_ORussianVDV_Rifleman_RPG_26_01"; // Rifleman (LAT)
opfor_grenadier = "RUS_spn_seniorrecon"; // Grenadier opfor_grenadier = "O_ORussianVDV_Rifleman_GP_25_01"; // Grenadier
opfor_machinegunner = "RUS_spn_reconmachinegunner"; opfor_machinegunner = "O_ORussianVDV_Automatic_Rifleman_01"; // Autorifleman
opfor_heavygunner = "RUS_spn_reconmachinegunner"; opfor_heavygunner = "O_ORussianVDV_Autorifleman_PKP_01"; // Heavy Gunner
opfor_marksman = "RUS_spn_reconsniper"; // Marksman opfor_marksman = "O_ORussianVDV_Radioman_01"; // Marksman
opfor_sharpshooter = "RUS_spn_reconradiotelephonist"; opfor_sharpshooter = "O_ORussianVDV_Marksman_01"; // Sharpshooter
opfor_sniper = "RUS_spn_reconoperatoruav"; // Sniper opfor_sniper = "O_ORussianVDV_Marksman_01"; // Sniper
opfor_at = "RUS_spn_recon"; // AT Specialist opfor_at = "O_ORussianVDV_AT_Specialist_01"; // AT Specialist
opfor_aa = "RUS_MSV_operatormanpad"; // AA Specialist opfor_aa = "O_ORussianVDV_AA_Specilaist_01"; // AA Specialist
opfor_medic = "RUS_spn_reconsanitar"; // Combat Life Saver opfor_medic = "O_ORussianVDV_Medic_01"; // Combat Life Saver
opfor_engineer = "RUS_spn_reconsapper"; opfor_engineer = "O_ORussianVDV_Engineer_01"; // Engineer
opfor_paratrooper = "rhs_msv_emr_RShG2"; // Paratrooper opfor_paratrooper = "O_ORussianVDV_Scout_01"; // Paratrooper
// Enemy vehicles used by secondary objectives. // Enemy vehicles used by secondary objectives.
opfor_mrap = "rhs_tigr_msv"; // GAZ-233011 opfor_mrap = "V_TAG_ASN_233115"; // GAZ-233011
opfor_mrap_armed = "rhs_tigr_sts_msv"; // GAZ-233014 (Armed) opfor_mrap_armed = "V_TAG_ASN_233115_STS"; // GAZ-233014 (Armed)
opfor_transport_helo = "RHS_Mi8mt_Cargo_vvsc"; // Mi-8MT (Cargo) opfor_transport_helo = "RHS_Mi8mt_Cargo_vdv"; // Mi-8MT (Cargo)
opfor_transport_truck = "RHS_Ural_MSV_01"; // Ural-4320 Transport (Covered) opfor_transport_truck = "RHS_Ural_VDV_01"; // Ural-4320 Transport (Covered)
opfor_ammobox_transport = "RHS_Ural_Open_MSV_01"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates! opfor_ammobox_transport = "RHS_Ural_Open_Flat_VDV_01"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates!
opfor_fuel_truck = "RUS_MSV_atmz54320"; // Ural-4320 Fuel opfor_fuel_truck = "RHS_Ural_Fuel_VDV_01"; // Ural-4320 Fuel
opfor_ammo_truck = "rhs_gaz66_ammo_msv"; // GAZ-66 Ammo opfor_ammo_truck = "V_TAG_ural432031"; // GAZ-66 Ammo
opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Taru Fuel Pod
opfor_ammo_container = "rhs_kamaz5350_ammo_msv"; // Taru Ammo Pod opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Taru Ammo Pod
opfor_flag = "rhs_Flag_Russia_F"; // Flag opfor_flag = "rhs_Flag_Russia_F"; // Flag
/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance.
Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */
/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders.
Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */
militia_squad = [ militia_squad = [
"RUS_MSV_sr_efreitor", "O_ORussianVDV_Efreitor_01", // Rifleman
"RUS_MSV_sr_grenadier", "O_ORussianVDV_Rifleman_GP_25_01", // Rifleman
"RUS_MSV_sr_gunner", "O_ORussianVDV_Rifleman_01", // Rifleman
"RUS_MSV_sr_juniorsergeant", "O_ORussianVDV_Rifleman_RPG_26_01", // Rifleman (AT)
"RUS_MSV_sr_machinegunner", "O_ORussianVDV_Automatic_Rifleman_01", // Autorifleman
"RUS_MSV_sr_private", "O_ORussianVDV_Marksman_01", // Marksman
"RUS_MSV_sr_rifleman", "O_ORussianVDV_Medic_01", // Medic
"RUS_MSV_sr_riflemangrenadierassistant", "O_ORussianVDV_Engineer_01" // Engineer
"RUS_MSV_sr_riflemanmachinegunnerassistant"
]; ];
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
militia_vehicles = [ militia_vehicles = [
"rhs_tigr_sts_msv", "V_TAG_ASN_233115" // GAZ-233014 (Armed)
"TSB_BRDM2_r",
"rhs_uaz_open_MSV_01",
"RUS_MSV_uaz469",
"rhs_tigr_sts_3camo_msv",
"RUS_MSV_mtlb",
"RUS_MSV_9p135",
"RUS_MSV_9p135m",
"RUS_MSV_9p151",
"RUS_MSV_9p163m1",
"RUS_MSV_ags17",
"RUS_MSV_nsvs",
"RUS_MSV_2b14",
"RUS_MP_kord",
"rhs_SPG9M_MSV" // GAZ-233014 (Armed)
]; ];
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
opfor_vehicles = [ opfor_vehicles = [
"rhs_tigr_sts_msv", "V_TAG_ASN_233115_STS", // GAZ-233014 (Armed)
"TSB_BRDM2_r", "V_TAG_ASN_233115_STS_kmf", // GAZ-233014 (Armed)
"rhs_uaz_open_MSV_01", "V_TAG_ASN_233115_STS", // GAZ-233014 (Armed)
"RUS_MSV_uaz469", "V_TAG_bmd2", // BMP-2D
"rhs_tigr_sts_3camo_msv", "V_TAG_bmp2k", // BMP-2K
"RUS_MSV_mtlb", "V_TAG_brm1k", // BRM-1K
"RUS_MSV_9p135", "rhs_zsu234_aa", // ZSU-23-4V
"RUS_MSV_9p135m", "rhs_zsu234_aa", // ZSU-23-4V
"RUS_MSV_9p151", "MY_TAG_t80bv", // T80
"RUS_MSV_9p163m1", "MY_TAG_t80bv", // T80
"RUS_MSV_ags17", "Z_TAG_t90a", // T90A
"RUS_MSV_nsvs", "MY_TAG_podnos",
"RUS_MSV_2b14", "rhs_Metis_9k115_2_msv",
"RUS_MP_kord", "rhs_Kornet_9M133_2_msv",
"rhs_SPG9M_MSV" "rhs_Igla_AA_pod_msv",
"RHS_AGS30_TriPod_MSV",
"rhs_KORD_MSV",
"rhs_KORD_high_MSV",
"RHS_NSV_TriPod_MSV",
"rhs_SPG9M_MSV",
"MY_TAG_d30a",
"RHS_ZU23_MSV"
]; ];
// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels).
opfor_vehicles_low_intensity = [ opfor_vehicles_low_intensity = [
"RUS_MSV_bmm", "V_TAG_ASN_233115_STS", // GAZ-233014 (Armed)
"RUS_MSV_btr80", "V_TAG_ASN_233115_STS_kmf",
"RUS_MSV_btr82a", "V_TAGa_btr80",
"RUS_MSV_mtlb", "V_TAGa_btr80a", // GAZ-233014 (Armed)
"RUS_MSV_mtlbm6mb", "V_TAG_btr80", // BTR-80
"RUS_MSV_mtlbvmk", "V_TAG_btr80a",
"RUS_MSV_prp3", "V_TAG_bmd2",
"RUS_MSV_brm1k", "V_TAGa_bmd2",
"RUS_MSV_9p149", "V_TAGa_bmd2k",
"RUS_MSV_9p148", "V_TAG_bmd2k",
//"tbd_mtlb_deva", "rhsgref_BRDM2_msv",
//"tbd_mtlb_tundzha", "rhsgref_BRDM2_ATGM_msv"
//"tbd_mtlb_type63",
//"tbd_mtlb_mt12",
//"tbd_mtlb_bm21",
//"tbd_mtlb_2b9",
//"tbd_mtlb_6ma2_tkn4g",
"RUS_MSV_9p135",
"RUS_MSV_9p135m",
"RUS_MSV_9p151",
"RUS_MSV_9p163m1",
"RUS_MSV_ags17",
"RUS_MSV_nsvs",
"RUS_MSV_2b14",
"RUS_MP_kord",
"rhs_SPG9M_MSV"
]; ];
// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels).
opfor_battlegroup_vehicles = [ opfor_battlegroup_vehicles = [
"RUS_MSV_strela10", "rhs_tigr_sts_msv", // GAZ-233014 (Armed)
"RUS_MSV_zsu234", "rhs_tigr_sts_msv", // GAZ-233014 (Armed) (twice)
"RUS_MSV_bmm", "rhs_tigr_sts_msv", // GAZ-233014 (Armed) (thrice)
"RUS_MSV_btr80", "RHS_Ural_Open_MSV_01", // Ural-4320 Transport
"RUS_MSV_btr82a", "RHS_Ural_MSV_01", // Ural-4320 Transport (Covered)
"RUS_MSV_mtlb", "rhs_bmp2d_msv", // BMP-2D
"RUS_MSV_mtlbm6mb", "rhs_bmp2k_msv", // BMP-2K
"RUS_MSV_mtlbvmk", "rhs_brm1k_msv", // BRM-1K
"RUS_MSV_prp3", "rhs_zsu234_aa", // ZSU-23-4V
"RUS_MSV_ap2", "rhs_zsu234_aa", // ZSU-23-4V (twice)
"RUS_MSV_asn233115", "V_TAGa_btr80",
"RUS_MSV_atmz54320", "V_TAG_btr80",
"RUS_MSV_kamaz4310", "V_TAGa_btr80a",
"RUS_MSV_mtoat", "V_TAG_btr80a",
"RUS_MSV_uaz469", "V_TAG_bm21",
"RUS_MSV_ural43202", "Z_TAG_acacia",
"RUS_MSV_9p135", "V_TAG_Gaz_2330",
"RUS_MSV_9p135m", "V_TAG_Gaz_2330_kmf",
"RUS_MSV_9p151", "V_TAG_ASN_233115_STS",
"RUS_MSV_9p163m1", "V_TAG_ASN_233115_STS_kmf",
"RUS_MSV_ags17", "V_TAG_ASN_233115",
"RUS_MSV_nsvs", "V_TAG_ASN_233115_kmf",
"RUS_MSV_bmp1", "V_TAG_bmd2",
"RUS_MSV_bmp1k", "V_TAGa_bmd2",
"RUS_MSV_bmp2", "V_TAGa_bmd2k",
"RUS_MSV_bmp2k", "V_TAG_bmd2k",
"RUS_MSV_bmp3", "V_TAG_bmd4m",
"RUS_MSV_bmp3m", "V_TAG_bmp2",
"RUS_MSV_2b14", "V_TAG_bmp2k",
"RUS_MSV_2b17", "V_TAG_brm1k",
"RUS_MSV_brm1k", "V_TAG_prp3",
"RUS_MSV_2s1", "Z_TAG_bmp3",
"RUS_MSV_2s3m1", "Z_TAG_bmp3m",
"RUS_MSV_9p149", "MY_TAGa_gvozdika",
"RUS_MSV_9p148", "V_TAG_t72b3",
"RUS_MSV_t72b", "Z_TAG_t72b3m",
"RUS_MSV_t72b3", "Z_TAG_t90a",
"RUS_MSV_t72b3m", "Z_TAG_t90m",
"RUS_MSV_t72bm", "MY_TAG_t80bv",
"RUS_MSV_t80bv", "MY_TAG_t80bvk",
"RUS_MSV_t80bvk", "MY_TAG_t80u",
"RUS_MSV_t80u", "MY_TAG_tric_t80",
"RUS_MSV_t80u45m", "MY_TAG_t80um",
"RUS_MSV_t80ue1", "MY_TAG_tric_t80um",
"RUS_MSV_t80uk", "MY_TAG_t80ue",
"RUS_MSV_t90a", "MY_TAG_tric_t80ue",
"RUS_MSV_t90m", "MY_TAG_t80uk",
"RUS_MSV_zu232", "MY_TAG_tric_t80uk", // T90A
"RUS_MSV_2a18m", "V_TAG_Mi_24P", // Mi-24P (AT)
"RUS_VDV_bmd2", "V_TAG_Mi_35", // Mi-24V (AT)
"RUS_VDV_bmd2k", "RHS_Mi8mt_Cargo_vdv", // Mi-8MT (Cargo)
"RUS_VDV_bmd4m", "V_TAG_Mi_28UB",
"RUS_MP_kord", "V_TAG_Ka_52" // Ka-52
"mkk_tigr_arbalet_dm_msv_f",
"rhs_tigr_sts_3camo_msv",
"rhs_uaz_open_MSV_01",
"rhs_gaz66_zu23_msv",
"RHS_Ural_Zu23_MSV_01",
"RHS_Ural_MSV_01",
"RHS_Ural_Open_Flat_MSV_01",
"rhs_kamaz5350_ammo_msv",
"RHS_Ural_Repair_MSV_01",
"rhs_SPG9M_MSV",
"MMM_KamAZ4386",
"MMM_KamAZ4386_BM30D",
"rhs_bmd4ma_vdv",
"TSB_BRDM2_r",
"TSB_BRDM2_ZU23_r",
"TSB_BRDM2A_r",
"rhs_pchela1t_vvs",
//"tbd_mtlb_deva",
//"tbd_mtlb_tundzha",
//"tbd_mtlb_type63",
//"tbd_mtlb_mt12",
//"tbd_mtlb_bm21",
//"tbd_mtlb_2b9",
//"tbd_mtlb_6ma2_tkn4g",
"rhs_sprut_vdv"
]; ];
// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels).
opfor_battlegroup_vehicles_low_intensity = [ opfor_battlegroup_vehicles_low_intensity = [
"RUS_MSV_btr80", "V_TAG_ASN_233115",
"RUS_MSV_btr82a", "V_TAG_ASN_233115_kmf", // GAZ-233011
"RUS_MSV_bmm", "V_TAG_ASN_233115_STS_kmf", // GAZ-233014 (Armed)
"RUS_MSV_btr80", "V_TAG_ASN_233115_STS", // GAZ-233014 (Armed)
"RUS_MSV_btr82a", "RHS_Ural_Open_MSV_01", // Ural-4320 Transport
"RUS_MSV_mtlb", "V_TAGa_btr80",
"RUS_MSV_mtlbm6mb", "V_TAG_btr80", // BTR-80
"RUS_MSV_mtlbvmk" "V_TAG_btr80a",
//"tbd_mtlb_deva", "V_TAGa_btr80a", // BTR-80A
//"tbd_mtlb_tundzha", "rhs_zsu234_aa", // ZSU-23-4V
//"tbd_mtlb_type63", "V_TAG_Mi_24P", // Mi-24P (AT)
//"tbd_mtlb_mt12", "V_TAG_Mi_35",
//"tbd_mtlb_bm21", "V_TAG_bmd2",
//"tbd_mtlb_2b9", "V_TAGa_bmd2",
//"tbd_mtlb_6ma2_tkn4g" "V_TAGa_bmd2k",
"V_TAG_bmd2k", // Mi-24V (AT)
"RHS_Mi8mt_Cargo_vdv",
"rhsgref_BRDM2_msv",
"rhsgref_BRDM2_ATGM_msv" // Mi-8MT (Cargo)
]; ];
/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers.
If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */
opfor_troup_transports = [ opfor_troup_transports = [
"RUS_MSV_bmp1", "RHS_Ural_Open_MSV_01", // Ural-4320 Transport
"RUS_MSV_bmp1k", "RHS_Ural_MSV_01", // Ural-4320 Transport (Covered)
"RUS_MSV_bmp2", "V_TAGa_btr80", // BTR-80
"RUS_MSV_bmp2k", "V_TAG_btr80a", // BTR-80A
"RUS_MSV_bmp3", "V_TAG_bmp2", // BMP-2D
"RUS_MSV_bmm", "RHS_Mi8mt_Cargo_vdv", // Mi-8MT (Cargo)
"RUS_MSV_btr80", "V_TAG_Mi_24P", // Mi-24P (AT)
"RUS_MSV_btr82a", "V_TAG_Mi_35" // Mi-24V (AT)
"RUS_MSV_mtlb",
"RUS_MSV_mtlbvmk",
//"tbd_mtlb_6ma2_tkn4g",
"RUS_VKS_mi8mt", // Mi-8MT (Cargo)
"RUS_VKS_mi24p" // Mi-24P (AT)
]; ];
// Enemy rotary-wings that will need to spawn in flight. // Enemy rotary-wings that will need to spawn in flight.
opfor_choppers = [ opfor_choppers = [
"RUS_VKS_ka52", "RHS_Mi8mt_Cargo_vdv", // Mi-8MT (Cargo)
"RUS_VKS_mi24p", "V_TAG_Mi_24P",
"RUS_VKS_mi28n", "V_TAG_Mi_35", // Mi-24P (AT)
"RUS_VKS_mi8mt", "V_TAG_Mi_28UB", // Mi-24V (AT)
"RUS_VKS_mi8mtv2" "V_TAG_Ka_52", // Ka-52
"V_TAG_Mi_17AMT"
]; ];
// Enemy fixed-wings that will need to spawn in the air. // Enemy fixed-wings that will need to spawn in the air.
opfor_air = [ opfor_air = [
"RHS_Su25SM_vvs", // Su-25 "V_TAG_su25", // Su-25
"RUS_VKS_su25sm", // Su-25 (KH29) "RUS_VKS_su25sm", // Su-25 (KH29)
"RUS_VKS_mig29s", "RUS_VKS_mig29s",
"RUS_VKS_mig29smt", "RUS_VKS_mig29smt",
"RUS_VKS_tu95ms6" "RUS_VKS_tu95ms6"