85 is usually very unrealistic. You must test this in your scenario, however. dodgeMin_deg : 57, #minimum amount to turn when dodging rollRateMax_degpersec : 110, #you can figure this out by rolling the corresponding FG aircraft and timing a 180 or 360 deg roll dodgeROverLPreference_percent : 50, # Preference for right turns vs. left when dodging. 90% means 90% right turns, 50% means 50% right turns. dodgeAltMin_m : -5000, #Aircraft will begin to move up or down dodgeAltMax_m : 5000, #Max & Min are relative to current alt dodgeVertSpeedClimb_mps : 100, #Max speed to climb when evading dodgeVertSpeedDive_mps : 200, #Max speed to dive when evading }, # ######################################### # ATTACK DEFINITIONS # # The attack system makes the AI aircraft turn and fly towards # other aircraft attacks : { maxDistance_m : 14000, #max distance to turn & attack main aircraft minDistance_m : 2500, #min distance to turn & attack main aircraft, ie, fly away this far before turning to attack again continueAttackAngle_deg : 20, #when within minDistance_m, the aircraft will continue to turn towards the main aircraft and attack *if* if the angle is less than this amount from dead ahead altitudeHigherCutoff_m : 13000, # will attack the main aircraft unless this amount higher than it or more altitudeLowerCutoff_m : 5000, # will attack the main aircraft unless this amount lower than it or more climbPower : 6000, # How powerful the aircraft is when climbing during an attack; 4000 would be typical for, say a Zero--scale accordingly for others; higher is stronger divePower : 9000, # How powerful the aircraft is when diving during and attack; 6000 typical of a Zero--could be much more than climbPower if the aircraft is a weak climber but a strong diver rollMin_deg : 58, #when turning on attack, roll to this angle min rollMax_deg : 75, #when turning on attack, roll to this angle max #90 degrees = instant turn, unrealistic #up to 80 might be OK, depending on aircraft & speed; somewhere in 80-85 starts to be unrealistically fast #>85 is usually very unrealistic. You must test this in your scenario, however. rollRateMax_degpersec : 110, #you can figure this out by rolling the corresponding FG aircraft and timing a 180 or 360 deg roll attackCheckTime_sec : 10, # check for need to attack/correct course this often attackCheckTimeEngaged_sec : 0.7, # once engaged with enemy, check/update course this frequently }, # ######################################### # WEAPONS DEFINITIONS # # The weapons system makes the AI aircraft fire on the main aircraft # You can define any number of weapons--just enclose each in curly brackets # and separate with commas (,). weapons : { front_gun : #internal name - this can be any name you want; must be a valid nasal variable name { name : "AGM-114", # name presented to users, ie in on-screen messages maxDamage_percent : 80, # maximum percentage damage one hit from the aircraft's main weapon/machine guns will do to an opponent maxDamageDistance_m : 8000, # maximum distance at which the aircrafts main weapon/maching guns will be able to damage an opponent weaponAngle_deg : { heading: 0, elevation: 0 }, # direction the aircraft's main weapon is aimed. # 0,0 = straight ahead, 90,0=directly right, 0,90=directly up, 0,180=directly back, etc. weaponOffset_m : {x:2.5, y:0, z:0}, # Offset of the weapon from the main aircraft center weaponSize_m : {start:.30, end:.30}, # Visual size of the weapon's projectile, in meters, at start & end of its path }, }, # ######################################### # DIMENSION DEFINITIONS # dimensions : { width_m : 20.00, #width of your object, ie, for aircraft, wingspan length_m : 11.00, #length of your object, ie, for aircraft, distance nose to tail height_m : 3.80, #height of your object, ie, for aircraft ground to highest point when sitting on runway damageRadius_m : 10, #typically 1/2 the longest dimension of the object. Hits within this distance of the #center of object have some possibility of damage vitalDamageRadius_m : 1, #typically the radius of the fuselage or cockpit or other most # vital area at the center of the object. Always smaller than damageRadius_m crashRadius_m : 5, #It's a crash if the main aircraft hits in this area. }, # ######################################### # VULNERABILITIES DEFINITIONS # vulnerabilities : { damageVulnerability : 10, #Vulnerability to damage from armament, 1=normal M1 tank; higher to make objects easier to kill and lower to make them more difficult. This is a multiplier, so 5 means 5X easier to kill than an M1, 1/5 means 5X harder to kill. engineDamageVulnerability_percent : 9, #Chance that a small-caliber machine-gun round will damage the engine. fireVulnerability_percent : 7, #Vulnerability to catching on fire. 100% means even the slightest impact will set it on fire; 20% means quite difficult to set on fire; 0% means set on fire only when completely damaged; -1% means never set on fire. fireDamageRate_percentpersecond : .5, #Amount of damage to add, per second, when on fire. 100%=completely damaged. Warthog is relatively damage-resistant. fireExtinguishMaxTime_seconds : 80, #Once a fire starts, for this many seconds there is a chance to put out the fire; fires lasting longer than this won't be put out until the object burns out. fireExtinguishSuccess_percentage : 20, #Chance of the crew putting out the fire within the MaxTime above. Warthoge is relatively damage-resistant. explosiveMass_kg : 9000 , #mass of the object in KG, but give at least a 2-10X bonus to anything carrying flammables or high explosives. }, # ######################################### # LIVERY DEFINITIONS # # Path to livery files to use at different damage levels. # Path is relative to the AI aircraft's directory. # The object will start with the first livery listed and # change to succeeding liveries as the damage # level increases. The final livery should indicate full damage/ # object destroyed. # # If you don't want to specify any special liveries simply set # damageLivery : nil and the object's normal livery will be used. # damageLiveries : { damageLivery : [ ] }, }; ######################################### # INITIALIZE ROUTINES # # OVERALL INITIALIZER: Needed to make all the others work bombable.initialize ( bombableObject ); # # LOCATION: Relocate object to maintain its position after file/reset # (best not used for airplanes) # bombable.location_init ( thisNodeName ); # # GROUND: Keep object at altitude relative to ground level bombable.ground_init ( thisNodeName ); # # ATTACK: Make the object attack the main aircraft bombable.attack_init ( thisNodeName ); # # WEAPONS: Make the object shoot the main aircraft bombable.weapons_init ( thisNodeName ); # # BOMBABLE: Make the object bombable/damageable bombable.bombable_init ( thisNodeName ); # # SMOKE/CONTRAIL: Start a flare, contrail, smoke trail, or exhaust # trail for the object. # Smoke types available: flare, jetcontrail, pistonexhaust, smoketrail, # damagedengine bombable.startSmoke("jetcontrail", thisNodeName ); # # END INITIALIZE BOMBABLE ######################################################################## ######################################################################## } object_init(); ]]> ]]>