CombatGameConstants.json

From Battletech Modding Wiki
Jump to: navigation, search

Wiki Quick Nav: File Formats | Other Tweaks and Adjustments | Tools and Scripts | Troubleshooting | Style Guide


The Combat Game Constants file appears to contain a lot of the options for how the 'Tactical' Combat Game plays. A break down of the individual areas and what we believe they do follows.

NOTE: ITEMS MARKED LIKE: THIS AND THIS AND THIS Mean that they where changed between The latest Version and the last.

Phase

"Phase" : {
     "PhaseSpecial" : 1,
     "PhaseLight" : 2,
     "PhaseMedium" : 3,
     "PhaseHeavy" : 4,
     "PhaseAssault" : 5,
     "PhaseLightTurret" : 5,
     "PhaseMediumTurret" : 5,
     "PhaseHeavyTurret" : 5,
     "PhaseAssaultTurret" : 5
  },


The Phase section appears to be just that assigning Phases to one of the 5 imitative rounds in the game. We do not recommend changing them at this time.

Skills

"Skills":
{
"MechDefaultGunnery": 1,
"MechDefaultGuts": 1,
"MechDefaultPiloting": 1,
"MechDefaultTactics": 1,
"VehicleDefaultGunnery": 1,
"VehicleDefaultGuts": 1,
"VehicleDefaultPiloting": 1,
"VehicleDefaultTactics": 1,
"TurretDefaultGunnery": 1,
"TurretDefaultGuts": 1,
"TurretDefaultPiloting": 1,
"TurretDefaultTactics": 1
},

Added BETA 2

This section seems to set the base default skills for each pilot (Presuming encase they are missing a value)

Heat

"Heat" : {
    "OverheatLevel": 0.5,
   "MaxHeat" : 100,
   "OverheatPercentIncreasePerGutsPoint" : 0.05,
   "MaxHeatIncreasePerGutsPoint" : 0.0,
   "WalkHeat" : 0,
   "SprintHeat" : 5,
   "JumpHeatUnitSize" : 30,
   "JumpHeatPerUnit" : 5,
   "JumpHeatMin" : 5,
   "EngineDamageHeat" : 0,
   "InternalHeatSinkCount" : 10,
     "DefaultHeatSinkDissipationCapacity" : 3,
     "StartupSinkRatio" : 0.75,
     "GlobalHeatIncreaseMultiplier" : 1.5,
     "GlobalHeatSinkMultiplier" : 1.0,
     "CriticalHeatPerLocationLight" : 4,
     "CriticalHeatPerLocationMedium" : 5,
     "CriticalHeatPerLocationHeavy" : 7,
     "CriticalHeatPerLocationAssault" : 10,
     "ShutdownCausesInjury" : false,
     "ShowPeakHeat" : false
  },

The Heat Section contains each of the various 'heat' globals they appear to have the following uses

  • "HeatLevel1" :- Float, This appears to be at what point heat level 1 is reached - Removed Beta 2
  • "HeatLevel2" :- Float, This appears to be at what point heat level 2 is reached Removed Beta 2
  • Overheatlevel: - Float at what point overheat happens?
  • "MaxHeat" :- Float, This is the maximum amount of heat that is allowed
  • "OverheatPercentIncreasePerGutsPoint" :- Float, How much your pilots Guts allows you to go over the 'top' of the over heat.
  • "MaxHeatIncreasePerGutsPoint" :- Float, The maximum increase you can go to?
  • "WalkHeat" :- Int, How much Heat is generated walking
  • "SprintHeat" :- Int, How much heat is generated Sprinting
  • "JumpHeatUnitSize" :- Int, How much extra heat is added based on the units size?
  • "JumpHeatPerUnit" :- Int, Base Jump Heat
  • "JumpHeatMin" :- Int, Minimum amount of heat that you can have
  • "EngineDamageHeat" :- Int, How much extra heat a engine hit will add
  • "InternalHeatSinkCount" :- Int, Engine internal heat sink count?
  • "DefaultHeatSinkDissipationCapacity" :- Int, how much heat each Heatsink will get rid of stock
  • "StartupSinkRatio" :- float, Starting up your mech they only work this well?
  • "GlobalHeatIncreaseMultiplier" :- float, how much heat is modified by eg 1 = normal 1.65 would be 165% etc.
  • "GlobalHeatSinkMultiplier" :- float, global modifier to heatsink ability 1 = normal 2 would be 200% increase etc.
  • "CriticalHeatPerLocationLight" : Int
  • "CriticalHeatPerLocationMedium" : Int
  • "CriticalHeatPerLocationHeavy" : Int
  • "CriticalHeatPerLocationAssault" :- Int, these all appear to be how much damage 'heat' does to your mech?
  • "ShutdownCausesInjury" :- True/False, Heat shut down injures your pilot
  • "ShowPeakHeat" :- True/False show some UI peak heat marker?

Visibility

"Visibility" : {
       "BaseSpotterDistance" : 200.0,
       "SpotterTacticsMultiplier" : 10.0,
       "RatioFullVis" : 0.79,
       "RatioObstructedVis" : 0.41,
       "MinRatioFromActors" : 0.2,
       "ShutDownVisibilityModifier" : -0.0,
       "ShutDownSignatureModifier" : -0.5,
       "BaseSensorDistance" : 400.0,
       "UseAsymmetricalSensors" : true,
       "ShowExtendedBlipsBeforeContact" : false,
       "ExtendedSensorDistanceMultiplier" : 1.0,
       "SensorHysteresisAdditive": 50.0,
       "ShutdownSpottingDistanceMultiplier" : 0.1,
       "ProneSpottingDistanceMultiplier" : 0.25,
       "AllowRearArcSpotting" : true,
       "NumSensorLockSteps" : 1,
       "SensorLockSingleStepEffect" : {
     "durationData" :
     {
       "duration" : 1,
       "ticksOnEndOfRound" : true,
       "stackLimit" : 1
     },
     "targetingData" :
     {
       "effectTargetType" : "SingleTarget",
               "forceVisRebuild" : true
     },
     "effectType" : "StatisticEffect",
     "Description" :
     {
       "Id": "AbilityDefT6A",
       "Name" : "SENSOR LOCK",
       "Details" : "SIGNATURE BOOSTED",
       "Icon" : "uixSvgIcon_action_sensorlock"
     },
     "statisticData" :
     {
       "statName": "ToHitThisActorDirectFire",
       "operation": "Float_Add",
       "modValue": "0.0",
       "modType": "System.Single"
     },
     "nature" : "Debuff"
       },
       "FiredWeaponsEffect" : {
           "durationData" : {
               "duration" : 2,
               "ticksOnActivations" : true,
               "useActivationsOfTarget" : true
           },
           "targetingData" : {
               "effectTriggerType" : "OnActivation",
               "effectTargetType" : "SingleTarget"
           },
           "effectType" : "StatisticEffect",
           "Description" : {
               "Id" : "FiredWeaponsSignatureEffect",
               "Name" : "FIRED WEAPONS",
               "Details" : "+100% SIGNATURE",
               "Icon" : "uixSvgIcon_genericDiamond"
           },
           "statisticData" : {
               "statName" : "SensorSignatureModifier",
               "operation" : "Float_Add",
               "modValue" : "1.0",
               "modType" : "System.Single"
           },
           "nature" : "Debuff"
       },
       "MaxShadowingDistance" : 80.0,
       "NumShadowingSteps" : -1
   },
  • "BaseSpotterDistance" :- Float, base spotting Distance in meters
  • "SpotterTacticsMultiplier" :- Spotter Multiplier to the base distance?
  • "RatioFullVis" :- float, How much has to be visible of a mech for full view?
  • "RatioObstructedVis" :- float, How much of a mech is visible to be obstructed?
  • "MinRatioFromActors" :- Float, unknown
  • "ShutDownVisibilityModifier" :- Float, modifier to visibility when shut down.
  • "ShutDownSignatureModifier" :- Modifier to sensor sig when shut down.
  • "BaseSensorDistance" :- float, Sensor spotting distance in meters
  • "UseAsymmetricalSensors" :- bool, Seems to be that there is a system for each mech to have it's own sensors?
  • "ShowExtendedBlipsBeforeContact" :- Bool, Show the blimps longer?
  • "ExtendedSensorDistanceMultiplier" :- float, this sets the sensor multiplier 1 = normal 2 = 200% etc.. effects Base Sensor Distance.
  • "SensorHysteresisAdditive" :- float, New value? No idea what it does.
  • "ShutdownSpottingDistanceMultiplier" :- float, Spotting distance adjustment for a shut down mech
  • "ProneSpottingDistanceMultiplier" :- float, Mech's that are prone have their distance modified by this amount.
  • "AllowRearArcSpotting" :- bool, Can mechs see in their rear arc for spotting?
  • "NumSensorLockSteps" :- float, Seems to effect the sensor Lock skill
  • SensorLockSingleStepEffect: - Script/Object - The SensorLock skill effects this changed slightly in BETA2 Skill ID was changed from AbilityDefT4 and some INT's where made Float.
  • "MaxShadowingDistance" :- Int/Float what range we are shadowing so we still get data?
  • "NumShadowingSteps" :- int, unknown.

