Chassisdef, Template

From Battletech Modding Wiki
Jump to: navigation, search

The Chassis file is the 'base' file for Battlemechs and lays out the actual Chassis that the Mech jsons use to define the actual mech's. This is the file that defines what weapons etc may go on each area of the mech etc.

{
"Description" : {
  "Id" : "ChassisTemplate",
  "Name" : "",
  "Details" : "",
  "Icon" : "",
  "Cost" : 0,
  "Rarity" : 0,
  "Purchasable" : false
},
"PrefabIdentifier" : "",
"PrefabBase" : "",
"Tonnage" : 0,
"InitialTonnage" : 0,
"weightClass" : "LIGHT",
"BattleValue" : 0,
"Heatsinks" : 0,
"TopSpeed" : 0,
"TurnRadius" : 0,
"Stability" : 0,
"StabilityDefenses" : [ 0,0,0,0,0,0],
"SpotterDistanceMultiplier" : 1,
"VisibilityMultiplier" : 1,
"SensorRangeMultiplier" : 1,
"Signature" : 0,
"Radius" : 0,
"PunchesWithLeftArm" : false,
"EngageRangeModifier" : 0,
"MeleeDamageMultiplier" : 1,
"MeleeDamageVariance" : 0,
"MeleeInstabilityModifier" : 1,
"MeleeToHitModifier" : 0,
"DFADamageMultiplier" : 1,
"DFAToHitModifier" : 0,
"DFASelfDamageMultiplier" : 1,
"DFASelfDamageVariance" : 0,
"DFAInstabilityModifier" : 1,
"Head" : {
  "Location" : "Head",
  "Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"LeftArm" : {
   Location: "LeftArm"
   "Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"LeftTorso" : {
 "Location" : "LeftTorso",
  "Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"CenterTorso" : {
 "Location" : "CenterTorso",
  "Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"RightTorso" : {
 "Location" : "RightTorso",
  "Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"RightArm" : {
 "Location" : "RightArm",
  "Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"LeftLeg" : {
 "Location" : "LeftLeg",
"Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"RightLeg" : {
 "Location" : "RightLeg",
"Hardpoints" : [
   {
   "WeaponMount" : "NotSet",
   "Omni" : false
   }
   ],
  "Tonnage" : 0,
  "InventorySlots" : 0,
  "MaxArmor" : 0,
  "MaxRearArmor" : -1,
  "InternalStructure" : 0
 },
"MovementCapDefID" : null,
"PathingCapDefID" : null,
"HardpointDataDefID" : null,
"DataManager" : null,
"LOSSourcePositions" : null,
"LOSTargetPositions" : null,
"Locations" : [
{"
 Location" : "Head",
 "Hardpoints" : [
  { 
   "WeaponMount" : "NotSet", 
   "Omni" : false 
  }
 ],
 "Tonnage" : 0,
 "InventorySlots" : 0,
 "MaxArmor" : 0,
 "MaxRearArmor" : -1,
 "InternalStructure" : 0
 },
 {
"Location" : "LeftArm",
"Hardpoints" : [
{
"WeaponMount" : "NotSet",
"Omni" : false
}
],
"Tonnage" : 0,
"InventorySlots" : 0,
"MaxArmor" : 0,
"MaxRearArmor" : -1,
"InternalStructure" : 0
},
{
"Location" : "LeftTorso",
"Hardpoints" : [
{
"WeaponMount" : "NotSet",
"Omni" : false
}
],
"Tonnage" : 0,
"InventorySlots" : 0,
"MaxArmor" : 0,
"MaxRearArmor" : -1,
"InternalStructure" : 0
},
{
"Location" : "CenterTorso",
"Hardpoints" : [
{
"WeaponMount" : "NotSet",
"Omni" : false
}
],
"Tonnage" : 0,
"InventorySlots" : 0,
"MaxArmor" : 0,
"MaxRearArmor" : -1,
"InternalStructure" : 0
},
{
"Location" : "RightTorso",
"Hardpoints" : [
{
"WeaponMount" : "NotSet",
"Omni" : false
}
],
"Tonnage" : 0,
"InventorySlots" : 0,
"MaxArmor" : 0,
"MaxRearArmor" : -1,
"InternalStructure" : 0
},
{
"Location" : "RightArm",
"Hardpoints" : [
{
"WeaponMount" : "NotSet",
"Omni" : false
}
],
"Tonnage" : 0,
"InventorySlots" : 0,
"MaxArmor" : 0,
"MaxRearArmor" : -1,
"InternalStructure" : 0
},
{
"Location" : "LeftLeg",
"Hardpoints" : [
{
"WeaponMount" : "NotSet",
"Omni" : false
}
],
"Tonnage" : 0,
"InventorySlots" : 0,
"MaxArmor" : 0,
"MaxRearArmor" : -1,
"InternalStructure" : 0
},
{
"Location" : "RightLeg",
"Hardpoints" : [
{
"WeaponMount" : "NotSet",
"Omni" : false
}
],
"Tonnage" : 0,
"InventorySlots" : 0,
"MaxArmor" : 0,
"MaxRearArmor" : -1,
"InternalStructure" : 0
}
]
}

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


