With the newly found information we’ve seen in this thread, I decided to take a crack at making an in-game model of AIM-95 in an “early” configuration. It’s not quite perfect, as it takes a lot of trial and error to get the PIDs and such working smoothly without compromising maneuverability, but I believe it’s in a “good enough” state right now.
135 kg Start Mass
82.8 kg End Mass (Adjusted until specific impulse was a reasonable number)
15,570 Newtons Thrust (3,500 lbs)
6.86s Burn Time
208.6s Isp
24,012 lb-sec Total Impulse
85° Gimbal Limit
70° Lock Limit
The .blk file if anyone would like to try refining it further
Spoiler
rocketGun:b = true
preset_cost:i = 20
bullets:i = 1
shotFreq:r = 1000.25
sound:t = "weapon.rocketgun_132"
helicopterGroup:i = 2
mesh:t = "uk_sraam"
tags {
}
rocket {
bulletName:t = "uk_sraam"
statType:t = "hydra"
caliber:r = 0.203
length:r = 2.54
WdK:p3 = 0.1, 0.1, 0.1
CxK:r = 2.2
finsAoaHor:r = 0
finsAoaVer:r = 0
distFromCmToStab:r = 0.08
mass:r = 135
massEnd:r = 82.8
timeFire:r = 6.86
force:r = 15570
timeLife:r = 7.5
thrustVectoringAngle:r = 0.2
useStartSpeed:b = true
startSpeed:r = 0
machMax:r = 2.4
endSpeed:r = 0
maxDistance:r = 10000
minDistance:r = 30
rangeMax:r = 10000
loadFactorMax:r = 20
guidanceType:t = "ir"
guidanceSfx:t = "alarm_spin_scan"
effectOffset:p3 = -1.8, 0, 0
normalizationPreset:t = "heat"
ricochetPreset:t = "he"
groundRicochetPreset:t = "he"
secondaryShattersPreset:t = "ap"
stabilityThreshold:r = 0.05
stabilityCaliberToArmorThreshold:r = 5
stabilityReductionAfterRicochet:r = 0.5
stabilityReductionAfterPenetration:r = 0.15
bulletType:t = "aam"
explosiveType:t = "pbxn_102"
explosiveMass:r = 6
maxDeltaAngle:r = 0
dragCx:r = 0.014
spawnExplosionFx:b = false
spawnExplosionWreckage:b = false
explosionEffect:t = "explosion_midair_medium"
groundCollisionEffect:t = "explosion_midair_small"
ricochetEffect:t = "hit_59_80mm_metal_ap"
waterCollisionEffect:t = "hit_59_80mm_water"
explosionPatchRadius:r = 3.4
waterRicochetEffect:t = "hit_81_105mm_water_ap"
groundRicochetEffect:t = "hit_81_105mm_dirt_ap"
visualShattersWaterOffset:r = 1.2
visualShattersGroundOffset:r = 1.2
fireEffect:t = "fires_exhaust_jet_early_big"
smokeEffect:t = "smoke_rocket_tail_light_huge"
smokeEffect2:t = ""
hazeEffect:t = "haze_missile"
endSmokeViscosity:r = 0.05
distanceFuse:b = false
hitPowerMult:r = 400
fuseDelayDist:r = 1
explodeTreshold:r = 0.1
hasProximityFuse:b = true
explodeTreshold:r = 0.01
explodeHitPower:r = 550
explodeArmorPower:r = 75
explodeRadius:p2 = 1, 5
rendinstDamageRadius:r = 9
shutterDamage:b = true
shutterDamageRadius:r = 17
shutterAmount:i = 2000
shutterArmorPower:r = 12
shutterHit:r = 10
price:r = 3000
arcadeProp {
finsAoaHor:r = 0
finsAoaVer:r = 0
}
guidance {
warmUpTime:r = 1
workTime:r = 20
uncageBeforeLaunch:b = true
useThrustVectoring:b = true
breakLockMaxTime:r = 1
irSeeker {
rangeBand0:r = 11000
rangeBand1:r = 4500
rangeBand2:r = 11000
rangeBand3:r = 11000
rangeBand7:r = 9000
rangeMax:r = 11000
fov:r = 3.2
minAngleToSun:r = 10
lockAngleMax:r = 70
angleMax:r = 85
rateMax:r = 60
prolongationTimeMax:r = 0.5
designationSourceTypeMask:i = 38
constantDesignationSourceTypeMask:i = 6
}
guidanceAutopilot {
timeOut:r = 0.15
propNavMult:r = 12
reqAccelMax:r = 55
velFrameReference:b = false
baseIndSpeed:r = 1800
accelControlProp:r = 0.000025
accelControlIntg:r = 0.002
accelControlIntgLim:r = 1.0
accelControlDiff:r = 0.001
}
}
stabilityRicochetModifier {
mod1:p2 = 0, 0.05
mod2:p2 = 20, 0.1
mod3:p2 = 30, 0.2
mod3:p2 = 45, 0.3
}
pressureDamage {
damageType:t = "pressure"
}
damage {
shatter {
useRealShatters:b = true
countPortion:r = 0.15
segment {
radiusScale:r = 1
penetrationScale:r = 1.5
damageScale:r = 1.5
angles:p2 = 0, 9
countPortion:r = 0.1
}
segment {
angles:p2 = 10, 29
countPortion:r = 0
}
segment {
radiusScale:r = 1
penetrationScale:r = 1
damageScale:r = 1
angles:p2 = 30, 124
countPortion:r = 0.35
}
segment {
radiusScale:r = 1
penetrationScale:r = 1.5
damageScale:r = 1.5
angles:p2 = 45, 70
countPortion:r = 0.05
}
segment {
angles:p2 = 125, 169
countPortion:r = 0
}
segment {
radiusScale:r = 1
penetrationScale:r = 1
damageScale:r = 1
angles:p2 = 170, 189
countPortion:r = 0.1
}
segment {
angles:p2 = 190, 234
countPortion:r = 0
}
segment {
radiusScale:r = 1
penetrationScale:r = 1
damageScale:r = 1
angles:p2 = 235, 329
countPortion:r = 0.35
}
segment {
radiusScale:r = 1
penetrationScale:r = 1.5
damageScale:r = 1.5
angles:p2 = 290, 315
countPortion:r = 0.05
}
segment {
angles:p2 = 330, 349
countPortion:r = 0
}
segment {
radiusScale:r = 1
penetrationScale:r = 1.5
damageScale:r = 1.5
angles:p2 = 350, 359
countPortion:r = 0.1
}
}
shatterDamage {
breachConeAngle:r = 45
}
explosive {
radius:r = 0.15
offset:r = 0.9
}
}
DamageParts {
body {
hp:r = 50
armorClass:t = "tank_structural_steel"
armorThickness:r = 1
}
}
DamageEffects {
part {
name:t = "body"
onHit {
shellState:t = "inFlight"
expl:r = 1
}
onKill {
shellState:t = "inFlight"
destruction:r = 1
}
onHit {
shellState:t = "onUnit"
damageType:t = "generic"
expl:r = 0.05
fire:r = 0.45
break:r = 0.5
damage:r = 3
fHitCritical:b = true
}
onHit {
shellState:t = "onUnit"
damageType:t = "generic"
expl:r = 0.5
fire:r = 0.3
break:r = 0.2
damage:r = 30
fHitCritical:b = true
}
onHit {
shellState:t = "onUnit"
damageType:t = "explosion"
expl:r = 0.45
fire:r = 0.45
break:r = 0.1
damage:r = 50
fHitCritical:b = true
}
onHit {
shellState:t = "onUnit"
damageType:t = "cumulative"
expl:r = 0.4
fire:r = 0.4
break:r = 0.1
damage:r = 100
fHitCritical:b = true
}
onKill {
shellState:t = "onUnit"
expl:r = 0.05
fire:r = 0.05
break:r = 0.9
fHitCritical:b = true
}
}
}
collisions {
steel {
fx:t = "explosion_midair_small"
ricochetFx:t = "hit_81_105mm_metal_ap"
}
armor {
fx:t = "explosion_midair_small"
ricochetFx:t = "hit_81_105mm_metal_ap"
}
buildings {
fx:t = "explosion_midair_small"
ricochetFx:t = "hit_106_132mm_stone_ap"
}
wood {
fx:t = "explosion_midair_small"
ricochetFx:t = "hit_106_132mm_wood_ap"
}
}
shatterCollisions {
groundCollisionEffect:t = "hit_12_18mm_dirt_ap"
waterCollisionEffect:t = "hit_8_11mm_water"
default {
fx:t = "hit_12_18mm_dirt_ap"
}
horLandMesh {
fx:t = "hit_12_18mm_dirt_ap"
}
soil {
fx:t = "hit_12_18mm_dirt_ap"
}
dirt {
fx:t = "hit_12_18mm_dirt_ap"
}
road {
fx:t = "hit_12_18mm_dirt_ap"
}
bricks_red {
fx:t = "hit_12_18mm_red_brick_ap"
}
roadSoil {
fx:t = "hit_12_18mm_dirt_ap"
}
sand {
fx:t = "hit_12_18mm_sand_ap"
}
duneSand {
fx:t = "hit_12_18mm_sand_ap"
}
roadSand {
fx:t = "hit_12_18mm_sand_ap"
}
quickSand {
fx:t = "hit_12_18mm_sand_ap"
}
snow {
fx:t = "hit_12_18mm_snow_ap"
}
ice {
fx:t = "hit_12_18mm_snow_ap"
}
roadSnow {
fx:t = "hit_12_18mm_snow_ap"
}
snowLower {
fx:t = "hit_12_18mm_snow_ap"
}
glass {
fx:t = "hit_12_18mm_metal_ap"
}
wood {
fx:t = "hit_12_18mm_wood_ap"
}
steel {
fx:t = "hit_12_18mm_metal_ap"
}
metal {
fx:t = "hit_12_18mm_metal_ap"
}
tank_structural_steel {
fx:t = "hit_12_18mm_metal_ap"
}
aluminum_armor {
fx:t = "hit_12_18mm_metal_ap"
}
tank_rubber_screens {
fx:t = "hit_12_18mm_stone_ap"
}
buildings {
fx:t = "hit_12_18mm_stone_ap"
}
verLandMesh {
fx:t = "hit_12_18mm_stone_ap"
}
concrete {
fx:t = "hit_12_18mm_stone_ap"
}
rocks {
fx:t = "hit_12_18mm_stone_ap"
}
rocksSlippery {
fx:t = "hit_12_18mm_stone_ap"
}
fabric {
fx:t = "hit_12_18mm_stone_ap"
}
stone_snow {
fx:t = "hit_12_18mm_snow_ap"
}
armorPierceLowCal {
fx:t = "hit_12_18mm_metal_ap"
}
armorPierceMedCal {
fx:t = "hit_12_18mm_metal_ap"
}
armorPierceHiCal {
fx:t = "hit_12_18mm_metal_ap"
}
armorNPLowCal {
fx:t = "hit_12_18mm_metal_ap"
}
armorNPMedCal {
fx:t = "hit_12_18mm_metal_ap"
}
armorNPHiCal {
fx:t = "hit_12_18mm_metal_ap"
}
}
proximityFuse {
timeOut:r = 0.5
radius:r = 5
detectShells:b = true
shellCaliberRange:p2 = 0.08, 0.2
}
armorpower {
ArmorPower0m:p2 = 28, 10
ArmorPower100m:p2 = 25, 100
ArmorPower7000m:p2 = 23, 7000
ArmorPower10000m:p2 = 0, 10000
}
hitpower {
HitPower0m:p2 = 400, 500
HitPower10000m:p2 = 400, 10000
}
}