To Hit

The To Hit section contains all the information on hit modifiers.

"ToHit" : {
     "FiringArcDegrees" : 60.0,
     "ToHitBaseFloor" : 0.75,
     "ToHitGunneryDivisor" : 40,
     "ToHitUseSteppedAlgorithm": true,
     "ToHitStepThresholds":
     [
            0,
            10
     ],
     "ToHitStepValues":
     [
            0.05,
            0.025
     ],
     "ToHitModifierDivisor" : 10,
     "ToHitAssault" : 0,
     "ToHitHeavy" : 0,
     "ToHitMedium" : 1,
     "ToHitLight" : 2,
     "ToHitVehicleAssault" : 0,
     "ToHitVehicleHeavy" : 0,
     "ToHitVehicleMedium" : 0,
     "ToHitVehicleLight" : 0,
     "ToHitTurretAssault" : -4,
     "ToHitTurretHeavy" : -4,
     "ToHitTurretMedium" : -4,
     "ToHitTurretLight" : -4,
     "ToHitElevationLevelHeight" : 15,
     "ToHitElevationModifierPerLevel" : 1,
     "ToHitElevationUseMultipleLevels" : false,
     "ToHitElevationApplyPenalties" : false,
     "ToHitMinimumRange" : 8,
     "ToHitShortRange" : 0,
     "ToHitMediumRange" : 0,
     "ToHitLongRange" : 4,
     "ToHitMaximumRange" : 4,
     "ToHitCoverObstructed" : 2,
     "DamageResistanceObstructed" : 1.0,
     "DamageResistanceIndirectFire" : 1.0,
     "ClusterChanceOriginalLocationMultiplier" : 8,
     "ClusterChanceAdjacentMultiplier" : 4,
     "ClusterChanceNonadjacentMultiplier" : 1,
     "ClusterChanceNeverMultiplyHead" : true,
     "ClusterChanceNeverClusterHead" : true,
     "ToHitIndirect" : 3,
     "ToHitShutdownTargetBonus" : -4,
     "ToHitShutdownTargetBonusMelee" : -10,
     "ToHitProneTargetBonus" : 0,
     "ToHitProneTargetBonusMelee" : -10,
     "ToHitSelfOverheated": 1,
     "ToHitSelfSprinted": 4,
     "ToHitSelfWalkLight" : 0,
     "ToHitSelfWalkMedium" : 0,
     "ToHitSelfWalkHeavy" : 0,
     "ToHitSelfWalkAssault" : 0,
     "ToHitSelfWalkVehicle" : 0,
     "ToHitSelfStoodUp" : 4,
     "ToHitSelfArmMountedWeapon": -1,
     "UseEvasivePips": true,
     "EvasivePipsRepresentDamage": false,
     "EvasivePipsOnePerMech": true,
     "EvasivePipsRepresentDodgeChance": false,
     "EvasivePipsRepresentUM": true,
     "EvasivePipsDodgePerPip" : 0.15,
     "DamagePerEvasivePip": 100.0,
     "SensorLockStripsEvasivePips": true,
        "SensorLockPipsStripped": 2,
     "ToHitMovingTargetDistances" : [
        70,
            100,
            130,
            160,
            190,
            220
     ],
 "EvasivePipsMovingTarget":      [
            1,
            2,
            3,
            4,
            5,
            6
        ],
     "ToHitMovingTargetModifiers" : [
        0,
            0,
            0,
            0,
            0,
            0
     ],
 "ToHitMovingPipUMs": [
			2,
            4,
            6,
            8,
            10,
            12
		],
       "ToHitMovingTargetDamageResistances": 
		[
			1.0,
            1.0,
            1.0,
            1.0,
            1.0,
			1.0
		],
 "ToHitMovingTargetStrings": 
		[
			"1 EVASIVE charge: +{0} Difficulty to hit this unit with ranged attacks.",
            "2 EVASIVE charges: +{0} Difficulty to hit this unit with ranged attacks.",
            "3 EVASIVE charges: +{0} Difficulty to hit this unit with ranged attacks.",
            "4 EVASIVE charges: +{0} Difficulty to hit this unit with ranged attacks.",
            "5 EVASIVE charges: +{0} Difficulty to hit this unit with ranged attacks.",
            "6 EVASIVE charges: +{0} Difficulty to hit this unit with ranged attacks."
		],
   "ToHitMovingTargetJumpedModifier" : 0,
   "ToHitMovingTargetJumpedDamageResistance" : 1.0,
   "ToHitMovingTargetJumpedString" : "This unit has +{0} Defense from Jumping on its turn.",
   "ToHitMovingTargetSprintedModifier" : 0,
   "ToHitMovingTargetSprintedDamageResistance" : 1.0,
   "ToHitMovingTargetSprintedString" : "This unit has +{0} Defense from Sprinting on its turn.",
     "ToHitSelfWeaponDamaged" : 2,
     "ToHitSelfWeaponLocationDamagedMinor" : 0,
     "ToHitSelfWeaponLocationDamagedMajor" : 0,
     "SprintGrantsGuarded" : false,
     "SprintGrantsEvasive" : true,
     "JumpGrantsGuarded" : false,
     "JumpGrantsEvasive" : false,
     "UseMultipleGuardLevels" : true,
     "EvasiveToHitMultiplier" : 1.0,
     "WeaponsAffectedByEvasive" : [
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8
     ],
    "WeaponCategoriesAffectedByEvasive":
        [
            1,
            2,
            3
        ],
        "WeaponTypesGuaranteedEvasiveStrip":
        [
            3
        ],
     "TacticsBaseFloor" : 0.65,
     "TacticsDivisor" : 20,
     "TacticsModifierDivisor" : 10,
  },
  • "FiringArcDegrees" :- Float, firing arc angle.
  • "ToHitBaseFloor" :- Float, % to hit base floor default is 65% or 0.65
  • "ToHitGunneryDivisor" :- int?, Appears to be the divider on the gunnery skill to the to hit.
  • "ToHitModifierDivisor" : int?, Appears to be the divider on modifiers so at 10 a 6 would be .6 etc.
  • "ToHitAssault" :- int, - and + values base to hit modifier on an assault
  • "ToHitHeavy" :- int, - and + values base to hit modifier on an heavy
  • "ToHitMedium" :- int, - and + values base to hit modifier on an medium
  • "ToHitLight" :- int, - and + values base to hit modifier on an light
  • "ToHitVehicleAssault" :- int, - and + values base to hit modifier on an Vehicle of this Class
  • "ToHitVehicleHeavy" :- int, - and + values base to hit modifier on an Vehicle of this Class
  • "ToHitVehicleMedium" :- int, - and + values base to hit modifier on an Vehicle of this Class
  • "ToHitVehicleLight" :- int, - and + values base to hit modifier on an Vehicle of this Class
  • "ToHitTurretAssault" :- int, - and + values base to hit modifier on an Turret of this Class
  • "ToHitTurretHeavy" :- int, - and + values base to hit modifier on an Turret of this Class
  • "ToHitTurretMedium" :- int, - and + values base to hit modifier on an Turret of this Class
  • "ToHitTurretLight" :- int, - and + values base to hit modifier on an Turret of this Class
  • "ToHitElevationLevelHeight" :- int, What each 'Elevation' of heigh is in Meters?
  • "ToHitElevationModifierPerLevel" :- int, what modifier is added on for each level difference.
  • "ToHitElevationUseMultipleLevels" :- bool, do we use multiple levels, Possibly asking if we want to stack penalties?
  • "ToHitElevationApplyPenalties" :- bool, do we apply the elevation penality.
  • "ToHitMinimumRange" :- int, Minimum range Modifier
  • "ToHitShortRange" :- int, short range modifier
  • "ToHitMediumRange" :- int, Medium range modifier
  • "ToHitLongRange" :- int, long range modifier
  • "ToHitMaximumRange" :- int, maximum range modifier
  • "ToHitCoverObstructed" :- int, Cover obstructed modifier
  • "DamageResistanceObstructed" :- float, Damage Reduction for being Obstructed?
  • "DamageResistanceIndirectFire" :- float, damage resistance for indirect fire?
  • "ClusterChanceOriginalLocationMultiplier" :- int, Modifier for chance of a cluster hit in the original location?
  • "ClusterChanceAdjacentMultiplier" :- int, Chance to hit adjasent positions on cluster munitions?
  • "ClusterChanceNonadjacentMultiplier" :- int, Chance to hit non adjacent positions?
  • "ClusterChanceNeverMultiplyHead" :- bool, do we put the multipliers above to the head.
  • "ClusterChanceNeverClusterHead" :- bool, can clusters hit the head.
  • "GunnerySkillMultiTarget2" :- int, ??
  • "ToHitMultiTarget2Targets2" :- int, Modifier to the To hit for second target.
  • "GunnerySkillMultiTarget3" :- int, ???
  • "ToHitMultiTarget3Targets2" :- int, Modifier to target 3?
  • "ToHitMultiTarget3Targets3" :- Int ??
  • "ToHitIndirect" :- int, To hit modifier for indirect fire.
  • "ToHitShutdownTargetBonus" :- int +/-, modifier for a mech being shut down to hit.
  • "ToHitShutdownTargetBonusMelee" :- int +/-, modifier for a mech melee shutdown.
  • "ToHitProneTargetBonus" :- int, prone target bonus/modifier.
  • "ToHitProneTargetBonusMelee" :- int, prone target melee modifier
  • "ToHitSelfOverheated": 1, - float - to hit modifier when over heated?
  • "ToHitSelfHeatPastLevel1" :- int, to hit Modifier when your heat is at level 1
  • "ToHitSelfHeatPastLevel2" :- int, to hit modifier when your heat is at level 2
  • "ToHitSelfSprinted": float, NEW, seems to indicate a possibility of shooting combined with sprinting?
  • "ToHitSelfWalkLight" :- int, to hit modifier when you walked as a light.
  • "ToHitSelfWalkMedium" :- int, to hit modifier when you walked as a medium.
  • "ToHitSelfWalkHeavy" :- int, to hit modifier when you walked as a heavy
  • "ToHitSelfWalkAssault" :- int, to hit modifier when you walked as a Assault
  • "ToHitSelfWalkVehicle" :- int, to hit modifier when you walked as a Vehicle
  • "ToHitSelfStoodUp" :- int, to hit modifier when you stand up after being knocked down and attack.
  • "ToHitSelfArmMountedWeapon": -1,
  • "UseEvasivePips": true,
  • "EvasivePipsRepresentDamage": false,
  • "EvasivePipsOnePerMech": true,
  • "EvasivePipsRepresentDodgeChance": false,
  • "EvasivePipsRepresentUM": true,
  • "EvasivePipsDodgePerPip" : 0.15,
  • "DamagePerEvasivePip": 100.0,
  • "SensorLockStripsEvasivePips": true,
  • "ToHitMovingTargetDistances" : [array] :- array of distances for moving target modifiers.
  • "EvasivePipsMovingTarget": [array] :
  • "ToHitMovingTargetModifiers" : [array] :- array of the modifiers for the above.
  • "ToHitMovingPipUMs": [array]
  • "ToHitMovingTargetDamageResistances" : [array] :- array of damage resistances for the above.
  • "ToHitMovingTargetStrings" : [array] : [array] :- String array with the text for the target info. +{0} will give the modifier. eg: "This unit has +{0} Defense from moving a short distance on its turn."
  • "ToHitMovingTargetJumpedModifier" :- float, modifier for hitting a jumping target.
  • "ToHitMovingTargetJumpedDamageResistance" :- float, modifier to damage resistance for a jumping target.
  • "ToHitMovingTargetJumpedString" :- String, +{0} for the value.
  • "ToHitMovingTargetSprintedModifier" :- float, sprint modifier
  • "ToHitMovingTargetSprintedDamageResistance" :- float, Damage resistance for sprinting
  • "ToHitMovingTargetSprintedString" :- String, +{0} for the value.
  • "ToHitSelfWeaponDamaged" :- int, modifier to hit if the weapon used is damaged.
  • "ToHitSelfWeaponLocationDamagedMinor" :- int, modifier to hit if the weapon location is minor damaged?
  • "ToHitSelfWeaponLocationDamagedMajor" :- int, modifier to hit if the weapon location is major damaged?
  • "SprintGrantsGuarded" :- bool, does sprint give the guarded effect?
  • "SprintGrantsEvasive" :- bool, does sprint give the evasive effect?
  • "JumpGrantsGuarded" :- bool, does jumping give the guarded effect?
  • "JumpGrantsEvasive" :- bool, does jumping give the evasive effect?
  • "UseMultipleGuardLevels" :- bool, Forest cover (25%) and Brace (50%) seem to be the two levels of Guarded
  • "EvasiveToHitMultiplier" :- int, Evasive to hit multiplier.
  • "WeaponsAffectedByEvasive" :- [array], weapon groups? that are affected by Evasive status.
  • "WeaponCategoriesAffectedByEvasive":- Array
  • "WeaponTypesGuaranteedEvasiveStrip":- Array
  • "TacticsBaseFloor" :- float, The starting base value for tactics calculations, likely used in called shots
  • "TacticsDivisor":- int, the divisor used on tactics to get a %
  • "TacticsModifierDivisor" :- int, the divisor used on modifiers to tactics to get a %.
  • "SignatureModifierStepSize" :- float, How much moving adjusts your sensor signature?

