BehaviorVariables

From Battletech Modding Wiki
Jump to: navigation, search

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


The Behaviour Variables are AI 'Behaviours' and seem to be linked to the lancedef Database entries plus a few other items likely triggered by the Game such as Pilot faction, Encounter type etc.

There are actually what appears to be 4 'levels' of control for these Variables.

  1. Global - This controls the baseline values.
  2. Faction - This controls the faction related AI (all seem to be blank at this time)
  3. Personality - this controls the ai based on the pilots personality (all appear to be blank at this time)
  4. Role - this controls the ai based on the unit/lance role.

Further more some of the Roles appear to be broken up into attacker/defender.

The JSON's though appears the same fields for each, just in the Role related files only those which the ROLE has an effect on are modified.

I have not documented the individual fields here as

  1. Each is fairly self explinatory.
  2. The actual value type is listed for each.

Beta 2 global.json Settings

   {
      "behaviorVariables" : [
  	{
  	    /* How much accuracy (0.0 - 1.0) is required to consider
  	       an attack that will overheat */
              "k" : "Float_AccuracyNeededForOverheatAttack",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.50,
              }
  	},
  	{
  	    /* How much a location must be damaged before an overheat
  	       attack will be considered, as a fraction from 0.0
  	       (undamaged) to 1.0 (location destroyed) */
              "k" : "Float_ExistingTargetDamageForOverheatAttack",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.80,
              }
  	},
  	{
  	    /* How much a location must be damaged before a DFA attack
  	       will be considered , as a fraction from 0.0 (undamaged)
  	       to 1.0 (location destroyed) */
              "k" : "Float_ExistingTargetDamageForDFAAttack",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.5,
              }
  	},
  	{
  	    /* Maximum leg damage allowed for DFA attack (above which
  	       attacks will not be considered), as a fraction from 0.0
  	       (undamaged) to 1.0 (location destroyed) */
              "k" : "Float_OwnMaxLegDamageForDFAAttack",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.4,
              }
  	},
  	{
  	    /* Radius around waypoints that the lance must all be
  	       within before proceeding to next waypoint. */
              "k" : "Float_LancePatrolRadius",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 70,
              }
  	},
  	{
  	    /* Distance beyond allies that a unit can run ahead while
  	       following a route. */
              "k" : "Float_LanceMoveRadius",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 10,
              }
  	},
  	{
  	    /* Whether the given route should loop. SET BY MAP
  	       DATA. */
              "k" : "Bool_PatrolShouldLoop",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : true,
              }
  	},
  	{
  	    /* When attacking a priority target, do not attack the
  	       priority targe if targeted within the recent target
  	       threshold number of phases. */
              "k" : "Int_RecentTargetThresholdPhases",
              "v" : {
  		"type" : "Int",
  		"intVal" : 11,
              }
  	},
  	{
  	    /* The "To Hit" threshold to use when attacking preferred
  	     * targets */
              "k" : "Float_PreferredTargetToHitThreshold",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.3,
              }
  	},
  	{
  	    /* Radius (in meters) that the AI must get to a waypoint
  	       when following a route before proceeding to the next
  	       waypoint. */
              "k" : "Float_RouteWaypointRadius",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 40,
              }
  	},
  	{
  	    /* Distance (in meters) that the AI wants to keep between
  	       units.  Used by:
  	       - PreferNoCloserThanPersonalSpaceToAlly Influence Factor
  	       - Decrowding while following routes
  	    */
              "k" : "Float_PersonalSpaceRadius",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 8,
              }
  	},
  	{
  	    /* Should targeting this unit distract it from attacking a
  	       priority target? */
              "k" : "Bool_ProhibitTargetingPriorityTargetsAfterBeingTargeted",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : true,
              }
  	},
  	{
  	    /* Percentage (0-100) of time to attack priority
  	       targets. */
              "k" : "Float_PriorityAttackPercentage",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 100,
              }
  	},
  	{
  	    /* Percentage (0-100) of time to move towards priority
  	       targets. */
              "k" : "Float_PriorityMovePercentage",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 100,
              }
  	}
  	{
  	    /* Influence Factor Weight for preferring moving less. */
              "k" : "Float_PreferLowerMovementFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : -0.5,
              }
  	},
  	{
  	    /* Influence Factor Weight for preferring moving less WHEN
  	       SPRINTING. */
              "k" : "Float_SprintPreferLowerMovementFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : -0.5,
              }
  	},
  	{
  	    /* Influence Factor Weight for standing still when hostiles are in melee range. */
              "k" : "Float_PreferStationaryWhenHostilesInMeleeRangeFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight for standing still when
  	     * hostiles are in melee range WHEN SPRINTING. Does this
  	     * make any sense to be non-zero? */
              "k" : "Float_SprintPreferStationaryWhenHostilesInMeleeRangeFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight for preferring higher
  	       elevations. */
              "k" : "Float_PreferHigherPositionFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.2,
              }
  	},
  	{
  	    /* Influence Factor Weight for preferring higher
  	       elevations WHEN SPRINTING. */
              "k" : "Float_SprintPreferHigherPositionFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.2,
              }
  	},
  	{
  	    /* Influence Factor Weight to maximize expected damage to
  	       hostiles.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_PreferHigherExpectedDamageToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 2.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to maximize expected damage to
  	       hostiles WHEN SPRINTING.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_SprintPreferHigherExpectedDamageToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.1,
              }
  	},
  	{
  	    /* Influence Factor Weight to minimize expected damage
  	       from hostiles. */
              "k" : "Float_PreferLowerExpectedDamageFromHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.2,
              }
  	},
  	{
  	    /* Influence Factor Weight to minimize expected damage
  	       from hostiles WHEN SPRINTING. */
              "k" : "Float_SprintPreferLowerExpectedDamageFromHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.2,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being behind
  	       hostiles.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_PreferAttackFromBehindHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being behind hostiles
  	       WHEN SPRINTING.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_SprintPreferAttackFromBehindHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being beside
  	       hostiles.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_PreferAttackFrom90DegreesToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being beside hostiles
  	       WHEN SPRINTING.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_SprintPreferAttackFrom90DegreesToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to reject being closer than the
  	       minimum weapon range to hostiles.  */
              "k" : "Float_PreferNoCloserThanMinDistToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to reject being closer than the
  	       minimum weapon range to hostiles WHEN SPRINTING.  */
              "k" : "Float_SprintPreferNoCloserThanMinDistToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being behind braced
  	       targets.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_PreferBeingBehindBracedHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being behind braced
  	       targets WHEN SPRINTING.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_SprintPreferBeingBehindBracedHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to reject being closer than
  	       personal space to allies. */
              "k" : "Float_PreferNoCloserThanPersonalSpaceToAllyFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to reject being closer than
  	       personal space to allies WHEN SPRINTING. */
              "k" : "Float_SprintPreferNoCloserThanPersonalSpaceToAllyFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* DEPRECATED - distance, in meters, between influence map
  	       locations. */
              "k" : "Float_InfluenceMapSampleDistance",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 20.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer facing hostiles.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_PreferFacingHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.35,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer facing hostiles WHEN
  	       SPRINTING.
  	       Hostile Factor: 1.0 / 0.5 / 0.25 based on threat
  	    */
              "k" : "Float_SprintPreferFacingHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.35,
              }
  	},
  	{
  	    /* Influence Factor Weight for preferring more level (vs
  	       steep) locations. */
              "k" : "Float_PreferLessSteepPositionFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight for preferring more level (vs
  	       steep) locations WHEN SPRINTING. */
              "k" : "Float_SprintPreferLessSteepPositionFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being far away from
  	       closest hostile. Useful for defensive moves. */
              "k" : "Float_PreferHigherDistanceFromClosestHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer being far away WHEN
  	       SPRINTING from closest hostile. Useful for defensive
  	       moves. */
              "k" : "Float_SprintPreferHigherDistanceFromClosestHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer having LOS to
  	       fewest hostiles. Useful for defensive moves. */
              "k" : "Float_PreferLOSToFewestHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer having LOS to fewest
  	       hostiles WHEN SPRINTING. Useful for defensive moves. */
  	    "k" : "Float_SprintPreferLOSToFewestHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer having LOS to most
  		hostiles. */
              "k" : "Float_PreferLOSToMostHostilesFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer having LOS to most
  		hostiles WHEN SPRINTING. */
              "k" : "Float_SprintPreferLOSToMostHostilesFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Optimal distance to nearest ally. (See
  	       PreferOptimalDistanceToAllyFactor.) */
              "k" : "Float_OptimalAllyDistance",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 168.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer locations close to
  	       optimal distance to other allies. */
              "k" : "Float_PreferOptimalDistanceToAllyFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.2,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer locations close to
  	       optimal distance to other allies WHEN SPRINTING. */
              "k" : "Float_SprintPreferOptimalDistanceToAllyFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* How much heat is acceptable before being subject to "overheat" logic.
  	       0: no heat
  	       1: Heat level 1 (unused?)
  	       2: Heat level 2
  	       3: Max heat */
              "k" : "Float_AcceptableHeatLevel",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 2.6,
              }
  	},
  	{
  	    /* DEPRECATED */
              "k" : "Float_ThreatBattleValueRoot",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* When considering different kinds of attacks, multiply
  	       the shooting damage by this value to decide which
  	       attack to use. */
              "k" : "Float_ShootingDamageMultiplier",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 1.0,
              }
  	},
  	{
  	    /* When considering different kinds of attacks, multiply
  	       the melee damage by this value to decide which attack
  	       to use. */
              "k" : "Float_MeleeDamageMultiplier",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 2,
              }
  	},
  	{
  	    /* When considering different kinds of attacks, multiply
  	       the DFA damage by this value to decide which attack to
  	       use. */
              "k" : "Float_DFADamageMultiplier",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 1.4,
              }
  	},
  	{
  	    /* Distance (in meters) outside of which we consider
  	       ourselves OK to stop and cool down. */
              "k" : "Float_CoolDownRange",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 100.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       outside the cooldown range. */
              "k" : "Float_PreferOutsideCoolDownRangeFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       outside the cooldown range WHEN SPRINTING. */
              "k" : "Float_SprintPreferOutsideCoolDownRangeFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       inside e.g. forests. */
              "k" : "Float_PreferLessTargetableLocationFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.7,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       inside e.g. forests WHEN SPRINTING. */
              "k" : "Float_SprintPreferLessTargetableLocationFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.7,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       inside water. */
              "k" : "Float_PreferHigherHeatSinkLocationsFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.1,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       inside water WHEN SPRINTING. */
              "k" : "Float_SprintPreferHigherHeatSinkLocationsFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.1,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with damage reduction.*/
  	    "k" : "Float_PreferHigherDamageReductionLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with damage reduction WHEN SPRINTING.*/
  	    "k" : "Float_SprintPreferHigherDamageReductionLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with higher melee to-hit penalty.*/
  	    "k" : "Float_PreferHigherMeleeToHitPenaltyLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with higher melee to-hit penalty WHEN
  	       SPRINTING. */
  	    "k" : "Float_SprintPreferHigherMeleeToHitPenaltyLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with movement bonus. */
  	    "k" : "Float_PreferHigherMovementBonusLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.05,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with movement bonus WHEN SPRINTING. */
  	    "k" : "Float_SprintPreferHigherMovementBonusLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with stability bonus. */
  	    "k" : "Float_PreferLowerStabilityDamageMultiplierLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with stability bonus WHEN SPRINTING. */
  	    "k" : "Float_SprintPreferLowerStabilityDamageMultiplierLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with higher visibility cost.*/
  	    "k" : "Float_PreferHigherVisibilityCostLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with visibility bonus WHEN SPRINTING. */
  	    "k" : "Float_SprintPreferHigherVisibilityCostLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with higher sensor range multiplier. */
  	    "k" : "Float_PreferHigherSensorRangeMultiplierLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with higher sensor range multiplier WHEN SPRINTING. */
  	    "k" : "Float_SprintPreferHigherSensorRangeMultiplierLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with signature reduction. */
  	    "k" : "Float_PreferLowerSignatureMultiplierLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be in
  	       locations with signature reduction WHEN SPRINTING. */
  	    "k" : "Float_SprintPreferLowerSignatureMultiplierLocationsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to attack
  	       a hostile's weak armor. */
              "k" : "Float_PreferAttackingLowerArmorHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.8,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to attack
  	       a hostile's weak armor WHEN SPRINTING. */
              "k" : "Float_SprintPreferAttackingLowerArmorHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.5,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to defend
  	       my own weak armor. */
              "k" : "Float_PreferPresentingHigherArmorToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to defend
  	       my own weak armor WHEN SPRINTING. */
              "k" : "Float_SprintPreferPresentingHigherArmorToHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Ratio between expected damage and target hit points to
  	       be used for "Vulnerable" threat sorting. */
              "k" : "Float_VulnerableDamageRatioThreshold",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.65,
              }
  	},
  	{
  	    /* Damage multiplier when measuring vulnerability of called
  	       shot targets. */
              "k" : "Float_CalledShotVulnerabilityMultiplier",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 2.5,
              }
  	},
  	{
  	    /* Ratio between hostile's expected damage and my hit points to
  	       be used for "Threat" threat sorting. */
              "k" : "Float_ThreatDamageRatioThreshold",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.7,
              }
  	},
  	{
  	    /* How many phases to consider when looking for a melee
  	       revenge target. */
              "k" : "Int_MeleeRevengeWindowPhaseCount",
              "v" : {
  		"type" : "Int",
  		"intVal" : 5,
              }
  	},
  	{
  	    /* If a target is a melee revenge target, what additional
  	       damage multiplier to apply. The total multiplier is
  	       Float_MeleeDamageMultiplier +
  	       FloatMeleeRevengeBonus. */
              "k" : "Float_MeleeRevengeBonus",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 2.5,
              }
  	},
  	{
  	    /* If a target is a melee revenge target, but the ratio of
  	       its expected melee damage to my expected melee damage
  	       is higher than this threshold, DO NOT MELEE! It'll all
  	       end in tears! */
              "k" : "Float_MeleeDamageRatioCap",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 1.5,
              }
  	},
  	{
  	    /* If a unit takes this percentage damage or more in a
  	       round, consider it "major damage", and react
  	       accordingly (make a defensive move, maybe do a suicidal
  	       charge?) */
              "k" : "Float_MajorDamageRatio",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 5.0,
              }
  	},
  	{
  	    /* When a weapon (e.g. flamer) generates heat, use this
  	       ratio to convert heat to "virtual" damage for AI
  	       calculations. */
              "k" : "Float_HeatToDamageRatio",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 2.0,
              }
  	},
  	{
  	    /* When choosing to turn the strongest armor towards the
  	       enemy, the rear armor can be presented to the enemy if
  	       the unit is in "offensive" mode, only if this is set to
  	       True. */
              "k" : "Bool_AllowTurningRearArmorToEnemy",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* A weight for an influence factor to prefer to get
  	       inside melee range. Negative values will encourage
  	       units to get out of melee range. */
              "k" : "Float_PreferInsideMeleeRangeFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.5,
              }
  	},
  	{
  	    /* A weight for an influence factor to prefer to get
  	       inside melee range WHEN SPRINTING. Negative values will
  	       encourage units to get out of melee range. */
              "k" : "Float_SprintPreferInsideMeleeRangeFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.3,
              }
  	},
  	{
  	    /* The number of hostiles considered when evaluating
  	       influence maps. */
              "k" : "Int_HostileInfluenceCount",
              "v" : {
  		"type" : "Int",
  		"intVal" : 6,
              }
  	},
  	{
  	    /* The number of allies considered when evaluating
  	       influence maps. */
              "k" : "Int_AllyInfluenceCount",
              "v" : {
  		"type" : "Int",
  		"intVal" : 3,
              }
  	},
  	{
  	    /* If unsteady, the chance of just deciding to switch to
  	       defensive. */
              "k" : "Float_UnsteadyCausesDefensiveMovePercentage",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 60,
              }
  	},
  	{
  	    /* An alerted unit will act on visibility information,
  	       closing, attacking. Non-alerted units will still follow
  	       patrol orders or movement orders. This will be set by
  	       visibility logic. */
              "k" : "Bool_Alerted",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* If unsteady, the chance of just deciding to brace. */
              "k" : "Float_UnsteadyCausesBracePercentage",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0,
              }
  	},
  	{
  	    /* If my move would not result in being able to fire,
  	       should I rewrite that move as a sprint? */
              "k" : "Bool_RewriteNonAttackMoves",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : true,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       near a tagged target. */
              "k" : "Float_PreferProximityToTaggedTargetFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       near a tagged target WHEN SPRINTING. */
              "k" : "Float_SprintPreferProximityToTaggedTargetFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
  	{
  	    /* Distance to control the desire to be near a tagged
  	       target. */
              "k" : "Float_PreferProximityToTaggedTargetFactorDistance",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0,
              }
  	},
  	{
  	    /* Tag to control the desire to be near a tagged
  	       target. */
              "k" : "String_PreferProximityToTaggedTargetFactorTag",
              "v" : {
  		"type" : "String",
  		"stringVal" : "",
              }
  	},
  	{
  	    /* How many degrees apart should I consider different
  	       facings when choosing moves? */
              "k" : "Float_AngularSelectionResolution",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 60.0,
              }
  	},
  	{
  	    /* Use dynamic lance roles (brawler, flanker, spotter, sniper) */
              "k" : "Bool_UseDynamicLanceRoles",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* How much of expected melee damage to add in again as
  	       bonus damage when attacking evasive targets (0 - none,
  	       1 - 100% bonus damage) */
              "k" : "Float_MeleeBonusMultiplierWhenAttackingEvasiveTargets",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 1.5,
              }
  	},
  	{
  	    /* How much of expected melee damage to add in again as
  	       bonus damage when attacking braced targets (0 - none,
  	       1 - 100% bonus damage) */
              "k" : "Float_MeleeBonusMultiplierWhenAttackingBracedTargets",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 1.5,
              }
  	},
  	{
  	    /* How many damage points one unit of unsteadiness
  	       converts to when calculating virtual damage when
  	       attacking unstable targets. */
              "k" : "Float_UnsteadinessToVirtualDamageConversionRatio",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 1.40,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       inside forests or other locations that grant guard. */
              "k" : "Float_PreferLocationsThatGrantGuardFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.25,
              }
  	},
  	{
  	    /* Influence Factor Weight to control the desire to be
  	       inside forests or other locations that grant guard WHEN
  	       SPRINTING. */
              "k" : "Float_SprintPreferLocationsThatGrantGuardFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.1,
              }
  	},
  	{
  	    /* Percentage (0-100) chance to brace (pass) when overheated. */
              "k" : "Float_BraceWhenOverheatedPercentage",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0,
              }
  	},
  	{
  	    /* Percentage (0-100) of best available move that will be
  	       accepted for bulwark skill moves. */
              "k" : "Float_BulwarkThresholdPercentage",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 40,
              }
  	},
  	{
  	    /* Whether to log influence map calculations. */
              "k" : "Bool_LogInfluenceMapCalculations",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* Whether to log influence map calculation profiling
  	       information. */
              "k" : "Bool_ProfileInfluenceMapCalculations",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* Whether to log behavior tree logic. */
              "k" : "Bool_LogBehaviorTreeLogic",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* Directory for influence map logs. Can be an absolute
  	       directory (e.g. c:\tmp, but beware of OS dependencies)
  	       or relative to BattleTech. */
              "k" : "String_InfluenceMapCalculationLogDirectory",
              "v" : {
  		"type" : "String",
  		"stringVal" : "AI_Logs",
              }
  	},
  	{
  	    /* Whether to include influence factors that have a 0
  	       weight in the relevant JSON. */
              "k" : "Bool_InfluenceMapCalculationLogIncludeZeroWeightedFactors",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* Whether the AI should always be in defensive mood. */
              "k" : "Bool_AlwaysDefensiveMood",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* Whether the AI should always be in offensive mood. */
              "k" : "Bool_AlwaysOffensiveMood",
              "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
              }
  	},
  	{
  	    /* Factor to multiply sprint move evaluations by before
  	       comparing them to regular move evaluations. */
              "k" : "Float_SprintWeightBiasMultiplicative",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 1.0,
              }
  	},
  	{
  	    /* Factor to add to sprint move evaluations before
  	       comparing them to regular move evaluations. */
              "k" : "Float_SprintWeightBiasAdditive",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
              }
  	},
          {
  	    /* Whether the AI will reserve or not. */
  	    "k" : "Bool_ReserveEnabled",
  	    "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
  	    }
  	},
  	{
  	    /* The base percentage chance (0-100) to reserve. */
  	    "k" : "Float_ReserveBasePercentage",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0,
  	    }
  	},
  	{
  	    /* The "X" value in "for every X percent of hostile units
  	       still to go this round, increase reserve chance by Y
  	       percent." (0-100) */
  	    "k" : "Float_ReserveHostilePercentageIncrementX",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 24.0,
  	    }
  	},
  	{
  	    /* The "Y" value in "for every X percent of hostile units
  	       still to go this round, increase reserve chance by Y
  	       percent." (0-100) */
  	    "k" : "Float_ReserveHostilePercentageIncrementY",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 6,
  	    }
  	},
  	{
  	    /* UNUSED - DO NOT USE */
  	    "k" : "Float_ReserveHostileVulnerabilityPercentage",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0,
  	    }
  	},
  	{
  	    /* UNUSED - DO NOT USE */
  	    "k" : "Float_ReserveSelfVulnerabilityPercentage",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0,
  	    }
  	},
  	{
  	    /* Positive values mean to go that much AFTER the average
  	       of the phases of remaining hostiles. */
  	    "k" : "Float_ReserveHostileOffset",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.5,
  	    }
  	},
  	{
  	    /* For internal AI use, do not set. */
  	    "k" : "Int_ReserveCalculationsLastDoneForRoundNumber",
  	    "v" : {
  		"type" : "Int",
  		"intVal" : 0,
  	    }
  	},
  	{
  	    /* For internal AI use, do not set. */
  	    "k" : "Int_ReserveCalculationsLastDoneForPhaseNumber",
  	    "v" : {
  		"type" : "Int",
  		"intVal" : 0,
  	    }
  	},
  	{
  	    /* For internal AI use, do not set. */
  	    "k" : "Int_ReserveToPhaseNumber",
  	    "v" : {
  		"type" : "Int",
  		"intVal" : 0,
  	    }
  	},
  	{
  	    /* Whether to allow non-mechs to decide when to initiate
  	       reserving. */
  	    "k" : "Bool_ReserveByNonMechs",
  	    "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
  	    }
  	},
  	{
  	    /* Whether to allow sprinting to locations that are
  	       reachable by regular (forward/reverse/jump)
  	       movement. */
  	    "k" : "Bool_SprintToRegularLocations",
  	    "v" : {
  		"type" : "Bool",
  		"boolVal" : false,
  	    }
  	},
  	{
  	    /* Threshold Percentage (100.0 equals 100%) of target hit
  	       points before we start trying to multi-target. */
  	    "k" : "Float_MultiTargetOverkillThreshold",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 110.0,
  	    }
  	},
  	{
  	    /* Weight to prefer not being in locations that have
  	       lethal amounts of expected damage */
  	    "k" : "Float_PreferNotLethalPositionFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.6
  	    }
  	},
  	{
  	    /* Weight to prefer sprinting to locations that do not
  	       have lethal amounts of expected damage */
  	    "k" : "Float_SprintPreferNotLethalPositionFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.6
  	    }
  	},
  	{
  	    "k" : "Float_DefensiveOverkillFactor",
  	    /* Percentage (100.0 equals 100%) of unit's hit points
  	       when considering NotLethalPositionFactors. */
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 75.0,
  	    }
  	},
  	{
  	    "k" : "Float_OverkillFactorForReserve",
  	    /* If a hostile actor can do this percentage (100.0
  	       equals 100%) of one of my unit's hit points, do
  	       not reserve. */
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 200.0,
  	    }
  	},
  	{
  	    "k" : "Float_CalledShotHeadBaseChance",
  	    /* Base chance for a called shot to the head. Not "out of"
  	       100, or any fixed number, out of the total
  	       applicable. */
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 15.0,
  	    }
  	},
  	{
  	    /* Base chance for a called shot to the center torso. Not
  	       "out of" 100, or any fixed number, out of the total
  	       applicable. */
  	    "k" : "Float_CalledShotCenterTorsoBaseChance",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 15.0,
  	    }
  	},
  	{
  	    /* Base chance for a called shot to other locations. Not
  	       "out of" 100, or any fixed number, out of the total
  	       applicable. */
  	    "k" : "Float_CalledShotOtherBaseChance",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 2.5,
  	    }
  	},
  	{
  	    /* Additional chance for a called shot per each point of
  	       expected weapon damage. Not "out of" 100, or any fixed
  	       number, out of the total applicable. */
  	    "k" : "Float_CalledShotWeaponDamageChance",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.35,
  	    }
  	},
  	{
  	    "k" : "Float_CalledShotDamagedChanceMultiplier",
  	    /* Called shot location multiplier if that location is
  	       damaged. */
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 2.5,
  	    }
  	},
  	{
  	    /* How long the AI is allowed to think, in seconds per
  	       unit per activation. */
  	    "k" : "Float_MaxThinkSeconds",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 200.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to prefer moving to locations
  	       where hostile fire could kill us from behind. A
  	       negative weight will invert this to avoid such
  	       locations.
  
  	       See Also: Float_DefensiveOverkillFactor, which
  	       determines what "lethal" means. */
              "k" : "Float_PreferLethalDamageToRearArcFromHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : -0.5,
              }
  	},
  	{
  	    /* Influence Factor Weight to prefer moving to locations
  	       where hostile fire could kill us from behind WHEN
  	       SPRINTING. A negative weight will invert this to avoid
  	       such locations.
  
  	       See Also: Float_DefensiveOverkillFactor, which
  	       determines what "lethal" means. */
              "k" : "Float_SprintPreferLethalDamageToRearArcFromHostileFactorWeight",
              "v" : {
  		"type" : "Float",
  		"floatVal" : -1.0,
              }
  	},
  	{
  	    /* How far (in meters) a lance will allow itself to spread
  	       out when in non-interleaved mode. (TODO currently only
  	       used for sprinting to combat.) */
              "k" : "Float_NonInterleavedLanceSpreadDistance",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 140.0,
              }
  	},
  	{
  	    /* How far (in meters) a lance will allow itself to spread
  	       out when in interleaved mode. (TODO currently only used
  	       for sprinting to combat.) */
              "k" : "Float_InterleavedLanceSpreadDistance",
              "v" : {
  		"type" : "Float",
  		"floatVal" : 180.0,
              }
  	},
  	{
  	    /* Appetitive Influence Factor Weight to approach
  	       hostile's rear arc. */
  	    "k" : "Float_AppetitivePreferApproachingRearArcOfHostileFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.3,
  	    }
  	},
  	{
  	    /* Appetitive Influence Factor Weight to approach
  	       hostile's rear arc WHEN SPRINTING. */
  	    "k" : "Float_SprintAppetitivePreferApproachingRearArcOfHostileFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.6,
  	    }
  	},
  	{
  	    /* Radius (in meters) to avoid sprinting within. */
  	    "k" : "Float_SprintExclusionRadius",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 144.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to be inside SprintExclusionRadius. */
  	    "k" : "Float_PreferInsideSprintExclusionRadiusHostileFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.0,
  	    }
  	},
  	{
  	    /* Influence Factor Weight to be inside
  	       SprintExclusionRadius WHEN SPRINTING.  N.B. this should
  	       have NEGATIVE weights to discourage sprinting close to
  	       hostiles.
  	    */
  	    "k" : "Float_SprintPreferInsideSprintExclusionRadiusHostileFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : -10,
  	    }
  	},
  	{
  	    /* Maximum distance (in meters) to hostile used for
  	       SprintAppetitivePreferApproachingRearArcOfHostileFactor. */
  	    "k" : "Float_AppetitiveBehindMaximumRadius",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 300.0,
  	    }
  	},
  	{
  	    /* Appetitive Influence Factor Weight to approach ideal
  	       weapon range to hostile. */
  	    "k" : "Float_AppetitivePreferIdealWeaponRangeToHostileFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.3,
  	    }
  	},
  	{
  	    /* Appetitive Influence Factor Weight to approach ideal
  	       weapon range to hostile WHEN SPRINTING. */
  	    "k" : "Float_SprintAppetitivePreferIdealWeaponRangeToHostileFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.1,
  	    }
  	},
  	{
  	    /* Whether to use the new threat sorting that incorporates
  	       target damage output, or the earlier (Pre-July)
  	       version, which only looks at my ability to do damage to
  	       the target, and then distance. */
  	    "k" : "Bool_UseNewThreat",
  	    "v" : {
  		"type" : "Bool",
  		"boolVal" : true,
  	    }
  	},
  	{
  	    /* Influence Factor to prefer this lance to surround hostile units.*/
  	    "k" : "Float_PreferSurroundingHostileUnitsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.8,
  	    }
  	},
  	{
  	    /* Influence Factor to prefer this lance to surround
  	       hostile units WHEN SPRINTING.*/
  	    "k" : "Float_SprintPreferSurroundingHostileUnitsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 1.25,
  	    }
  	},
  	{
  	    /* Influence Factor to prefer not to be surrounded by hostile units.*/
  	    "k" : "Float_PreferNotSurroundedByHostileUnitsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.5,
  	    }
  	},
  	{
  	    /* Influence Factor to prefer not to be surrounded by
  	       hostile units WHEN SPRINTING.*/
  	    "k" : "Float_SprintPreferNotSurroundedByHostileUnitsFactorWeight",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.75,
  	    }
  	},
  	{
  	    /* Sprint Hysteresis Multiplier value, the value
  	       multiplies the "sprint juice level" when a sprint move
  	       happens. Values can be between 0.0 and 1.0, with larger
  	       values (closer to 1.0) leaving more "sprint juice"
  	       around for next turn. */
  	    "k" : "Float_SprintHysteresisMultiplier",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.80,
  	    }
  	},
  	{
  	    /* Sprint Hysteresis Recovery Turns, the number of turns
  	       not sprinting that it would take to recover from an
  	       empty "sprint juice" reservoir. */
  	    "k" : "Float_SprintHysteresisRecoveryTurns",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 2.0,
  	    }
  	},
  	{
  	    /* The window (0.0 - 1.0) below the calculated ideal
  	       damage differential that we thought that inspiration
  	       might get us that we'll be willing to accept on the
  	       first round of having inspire available. */
  	    "k" : "Float_InspirationBaseDamageWindow",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.35,
  	    }
  	},
  	{
  	    /* The increment window (0.0 - 1.0) below the calculated
  	       ideal damage differential that we thought that
  	       inspiration might get us that we'll be willing to
  	       accept on successive rounds of having inspire
  	       available. */
  
  	    "k" : "Float_InspirationIncrementalDamageWindow",
  	    "v" : {
  		"type" : "Float",
  		"floatVal" : 0.3,
  	    }
  	},
  	{
  	    /* The minimum expected damage inspiration should get us
  	       before we use inspiration. */
  	    "k" : "Float_MinimumInspirationDamage",
  	    "v" : {
  		"type": "Float",
  		"floatVal" : 10.0,
  	    }
  	},
  	{
  	    /* Evasive "to hit" floor - if the to-hit is below this
  	       percentage (0.0 - 100.0), only shoot a single
  	       "conservative" shot. */
  	    "k" : "Float_EvasiveToHitFloor",
  	    "v" : {
  		"type": "Float",
  		"floatVal" : 40.0,
  	    }
  	},
  	{
  	    /*
  	      Description: Number of points of damage that a sensor
  	      locking turn needs to do over a straight up shooting
  	      turn before deciding to sensor lock. Positive is a
  	      shooting bias, negative is a sensor lock bias.*/
  	    "k" : "Float_MinimumSensorLockQuality",
  	    "v" : {
  		"type": "Float",
  		"floatVal" : 35,
  	    }
  	},
      ]
   }