Variables

  • Description { } - the main Description block see below for its contents
  • VariantName:- String value with the name of the variant eg "AS7-D" or "COM3-C" etc.
  • PrefabIdentifier:- String value pointing to the prefab that the 'base' of the chassis is in. eg "chrPrfMech_locustBase-001",
  • PrefabBase:- String value that seems to point to the specific file in the prefab eg "locust",
  • Tonnage:- Int value that states maximum tonnage of the chassis. eg 20
  • InitialTonnage:- Int weight with no armor, weapons etc (just the engine, cockpit, structure) eg 13
  • weightClass: - String value of the weight class valid classes are
    • "LIGHT"
    • "MEDIUM"
    • "HEAVY"
    • "ASSAULT"
  • BattleValue: Int- The BV2 of the unit? (Though seems to be the list price for it possibly)
  • HeatSinks: Int - number of heatsinks over the 10 in the engine?
  • TopSpeed: Int- Top speed of the mech in KP/H eg 85 (This is not active, and the value in the movedef is used instead.)
  • TurnRadius: Int: How far can it turn? 90 is the default in all current mechs (Also inactive.)
  • Stability:- Int, base stability value, 100 seems to be default.
  • StabilityDefenses: []- Array of INT values 6 in total unknown what they correlate with all are 0 at the moment.
  • SpotterDistanceMultiplier: Float value that adjusts how easy it is for a spotter to spot the mech. default appears to be 1.251
  • VisibilityMultiplier: Float value that adjusts when the unit becomes visible. Defaults is 1.0 so the same as in the constants
  • SensorRangeMultiplier: float value that adjusts how sensors can pick up this unit.
  • Signature: flaot value on how big it's signature is?
  • Radius: int, unknown
  • PunchesWithLeftArm: Bool, can the unit punch with it's left arm.
  • EngageRangeModifier: Int, modifier to engagement ranges?
  • MeleeDamage: Int, Base Melee damage.
  • MeleeInstability: int how much Instability is built up from melee
  • MeleeToHitModifier: Int, does the mech cause a To Hit modifier.
  • DFADamage: INT, how much DFA damage to deal.
  • DFAToHitModifier, Int if the mech modified the Death from above attack modifier.
  • DFASelfDamge, Int how much damage do we do to ourselves?
  • DFAInsability: Int, how much instability.
  • "LocationName": { } - The location we are defining, valid locations are: Head, LeftArm, LeftTorso, CenterTorso, RightTorso, Left Leg, Right Leg. eg: RightTorso: { } would have the information for the right torso within. for information on the contents of each block see Location Blocks below. These sections are missing for a few prebuilt mechs such as the Black Knight and appear to no longer be used by the current code. The Locations array below has the only values that matter.
  • MovementCapDefID: - String, the MoveDef file of the chassis.
  • PathingCapDefID:- string, the pathing definition for the chassis
  • HardpointDataDefID:- string, the hard point data def for this chassis
  • DataManager: unknown appears to be "null" for all files.
  • "LOSSourcePositions": [ ] array of Mesh X,Y,Z locations for the forward faces and where to run the LOS targeting from so 3 'groups in this block Front, left Side, Right side. each block as
    • { "x": position, "y": position, "z" position. }
  • "LOSTargetPositions" [] array of mesh locations to which to draw the LOS to, there are 4 values now but otherwise format is the same as the previous topic.
  • Locations: [ ] array of object values seems exactly the same as the earlier locationname block items (see below)

Description Block

The Description block does what you would presume it to do, describes the Chassis. It consists of

  • Id:- String value with the identifier used elsewhere in the game for this chassis eg "chassisdef_panther_PNT-9R" would be for the PNT-9R
  • Name:- String value with the name of the Chassis for easy Identification eg "Atlas"
  • Details:- String value with the details of the mech Chassis eg "The Locust 1V is one of the lightest etc"
  • Icon:- String value of the mech chassis icon eg "chrPrfMech_locustBase-001_portrait"
  • Cost:- Int, the base Chassis cost.
  • rarity:- Int, 0 - 10? how rare the mech chassis is with 0 being common and higher values being more rare
  • Purchasable:- bool, Seems to be set false in most mech chassis presume it is though if item is available to be brought on market.

Location Blocks

As each block is similar only the name really changes we have simply shown a single block here

  • Location:- String, Location name again, valid entries are the same as LocationName.
  • Hardpoints []- array containing { } bracketed items with the hardpoint mounts for that location units may have more then one { } set of brackets per location. The valid entries inside each { } entry must have
    • WeaponMount: - String value of the mount type valid appears to be: Energy, Missile and Ballistic
    • Omni:- Bool value defining if the mount is OMNI capable (which most mechs in 3025 will be 'false'
      • In this example we will see 2 people hardpoints one for a Missile and one for a Ballistic weapon (AC2 etc) Example: "Hardpoints": [ {"WeaponMount": "Missile","Omni": false}, { "WeaponMount": "Ballistic","Omni": false} ],
  • "Tonnage": Int value: most mechs appear to leave at 0.
  • InventorySlots: Int value - the Critical slots avalible in that location.
  • MaxArmor: Int value, Maximum amount of Armor the position may hold.
  • MaxRearArmor:- Int value, 0 on all but CTR, LTR, RTR, the amount of rear armor on the location.
  • InternalStructure:- Int the internal structure of the location

Important Information in regards to 'Movement'

A mech's movement is NOT defined by the above details as per HBS:
All movement for mechs is defined in the movedef file associated with the chassis they run on, and the Panther's is movedef_panther_PNT-9R.
Inside there, you can find the max walk distance - which is technically max run distance, essentially "How far the mech can move when not sprinting or jumping.' At 165 meters, that's a run of 6 hexes (5.5, to be specific, because of how we've adjusted some of the movement to work). Sprint is 1.75 times that distance, so a faster base movement means a faster sprint.

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