Resolution Constants

These control the resolution of to hit events etc.

"ResolutionConstants" : {
    "MeleePunchWeighting" : 0.75,
      "MeleeKickWeighting" : 0.2,
      "MeleeTackleWeighting" : 0.05,
    "MeleeDamageTonnageMultiplier" : 1.25,
    "MeleeDamageDFAMultiplier" : 1.25,
    "DFASelfDamageMultiplier" : 0.5,
      "DFASelfDamagePilotingDivisor" : 99999.0,
      "DFAMissedPilotingModifier" : 4.0,
    "DefaultUnsteadyThreshold": 41.0,
    "MeleeInstabilityNormalMultiplier" : 1.5,
    "MeleeInstabilityChargeMultiplier" : 1.5,
    "MeleeInstabilityDFAMultiplier" : 1.5,
    "ChargeDistanceThreshold" : 0.5,
    "HeavyHitReactDamageThreshold" : 100,
    "ComponentDestructionForceMultiplier" : 25.0,
    "BuildingDestructionForceMultiplier" : 25.0,
    "FlimsyDestructionForceMultiplier": 25.0,
        "MissOffsetHorizontalMin": 1.5,
        "MissOffsetHorizontalMax": 4.0,
        "MissOffsetVerticalMin": 5.0,
        "MissOffsetVerticalMax": 8.0,
    "HeavyDamageThreshold" : 100,
    "LowArmorThreshold" : 0.25,
      "SolidBlowDamageMultiplier" : 1.0,
	  "AICritChanceBaseMultiplier" : 0.2,
      "NormalBlowDamageMultiplier" : 0.75,
      "GlancingBlowDamageMultiplier" : 0.5,
      "UsePilotingToAvoidFalling": false,
        "UseGutsToAvoidFallInjury": false,
        "UnsteadyCountersGuarded": false,
        "MeleeCountersGuarded": true,
        "SolidDamageCountersGuarded": false,
        "SensorLockCountersGuarded": false,
        "UnsteadyCountersEvasive": true,
        "MeleeCountersEvasive": false,
        "SolidDamageCountersEvasive": false,
        "SensorLockCountersEvasive": false,
        "SensorLockCountersMovementBonuses": false,
        "VehiclesGetEvasive": false,
        "VehiclesGetGuarded": false,
        "EvasiveDodgeChance": 0.75,
        "EntrenchedMultiplier": 0.5,
        "UseMultipleStabilityLevels": true,
        "StabilityLevels": 5,
        "StabilityDumpStationary": 2,
        "StabilityDumpStoodUp": 5,
        "StabilityDumpMoving": 1,
        "StabilityDumpJumping": 0,
        "StabilityDumpBracing": 5,
        "StabilityDumpAbilityDefer": 1,
        "StabilityDumpDFA": -3,
        "SearchForValidCritSlot": true,
        "MinCritChance": 0.5,
        "UseUMSystem": true,
        "AllowTotalNegativeModifier": false
   },
  • "DontCreateMeleeState" :- Bool, Unknown seems to have something to do with melee haven't seen an effect in game.
  • "MeleePunchWeighting" :- float, how much the game will try and punch on a melee attack
  • "MeleeKickWeighting" :- float, how much the game will try and kick on a melee attack
  • "MeleeTackleWeighting" :- float, how much the game will try and tackle on a melee attack
  • "MeleeDamageTonnageMultiplier" :- float, Take the tonnage and modify melee damage by this (No effect in game atm, melee damage is set in chassis)
  • "MeleeDamageDFAMultiplier" :- float, The DFA Damage multiplier.
  • "DFASelfDamageMultiplier" :- float, damage to self multiplier for DFA attacks.
  • "DFASelfDamagePilotingDivisor" :- float, How much damage to your pilot is taken is divided by this default is 'none'
  • "DFAMissedPilotingModifier" :- float, missed DFA attack piloting modifier for skill roll?
  • "DefaultUnsteadyThreshold":- Float,
  • "MeleeInstabilityNormalMultiplier" :- float, How much does a normal melee attack add to instability.
  • "MeleeInstabilityChargeMultiplier" :- float, how much does a charge melee attack add to instability
  • "MeleeInstabilityDFAMultiplier" :- float, how much does a DFA Melee attack add to things
  • "ChargeDistanceThreshold" :- Float, how much distance has to be covered to be a charge melee attack
  • "HeavyHitReactDamageThreshold" :- float, how much damage is considered a 'heavy hit' for vo reactions?
  • "ComponentDestructionForceMultiplier" :- float, physics multiplier for the force of destruction of compoenents?
  • "BuildingDestructionForceMultiplier" :- float, physics multiplier for the force of destruction of buildings?
  • "FlimsyDestructionForceMultiplier" :- float, physics multiplier for the force of destruction of flimsy items
  • "MissOffsetHorizontalMin" :-float, the 'minimum' amount horizontally a missed shot will go to where it should have hit.
  • "MissOffsetHorizontalMax" :-float, the 'maximum' amount horizontally a missed shot will go to where it should have hit.
  • "MissOffsetVerticalMin" :-float, the 'minimum' amount vertically a missed shot will go to where it should have hit.
  • "MissOffsetVerticalMax" :-float, the 'maximum' amount vertically a missed shot will go to where it should have hit.
  • "HeavyDamageThreshold" :- int, the heavy damage threshold.
  • "LowArmorThreshold" :- float, The % in float (so 0.25 = 25%) that armor has to reach to be considered 'Low' for triggers.
  • "SolidBlowDamageMultiplier" :- float, if you land a solid blow dmg is modified by this.
  • "AICritChanceBaseMultiplier" :- float, a modifier applied after normal crit chance calulations to the AI side only. Set to 1 to make AI crit chance on par with a human opponent.
  • "NormalBlowDamageMultiplier" :- Float, Normal Blow / hit Damage Multiplier (Beta Default is 85% might explain the 'lower' damage some are seeing)
  • "GlancingBlowDamageMultiplier" :- float, A glancing blow does this amount of damage (Default is 1/2 ).
  • "UsePilotingToAvoidFalling" :- bool, Do we use our piloting skill to avoid falling on our ass
  • "UseGutsToAvoidFallInjury" :- bool, if we fall on our ass can we use guts to avoid injury
  • "UnsteadyCountersGuarded" :- bool, does being unstead remove guarded
  • "MeleeCountersGuarded" :bool, does Melee actions counter being guarded
  • "SolidDamageCountersGuarded" :- bool, does a solid hit counter being guarded
  • "SensorLockCountersGuarded" :- bool, does sensor lock counter being guarded
  • "UnsteadyCountersEvasive" :- bool, being unstead counters evasive.
  • "MeleeCountersEvasive" :- bool, Melee actions counter evasive.
  • "SolidDamageCountersEvasive" :- bool, solid hits counter evasive
  • "SensorLockCountersEvasive" :- bool, sensor lock counters evasive
  • "SensorLockCountersMovementBonuses" :- bool, sensor lock removes movement bonuses
  • "SensorLockAlwaysSucceeds" :- bool, sensor lock does it always work or not.
  • "VehiclesGetEvasive":- Bool
  • "VehiclesGetGuarded":- Bool
  • "EvasiveDodgeChance" :- float, the chance to dodge with evasive.
  • "EntrenchedMultiplier" :- float, modifier for being entrenched.
  • "UseMultipleStabilityLevels":- bool
  • "StabilityLevels": int
  • "StabilityDumpStationary": int
  • "StabilityDumpStoodUp": int
  • "StabilityDumpMoving": int
  • "StabilityDumpJumping":, int
  • "StabilityDumpBracing": int
  • "StabilityDumpAbilityDefer": int
  • "StabilityDumpDFA": int
  • "SearchForValidCritSlot":- bool
  • "MinCritChance":- float
  • "UseUMSystem":- bool
  • "AllowTotalNegativeModifier":- bool