Beta 1 Settings

Expand for Beta 1 settings

{
"behaviorVariables" : [
 {
  "k" : "Float_AccuracyNeededForOverheatAttack",
  "v" : {    "type" : "Float",    "floatVal" : 0.75,   }
 },{
  "k" : "Float_ExistingTargetDamageForOverheatAttack",
  "v" : { "type" : "Float", "floatVal" : 0.85, }
},{
  "k" : "Float_ExistingTargetDamageForDFAAttack",
  "v" : { "type" : "Float", "floatVal" : 0.5, }
},{
  "k" : "Float_OwnMaxLegDamageForDFAAttack",
  "v" : { "type" : "Float", "floatVal" : 0.4, }
},{ "k" : "Float_LancePatrolRadius",
  "v" : { "type" : "Float", "floatVal" : 70, }
},{
  "k" : "Float_LanceMoveRadius", 
  "v" : { "type" : "Float", "floatVal" : 10, }
},{ 
  "k" : "Bool_PatrolShouldLoop",
  "v" : { "type" : "Bool", "boolVal" : true, }
},{ 
  "k" : "Int_RecentTargetThresholdPhases",
  "v" : { "type" : "Int", "intVal" : 11, }
},{
  "k" : "Float_PreferredTargetToHitThreshold",
  "v" : { "type" : "Float", "floatVal" : 0.3, }
},{
  "k" : "Float_RouteWaypointRadius", 
  "v" : { "type" : "Float", "floatVal" : 40, } 
},{ 
  "k" : "Float_PersonalSpaceRadius",
  "v" : { "type" : "Float", "floatVal" : 8, } 
},{ 
  "k" : "Bool_ProhibitTargetingPriorityTargetsAfterBeingTargeted",
  "v" : { "type" : "Bool", "boolVal" : true, }
},{
  "k" : "Float_PriorityAttackPercentage", 
  "v" : { "type" : "Float", "floatVal" : 100, }
},{ 
  "k" : "Float_PriorityMovePercentage",
  "v" : { "type" : "Float", "floatVal" : 100, }
} (Believe the should be a , here but the file is missing it at the moment)
{ 
 "k" : "Float_PreferLowerMovementFactorWeight",
 "v" : { "type" : "Float", "floatVal" : -0.5, }
},{
 "k" : "Float_PreferHigherPositionFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.1, }
},{
  "k" : "Float_PreferHigherExpectedDamageToHostileFactorWeight", 
  "v" : { "type" : "Float", "floatVal" : 0.9, }
},{
  "k" : "Float_PreferLowerExpectedDamageFromHostileFactorWeight",
  "v" : { "type" : "Float", "floatVal" : 0.0, }
},{ 
  "k" : "Float_PreferAttackFromBehindHostileFactorWeight",
  "v" : { "type" : "Float", "floatVal" : 0.1, }
},{
  "k" : "Float_PreferAttackFrom90DegreesToHostileFactorWeight",
  "v" : { "type" : "Float", "floatVal" : 0.05, }
},{ 
  "k" : "Float_PreferNoCloserThanMinDistToHostileFactorWeight", 
  "v" : { "type" : "Float", "floatVal" : 0.0, }
},{
  "k" : "Float_PreferBeingBehindBracedHostileFactorWeight",
  "v" : { "type" : "Float", "floatVal" : 0.2, }
},{
 "k" : "Float_PreferNoCloserThanPersonalSpaceToAllyFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 10.0, }
},{
 "k" : "Float_InfluenceMapSampleDistance",
 "v" : { "type" : "Float", "floatVal" : 20.0, }
},{
 "k" : "Float_PreferFacingHostileFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.6, }
},{ 
 "k" : "Float_PreferLessSteepPositionFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.3, }
},{
 "k" : "Float_PreferHigherDistanceFromClosestHostileFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.0, }
},{
 "k" : "Float_PreferLOSToFewestHostileFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.0, }
},{
 "k" : "Float_PreferLOSToMostHostilesFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.0, }
},{
 "k" : "Float_OptimalAllyDistance",
 "v" : { "type" : "Float", "floatVal" : 30.0, }
},{ 
 "k" : "Float_PreferOptimalDistanceToAllyFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.3, }
},{
 "k" : "Float_AcceptableHeatLevel",
 "v" : { "type" : "Float", "floatVal" : 2.2, }
},{
 "k" : "Float_SprintToCombatPercentage",
 "v" : { "type" : "Float", "floatVal" : 60.0, }
},{
 "k" : "Float_ThreatBattleValueRoot",
 "v" : { "type" : "Float", "floatVal" : 0.0, }
},{
 "k" : "Float_ShootingDamageMultiplier",
 "v" : { "type" : "Float", "floatVal" : 1.0, }
},{
 "k" : "Float_MeleeDamageMultiplier",
 "v" : { "type" : "Float", "floatVal" : 1.5, }
},{ 
 "k" : "Float_DFADamageMultiplier",
 "v" : { "type" : "Float", "floatVal" : 1.4, }
},{
 "k" : "Float_CoolDownRange",
 "v" : { "type" : "Float", "floatVal" : 100.0, }
},{
 "k" : "Float_PreferOutsideCoolDownRangeFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.0, }
},{
 "k" : "Float_PreferLessTargetableLocationFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.7, }
},{
 "k" : "Float_PreferHigherHeatSinkLocationsFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.4, }
},{
 "k" : "Float_PreferAttackingLowerArmorHostileFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.5, }
},{
 "k" : "Float_PreferPresentingHigherArmorToHostileFactorWeight",
 "v" : { "type" : "Float","floatVal" : 0.1,}
},{
 "k" : "Float_PreferredDamageRatioThreshold",
 "v" : { "type" : "Float", "floatVal" : 0.8,}
},{
 "k" : "Int_MeleeRevengeWindowPhaseCount",
 "v" : {  "type" : "Int","intVal" : 5, }
},{
  "k" : "Float_MeleeRevengeBonus",
  "v" : { "type" : "Float", "floatVal" : 2.5, }
},{
  "k" : "Float_MeleeDamageRatioCap",
  "v" : { "type" : "Float", "floatVal" : 1.5, }
},{ 
  "k" : "Float_MajorDamageRatio", 
  "v" : { "type" : "Float", "floatVal" : 5.0, }
},{
  "k" : "Float_HeatToDamageRatio",
  "v" : { "type" : "Float", "floatVal" : 2.0, }
},{
  "k" : "Bool_AllowTurningRearArmorToEnemy",
  "v" : { "type" : "Bool", "boolVal" : false, }
},{ 
  "k" : "Float_PreferInsideMeleeRangeFactorWeight",
  "v" : { "type" : "Float", "floatVal" : 0.5, }
},{
  "k" : "Int_HostileInfluenceCount", 
  "v" : { "type" : "Int", "intVal" : 6, }
},{
  "k" : "Int_AllyInfluenceCount",
  "v" : { "type" : "Int", "intVal" : 3, }
},{
  "k" : "Float_UnsteadyCausesDefensiveMovePercentage",
  "v" : { "type" : "Float", "floatVal" : 60,}
},{
 "k" : "Bool_Alerted",
 "v" : { "type" : "Bool", "boolVal" : false,}
},{
 "k" : "Float_UnsteadyCausesBracePercentage",
 "v" : { "type" : "Float", "floatVal" : 0,}
},{
 "k" : "Bool_RewriteNonAttackMoves",
 "v" : { "type" : "Bool", "boolVal" : true,}
},{ 
 "k" : "Float_PreferProximityToTaggedTargetFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0, }
},{
 "k" : "Float_PreferProximityToTaggedTargetFactorDistance",
 "v" : { "type" : "Float", "floatVal" : 0, }
},{
 "k" : "String_PreferProximityToTaggedTargetFactorTag",
 "v" : {"type" : "String", "stringVal" : "", }
},{
 "k" : "Float_AngularSelectionResolution", 
 "v" : { "type" : "Float", "floatVal" : 60.0,}
},{
 "k" : "Bool_UseDynamicLanceRoles",
 "v" : { "type" : "Bool", "boolVal" : true,}
},{
 "k" : "Float_MeleeBonusMultiplierWhenAttackingEvasiveTargets",
 "v" : { "type" : "Float","floatVal" : 1.5,}
},{
 "k" : "Float_MeleeBonusMultiplierWhenAttackingBracedTargets",
 "v" : { "type" : "Float", "floatVal" : 1.5, }
},{
 "k" : "Float_UnsteadinessToVirtualDamageConversionRatio",
 "v" : { "type" : "Float", "floatVal" : 1.25, }
},{
 "k" : "Float_PreferLocationsThatGrantGuardFactorWeight",
 "v" : { "type" : "Float", "floatVal" : 0.7, }
},{
 "k" : "Float_BraceWhenOverheatedPercentage", 
 "v" : { "type" : "Float", "floatVal" : 0, }
},{
 "k" : "Float_BulwarkThresholdPercentage",
 "v" : { "type" : "Float", "floatVal" : 40,}
},{
 "k" : "Bool_LogInfluenceMapCalculations",
 "v" : {"type" : "Bool", "boolVal" : false,}
},{
 "k" : "String_InfluenceMapCalculationLogDirectory",
 "v" : { "type" : "String", "stringVal" : "AI_Logs",}
},{
 "k" : "Bool_InfluenceMapCalculationLogIncludeZeroWeightedFactors",
 "v" : { "type" : "Bool", "boolVal" : false, }
},{ 
 "k" : "Bool_AlwaysDefensiveMood",
 "v" : { "type" : "Bool", "boolVal" : false, }
},{ 
 "k" : "Bool_AlwaysOffensiveMood",
 "v" : { "type" : "Bool", "boolVal" : false, }
},]
}

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