Back when I was active, I did AI coding for quite a few bf42, rtr and sw based mods. I came up with a general way of improving bot performance without having to go through and alter all the bot kit, weapon and vehicle con files. I went through all the con files I wanted to alter and put the attributes I wanted to change into one file.
This had advantages:
- I could enhance single player play to the vanilla mods without affecting online play.
- Adjusting bot behaviour was easier since I only had to modify the one file.
I called it SinglePlayerTweaks.con and here is the code:
CODE
rem *** check for vanilla bf (leave Dnamro's realplayer mod alone), if so run this script ***
Var v_info
Var v_exists
Var v_modname
game.customGameName -> v_modname
if v_modname == realplayer
return
endIf
rem **********************************************************************
rem Battlefield 1942 - General Adjustments
rem **********************************************************************
Const c_aa_temp = 16
Const c_aa_str = 2
rem *** round of fire settings ***
Const c_rof_a = 12
Const c_rof_b = 14
Const c_rof_c = 15
Const c_rof_d = 18
Const c_rof_e = 24
Const c_rof_f = 30
Const c_rof_g = 45
Const c_rof_k = 48
rem *** mag size settings ***
Const c_mag_a = 30
Const c_mag_b = 14
Const c_mag_c = 15
Const c_mag_d = 45
Const c_mag_e = 48
Const c_mag_f = 72
objectTemplate.active SoldierCamera
objectTemplate.CVMChase 1
objectTemplate.CVMFrontChase 1
objectTemplate.CVMFlyBy 1
rem **********************************************************************
rem *** Direct Behaviour changes ***
rem **********************************************************************
aiSettings.setBotSkill 1.0
aiSettings.activeBehaviourModifiers UnitWeights
aiSettings.setBehaviourModifier Idle 0.01
aiSettings.setBehaviourModifier Fire 7.0
aiSettings.activeBehaviourModifiers StandardWeights
aiSettings.setBehaviourModifier Avoid 5.0
aiSettings.setBehaviourModifier Idle 0.01
aiSettings.setBehaviourModifier Fire 7.0
aiSettings.activeBehaviourModifiers PlaneWeights
aiSettings.setBehaviourModifier Avoid 6.0
aiSettings.setBehaviourModifier Idle 0.01
aiSettings.setBehaviourModifier Fire 7.0
aiSettings.setBehaviourModifier Scout 4.0
rem **********************************************************************
rem *** radio messages ***
rem **********************************************************************
aiRadio.subscribeToMessage RMArtillerySupport 10 0.8
aiRadio.subscribeToMessage RMArtilleryReady 10 0.8
aiRadio.subscribeToMessage RMAirSupport 10 0.8
aiRadio.subscribeToMessage RMNavalSupport 10 0.8
aiRadio.subscribeToMessage RMAntiTankSupport 10 0.8
aiRadio.subscribeToMessage RMReinforcement 10 0.8
aiRadio.subscribeToMessage RMPickup 10 0.8
rem **********************************************************************
rem *** kit mods ***
rem **********************************************************************
kitTemplate.active Medic
kitTemplate.setBattleStrength Infantry 5.0
kitTemplate.active AT
kitTemplate.setBattleStrength Infantry 2.5
kitTemplate.active Assault
kitTemplate.setStrategicStrength 0 2
kitTemplate.setStrategicStrength 1 2
kitTemplate.setBattleStrength LightArmour 4.0
kitTemplate.setBattleStrength HeavyArmour 2.0
kitTemplate.setBattleStrength Air 3.0
kitTemplate.active Scout
kitTemplate.setStrategicStrength 0 1
kitTemplate.setBattleStrength Air 1.0
rem *** Bazooka***
objectTemplate.active BazookaProjectile
objectTemplate.gravityModifier 0.25
rem *** weapon tweaks
objectTemplate.active Bar1918
objectTemplate.roundOfFire c_rof_a
objectTemplate.magSize c_mag_a
objectTemplate.active JohnsonLMG
objectTemplate.roundOfFire c_rof_c
objectTemplate.magSize c_mag_d
objectTemplate.active Mp18
objectTemplate.roundOfFire c_rof_b
objectTemplate.magSize c_mag_e
objectTemplate.active Mp40
objectTemplate.roundOfFire c_rof_b
objectTemplate.magSize c_mag_e
objectTemplate.active Sg44
objectTemplate.roundOfFire c_rof_b
objectTemplate.magSize c_mag_d
objectTemplate.active Thompson
objectTemplate.roundOfFire c_rof_c
objectTemplate.magSize c_mag_d
objectTemplate.active Type99
objectTemplate.roundOfFire c_rof_c
objectTemplate.magSize c_mag_a
objectTemplate.active DP
objectTemplate.roundOfFire c_rof_b
objectTemplate.magSize c_mag_f
objectTemplate.active Browning
objectTemplate.roundOfFire c_rof_e
objectTemplate.active Browning_Air
objectTemplate.roundOfFire c_rof_e
objectTemplate.active Browning_unlimited
objectTemplate.roundOfFire c_rof_e
objectTemplate.active Coaxial_browning
objectTemplate.roundOfFire c_rof_e
objectTemplate.active Coaxial_MG42
objectTemplate.roundOfFire c_rof_d
objectTemplate.active MG42
objectTemplate.roundOfFire c_rof_f
objectTemplate.active MG42_Air
objectTemplate.roundOfFire c_rof_f
objectTemplate.active MG42_unlimited
objectTemplate.roundOfFire c_rof_f
Const c_hang = 30
objectTemplate.active BritishSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active CanadianSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active GermanDesertSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active GermanSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active JapaneseSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active RussianSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active USMarineSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active USSoldier
objectTemplate.timeToLiveAfterDeath c_hang
rem *************************
rem *** weapons ai tweaks ***
rem *************************
weaponTemplate.active MedPackAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.active RepairPackAI
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 5.0
weaponTemplate.setStrength NavalArmour 4.0
weaponTemplate.setStrength Submarine 1.0
weaponTemplate.setStrength Air 2.0
objectTemplate.active LandmineProjectile
objectTemplate.timeToLive CRD_NONE/720/0/0
weaponTemplate.active BazookaRPG
weaponTemplate.deviation 0.5
weaponTemplate.deviationCorrectionTime 1.0
weaponTemplate.setStrength Infantry 0.1
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 4.5
weaponTemplate.setStrength Air 1.5
rem *** Panzershreck ***
weaponTemplate.active PanzerschrekRPG
weaponTemplate.deviation 0.5
weaponTemplate.deviationCorrectionTime 1.0
weaponTemplate.setStrength Infantry 0.1
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 4.5
weaponTemplate.setStrength Air 1.5
rem *** GrenadeAxis ***
weaponTemplate.active GrenadeAxisAI
weaponTemplate.minRange 8.0
weaponTemplate.maxRange 80.0
weaponTemplate.deviation 1.0
rem weaponTemplate.deviationCorrectionTime 6.0
weaponTemplate.setStrength Infantry 3.5
weaponTemplate.setStrength LightArmour 6.0
weaponTemplate.setStrength HeavyArmour 4.0
rem *** GrenadeAxis ***
weaponTemplate.active GrenadeAlliesAI
weaponTemplate.minRange 8.0
weaponTemplate.maxRange 80.0
weaponTemplate.deviation 1.0
rem weaponTemplate.deviationCorrectionTime 6.0
weaponTemplate.setStrength Infantry 3.5
weaponTemplate.setStrength LightArmour 6.0
weaponTemplate.setStrength HeavyArmour 4.0
rem *** BAR ***
weaponTemplate.active BarAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength Air 2.5
rem *** DP ***
weaponTemplate.active DPAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength Air 2.5
rem *** JohnsonLMG ***
weaponTemplate.active JohnsonLMGAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength Air 2.5
rem *** M1Garand ***
weaponTemplate.active M1GarandAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength Air 2.5
rem *** SG44 ***
weaponTemplate.active SG44AI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength Air 2.5
rem *** Type5 ***
weaponTemplate.active Type5AI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength Air 2.5
rem *** Type99 ***
weaponTemplate.active Type99AI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength Air 2.5
rem *** thompson ***
weaponTemplate.active ThompsonSMG
weaponTemplate.setStrength Infantry 5.0
rem *** Mp18 ***
weaponTemplate.active Mp18AI
weaponTemplate.setStrength Infantry 5.0
rem *** MP40 ***
weaponTemplate.active MP40AI
weaponTemplate.setStrength Infantry 5.0
rem *** NO4 ***
weaponTemplate.active No4AI
weaponTemplate.setStrength Infantry 4.5
weaponTemplate.setStrength Air 2.0
rem *** SniperNO4 ***
weaponTemplate.active SniperNo4AI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength Air 2.0
rem *** K98 ***
weaponTemplate.active K98AI
weaponTemplate.setStrength Infantry 4.5
weaponTemplate.setStrength Air 2.0
rem *** SniperK98 ***
weaponTemplate.active SniperK98AI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength Air 2.0
rem *** P38***
weaponTemplate.active P38AI
weaponTemplate.setStrength Infantry 0.2
rem *** Colt ***
weaponTemplate.active ColtAI
weaponTemplate.setStrength Infantry 0.2
rem *** Knife Allies ***
weaponTemplate.active KnifeAllies
weaponTemplate.setStrength Infantry 0.1
rem *** Knife Axis ***
weaponTemplate.active KnifeAxis
weaponTemplate.setStrength Infantry 0.1
rem ****************************************
rem *** tank tweaks ***
weaponTemplate.active Chi-ha_MainGun
weaponTemplate.setStrength Infantery 30.0
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 3.0
weaponTemplate.setStrength NavalArmour 1.0
weaponTemplate.active PanzerIVMainGun
weaponTemplate.setStrength Infantry 30.0
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 3.0
weaponTemplate.setStrength NavalArmour 1.0
weaponTemplate.active ShermanMainGun
weaponTemplate.setStrength Infantery 30.0
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 3.0
weaponTemplate.setStrength NavalArmour 1.0
weaponTemplate.active TigerMainGun
weaponTemplate.setStrength Infantry 32.0
weaponTemplate.setStrength LightArmour 8.0
weaponTemplate.setStrength HeavyArmour 5.0
weaponTemplate.setStrength NavalArmour 2.0
weaponTemplate.active M10MainGun
weaponTemplate.setStrength Infantry 32.0
weaponTemplate.setStrength LightArmour 8.0
weaponTemplate.setStrength HeavyArmour 5.0
weaponTemplate.setStrength NavalArmour 2.0
weaponTemplate.active T34MainGun
weaponTemplate.setStrength Infantry 32.0
weaponTemplate.setStrength LightArmour 8.0
weaponTemplate.setStrength HeavyArmour 5.0
weaponTemplate.setStrength NavalArmour 2.0
rem *** AA Allies Base ***
weaponTemplate.active AA_BaseMainGun
weaponTemplate.maxRange 300.0
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength HeavyArmour 1.0
weaponTemplate.setStrength Air 8.0
rem weaponTemplate.deviationCorrectionTime 2.0
weaponTemplate.active Flak38MainGun
weaponTemplate.maxRange 300.0
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.setStrength LightArmour 2.0
weaponTemplate.setStrength HeavyArmour 1.0
weaponTemplate.setStrength Air 8.0
rem weaponTemplate.deviationCorrectionTime 2.0
rem *** Hanomag Plugin fix ***
aiTemplatePlugIn.active HanomagMobile
aiTemplatePlugIn.maxSpeed 15.0
weaponTemplate.active B17MachineGun
weaponTemplate.setStrength Infantry 14.0
weaponTemplate.setStrength LightArmour 6.0
weaponTemplate.setStrength Air 14.0
weaponTemplate.active B17Bombs
weaponTemplate.maxRange 300.0
weaponTemplate.setStrength Infantry 27.0
weaponTemplate.setStrength LightArmour 18.0
weaponTemplate.setStrength HeavyArmour 16.0
weaponTemplate.setStrength NavalArmour 12.0
weaponTemplate.setStrength Air 0.5
rem **********************************************************************
rem Carrier fix
rem **********************************************************************
rem *** carrier AI fix ***
aiTemplatePlugIn.active EnterpriseAAUnit2
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active EnterpriseAA2
aiTemplate.basicTemp c_aa_temp
aiTemplatePlugIn.active EnterpriseAAUnit3
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active EnterpriseAA3
aiTemplate.basicTemp c_aa_temp
aiTemplatePlugIn.active EnterpriseAAUnit4
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active EnterpriseAA4
aiTemplate.basicTemp c_aa_temp
aiTemplatePlugIn.active EnterpriseAAUnit5
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active EnterpriseAA5
aiTemplate.basicTemp c_aa_temp
aiTemplatePlugIn.active ShokakuAAUnit2
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active ShokakuAA2
aiTemplate.basicTemp c_aa_temp
aiTemplatePlugIn.active ShokakuAAUnit3
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active ShokakuAA3
aiTemplate.basicTemp c_aa_temp
aiTemplatePlugIn.active ShokakuAAUnit4
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active ShokakuAA4
aiTemplate.basicTemp c_aa_temp
aiTemplatePlugIn.active ShokakuAAUnit5
aiTemplatePlugIn.setStrategicStrength 1 c_aa_str
aiTemplate.active ShokakuAA5
aiTemplate.basicTemp c_aa_temp
rem **********************************************************************
rem Road to Rome
rem **********************************************************************
if v_modname == XPACK1
beginrem
objectTemplate.active Stengun
objectTemplate.magSize c_mag_e
objectTemplate.roundOfFire c_rof_b
endrem
objectTemplate.active FrenchSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active ItalianSoldier
objectTemplate.timeToLiveAfterDeath c_hang
weaponTemplate.active StengunAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.active BredaAI
weaponTemplate.maxRange 250.0
weaponTemplate.setStrength Infantry 0.2
weaponTemplate.active K98Bayonet
weaponTemplate.setStrength Infantry 0.1
weaponTemplate.active No4Bayonet
weaponTemplate.setStrength Infantry 0.1
endIf
rem ********************** VEHICLES ****************************
objectTemplate.info Pak40 -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
aiTemplatePlugIn.active Pak40Unit
aiTemplatePlugIn.equipmentType 13
aiTemplatePlugIn.setStrategicStrength 0 3
aiTemplatePlugIn.setStrategicStrength 1 3
aiTemplatePlugIn.active Pak40Armament
aiTemplatePlugIn.setIsAntiAircraft 0
weaponTemplate.active Pak40MainGun
weaponTemplate.burst 0
weaponTemplate.indirect 1
weaponTemplate.minRange 8.0
weaponTemplate.maxRange 400.0
weaponTemplate.setStrength Infantery 15.0
weaponTemplate.setStrength LightArmour 10.0
weaponTemplate.setStrength HeavyArmour 5.0
weaponTemplate.setStrength NavalArmour 3.0
weaponTemplate.setStrength Air 0.0
endIf
objectTemplate.info AT25 -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
aiTemplatePlugIn.active AT25Unit
aiTemplatePlugIn.equipmentType 13
aiTemplatePlugIn.setStrategicStrength 0 3
aiTemplatePlugIn.setStrategicStrength 1 3
aiTemplatePlugIn.active AT25Armament
aiTemplatePlugIn.setIsAntiAircraft 0
weaponTemplate.active AT25MainGun
weaponTemplate.burst 0
weaponTemplate.indirect 1
weaponTemplate.minRange 8.0
weaponTemplate.maxRange 400.0
weaponTemplate.setStrength Infantery 15.0
weaponTemplate.setStrength LightArmour 10.0
weaponTemplate.setStrength HeavyArmour 5.0
weaponTemplate.setStrength NavalArmour 3.0
weaponTemplate.setStrength Air 0.0
endIf
objectTemplate.info SturmGeschutz -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active SturmGeschutzMainGun
weaponTemplate.setStrength Infantry 24.0
weaponTemplate.setStrength LightArmour 12.0
weaponTemplate.setStrength HeavyArmour 4.0
weaponTemplate.setStrength Air 0.2
endIf
objectTemplate.info M11-39 -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active M11-39MainGun
weaponTemplate.setStrength Infantery 30.0
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 3.0
weaponTemplate.setStrength NavalArmour 1.0
endIf
objectTemplate.info M3GMC -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active M3gmcMainGun
weaponTemplate.setStrength Infantery 21.0
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 3.0
weaponTemplate.setStrength NavalArmour 1.0
endIf
rem **********************************************************************
rem Secret Weapons of WWII
rem **********************************************************************
if v_modname == XPACK2
objectTemplate.active BritishCommandoSoldier
objectTemplate.timeToLiveAfterDeath c_hang
objectTemplate.active GermanEliteSoldier
objectTemplate.timeToLiveAfterDeath c_hang
beginrem
objectTemplate.active BrenLMG
objectTemplate.magSize c_mag_d
objectTemplate.roundOfFire c_rof_b
objectTemplate.active Gewehr42
objectTemplate.magSize c_mag_d
objectTemplate.roundOfFire c_rof_b
objectTemplate.active Stengun
objectTemplate.magSize c_mag_e
objectTemplate.roundOfFire c_rof_b
endrem
weaponTemplate.active BrenLMGAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.active K98RifleGrenadeAI
weaponTemplate.maxRange 150.0
weaponTemplate.setStrength Infantry 4.0
weaponTemplate.setStrength LightArmour 3.0
weaponTemplate.setStrength HeavyArmour 2.0
weaponTemplate.active StengunAI
weaponTemplate.setStrength Infantry 5.0
weaponTemplate.active ShotgunAI
weaponTemplate.setStrength Infantry 5.0
rem *** Knife Allies ***
weaponTemplate.active CommandoKnifeAI
weaponTemplate.setStrength Infantry 0.01
rem *** Knife Axis ***
weaponTemplate.active EliteKnifeAI
weaponTemplate.setStrength Infantry 0.01
rem *** Knife Allies ***
weaponTemplate.active CommandoKnifeThrowAI
weaponTemplate.setStrength Infantry 0.1
rem *** Knife Axis ***
weaponTemplate.active EliteKnifeThrowAI
weaponTemplate.setStrength Infantry 0.1
endIf
objectTemplate.info FlakPanzerMainGun -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.maxRange 280.0
weaponTemplate.active FlakPanzerMainGun
weaponTemplate.setStrength Infantry 12.0
weaponTemplate.setStrength LightArmour 8.0
weaponTemplate.setStrength HeavyArmour 3.0
weaponTemplate.setStrength Air 20.0
endIf
objectTemplate.info Sherman_T34MainGun -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active Sherman_T34MainGun
weaponTemplate.setStrength Infantery 30.0
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 3.0
weaponTemplate.setStrength NavalArmour 1.0
weaponTemplate.setStrength Air 0.5
endIf
objectTemplate.info Sherman_T34CalliopeGun -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active Sherman_T34CalliopeGun
weaponTemplate.setStrength Infantry 32.0
weaponTemplate.setStrength LightArmour 12.0
weaponTemplate.setStrength HeavyArmour 4.0
weaponTemplate.setStrength NavalArmour 1.0
weaponTemplate.setStrength Air 0.5
endIf
objectTemplate.info SturmTigerMainGun -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active SturmTigerMainGun
weaponTemplate.maxRange 300.0
weaponTemplate.setStrength Infantry 39.0
weaponTemplate.setStrength LightArmour 12.0
weaponTemplate.setStrength HeavyArmour 8.0
weaponTemplate.setStrength NavalArmour 3.0
weaponTemplate.setStrength Air 0.5
endIf
objectTemplate.info WasserFallLauncherWeapon -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active WasserFallLauncherWeapon
weaponTemplate.setStrength Infantry 30.0
weaponTemplate.setStrength LightArmour 12.0
weaponTemplate.setStrength HeavyArmour 6.0
weaponTemplate.setStrength NavalArmour 3.0
weaponTemplate.setStrength Air 6.0
endIf
objectTemplate.info T95MainGun -> v_info
Utils.expr v_info != "No object template" -> v_exists
if v_exists
weaponTemplate.active T95MainGun
weaponTemplate.setStrength Infantry 28.0
weaponTemplate.setStrength LightArmour 12.0
weaponTemplate.setStrength HeavyArmour 8.0
weaponTemplate.setStrength NavalArmour 2.0
weaponTemplate.setStrength Air 1.0
endIf
I put this con file into the SinglePlayer folder and added this line to the SinglePlayerAllied.con and SinglePlayerAxis.con files (right after the number of tickets were set):
run SinglePlayer/SinglePlayerTweaks
For custom mods, you can do the same with the coop.con files as well. It's a good example of how to set and use constants and variables and the use of conditional statements.
For the vanilla mods, I then packed it into a separate rfa using the map name and a high extension. For custom maps and mods, I just added these con files to the map rfa.