Combat Value Multipliers

Seem to be multipliers that effect how things are weighed for random combat generation.

  "CombatValueMultipliers" : {
 "ArmorMultiplierLight" : 1,
 "StructureMultiplierLight": 1,
 "ArmorMultiplierMedium": 1,
 "StructureMultiplierMedium": 1,
 "ArmorMultiplierHeavy": 1,
 "StructureMultiplierHeavy": 1,
 "ArmorMultiplierAssault": 1,
 "StructureMultiplierAssault": 1,
 "ArmorMultiplierVehicle": 0.75,
 "StructureMultiplierVehicle": 0.75,
 "GlobalDamageMultiplier" : 1.0,
 "TEST_MechScaleMultiplier" : 1.25,
 "TEST_VehicleScaleMultiplier" : 1.10
 },
  • "ArmorMultiplierLight" :- Float.
  • "StructureMultiplierLight":- Float
  • "ArmorMultiplierMedium":- Float
  • "StructureMultiplierMedium":- Float
  • "ArmorMultiplierHeavy":- Float
  • "StructureMultiplierHeavy":- Float
  • "ArmorMultiplierAssault":- Float
  • "StructureMultiplierAssault":- Float
  • "ArmorMultiplierVehicle":- Float
  • "StructureMultiplierVehicle":- Float
  • "GlobalDamageMultiplier" :- Float
  • "TEST_MechScaleMultiplier":- Float
  • "TEST_VehicleScaleMultiplier":- Float

Hit Tables

These control the Hit locations, in default beta at the moment the REAR facing does not seem to include Arms, Legs and Head locations.

As each area for a mech is self explaintory we will only be listing when there is a change.

"HitTables" : {
 "CalledShotBonusMultiplier": 2.0,
 "HitMechLocationFromFront" : [
{ "k" : "Head", "v" : 1},
{ "k" : "CenterTorso","v" : 16},
{ "k" : "LeftTorso","v" : 14},
{ "k" : "RightTorso", "v" : 14 },
{ "k" : "LeftArm", "v" : 10  },
{ "k" : "RightArm","v" : 10 },
{ "k" : "LeftLeg", "v" : 8 },
{ "k" : "RightLeg", "v" : 8 }
],
"HitMechLocationFromLeft" : [
{ "k" : "Head", "v" : 1},
{ "k" : "CenterTorso", "v" : 4 },
{ "k" : "LeftTorso", "v" : 28 },
{ "k" : "RightTorso", "v" : 0 },
{ "k" : "LeftArm", "v" : 28 },
{ "k" : "RightArm", "v" : 0 },
{ "k" : "LeftLeg", "v" : 28 },
{"k" : "RightLeg","v" : 0}
],
"HitMechLocationFromRight" : [
{ "k" : "Head", "v" : 1 },
{ "k" : "CenterTorso", "v" : 4 },
{ "k" : "LeftTorso", "v" : 0 }, 
{ "k" : "RightTorso","v" : 28 }, 
{ "k" : "LeftArm", "v" : 0 }, 
{ "k" : "RightArm", "v" : 28 },
{ "k" : "LeftLeg", "v" : 0 },
{ "k" : "RightLeg", "v" : 28 }
],
"HitMechLocationFromBack" : [
{"k": "LeftArm","v": 4},
{"k": "RightArm","v": 4},
{"k": "LeftLeg","v": 5},
{"k": "RightLeg","v": 5},
{ "k" : "CenterTorsoRear", "v" : 16 },
{ "k" : "LeftTorsoRear", "v" : 14 }, 
{ "k" : "RightTorsoRear", "v" : 14 }
],
"HitMechLocationFromTop" : [
{ "k" : "Head", "v" : 16 },
{ "k" : "CenterTorso", "v" : 32 },
{ "k" : "LeftTorso", "v" : 16 },
{ "k" : "RightTorso", "v" : 16 },
{ "k" : "LeftArm", "v" : 8 },
{ "k" : "RightArm", "v" : 8 },
{ "k" : "CenterTorsoRear", "v" : 8 },
{ "k" : "LeftTorsoRear", "v" : 4 },
{ "k" : "RightTorsoRear", "v" : 4}
],
"HitMechLocationProne" : [
{ "k" : "Head", "v" : 1 },
{ "k" : "CenterTorso", "v" : 32 },
{ "k" : "LeftTorso","v" : 16}, 
{ "k" : "RightTorso","v" : 16},
{ "k" : "LeftArm", "v" : 8 },
{ "k" : "RightArm","v" : 8 },
{ "k" : "LeftLeg", "v" : 8 },
{ "k" : "RightLeg", "v" : 8 }
],
"HitVehicleLocationFromFront" : [
{ "k" : "Turret", "v" : 5 },
{ "k" : "Front", "v" : 20 },
{ "k" : "Left", "v" : 16 }, 
{ "k" : "Right", "v" : 16 }
],
"HitVehicleLocationFromLeft" : [
{ "k" : "Turret", "v" : 5 },
{"k" : "Front", "v" : 20}, 
{ "k" : "Left","v" : 32}
],
"HitVehicleLocationFromRight" : [
{"k" : "Turret","v" : 5},
{"k" : "Front", "v" : 20},
{"k" : "Right","v" : 32}
],
"HitVehicleLocationFromBack" : [
{ "k" : "Turret", "v" : 5 },
{ "k" : "Rear", "v" : 20 },
{ "k" : "Left", "v" : 16 },
{ "k" : "Right", "v" : 16 }
],
"HitVehicleLocationFromTop" : [
{ "k" : "Turret", "v" : 5 },
{ "k" : "Front", "v" : 20 }, 
{ "k" : "Left", "v" : 16 },
{ "k" : "Right", "v" : 16 },
{ "k" : "Rear", "v" : 8 }
]
},
  • "CalledShotBonusMultiplier": :- int, The modifier that is added to a called shot.
  • "HitMechLocationFrom<location>[array]:- Array with values for the facing hit location the valid facings are Front, Left, Right, Back and Top see below for array information.
    • { "k" : "Head", "v" : 1}:- in the case of a mech, the k value is one of the areas of the mech Valid areas are LeftArm,RightArm, LeftLeg, RightLeg, CenterTorso, CenterTorsoRear, LeftTorso, LeftTorsoRear, RighTorso, RightTorsoRear, Head the v or 'Value' appears to be a weighted roll or chance of it being in that location. If a location is NOT in a defined table it appears that the location is assigned a value of 0 (not able to be hit). This is why stock beta 1 Rear shots on mech's only have CTR,LTR,RTR happening. In BETA 2 Rear Section gained Full slots.
    • It does appear that you can add other areas and they will function and transfer etc correctly.
  • "HitVehicleLocationFrom<Location>[array]: As with mechs, same facing. See below for valid k: locations.
    • Valid K: locations appears to be Turret, Front, Left, Right, Rear

Piloting Constants

Constants that have impact on Piloting.

 "PilotingConstants" : {
PilotingBaseFloor"  : 0.9,
"PilotingDivisor"  : 35,
"PilotingModifierDivisor"  :6.5,
"PilotingDamageCTPenalizedModifier" : 0.0,
"PilotingDamageLegPenalizedModifier" : 0.0,
"PilotingDamageLegNonfunctionalModifier" : 0.0,
"LocationDestroyedPermanentStabilityLoss": 20.0,
"OnlyPermanentLossFromLegs": true,
"SideTorsoBlackRelativeInstability"  : 0.0,
"CenterTorsoYellowRelativeInstability"  : 0.0,
"ArmBlackRelativeInstability"  : 0.0,
"LegDamageRelativeInstability"  : 0.0,
"InstabilityReductionLight"  : -1.0,
"InstabilityReductionMedium"  : -1.0,
"InstabilityReductionHeavy"  : -1.0,
"InstabilityReductionAssault"  : -1.0,
"InstabilityModifierFloor" : 0.75,
"InstabilityModifierDivisor" : 5,
"GutsBaseFloor"  : 0.7,
"GutsDivisor"  : 20,
"GutsModifierDivisor"  : 10,
"MaxInjuries" : 5,
"GutsPenaltyFromHeadDamageMinor" : 0,
"GutsPenaltyFromHeadDamageMajor" : 0,
"InjuryPenaltyOnlyPastGuts" : true,
"UseFixedInjuryPenalty" : true,
"FixedInjuryPenalty" : 1
},

NOTE: IN BETA 2 a lot of these appeared to get set to 0 and move to the new stability method. And use location Destroyed and Only Permanent options.

  • "PilotingBaseFloor"  :- float, appears to be the lowest piloting is allowed to go.
  • "PilotingDivisor"  :-int, what the piloting number is divided by?
  • "PilotingModifierDivisor"  :-int, the modifier divisor?
  • "PilotingDamageCTPenalizedModifier" :-float, Damage to the CT add this modifier.
  • "PilotingDamageLegPenalizedModifier" :- float, damage to the legs add this modifier.
  • "PilotingDamageLegNonfunctionalModifier" :-float, a leg that doesn't work adds this modifier.
  • "LocationDestroyedPermanentStabilityLoss":-float
  • "OnlyPermanentLossFromLegs":- bool
  • "SideTorsoBlackRelativeInstability"  :- float, how much instability from a destroyed side torso.
  • "CenterTorsoYellowRelativeInstability"  :- float, how much instability from a yellow CT.
  • "ArmBlackRelativeInstability"  :- foat, how much instability from a lost arm.
  • "LegDamageRelativeInstability"  :- float, how much instability from a damaged leg.
  • "InstabilityReductionLight"  :- float, being a light mech reduces instability by this amount.
  • "InstabilityReductionMedium"  :-float, being a medium mech reduces instability by this amount.
  • "InstabilityReductionHeavy"  :-float, being a heavy mech reduces instability by this amount.
  • "InstabilityReductionAssault"  :-float,being a assault mech reduces instability by this amount.
  • "InstabilityModifierFloor" :-float, instability modified can't go below this.
  • "InstabilityModifierDivisor" :- int, instability modifier is divided by this.
  • "GutsBaseFloor"  :- float, guts base can't go below this amount
  • "GutsDivisor"  :- int, guts is divided by this.
  • "GutsModifierDivisor"  :- int, guts modifiers are divided by this.
  • "MaxInjuries" :- int, maximum amount of injuries a pilot can take,
  • "GutsPenaltyFromHeadDamageMinor" :- int, Guts is reduced by this amount for minor head damage?
  • "GutsPenaltyFromHeadDamageMajor" :- int, guts is reduced by this amount for major head damage?
  • "InjuryPenaltyOnlyPastGuts" :- bool, injury only happens if guts is gone or the values over guts?
  • "UseFixedInjuryPenalty" :- bool, use fixed injury penality value
  • "FixedInjuryPenalty" :- int, injury does this much damage?

Moral Constants

"MoraleConstants" : {
"UseButtonsForMorale" : true,
"MoraleMin" : 0,
"MoraleMax" : 100,
"MoraleInitialDefault" : 5,
"UseBaselineMoraleGainEachRound" : true,
"MoraleBaselineGainPerRound" : 10,
"ThresholdMajorityHit" : 0.75,
"ThresholdMajorityMiss" : 0.25,
"ThresholdMinorArmor" : 0.05,
"ThresholdMajorArmor" : 0.1,
"ChangeEnemyCrit" : 0,
"ChangeEnemyAmmoExplodes" : 0,
"ChangeEnemyWeaponDestroyed" : 0,
"ChangeEnemyLocationDestroyed" : 0,
"ChangeMajorityAttackingShotsHit" : 0,
"ChangeEnemyMinorArmorDamage" : 0,
"ChangeEnemyMajorArmorDamage" : 0,
"ChangeEnemyKnockedDown" : 0,
"ChangeDFADealt" : 0,
"ChangeEnemyDestroyedLight" : 0,
"ChangeEnemyDestroyedMedium" : 0,
"ChangeEnemyDestroyedHeavy" : 0,
"ChangeEnemyDestroyedAssault" : 0,
"ChangeEnemyDestroyedMeleeAdditional" : 0,
"ChangeObjectiveCompleted" : 5,
"ChangeObjectiveFailed" : 0,
"ChangeAllyCrit": 5,
"ChangeAllyAmmoExplodes" : 5,
"ChangeAllyWeaponDestroyed" : 5,
"ChangeAllyLocationDestroyed" : 5,
"ChangeAllyMinorArmorDamage": 0,
"ChangeAllyMajorArmorDamage" : 0,
"ChangeAllyKnockedDown" : 5
"ChangeDFAReceived" : 10,
"ChangeAllyDestroyedLight": 10,
"ChangeAllyDestroyedMedium": 20,
ChangeAllyDestroyedHeavy": 30,
ChangeAllyDestroyedHeavy": 30,
"ChangeAllyDestroyedAssault": 40,
"ChangeAllyDestroyedMeleeAdditional": 10,
"CanAIBeInspired" : true,
"InspiredMaxTacticsBonus" : 0.25,
"InspirationAccelerationMultiplier" : 0.5,
"InspiredEffect" : {
   "durationData" : {
     "duration" : 1,
     "ticksOnActivations" : true,
     "useActivationsOfTarget" : true
   },
   "targetingData" : {
    "effectTriggerType" : "OnActivation",
    "effectTargetType" : "SingleTarget"
   },
   "effectType" : "TagEffect",
    "Description" : {
      "Id" : "AbilityDefInspired",
      "Name" : "INSPIRED",
      "Details" : "IGNORE GUARDED AND EVASIVE",
      "Icon" : "uixSvgIcon_mwInspired"
   },
   "nature" : "Buff"
},
"InspirationBlockerEffect" : {
  "durationData" : {
    "duration" : 5,
    "ticksOnActivations" : true,
    "useActivationsOfTarget" : true
   },
 "targetingData" : {
  "effectTriggerType" : "OnActivation",
  "effectTargetType" : "SingleTarget",
  "forcePathRebuild" : false
  },
 "effectType" : "TagEffect",
  "Description" : {
   "Id" : "AbilityDefInspirationBlocker",
   "Name" : "INSPIRED",
   "Details" : "PREVENTS RE-INSPIRATION",
   "Icon" : "uixSvgIcon_mwInspired"
  }
},
"LastStandEffect" : {
 "durationData" : {
  "duration" : -1,
  "ticksOnActivations" : true,
  "useActivationsOfTarget" : true
 },
 "targetingData" : {
   "effectTriggerType" : "OnActivation",
   "effectTargetType" : "SingleTarget",
   "forcePathRebuild" : false
  },
  "effectType" : "StatisticEffect",
  "Description" : {
  "Id" : "AbilityDefLastStand",
  "Name" : "LAST STAND",
  "Details" : "+[AMT]% TO ALL DAMAGE",
  "Icon" : "uixSvgIcon_mwInspired"
},
"statisticData" : {
"targetCollection" : "Weapon",
"statName" : "DamagePerShot",
"operation" : "Float_Multiply",
"modValue" : "1.25",
"modType" : "System.Single",
"additionalRules" : "InspiredEffect"
},
"nature" : "Buff"
} 
},
  • "UseButtonsForMorale" :- Bool, appears to turn on the inspiration button?
  • "MoraleMin" :- int, minimium morale value
  • "MoraleMax" :- int, maximum morale value
  • "MoraleInitialDefault" :- int, What value does morale start at?
  • "UseBaselineMoraleGainEachRound" :- bool, add the base line amount each round
  • "MoraleBaselineGainPerRound" :- int, baseline morale gain per round applied if above is true.
  • "ThresholdMajorityHit" :- Float: if this % of units hit (1 being 100%) then we have a majority weapon hit
  • "ThresholdMajorityMiss" :- float, if this % of units hit (1.0 being 100%) then we have a majority weapon miss
  • "ThresholdMinorArmor" :- float, threshold for removal of armour for minor armour dmg
  • "ThresholdMajorArmor" :-float, threshold for removal of armour for major armour
  • "ChangeEnemyCrit" :- int, how much morale changed for a hit on enemy that is a crit.
  • "ChangeEnemyAmmoExplodes" :- int, how much morale changed for a hit on enemy that is an ammo explosion.
  • "ChangeEnemyWeaponDestroyed" :- int, how much morale changed for a hit on enemy that is a weapon destroyed
  • "ChangeEnemyLocationDestroyed" :- int, how much morale changed for a hit on enemy that is a location destroyed
  • "ChangeMajorityAttackingShotsHit" :- int, how much morale changed for a hit on enemy that we have our weapons hit.
  • "ChangeEnemyMinorArmorDamage" :- int, how much morale changed for a hit on enemy that has reached minor armour dmg
  • "ChangeEnemyMajorArmorDamage" :- int, how much morale changed for a hit on enemy that has reached major armour dmg.
  •  :"ChangeEnemyKnockedDown" :- int, how much morale changed for a hit on enemy knocked down.
  • "ChangeDFADealt" :- int, how much morale changed for a hit that deals damage from DFA.
  • "ChangeEnemyDestroyedLight" :- int, how much morale changed for the destruction of a light mech
  • "ChangeEnemyDestroyedMedium" :- int, how much morale changed for the destruction of a med mech
  • "ChangeEnemyDestroyedHeavy" :- int, how much morale changed for the destruction of a heavy mech
  • "ChangeEnemyDestroyedAssault" :- int, how much morale changed for the destruction of a assault mech
  • "ChangeEnemyDestroyedMeleeAdditional" :- int, how much morale changed for the destruction of a mech with melee
  • "ChangeObjectiveCompleted" :- int, how much morale changed for the completion of a objective
  • "ChangeObjectiveFailed" :- int, how much morale changed for failing an objective
  • "ChangeAllyCrit":
  • "ChangeAllyAmmoExplodes" :- int, how much morale changed when an ally has an ammo explosion
  • "ChangeAllyWeaponDestroyed" :- int, how much morale changed when an ally has a weapon destroyed
  • "ChangeAllyLocationDestroyed" :- int, how much morale changed when a locatoin is destroyed
  • "ChangeMajorityAttackingShotsMiss" :- int, how much morale changed for a shot missing
  • "ChangeAllyMinorArmorDamage":
  • "ChangeAllyMajorArmorDamage" :- int, how much morale changed for an ally reaching major armor dmg threshold
  • "ChangeAllyKnockedDown" :- int, how much morale changed for ally being knocked down
  • "ChangeDFAReceived" :- int, how much morale changed for being on the recieving end of a DFA
  • "ChangeAllyDestroyed" :- int, how much morale changed for destruction of friendly unit
  • "ChangeAllyDestroyedMelee" :- int, how much morale changed for an ally being killed by melee
  • "ChangeAllyDestroyedLight":
  • "ChangeAllyDestroyedMedium":
  • "ChangeAllyDestroyedHeavy":
  • "ChangeAllyDestroyedAssault":
  • "ChangeAllyDestroyedMeleeAdditional":
  • "CanAIBeInspired" :- Bool can the AI use moral insperation?
  • "InspiredMaxTacticsBonus" :-flaot, max bonus tactics can have from inspired.
  • "InspirationAccelerationMultiplier" :- float, accelleration multiplier to insperation.
  • Inspiration skill items.

Combat Ui Constants

These control the UI Elements.

  "CombatUIConstants" : {
   "sortWeaponsByAttackOrder" : true,
   "includeEvasiveInHitChance" : false,
   "collapseWeaponTypesInTickMarks" : true,
   "floatieSizeSmall" : 12,
   "floatieSizeMedium" : 14,
   "floatieSizeLarge" : 16,
   "floatieLifetime" : 2.5,
   "showFLoatiesForMisses" : false,
   "showFloatiesForDodges" : true,
   "showStateRemovals" : false,
   "ScreenShakeRangedDamageRelativeMod" : 2.0,
       "ScreenShakeRangedDamageAbsoluteMod" : 0.0,
       "ScreenShakeMeleeDamageRelativeMod" : 2.0,
       "ScreenShakeMeleeDamageAbsoluteMod" : 0.0,
       "ScreenShakeFootfallRelativeMod" : 1.0,
       "ScreenShakeFootfallAbsoluteMod" : 0.0,
       "ScreenShakeGroundImpactRelativeMod" : 3.0,
       "ScreenShakeGroundImpactAbsoluteMod" : 0.0,
   "ScreenShakeDFARelativeMod" : 10.0,
       "ScreenShakeDFAAbsoluteMod" : 0.0,
       "PathingDeadZoneMinDist" : 10.0,
       "PathingDeadZoneMaxDist" : 30.0,
       "StabilityWarningRatio" : 0.5,
       "StabilityDangerRatio" : 0.75,
       "AutoSelectDuringInterleaved" : false,
       "AutoSelectDuringNonInterleaved" : false,
       "ShowDoneWithAllButton" : false,
       "MoveDescription": {
               "Name" : "MOVE",
               ""Details": "Execute a normal move, gaining EVASIVE charges based on distance (+2 Difficulty to hit this unit with ranged attacks per EVASIVE charge). May also use to initiate a Melee attack on nearby enemies."
       },
      "SprintDescription":
        {
            "Name": "SPRINT",
            "Details": "Use this 'Mech's entire turn to move farther, gaining EVASIVE charges based on distance (+2 Difficulty to hit this unit with ranged attacks per EVASIVE charge). Cannot Sprint if UNSTEADY, or if a leg is destroyed."
        },
 "BackwardDescription":
        {
            "Name": "REVERSE",
            "Details": "Reverse-move at a slower speed to a nearby location, and set a new facing for this 'Mech."
        },
        "JumpDescription":
        {
            "Name": "JUMP",
            "Details": "Execute a jump move, gaining EVASIVE charges based on distance (+2 Difficulty to hit this unit with ranged attacks per EVASIVE charge). May also use to initiate a Death-From-Above attack on nearby enemies."
        },
        "FireDescription":
        {
            "Name": "FIRE",
            "Details": "Fire selected weapons at any target within this 'Mech's current firing arc."
        },
        "FireMultiDescription":
        {
            "Name": "MULTI-TARGET",
            "Details": "Fire weapons at up to three separate targets within this 'Mech's current firing arc."
        },
        "DoneDescription":
        {
            "Name": "BRACE (END TURN)",
            "Details": "Remove UNSTEADY and end this 'Mech's turn. Gain GUARDED (50% damage reduction against ranged attacks to the front and side) and ENTRENCHED (50% stability damage reduction.)"
        }
  },
  • "sortWeaponsByAttackOrder" : true,
  • "includeEvasiveInHitChance" : false,
  • "collapseWeaponTypesInTickMarks" : true,
  • "floatieSizeSmall" :- Int, font size for small float text
  • "floatieSizeMedium" :- int, font size for med float text
  • "floatieSizeLarge" :- int, font size for large float text
  • "floatieLifetime" :- float, time in seconds that float text stays on screen.
  • "showFLoatiesForMisses" :- bool, do we show the float text for misses
  • "showFloatiesForDodges" :- bool, do we show the float text for dodging
  • "showStateRemovals" :- bool, do we show the float text for state removals.
  • "ScreenShakeRangedDamageRelativeMod" :- float, screen shake from ranged dmg relative modified
  • "ScreenShakeRangedDamageAbsoluteMod" :- float, screen shake from ranged dmg absolute modifier
  • "ScreenShakeMeleeDamageRelativeMod" :- float, screen shake from melee dmg relative modified
  • "ScreenShakeMeleeDamageAbsoluteMod" :- float, screen shake from melee dmg absolute modified
  • "ScreenShakeFootfallRelativeMod" :- float, screen shake from feet moving modified
  • "ScreenShakeFootfallAbsoluteMod" :- float, screen shake from feet moving relative modified
  • "ScreenShakeGroundImpactRelativeMod" :- float, screen shake from hitting the ground relative modified
  • "ScreenShakeGroundImpactAbsoluteMod" :- float, screen shake from hitting the ground aboslute modified
  • "ScreenShakeDFARelativeMod" :- float, screen shake from DFA relative.
  • "ScreenShakeDFAAbsoluteMod" :- float, screen shake from DFA absolute
  • "PathingDeadZoneMinDist" :-float, Pathing dead zone, if we don't move more then this we don't path for that area?
  • "PathingDeadZoneMaxDist" :-float, pathing dead zone max.. if we move over this we must path?
  • "StabilityWarningRatio" :-float, Stability warning ratio ui flash above this.
  • "StabilityDangerRatio" :-float, stability danger ratio ui flash above this
  • "AutoSelectDuringInterleaved" :- bool, ?? something to do with an autoselection.
  • "AutoSelectDuringNonInterleaved" :- bool, ?? something to do with an autoselection.
  • "ShowDoneWithAllButton" :- bool, turns off end turn for all unit button.
  • "MoveDescription": { array items } :- array of values for movement see below
    • "Name" :- String, the movement name
    • "Details" :- String, Long description of what the move is.

VFX Names

These appear to be the VFX constants for certain Visual Effect States.

 "VFXNames" : {
 "footfallBase": "vfxPrfPrtl_mechFootfall_",
        "groundImpactBase": "vfxPrfPrtl_mechFall_",
        "jumpjetLandBase": "vfxPrfPrtl_jumpJetLanding_",
        "mechDeath_centerTorso_A": "vfxPrfPrtl_mechDeathTotal_A",
        "mechDeath_centerTorso_B": "vfxPrfPrtl_mechDeathTotal_B",
        "mechDeath_centerTorso_C": "vfxPrfPrtl_mechDeathTotal_C",
        "mechDeath_cockpit": "vfxPrfPrtl_mechDeathCockpit",
        "mechDeath_gyro": "vfxPrfPrtl_mechDeathElectricalShutdown",
        "mechDeath_engine": "vfxPrfPrtl_mechDeathHeatShutdown",
        "mechDeath_legs": "vfxPrfPrtl_mechDeathLegs",
        "mechDeath_ammoExplosion_A": "vfxPrfPrtl_mechDeathTotal_A",
        "mechDeath_ammoExplosion_B": "vfxPrfPrtl_mechDeathTotal_B",
        "mechDeath_ammoExplosion_C": "vfxPrfPrtl_mechDeathTotal_C",
        "mechDeath_vitalComponent": "vfxPrfPrtl_mechDeathElectricalShutdown",
        "mechDeath_pilotKilled": "vfxPrfPrtl_mechDeathCockpit",
        "vehicleDeath_A": "vfxPrfPrtl_vehicleDeath_A",
        "vehicleDeath_B": "vfxPrfPrtl_vehicleDeath_B",
        "persistentDamage": 
		[
			"vfxPrfPrtl_mechDmgSmokeLrg_loop",
            "vfxPrfPrtl_mechDmgSmokeSm_loop",
            "vfxPrfPrtl_mechDmgElectricalSm_loop",
            "vfxPrfPrtl_mechDmgElectricalLrg_loop",
            "vfxPrfPrtl_mechDmgSparks",
            "vfxPrfPrtl_mechDmgElectricalFailure_loop"
		],
        "persistentCrit": 
		[
			"vfxPrfPrtl_mechDmgFireLrg_loop",
            "vfxPrfPrtl_mechDmgFireSm_loop",
            "vfxPrfPrtl_mechDmgSmokeSpark_loop"
		],
        "componentDestruction_A": "vfxPrfPrtl_mechDmgParkBreak_A",
        "componentDestruction_B": "vfxPrfPrtl_mechDmgParkBreak_B",
        "componentDestruction_C": "vfxPrfPrtl_mechDmgParkBreak_C",
        "componentDestruction_D": "vfxPrfPrtl_mechDmgParkBreak_shrapnel",
        "componentDestruction_AmmoExplosion": "vfxPrfPrtl_mechDmgCritAmmo",
        "deadMechLoop": "vfxPrfPrtl_mechDmgDead_loop",
        "heat_midHeat_persistent": "vfxPrfPrtl_heatVentSm_loop",
        "heat_highHeat_persistent": "vfxPrfPrtl_heatVentLrg_loop",
        "heat_heatVent_small": "vfxPrfPrtl_heatDumpSm_burst",
        "heat_heatVent_large": "vfxPrfPrtl_heatDumpLrg_burst",
        "heat_heatVent_shutdown": "vfxPrfPrtl_heatDumpLrg_burst",
        "heat_heatShutdown": "vfxPrfPrtl_overheatStatusLrg_loop",
        "flames_loop_small": "vfxPrfPrtl_fireTerrain_smLoop",
        "flames_loop_medium": "vfxPrfPrtl_fireTerrain_medLoop",
        "flames_loop_large": "vfxPrfPrtl_fireTerrain_lrgLoop",
        "flames_single_small": "vfxPrfPrtl_fireTerrain_smOneShot",
        "flames_single_large": "vfxPrfPrtl_fireTerrain_lrgOneShot",
        "flames_trees_small": "vfxPrfPrtl_fireTree_sm",
        "flames_trees_large": "vfxPrfPrtl_fireTree_lrg",
        "flamer_impact": "vfxPrfPrtl_weaponFlamerImpact",
        "flamer_persistent": "vfxPrfPrtl_weaponFlamerBurningLrg",
        "directionalExplosion_small": "vfxPrfPrtl_explosionDirectedSm_debris",
        "directionalExplosion_medium": "vfxPrfPrtl_explosionDirectedMed_debris",
        "directionalExplosion_large": "vfxPrfPrtl_explosionDirectedLrg_debris",
        "directionalExplosion_electrical": "vfxPrfPrtl_explosionDirectedLrg_electric",
        "directionalExplosion_energy": "vfxPrfPrtl_explosionDirectedLrg_scifi",
        "jumpjet_launch": "vfxPrfSys_jumpJetLaunch"
 },

Rather than do invidual calls on these we are just going to explain the concepts of the two forms we see.

<game idvalue>:<vfxasset idvalue> calls are for a specific VFX 'state' on one side eg "flames_loop_small" is the 'game' name while "vfxPrfPrtl_fireTerrain_smLoop is the VFX name in the VFX files.

On those with arrays it means they have multiple items that can be attached.

Move Constants

These are movement constants.

 "MoveConstants" : {
   "MoveTable" : [
       30,
       60,
       90,
       120,
       150,
       180,
       210,
       240,
       255,
       270,
       280,
       290,
       295,
       300
   ],
   "RotateInPlaceThreshold" : 22.0,
   "MeleeDistance" : 15.0,
   "DefaultMeleeEngageRange" : 100.0,
   "OverheatedMovePenalty": 0.2,
        "LegDamageYellowPenalty": 0.0,
        "LegDamageRedPenalty": 0.0,
        "LegDestroyedPenalty": 0.4,
   "MinMoveSpeed" : 0.25,
		"JumpjetVelocityMultiplier" : 1.25,
		"DEBUG_UseJumpjetDuration" : true,
		"DEBUG_JumpjetDuration" : 3.5,
        "JumpjetMinHeight": 40.0,
       "DFAMinHeight" : 70.0,
   "ExperimentalFlag" : true,
   "ExperimentalGridDistance" : 24.0,
   "ExperimentalHexRadius" : 4,
       "MaxMeleeVerticalOffset" : 8.0,
       "NumMeleeDestinationChoices" : 3,
       "SortMeleeHexesByPathingCost" : false,
       "NumDFADestinationChoices" : 3,
   "ExperimentalDotForestColorR": 0.424,
   "ExperimentalDotForestColorG": 0.875,
   "ExperimentalDotForestColorB": 0.424,
   "ExperimentalDotWaterColorR": 0.447,
   "ExperimentalDotWaterColorG": 0.878,
   "ExperimentalDotWaterColorB": 1.0,
   "ExperimentalDotDistantColorR": 0.25,
   "ExperimentalDotDistantColorG": 0.25,
   "ExperimentalDotDistantColorB": 0.25
  },
  • "MoveTable" :[array], Appears to be an Int array of movement distances in meters default is 30m increments to a max movement of 10x
  • "RotateInPlaceThreshold" :-float, how angle wise a move has to be before we rotate.
  • "MeleeDistance" :-float How close do we get for Melee
  • "DefaultMeleeEngageRange" :- float, where do we start the default engage?
  • "OverheatedMovePenalty":
  • "HeatLevel1MovePenalty":- float, penalty to movement for heat level 1 in % eg .1 is 10%
  • "HeatLevel2MovePenalty":- float, penalty to movement for heat level 2 in $ eg .2 is 20%
  • "LegDamageYellowPenalty":- float, penalty to movement for legs being yellow damaged in % eg .1 is 10%
  • "LegDamageRedPenalty":- float, penalty to movement for red legs in % eg .2 is 20%
  • "LegDestroyedPenalty":
  • "MinMoveSpeed" :- float we can always move this % (default 0.25 = 25%)
  • "JumpjetVelocityMultiplier" :
  • "DEBUG_UseJumpjetDuration" : bool
  • "DEBUG_JumpjetDuration" :
  • "JumpjetMinHeight" :-float, Jumpjets wil always take us this high.
  • "DFAMinHeight" :- float, Doing a DFA will always take us this high.
  • "ExperimentalFlag" : bool, appears to be the hex grid on/off. Users report setting to "false" will not load the game.
  • "ExperimentalGridDistance" :- The distance in meters between the movement grid. You can change this and maps will dynamically adjust grid dots and which ones get forest/water/marsh properties.
  • "ExperimentalHexRadius" :- The radius of movement dots shown around your mouse when selecting a move, or holding Left Alt while a unit is selected
  • "MaxMeleeVerticalOffset" :- float, max we can be vertically off set for a melee choice?
  • "NumMeleeDestinationChoices" :- int, how many melee position choices should we have?
  • "SortMeleeHexesByPathingCost" :-bool, do we sort the melee hex's by their movement cost?
  • "NumDFADestinationChoices" :- int, when I DFA give me this many choices on where i land.
  • "ExperimentalDotForestColorR/G/B": float, 0 - 1 red,green, blue values for forest dots
  • "ExperimentalDotWaterColorR/G/B": float, 0 - 1 red,green, blue values for water dots
  • "ExperimentalDotDistantColorR/G/B: float, 0 - 1 red,green, blue values for water dots

Dynamic AI Role Constants.

Dynamic AI constants.. We are not 100% how these function yet.

  "DynamicAIRoleConstants" : {
"hysteresis": 0.1,
        "brawlerMinAbs": 0,
        "brawlerMaxFrac": 1.0,
        "brawlerTagMultiplier": 2.0,
        "sniperMinAbs": 0,
        "sniperMaxFrac": 0.5,
        "sniperTagMultiplier": 2.0
 }

Not certain at the moment how this function.


Wiki Quick Nav: File Formats | Other Tweaks and Adjustments | Tools and Scripts | Troubleshooting | Style Guide