Guest User

Untitled

a guest
Jul 25th, 2017
537
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 57.32 KB | None | 0 0
  1. Blueprint format
  2.  
  3. The following is documentation of the contents of a blueprint file. It is valid Lua code. The entire file is a call to UnitBlueprint with a large table. Below is an incomplete list of the fields and their purposes.
  4. Adjacency
  5.  
  6.  
  7. AI section
  8.  
  9. AI information for the unit.
  10.  
  11. AI = {
  12.  
  13. Attacker = {
  14. RelocateToFire = 'true/false',
  15. },
  16. AttackAngle = 'n', <Under what angle the unit attacks its target after getting an attack order>
  17. AutoSurfaceToAttack = 'true/false', <Automatically surface to attack ground targets.>
  18. BeaconName = 'string', <This is the beacon that this unit will create under some circumstances.>
  19. GuardFormationName = 'string', <The formation name used for guarding this unit. Known formations: 'GuardFormation'>
  20. GuardRadius = 'n', <How far a unit on patrol will look off it's patrol path to go attack.>
  21. GuardReturnRadius = 'n', <Maximum range from the guarded unit before initiating return.>
  22. GuardScanRadius = 'n', <Guard range for the unit.>
  23. InitialAutoMode = 'true/false', <Initial auto mode behaviour for the unit.>
  24. NeedUnpack = 'true/false', <Unit should unpack before firing weapon.>
  25. RefuelingMultiplier = 'n', <This muliplier is applied when a staging platform is refueling an air unit.>
  26. RefuelingRepairAmount = 'n', <This amount of repair per second offered to refueling air units.>
  27. TargetBones = { <Some target bones setup for other units to aim at instead of the default center pos.>
  28. 'string',
  29. },
  30.  
  31. },
  32.  
  33. Abilities section
  34.  
  35. Abilities = {
  36. {
  37. Blueprint = 'string', <Unit abilitys like OverCharge.>
  38. },
  39. },
  40.  
  41. AnimSet section
  42.  
  43. AnimSet = {
  44. hunker = 'string',
  45. hunkerend = 'string',
  46. idle = 'string',
  47. killed = 'string',
  48. walk = 'string',
  49. },
  50. AnimTree = 'path', <Path to units ArimTree blueprint>
  51.  
  52.  
  53. Air section
  54.  
  55. Air control information for the unit.
  56.  
  57. Air = {
  58.  
  59. AutoLandTime = 'n', <Timer to automatically initiate landing on ground if idle.>
  60. BankFactor = 'n', <How much aircraft banks in turns; negative to lean out.>
  61. BankForward = 'true/false', <True if aircraft banks forward/back as well as sideways.>
  62. BombDropThreshold = 'n', <Distance from the target unit will start firing bombs.>
  63. BreakOffDistance = 'n', <Distance to break off before turning around for another attack run.>
  64. BreakOffTrigger = 'n', <Distance to target to trigger the breaking off attack.>
  65. CanFly = 'true/false', <Is the unit capable of flight?>
  66. CirclingDirChange = 'true/false', <Whether unit should ever change flight direction while circling.>
  67. CirclingDirChangeFrequencySec = 'n', <How often will it change direction when it's attack motion is back and forth, like a gunship.>
  68. CirclingElevationChangeRatio = 'n', <Elevation change ratio of unit when circling.>
  69. CirclingFlightChangeFrequency = 'n', <(Frequency of flight pattern change for unit.>
  70. CirclingRadiusChangeMaxRatio = 'n', <Max circling radius ratio for unit.>
  71. CirclingRadiusChangeMinRatio = 'n', <Min circling radius ratio for unit.>
  72. CirclingRadiusVsAirMult = 'n', <Multiplier to the circling radius when targeting another air unit.>
  73. CirclingTurnMult = 'n', <Adjust turning ability when in circling mode.>
  74. CombatTurnSpeed = 'n', <Maximum combat turn speed of the unit for special maneuvers.>
  75. EngageDistance = 'n', <Distance to being engaging enemy target in attack task.>
  76. FlyInWater = 'true/false', <Can this unit fly under water?>
  77. HoverOverAttack = 'true/false', <Whether unit should hover over the target directly to attack. (Used for cases like the CZAR)>
  78. KLift = 'n', <Controller proportional parameter for vertical motion.>
  79. KLiftDamping = 'n', <Controller damping parameter for vertical motion.>
  80. KMove = 'n', <Controller proportional parameter for horizontal motion.>
  81. KMoveDamping = 'n', <Controller damping parameter for horizontal motion.>
  82. KRoll = 'n', <Controller proportional parameter for roll changes.>
  83. KRollDamping = 'n', <Controller damping parameter for roll changes.>
  84. KTurn = 'n', <Controller proportional parameter for heading changes.>
  85. KTurnDamping = 'n', <Controller damping parameter for heading changes.>
  86. LiftFactor = 'n', <How much altitude the unit can gain/loose per second.>
  87. MaxAirspeed = 'n', <Maximum airspeed.>
  88. MaxEngineThrust = 'n', <Max thrust for the engine. Directly influences speed and acceleration.>
  89. MaxEngineTorque = 'n', <(?)(Found in various aircraft blueprints)>
  90. MinAirspeed = 'n', <Minimum combat airspeed.>
  91. NeedToComputeBombDrop = 'true/false', <Doesn't drop bombs until path is computed?>
  92. PredictAheadForBombDrop = 'n', <??Time in seconds or distance to target??>
  93. RandomBreakOffDistanceMult = 'n', <Random multiplier applied to break off distance for winged aircrafts.>
  94. RandomMaxChangeCombatStateTime = 'n', <Random max time to switch combat state in seconds for winged aircrafts.>
  95. RandomMinChangeCombatStateTime = 'n', <Random min time to switch combat state in seconds for winged aircrafts.>
  96. StartTurnDistance = 'n', <Distance from target at which to start turning to align with it.>
  97. TightTurnMultiplier = 'n', <Additional turning multiplier ability during a tight turn maneuver.>
  98. TransportHoverHeight = 'n', <This transport will stay at this height when picking up and dropping off units.>
  99. TurnSpeed = 'n', <Regular turn speed of the unit.>
  100. Winged = 'true/false', <Does the unit use wings for forward flight?>
  101.  
  102. },
  103.  
  104. Audio section
  105.  
  106. The Audio section describes the sounds that are associated with the unit. There are a large number of triggers for those sounds, listed below. Each trigger is given the result of a call to the Sound function. The Sound function takes three arguments. The first is the name of the bank that contains the sound. The second is the specific sound within that bank. The third is a setting that describes the level of detail at which the sound is played. This ensures that small ambient sounds from individual units aren't heard when the user has zoomed out too far to hear them.
  107.  
  108. Activate -
  109. ActiveLoop -
  110. AirUnitWaterImpact -
  111. AmbientMove -
  112. AmbientMoveLand -
  113. AmbientMoveWater -
  114. BarrelLoop -
  115. BarrelStart -
  116. BarrelStop -
  117. BeamLoop -
  118. BeamStart -
  119. BeamStop -
  120. CaptureLoop -
  121. ChargeStart -
  122. Close -
  123. CommanderArrival -
  124. Construct -
  125. ConstructLoop -
  126. ConstructStart -
  127. ConstructStop -
  128. DeathExplosion -
  129. Destroyed -
  130. DoneBeingBuilt -
  131. EnhanceEnd -
  132. EnhanceFail -
  133. EnhanceLoop -
  134. EnhanceStart -
  135. EnterWater -
  136. Fire -
  137. FireUnderWater -
  138. FootFallGeneric -
  139. FootFallGenericSeabed -
  140. HoverKilledOnWater -
  141. Killed -
  142. Landed -
  143. Landing -
  144. Load -
  145. MoveSharpTurn -
  146. MuzzleChargeStart -
  147. NuclearLaunchDetectedAeon -
  148. NuclearLaunchDetectedCybran -
  149. NuclearLaunchDetectedUEF -
  150. NuclearMissileInterceptedAeon -
  151. NuclearMissileInterceptedCybran -
  152. NuclearMissileInterceptedUEF -
  153. Open -
  154. Pack -
  155. ReclaimLoop -
  156. Refueling -
  157. ShieldOff -
  158. ShieldOn -
  159. StartCapture -
  160. StartMove -
  161. StartMoveAir -
  162. StartMoveLand -
  163. StartMoveWater -
  164. StartReclaim -
  165. StopMove -
  166. StopMoveLand -
  167. StopMoveWater -
  168. SubmergeStart -
  169. SurfaceStart -
  170. TakeOff -
  171. Thruster -
  172. TransitionLand -
  173. TransitionWater -
  174. UISelection -
  175. Unload -
  176. Unpack -
  177.  
  178.  
  179. BlueprintId section
  180.  
  181. BlueprintId is used for modding an existing blueprint. An example for usage is BlueprintId = 'uel0101' which would be the UEF Land Scout.
  182.  
  183. BlueprintId = 'string',
  184.  
  185. Build section
  186.  
  187. Build = {
  188. BuildArmManipulators = {
  189. {
  190. AimBone = 'string',
  191. AutoInitiateRepairCommand = true/false,
  192. PitchBone = 'string',
  193. YawBone = 'string',
  194. },
  195. },
  196. BuildScaffoldUnit = 'string', <ID for BuildScaffoldUnit>
  197. EffectBones = {
  198. 'string',
  199. },
  200. MaxRepairDistance = n,
  201. RepairScanRadius = n,
  202. RepairTargetCheckInterval = n,
  203. },
  204.  
  205. Categories section
  206.  
  207. This is a list of capitalized strings that describe categories to which the unit belongs. Many other parts of the game refer to these categories to affect how units interact. For instance, adjacency bonuses only apply to other units that contain the STRUCTURE category. Below is an exhaustive list of categories.
  208.  
  209. Note: Do not confuse these with Wikia categories or unit categories. These are specific to the internal implementation of Supreme Commander.
  210.  
  211. AIR -
  212. AIRSTAGINGPLATFORM -
  213. ANTIAIR -
  214. ANTIMISSILE -
  215. ANTINAVY -
  216. ANTISUB -
  217. ARTILLERY -
  218. BENIGN -
  219. BOMBER -
  220. BUILTBYCARRIER -
  221. BUILTBYENGINEER -
  222. CANTRANSPORTCOMMANDER -
  223. CAPTURE -
  224. CARRIER -
  225. COMMAND -
  226. CONSTRUCTION -
  227. CONSTRUCTIONSORTDOWN -
  228. COUNTERINTELLIGENCE -
  229. CYBRAN -
  230. DEFENSE -
  231. DIRECTFIRE -
  232. DRAGBUILD -
  233. ECONOMIC -
  234. ENERGYFABRICATION -
  235. ENERGYPRODUCTION -
  236. ENGINEER -
  237. EXPERIMENTAL -
  238. FACTORY -
  239. GATE -
  240. GROUNDATTACK -
  241. HIGHALTAIR -
  242. HOVER -
  243. HYDROCARBON -
  244. ILLUMINATE -
  245. INDIRECTFIRE -
  246. INTELLIGENCE -
  247. LAND -
  248. MASSEXTRACTION -
  249. MASSFABRICATION -
  250. MASSPRODUCTION -
  251. MASSSTORAGE -
  252. MOBILE -
  253. MOBILEGANTRYBUILDER --
  254. NAVAL -
  255. NEEDMOBILEBUILD -
  256. NUKE -
  257. OMNI -
  258. PATROLHELPER -
  259. POD -
  260. PODSTAGINGPLATFORM -
  261. RADAR -
  262. RALLYPOINT -
  263. REBUILDER -
  264. RECLAIM -
  265. RECLAIMABLE -
  266. REPAIR -
  267. SCOUT -
  268. SELECTABLE -
  269. SHIELD -
  270. SILO -
  271. SIZE4 -
  272. SIZE8 -
  273. SIZE9 -
  274. SIZE12 -
  275. SIZE16 -
  276. SIZE20 -
  277. SONAR -
  278. STRATEGIC -
  279. STRUCTURE -
  280. SUBCOMMANDER -
  281. SUBMERSIBLE -
  282. TACTICALMISSILEPLATFORM -
  283. TECH1 -
  284. TELEPORTBEACON -
  285. TRANSPORTATION -
  286. TRANSPORTFOCUS -
  287. UIBASICSORTCATEGORY --
  288. UEF -
  289. VISIBLETORECON -
  290. WALL -
  291.  
  292. CollisionOffsetX section
  293.  
  294. Note: The collision offset ones are to move the collision box away from the center of the unit. It's used to extend the collision box of floating units (like engineers) below the water to allow torpedoes to hit them.
  295.  
  296. CollisionOffsetX = 'n', <Offset collision by this much on the X Axis.>
  297.  
  298. CollisionOffsetY section
  299.  
  300. CollisionOffsetY = 'n', <Offset collision by this much on the Y Axis.>
  301.  
  302. CollisionOffsetZ section
  303.  
  304. CollisionOffsetZ = 'n', <Offset collision by this much on the Z Axis.>
  305.  
  306. CollisionShape section
  307.  
  308. CollisionShape = 'string', <Shape to use for collision db, 'None' for no collision. Allowed shapes: 'None', 'Box'>
  309.  
  310. Death section
  311.  
  312. Death = {
  313. DeathAnimWaitTime = n,
  314. DebrisPieces = true/false,
  315. ExplosionEffect = 'string',
  316. ExplosionTendrils = true/false,
  317. Light = true/false,
  318. },
  319.  
  320. Defense section
  321.  
  322. Defense information for the unit.
  323.  
  324. Defense = {
  325. AirThreatLevel = n, <Amount of threat this poses to air units.>
  326. ArmorType = 'string', <The armor type name; known armor types are 'Light', 'Normal', 'Commander', 'Structure'.>
  327. EconomyThreatLevel = n, <Amount of threat this poses to all units.>
  328. Health = 'n', <Starting health value for the unit.>
  329. MaxHealth = 'n', <Max health value for the unit. (It just could get higher through veteran buff or an enhancement)>
  330. RegenRate = 'n', <Amount of health to regenerate per second.>
  331. Shield = { <When a unit has a shield here are settings defined; Shield attributes are:>
  332.  
  333. AllowPenetration = 'true/false',
  334. CollisionOffsetX = 'n',
  335. CollisionOffsetY = 'n',
  336. CollisionOffsetZ = 'n',
  337. CollisionShape = 'string',
  338. ImpactEffects = 'string',
  339. Mesh = 'string',
  340. PanelArray = {
  341. Panel_1 = 'string',
  342. Panel_2 = 'string',
  343. },
  344. ShieldDamageAbsorb = 'n', <The % of damage the shield can Absorb.>
  345. ShieldMaxHealth = 'n', <The max health of the shield.>
  346. ShieldRechargeTime = 'n', <The time it takes for the shield to come back online when powered down>
  347. ShieldRegenRate = 'n', <The amount of health the shield regenerates, per second, when it's not taking damage>
  348. ShieldRegenStartTime = 'n', <The delay after getting hit by ordinance the shield starts recharging>
  349. ShieldReflectChance = n,
  350. ShieldReflectRandomVector = 'true/false',
  351. ShieldSize = 'n', <The radius of the shield.>
  352. ShieldType = 'string',
  353. ShieldVerticalOffset = 'n', <How many supcom units the shield is moved up (or down if negative) from normal>
  354. SizeX = n, <Horizontal left/right hit box radis for personal shields.>
  355. SizeY = n, <vertical hit box radis for personal shields.>
  356. SizeZ = n, <Horizontal up/down hit box radis for personal shields.>
  357. StartOn = 'true/false', <If false shield will start off and can be turned on with research or Factory Addons>
  358.  
  359. },
  360. SurfaceThreatLevel = 'n', <Amount of threat this poses to land units.>
  361.  
  362. },
  363.  
  364. Description section
  365.  
  366. This is the description of the unit. For example the description for the UEF tech 1 Tank MA12 Striker is '<LOC uel0201_desc>Medium Tank'. <LOC xxx_desc> is used for localisation which is defined in the strings_db.lua (in the file loc_XX.scd in the subdirectory \loc\XX\; XX is the shortcut for the localised language). If the localisation part is not set, the description in tags will be used for any language, which would be "Medium Tank" for this example.
  367.  
  368. Description = 'string',
  369.  
  370. Display section
  371.  
  372. Here is anything defined thats needed for visual stuff(?)
  373.  
  374. Display = {
  375.  
  376. Abilities = { 'string', }, <Shows the abilities of the unit. Multiple abilities could be added like 'string1', 'string2', etc.>
  377. AINames = { '<string1>', '<string2>', }, <Names that the AI can use to name the unit, provided the AI is programmed to do this.>
  378. AnimationActivate = 'string', <The animation that is played when the unit is completed (seen in experimentals, e.g. Megalith - XRL0403)>
  379. AnimationBuild = 'string', <Animation that is played whne the unit is building>
  380. AnimationDeath = { <Multiple animations could be added>
  381.  
  382. Animation = 'string', <animation death file is linked here: '/units/UnitID/UnitID_??.sca'>
  383. AnimationRateMax = 'n', <the maximum speed this animation is played at>
  384. AnimationRateMin = 'n', <the minimum speed this animation is played at>
  385. Weight = 'n', <This number affects how often a death animation is used when there are more than one. This value is relative rather than absolute.>
  386.  
  387. },
  388. AnimationOpen = 'string', <Animation open file is linked here: '/units/UnitID/UnitID_aopen.sca'>
  389. AnimationPermOpen = '?', <The animation that is played when the unit is done building>
  390. AnimationSurface = '?', <The animation that is played when the unit surfaces.>
  391. AnimationUpgrade = 'string', <The animation that is played when the unit is upgraded>
  392. AnimationWalk = 'string', <Animation walk file is linked here: '/units/UnitID/UnitID_??.sca'>
  393. AnimationWalkRate = 'n', <Controls the speed of the animation. Adjusting this number can cause or prevent "skating".>
  394. BlinkingLights = '?', <Uses on factorys for building lights>
  395. BlinkingLightsFx = '?', <(?)>
  396. BuildAttachBone = '?', <Build point or attach point for transports>
  397. DamageEffects = '?', <Damage table for effects sparks, smoke>
  398. DisplayName = 'string', <Units display name>
  399. EffectGroupClassification = 'string', <Small, Medium and large effect scale>
  400. ForcedBuildSpin = '?', <(?)>
  401. IdleEffects = { <Effects displayed when the unit is idle (e.g. glow beneath hovering units), multiple layers can be used.>
  402.  
  403. 'string' = { <Name of the layer where effects should be displayed.>
  404.  
  405. Effects = {
  406.  
  407. { <Multiple effects can be defined for a single layer, each of them must be in a block like that.>
  408.  
  409. Bones = { 'string1', 'string2'... }, <Names of bones to which the effect will be attached.>
  410. Offset = { 'n1', 'n2', 'n3', }, <Controls position of the effect relatively to the bone it's attached to. n1, n2 and n3 are respectively x, y and z coordinates (0, 0, 0 by default).>
  411. Scale = 'n', <Controls scale of the effect (1 by default).>
  412. Type = 'string', <Defines what effect will be used.>
  413.  
  414. },
  415.  
  416. },
  417.  
  418. },
  419.  
  420. },
  421. LayerChangeEffects = { <Effects displayed when the unit changes layers (e.g. when an aircraft lands or takes off).
  422.  
  423. 'string' = { <Defines for what transition the effects are created. 'string' is composed of 2 names of layers, first one is the old layer and the second is the new one. E.g.effects are needed for an aircraft landing, so the old layer is Air and the new one is Land, then the 'string' will be AirLand (LandAir would be the opposite - take off). Note: there is NO space between layer names.>
  424.  
  425. Effects = { <Exactly as in IdleEffects> },
  426.  
  427. },
  428.  
  429. },
  430.  
  431. },
  432. Mesh = { <(?)>
  433.  
  434. IconFadeInZoom = 'n', <The zoom level at which the strategic icon begins showing. Higher values increase how zoomed out you must be for the icon to appear.>
  435. LODs = { <Defines different Levels Of Detail, so that units become less detailed when player zooms out (to improve performance)>
  436. {
  437. LODCutoff = 80,
  438. MaterialSets = {
  439. {
  440. Materials = {
  441. {
  442. EffectName = 'Path', <Unit overlay effect used for personal shields>
  443. RampName = 'Path',
  444. ShaderMacros = 'string1', 'string2'...', <Shader overlays>
  445. },
  446. },
  447. Name = 'string', <Defines the above tables meterialset (Base, Shield)>
  448. },
  449. },
  450. },
  451. },
  452. },
  453. MotionChangeEffects = { (?) }, <(?)>
  454. MovementEffects = { <Effects displayed during movement of the unit.>
  455.  
  456. 'string' = { <Name of the layer for which the effects are displayed.>
  457.  
  458. Contrails = { <Contrails shown behind aircraft (in SupCom usually behind tips of wings).>
  459.  
  460. Bones = { 'string1', 'string2', ... }, <Names of the bones which will have the contrails attached.>
  461. {
  462. AnkleBone = 'string',
  463. FootBone = 'string',
  464. HipBone = 'string',
  465. KneeBone = 'string',
  466. OrientFoot = true/false,
  467. OrientFootAngleMax = n,
  468. OrientFootBlendHeight = n,
  469. Scale = n, <Scale of effect>
  470. Type = 'string',
  471.  
  472. },
  473. Effects = { <As in IdleEffects> },
  474. Treads = { <For units with treads or wheels, e.g. tanks, UEF engineers.>
  475.  
  476. ScrollTreads = 'true/false', <Should the treads be scrolled when unit is moving?>
  477. },
  478.  
  479. },
  480.  
  481. },
  482.  
  483. },
  484. Tarmacs = { (?) }, <(?)>
  485. UniformScale = 'n', <This is the scale of the unit size. This will only change the visual size, when changing this the collision hitbox should be adapted under SizeX, SizeY and SizeZ as well.>
  486.  
  487. },
  488.  
  489. Economy section
  490.  
  491. Economy information for the unit.
  492.  
  493. Economy = {
  494.  
  495. BuildableCategory = { 'string1', 'string2', }, <This define what units could be produced.>
  496. BuildCostEnergy = 'n', <Energy cost to build this unit.>
  497. BuildCostMass = 'n', <Mass cost to build this unit.>
  498. BuildRate = 'n', <How fast this unit build other units.>
  499. CaptureRate = n, <How fast this unit Captures other units.>
  500. CaptureTimeMult = n,
  501. EnergyValue = n, <Units energy cost to build>
  502. BuildTime = 'n', <The needed time when producing this unit; This is only a factor of time, not the real time to produce the unit.>
  503. InitialRallyX = 'n', <Default rally point X for the factory.>
  504. InitialRallyZ = 'n', <Default rally point Z for the factory.>
  505. MaintenanceConsumptionPerSecondEnergy = 'n', <Amount that define which amount of energy the unit is consuming per second; Used for Shields.>
  506. MassValue = n, <Units mass cost to build>
  507. MaxBuildDistance = 'n', <Maximum build range of the unit. The target must be within this range before the builder can perform operation.>
  508. MaxEnergyUse = 'n', <The maximum Amount of Energy the Unit can produce (see PARAGON xab1401)>
  509. MaxMassUse = 'n', <The maximum Amount of Mass the Unit can produce (see PARAGON xab1401)>
  510. MinBuildTime = 'n', <(?)>
  511. NeedToFaceTargetToBuild = 'true/false', <Builder needs to face target before it can build/repair.>
  512. ProductionPerSecondEnergy = 'n', <Amount of energy produced per second.>
  513. ProductionPerSecondMass = 'n', <Amount of mass produced per second.>
  514. ProductionPerSecondResearch = n, <Amount of research produced per second.>
  515. RebuildBonusIds = { 'string', }, <You will get bonus if you rebuild this unit over the wreckage of these wreckages. Multible BonusID's could be added.>
  516. RepairRate = n,
  517.  
  518. },
  519.  
  520. Footprint section
  521.  
  522. Unit footprint. How many o-grids it'll take up in the pathfinder. If you don't specify this the game will use a 'best guess' based off its collision box. Although even if you do specify a footprint size, the pathfinder will still do a best match against the footprint definitions in footprints.lua to figure out the pathfinding blueprint. This generally is not something you need to worry about. Apart from the pathfinding, the footprint also specifies the dimensions of the o-grid to occupy (hit ctrl-alt-o to see the ogrid and occuption by footprints).
  523.  
  524. Footprint = {
  525.  
  526. Flags = 'n', <(?)>
  527. MaxSlope = 'n', <(?)>
  528. MinWaterDepth = 'n', <(?)>
  529. OccupancyCaps = 'n', <(?)>
  530. SizeX = 'n', <(?)>
  531. SizeZ = 'n', <(?)>
  532.  
  533. },
  534.  
  535. General section
  536.  
  537. General information for the unit.
  538.  
  539. General = {
  540. Build = {
  541. Bones = {
  542. BuildEffectBones = {
  543. 'string',
  544. },
  545. },
  546. },
  547. BuildIconIndex = n,
  548. BuildIconPage = n,
  549. CapCost = 'integer', <Cost of the unit towards unit cap (default is 1.0)>
  550. CommandCaps = { <Command capability flags for this unit; CommandCaps has following subcategories:>
  551.  
  552. RULEUCC_Attack = 'true/false', <Whether the unit has an attack command.>
  553. RULEUCC_CallTransport = 'true/false', <Whether the unit can ask to be transported by a transport unit.>
  554. RULEUCC_Capture = 'true/false', <Whether the unit has a capture command.>
  555. RULEUCC_CloakToggle = 'true/false', <Whether the unit has a cloak toggle button.>
  556. RULEUCC_Dive = 'true/false', <Whether the unit has a dive toggle button (like on submarines).>
  557. RULEUCC_GenericToggle = 'true/false', <(?)>
  558. RULEUCC_Guard = 'true/false', <Whether the unit can guard other units.>
  559. RULEUCC_Ferry = 'true/false', <Whether the unit has the ferry command (transports).>
  560. RULEUCC_IntelToggle = 'true/false', <Whether the unit has a toggle for intelligence (radar, sonar, cloaking, stealth, etc.).>
  561. RULEUCC_JammingToggle = 'true/false', <Whether the unit has a toggle for radar jamming.>
  562. RULEUCC_Move = 'true/false', <Whether the unit has a move command>
  563. RULEUCC_Nuke = 'true/false', <Whether the unit can be commanded to launch a strategic missile.>
  564. RULEUCC_Overcharge = 'true/false', <Whether the unit has the Overcharge command (ACU).>
  565. RULEUCC_Patrol = 'true/false', <Whether the unit has the patrol command.>
  566. RULEUCC_Pause = 'true/false', <Whether this unit can pause construction of units/structures>
  567. RULEUCC_ProductionToggle= 'true/false', <Whether this unit can pause some sort of production that also drains resources.>
  568. RULEUCC_Reclaim = 'true/false', <Whether the unit has the reclaim command.>
  569. RULEUCC_Repair = 'true/false', <Whether the unit has the repair command.>
  570. RULEUCC_RetaliateToggle = 'true/false', <Whether the unit can control the retaliation of it's weapons>
  571. RULEUCC_Sacrifice = 'true/false', <Whether the unit has the sacrifice command.>
  572. RULEUCC_ShieldToggle = 'true/false', <Whether the unit has an on/off toggle for a shield.>
  573. RULEUCC_SiloBuildNuke = 'true/false', <Whether the unit can be commanded to build strategic missiles.>
  574. RULEUCC_SiloBuildTactical = 'true/false', <Whether the unit can be commanded to build tactical missiles.>
  575. RULEUCC_SpecialAction = 'true/false', <(?)>
  576. RULEUCC_SpecialToggle = 'true/false', <(?)>
  577. RULEUCC_StealthToggle = 'true/false', <Whether the unit has an on/off toggle for the stealth ability.>
  578. RULEUCC_Stop = 'true/false', <whether the unit can issue a stop command to itself>
  579. RULEUCC_Tactical = 'true/false', <(?)>
  580. RULEUCC_Teleport = 'true/false', <Whether the unit can be commanded to teleport itself (upgraded ACUs).>
  581. RULEUCC_Transport = 'true/false', <Whether the unit can be ordered to transport other units (transports).>
  582. RULEUCC_WeaponToggle = 'true/false', <(?)>
  583.  
  584. },
  585. ExperienceTable = 'string',
  586. ExperienceValue = n,
  587. FactionName = 'string', <Faction the unit belongs to. Factions are 'Illuminate', 'Cybran' and 'UEF'.>
  588. Icon = 'string',
  589. MoveEnergyCost = n,
  590. QuickSelectPriority = n,
  591. SelectionPriority = n,
  592. TeleportCooldown = n, <Time till unit can be teleported again>
  593. TeleportRange = n,
  594. UnitName = 'string', <The name of the unit for the debug build menu.>
  595. UnitWeight = 'n', <(?)>
  596. },
  597.  
  598. Intel section
  599.  
  600. Intel information for the unit.
  601.  
  602. Intel = {
  603.  
  604. Cloak = 'true/false', <Single unit cloaking.>
  605. CloakFieldRadius = 'n', <How far our cloaking goes.>
  606. FreeIntel = 'true/false', <The intel is free. Without this the unit will try drain energy for it's intelligence (radar, sonar, etc) and turn off if you run out. >
  607. JamRadius = {Max = 'n', Min = 'n',}, <How far we create fake blips.>
  608. JammerBlips = 'n', <How many blips does a jammer produce?>
  609. OmniRadius = 'n', <How far our omni coverage goes.>
  610. RadarRadius = 'n', <How far our radar coverage goes.>
  611. RadarStealth = 'true/false', <Single unit radar stealth.>
  612. RadarStealthFieldRadius = 'n', <How far our radar stealth goes.>
  613. ReactivateTime = 'n', <When you run out of power, how long until this unit turns back on.>
  614. ShowIntelOnSelect = 'true/false', <Show intel radius of unit if selected.>
  615. SonarRadius = 'n', <How far radar coverage goes.>
  616. SonarStealth = 'true/false', <Single unit sonar stealth.>
  617. SonarStealthFieldRadius = 'n', <How far our sonar stealth goes.>
  618. SpoofRadius = {Max = 'n', Min = 'n',}, <How far off displace blip.>
  619. VisionRadius = 'n', <How far we can see above water (and land?).>
  620. WaterVisionRadius = 'n', <How far we can see underwater,>
  621.  
  622. },
  623.  
  624. Navigation section
  625.  
  626. Navigation = {
  627. IgnoreNeighbors = true/false,
  628. Radius = n, < A radius for other units to avid>
  629. },
  630.  
  631. LifeBarHeightEdit LifeBarHeight sectionEdit
  632.  
  633. LifeBarHeight = 'n', <Height of lifebar in OGrids.>
  634.  
  635. LifeBarOffsetEdit LifeBarOffset sectionEdit
  636.  
  637. LifeBarOffset = 'n', <Vertical offset from unit for lifebar.>
  638.  
  639. LifeBarRenderEdit LifeBarRender sectionEdit
  640.  
  641. LifeBarRender = 'true/false', <Should render lifebar or not.>
  642.  
  643. LifeBarSizeEdit LifeBarSize sectionEdit
  644.  
  645. LifeBarSize = 'n', <Size of lifebar in OGrids.>
  646.  
  647. Merge section
  648.  
  649. Merge is used for moding an existing blueprint. With Merge = 'true' the BlueprintId must be set.
  650.  
  651. Merge = 'true/false',
  652.  
  653. Physics section
  654.  
  655. Here are the physic behaviors and similar defined.
  656.  
  657. Physics = {
  658.  
  659. AttackElevation = 'n', <Preferred attack height when attacking ground targets. (used by dive bombers)>
  660. BackUpDistance = 'n', <Distance that the unit will just back up if it is easier to do so.>
  661. BankingSlope = 'n', <How much the unit banks in corners (negative to lean outwards).>
  662. BuildOnLayerCaps = { <Unit may be built on these layers (only applies to structures); Subcategories are:>
  663.  
  664. LAYER_Air = '?', <If true, unit will leave factory flying.>
  665. LAYER_Land = '?', <If true, unit will be built standing or hovering on land.>
  666. LAYER_Orbit = '?', <(?)>
  667. LAYER_Seabed = '?', <If true, unit will leave factory partly underwater (standing on the floor of the water body).>
  668. LAYER_Sub = '?', <If true, unit will leave factory completely submerged underwater (floating or standing on the floor of the water body).>
  669. LAYER_Water = '?', <If true, unit will leave factory partly above the water floating.>
  670.  
  671. },
  672. BuildRestriction = 'string', <Special build restrictions (mass deposit, thermal vent, etc).>
  673. CatchUpAcc = '10', <Acceleration to allow unit to catch up to the target when it starts to drift.>
  674. CollisionPushClass = n,
  675. CollisionPushable = true/false,
  676. DragCoefficient = '?', <(?)>
  677. Elevation = 'n', <Prefferred height above (-below) land or water surface.>
  678. FlattenSkirt = 'true/false', <If true, terrain under building's skirt will be flattened.>
  679. FuelRechargeRate = 'n', <Unit fuels up at this rate per second.>
  680. FuelUseTime = 'n', <Unit has fuel for this number of seconds.>
  681. LayerChangeOffsetHeight = 'n', <An offset to the layer change height used during the transition between seabed/water and land.>
  682. LayerTransitionDuration = 'n', <Transition time in seconds when going from water/land and land/water.>
  683. MaxAcceleration = 'n', <Maximum acceleration for the unit.>
  684. MaxBrake = 'n', <Maximum braking acceleration for the unit.>
  685. MaxGroundVariation = 'n', <Maximum elevation difference across skirt for build site.>
  686. MaxSpeed = 'n', <Maximum speed for the unit.>
  687. MaxSpeedReverse = 'n', <Maximum speed for the unit in reverse.>
  688. MaxSteerForce = 'n', <Maximum steer force magnitude that can be applied to acceleration.>
  689. MeshExtentsX = '?', <(?)>
  690. MeshExtentsY = '?', <(?)>
  691. MeshExtentsZ = '?', <(?)>
  692. MinSpeedPercent = '?', <(?)>
  693. MotionType = 'string', <Method of locomotion.>
  694. OccupyRects = 'string', <Set up the occupy rectangles of the unit that will override the footprint.>
  695. RaisedPlatforms = 'string', <Raised platform definition for ground units to move on.>
  696. RollDamping = 'n', <How much damping there is against rolling motion (1 = no motion at all).>
  697. RollStability = 'n', <How stable the unit is against rolling (0 to 1).>
  698. RollOffPoints = '?', <(?)>
  699. RotateBodyWhileMoving = 'true/false', <Ability to rotate body to aim weapon slaved to body while in still in motion.>
  700. RotateOnSpot = 'true/false', <This unit can tries to rotate on the spot.>
  701. SkirtOffsetX = 'n', <Offset of left edge of skirt from left edge of footprint. (Should be <= 0)>
  702. SkirtOffsetZ = 'n', <Offset of top edge of skirt from left edge of footprint. (Should be <= 0)>
  703. SkirtSizeX = 'n', <Unit construction pad Size X for building.>
  704. SkirtSizeZ = 'n', <Unit construction pad Size Z for building.>
  705. StandUpright = 'true/false', <Stands upright regardless of terrain,>
  706. TurnFacingRate = 'n', <Turn facing damping for the unit, usually used for hover units only.>
  707. TurnRadius = 'n', <Turn radius for the unit, in wolrd units.>
  708. TurnRate = 'n', <Turn radius for the unit, in degrees per second.>
  709. WobbleFactor = 'n', <How much wobbling for the unit while hovering.>
  710. WobbleSpeed = 'n', <How fast is the wobble, The faster the less stable looking.>
  711.  
  712. },
  713.  
  714. ResearchUpgrades section
  715.  
  716. ResearchUpgrades = {
  717. RESEARCH_ITEM_NAME = {
  718. Weapons = {
  719. AntiAir = true/false,
  720. },
  721. },
  722. },
  723.  
  724. SelectionCenterOffsetX section
  725.  
  726. SelectionCenterOffsetX = 'n', <X center offset of selection box>
  727.  
  728. SelectionCenterOffsetY section
  729.  
  730. SelectionCenterOffsetY = 'n', <Y center offset of selection box>
  731.  
  732. SelectionCenterOffsetZ section
  733.  
  734. SelectionCenterOffsetZ = 'n', <Z center offset of selection box>
  735.  
  736. SelectionSizeX section
  737.  
  738. SelectionSizeX and SelectionSizeZ define the frame around the selected unit.
  739.  
  740. SelectionSizeX = 'n', <X Size of selectien box.>
  741.  
  742. SelectionSizeY section
  743.  
  744. SelectionSizeY adjusts the height of the selection box.
  745.  
  746. SelectionSizeY = 'n', <Y Size of selectien box.>
  747.  
  748. SelectionSizeZ section
  749.  
  750. SelectionSizeX and SelectionSizeZ define the frame around the selected unit.
  751.  
  752. SelectionSizeZ = 'n', <Z Size of selectien box.>
  753.  
  754. SelectionThickness section
  755.  
  756. Use this to modify the thickness of the rendered selection indicator for the unit.
  757.  
  758. SelectionThickness = 'n',
  759.  
  760. SelectionYOffset section
  761.  
  762. SelectionYOffset = 'n', <How far to reduce top of collision box for selection (default 0.5)>
  763.  
  764. SizeX section
  765.  
  766. SizeX, SizeY and SizeZ define the collision box for the unit. The collision box is used to detect hits on the unit. If you change the model size the collision box should be adapted.
  767.  
  768. SizeX = 'n',
  769.  
  770. SizeY section
  771.  
  772. SizeX, SizeY and SizeZ define the collision box for the unit. The collision box is used to detect hits on the unit. If you change the model size the collision box should be adapted.
  773.  
  774. SizeY = 'n',
  775.  
  776. SizeZ section
  777.  
  778. SizeX, SizeY and SizeZ define the collision box for the unit. The collision box is used to detect hits on the unit. If you change the model size the collision box should be adapted.
  779.  
  780. SizeZ = 'n',
  781.  
  782. IconName section
  783.  
  784. Name of the strategic icon to use for this unit (seen when zoomed out).
  785.  
  786. StrategicIconName = 'string',
  787.  
  788. The structure of an icon is icon_xxxY_zzz
  789.  
  790. xxx stands for the unit type which are:
  791.  
  792. bomber - Bomber (Air Unit)
  793. bot - Bot/Mech (Land Unit)
  794. commander - ACU/SCU (Land Unit)
  795. experimental - Experimental Unit
  796. factory - Factory (Land Unit)
  797. fighter - Fighter/Interceptor (Air Unit)
  798. gunship - Gunship/Air Transport (Air Unit)
  799. land - Vehicle/Tank (Land Unit)
  800. ship - Ships (Sea Unit)
  801. structure - Structure (Land Unit)
  802. sub - Submarine (Sea Unit)
  803.  
  804. Y stands for the tech level (1 - 3). If no tech level is given a strategic icon without the units tech level is shown.
  805.  
  806. zzz stands for the function of the unit which are:
  807.  
  808. air - Air Factory / Aircraft Staging
  809. antiair - Anti-Air Weapons
  810. antimissile - Missile Defense
  811. antinavy - Torpedo Weapons
  812. artillery - Artillery Weapons
  813. counterintel - Stealth/Cloaking/Radar Jamming
  814. directfire - Direct Fire Weapons
  815. energy - Energy producing/storaging
  816. engineer - Engineering Suit
  817. generic - Undefined unit type
  818. intel - Radar/Sonar
  819. land - Land Factory
  820. mass - Mass producing/storaging
  821. missile - Missile Weapons
  822. naval - Naval Factory
  823. shield - Shielding
  824. transport - Transporting
  825. wall - Wall
  826.  
  827. A complete list of avaible icons included in the game:
  828.  
  829. icon_bomber_antinavy
  830. icon_bomber_directfire
  831. icon_bomber_generic
  832. icon_bomber1_antinavy
  833. icon_bomber1_directfire
  834. icon_bomber1_generic
  835. icon_bomber2_antinavy
  836. icon_bomber2_directfire
  837. icon_bomber2_generic
  838. icon_bomber3_antinavy
  839. icon_bomber3_directfire
  840. icon_bomber3_generic
  841. icon_bot_directfire
  842. icon_bot_generic
  843. icon_bot1_directfire
  844. icon_bot1_generic
  845. icon_bot2_directfire
  846. icon_bot2_generic
  847. icon_bot3_directfire
  848. icon_bot3_generic
  849. icon_commander_generic
  850. icon_experimental_generic
  851. icon_factory_air
  852. icon_factory_generic
  853. icon_factory_land
  854. icon_factory_naval
  855. icon_factory1_air
  856. icon_factory1_generic
  857. icon_factory1_land
  858. icon_factory1_naval
  859. icon_factory2_air
  860. icon_factory2_generic
  861. icon_factory2_land
  862. icon_factory2_naval
  863. icon_factory3_air
  864. icon_factory3_generic
  865. icon_factory3_land
  866. icon_factory3_naval
  867. icon_fighter_antiair
  868. icon_fighter_directfire
  869. icon_fighter_generic
  870. icon_fighter_intel
  871. icon_fighter1_antiair
  872. icon_fighter1_directfire
  873. icon_fighter1_generic
  874. icon_fighter1_intel
  875. icon_fighter2_antiair
  876. icon_fighter2_directfire
  877. icon_fighter2_generic
  878. icon_fighter2_intel
  879. icon_fighter3_antiair
  880. icon_fighter3_directfire
  881. icon_fighter3_generic
  882. icon_fighter3_intel
  883. icon_gunship_directfire
  884. icon_gunship_generic
  885. icon_gunship_transport
  886. icon_gunship1_directfire
  887. icon_gunship1_generic
  888. icon_gunship1_transport
  889. icon_gunship2_directfire
  890. icon_gunship2_generic
  891. icon_gunship2_transport
  892. icon_gunship3_directfire
  893. icon_gunship3_generic
  894. icon_gunship3_transport
  895. icon_land_antiair
  896. icon_land_artillery
  897. icon_land_counterintel
  898. icon_land_directfire
  899. icon_land_engineer
  900. icon_land_generic
  901. icon_land_intel
  902. icon_land_missile
  903. icon_land_shield
  904. icon_land1_antiair
  905. icon_land1_artillery
  906. icon_land1_counterintel
  907. icon_land1_directfire
  908. icon_land1_engineer
  909. icon_land1_generic
  910. icon_land1_intel
  911. icon_land1_missile
  912. icon_land1_shield
  913. icon_land2_antiair
  914. icon_land2_artillery
  915. icon_land2_counterintel
  916. icon_land2_directfire
  917. icon_land2_engineer
  918. icon_land2_generic
  919. icon_land2_intel
  920. icon_land2_missile
  921. icon_land2_shield
  922. icon_land3_antiair
  923. icon_land3_artillery
  924. icon_land3_counterintel
  925. icon_land3_directfire
  926. icon_land3_engineer
  927. icon_land3_generic
  928. icon_land3_intel
  929. icon_land3_missile
  930. icon_land3_shield
  931. icon_ship_air
  932. icon_ship_antiair
  933. icon_ship_antinavy
  934. icon_ship_directfire
  935. icon_ship_generic
  936. icon_ship_intel
  937. icon_ship1_air
  938. icon_ship1_antiair
  939. icon_ship1_antinavy
  940. icon_ship1_directfire
  941. icon_ship1_generic
  942. icon_ship1_intel
  943. icon_ship2_air
  944. icon_ship2_antiair
  945. icon_ship2_antinavy
  946. icon_ship2_directfire
  947. icon_ship2_generic
  948. icon_ship2_intel
  949. icon_ship3_air
  950. icon_ship3_antiair
  951. icon_ship3_antinavy
  952. icon_ship3_directfire
  953. icon_ship3_generic
  954. icon_ship3_intel
  955. icon_structure_air
  956. icon_structure_antiair
  957. icon_structure_antimissile
  958. icon_structure_antinavy
  959. icon_structure_artillery
  960. icon_structure_counterintel
  961. icon_structure_directfire
  962. icon_structure_energy
  963. icon_structure_generic
  964. icon_structure_intel
  965. icon_structure_land
  966. icon_structure_mass
  967. icon_structure_missile
  968. icon_structure_naval
  969. icon_structure_shield
  970. icon_structure_transport
  971. icon_structure_wall
  972. icon_structure1_air
  973. icon_structure1_antiair
  974. icon_structure1_antimissile
  975. icon_structure1_antinavy
  976. icon_structure1_artillery
  977. icon_structure1_counterintel
  978. icon_structure1_directfire
  979. icon_structure1_energy
  980. icon_structure1_generic
  981. icon_structure1_intel
  982. icon_structure1_land
  983. icon_structure1_mass
  984. icon_structure1_missile
  985. icon_structure1_naval
  986. icon_structure1_shield
  987. icon_structure1_transport
  988. icon_structure2_air
  989. icon_structure2_antiair
  990. icon_structure2_antimissile
  991. icon_structure2_antinavy
  992. icon_structure2_artillery
  993. icon_structure2_counterintel
  994. icon_structure2_directfire
  995. icon_structure2_energy
  996. icon_structure2_generic
  997. icon_structure2_intel
  998. icon_structure2_land
  999. icon_structure2_mass
  1000. icon_structure2_missile
  1001. icon_structure2_naval
  1002. icon_structure2_shield
  1003. icon_structure2_transport
  1004. icon_structure3_air
  1005. icon_structure3_antiair
  1006. icon_structure3_antimissile
  1007. icon_structure3_antinavy
  1008. icon_structure3_artillery
  1009. icon_structure3_counterintel
  1010. icon_structure3_directfire
  1011. icon_structure3_energy
  1012. icon_structure3_generic
  1013. icon_structure3_intel
  1014. icon_structure3_land
  1015. icon_structure3_mass
  1016. icon_structure3_missile
  1017. icon_structure3_naval
  1018. icon_structure3_shield
  1019. icon_structure3_transport
  1020. icon_sub_antinavy
  1021. icon_sub_directfire
  1022. icon_sub_generic
  1023. icon_sub_missile
  1024. icon_sub1_antinavy
  1025. icon_sub1_directfire
  1026. icon_sub1_generic
  1027. icon_sub1_missile
  1028. icon_sub2_antinavy
  1029. icon_sub2_directfire
  1030. icon_sub2_generic
  1031. icon_sub2_missile
  1032. icon_sub3_antinavy
  1033. icon_sub3_directfire
  1034. icon_sub3_generic
  1035. icon_sub3_missile
  1036.  
  1037. StrategicIconSortPriority section
  1038.  
  1039. This is set to an integer that describes the unit's position in the list of selected units when different unit types are selected. 0 renders on top, 255 on bottom.
  1040.  
  1041. StrategicIconSortPriority = 'n',
  1042.  
  1043. Transport section
  1044.  
  1045. Transport related information for the unit.
  1046.  
  1047. Transport = {
  1048.  
  1049. StorageSize = n, < How many slots the unit takes up in a trasport>
  1050. TeleportTime = n, <Time that takes unit to be teleported>
  1051.  
  1052. },
  1053.  
  1054. UseOOBTestZoom section
  1055.  
  1056. Use OOB hit test for this unit when camera is below this zoom level. Usually we use screen space to do unit selection, but occasionally we want to use the unit's oriented bounding box (OBB) instead. So we have UseOOBTestZoom.
  1057.  
  1058. UseOOBTestZoom = 'n',
  1059.  
  1060. Weapons section
  1061.  
  1062. Weapons define which weapons are attached to a unit and how they are configured. Nearly everything that is needed to make a weapon workable is set under this category (blueprint's category).
  1063.  
  1064. Note: The following is just basic information. For more details see Blueprint/Weapon
  1065.  
  1066. Weapons = {
  1067. AboveWaterFireOnly = true,
  1068. AboveWaterTargetsOnly = 'true/false',
  1069. Audio = '?', <Informations about the audio files used by the weapon>
  1070. AutoInitiateAttackCommand = 'true/false', <If the unit has no issued commands and has a weapon that has AutoInitiateAttackCommand set, then if it finds a suitable target it will issue an attack command to go after the target.>
  1071. AutoInitiateAttackOnPatrol = 'true/false',
  1072. BallisticArc = 'string', <Ballistic arcs that should be used on the projectile. RULEUBA_None, RULEUBA_LowArc or RULEUBA_HighArc>
  1073. BeamCollisionDelay = 'n', <Every X seconds, this beam will collide and do damage>
  1074. BeamLifetime = 'n', <The amount of time the beam exists>
  1075. BombDropThreshold = 'n',
  1076. CameraShakeDuration = 'n', <time to maintain the camera shake>
  1077. CameraShakeMax = 'n', <Max size of the camera shake>
  1078. CameraShakeMin = 'n', <Minimum size of the camera shake>
  1079. CameraShakeRadius = 'n', <How far from the unit should the camera shake>
  1080. CannotAttackGround = 'true/false', <Weapon can not attack ground>
  1081. CollideFriendly = 'true/false' <Should the unit collide against friendly meshes>
  1082. Damage = 'n', <Damage value>
  1083. DamageFriendly = 'true/false', <Should we damage friendly units>
  1084. DamageRadius = 'n', <Blast Radius>
  1085. DamageType = 'string', <The type of damage the unit will do. 'Normal' will affect all units>
  1086. DisplayName = 'string', <Just for debugging. "dbg weapons" on the console shows the weapon names. Also some errors that we detect in script code will print the name of the weapon to help track down the issue.>
  1087. DoTPulses = 'n', <The number of times the damage will be dealt>
  1088. DoTTime = 'n', <Length of Time the Damage over Time (DoT) will last in seconds.>
  1089. DummyWeapon = '?', <This instructs the engine not to create a C++ weapon object that is usually linked with the script object. This is for purely script driven weapons (like death weapons). >
  1090. FireTargetLayerCaps = {} = '?', <FireTargetLayerCapsTable allows you to pick which layers you can target in relation to the layer that you are currently at>
  1091. FiringRandomness = 'n', <How much random inaccuracy should we be from the target>
  1092. FiringTolerance = 'n', <How much misalignment can the barrel be before starting to fire. Used when you are trying to target ammo that does not require lots of accuracy due to the size of their damage radius or because the ammo does automatic targetting>
  1093. InitiallyDisabled = 'true/false', <Weapon starts disabled and is enabled later on by research>
  1094. HeadingArcCenter = '?', <Controls what the weapon is allowed to target in reference to the heading of the unit>
  1095. HeadingArcRange = '?', <Controls what the weapon is allowed to target in reference to the arc center, this is degrees on either side>
  1096. HideMuzzle = 'true/false', <Indicates that the muzzle bones will be hidden when fired and turned back on before muzzle recharge and during idle. Useful for weapons that show the projectile in the art then fire it off. (Mobile missile launchers)> **this must be put inside the Rack {} but outside the muzzlebones {}
  1097. Label = 'string', <Label is linking the blueprints (unitid_unit.bp) weapon information with the script (unitid_script.lua) weapon information. For example: blueprint: Weapon { Label = 'FrontTurret01', } script: Weapons = { FrontTurret01 = Class(TDFGaussCannonWeapon) {} }. If the Label doeas not match the weapon will not be workable.>
  1098. MaxRadius = 'n', <How far does the target need to be before we start firing>
  1099. MetaImpactAmount = '?', <Deprecated attribute (Changing these will do nothing to the weapon)>
  1100. MetaImpactRadius = '?', <Deprecated attribute (Changing these will do nothing to the weapon)>
  1101. MuzzleBones = '?', <{<List of muzzle bones>}>
  1102. MuzzleChargeDelay = 'n', <The time that the muzzle will wait between playing the FxMuzzleFlash table and the creation of the projectile. Note: This will delay the firing of the projectile. So if you set the rate of fire to fire quickly, this will throttle it>
  1103. MuzzleSalvoDelay = 'n', <Time in between muzzles firing. Setting to 0 = all muzzle fire together>
  1104. MuzzleSalvoSize = 'n', <Number of times the muzzle will fire during a rack firing>
  1105. MuzzleVelocity = 'n', <Speed in which the projectile comes out of the muzzle. This speed is used in the ballistics calculations. If you weapon doesn't fire at its max radius, this may be too low>
  1106. MuzzleVelocityReduceDistance = 'n', <MuzzleVelocityReduceDistance was put there so weapons that have a high muzzle velocity because they have a huge range, like an artillery piece, wouldn't point right at something that's close, it'll slow down it's shot and still have a nice arc to it>
  1107. NeedPrep = 'true/false', <If NeedProp is true then whenever the unit aquires a new target and is ready to attack it it will first run the OnGotTarget script on the weapon.>
  1108. NeedToComputeBombDrop = 'true/false',
  1109. ProjectileId = 'string', <Blueprint of the projectile to fire>
  1110. ProjectileLifetime = 'n', <How long the projectile lives>
  1111. ProjectilesPerOnFire = 'n', <Deprecated attribute (Changing these will do nothing to the weapon)>
  1112. RackBones = '?', <Bone Used for Rack Recoil>
  1113. RackFireTogether = 'true/false', <Do all racks fire simultaneously?>
  1114. RackRecoilDistance = 'n', <Distance racks will recoil, Z axis, local coords>
  1115. RackRecoilReturnSpeed = 'n', <Time it take for the rack to return>
  1116. RackReloadTimeout = 'n', <Seconds before the weapon will reload when it didn't go through all its racks>
  1117. RackSalvoChargeTime = 'n', <Time before the racks start firing>
  1118. RackSalvoFiresAfterCharge = 'true/false', <Does the racks immediately fire when charge is done or wait until next OnFire event?>
  1119. RackSalvoReloadTime = 'n', <Time the racks will reload before starting its next charge/salve cycle>
  1120. RackSalvoSize = 'n', <Number of times the racks will fire before its reload period>
  1121. RackSlavedToTurret = 'true/false', <All rack bones are slaved to the turret pitch bone?>
  1122. RateOfFire = 'n', <Rack firings per second. You can use decimals for fire rates that are longer than a second>
  1123. SkipReadyState = 'true/false',
  1124. SlavedToBody = 'true/false',
  1125. SlavedToBodyArcRange = 'n',
  1126. StopOnPrimaryWeaponBusy = 'true/false',
  1127. TargetCheckInterval = 'n', <Interval of time between looking for a target>
  1128. TargetPriorities = '?', <Table of category strings that define the targetting order of this weapon.>
  1129. TargetRestrictDisallow = '?', <The categories that we will not allow to target>
  1130. TargetRestrictOnlyAllow = '?', <Exclusive categories that we will allow to target>
  1131. TelescopeBone = 'string', <Bone used for telescoping barrel recoil> **this must be put inside the Rack {} but outside the muzzlebones {}
  1132. TelescopeRecoilDistance = 'n', <Distance the telescoping part of the barrel will recoil>
  1133. TrackingRadius = 'n', <The radius that the weapon start tracking the target. This does not mean that the weapon will fire. The weapon will only fire when a target enters the maxradius. This is a multi of the weapons MaxRadius.>
  1134. TurretBoneDualMuzzle = 'string', <The second muzzle bone for a turret, used for arms on bots as weapons>
  1135. TurretBoneDualPitch = 'string', <The second pitch bone for a turret, used for arms on bots as weapons>
  1136. TurretBoneMuzzle = 'string', <The bone used as the muzzle bone for turrets. This is used for aiming as where the projectile would come out>
  1137. TurretBonePitch = 'string', <Bone name that will determine the pitch rotation (rotation along the X axis)>
  1138. TurretBoneYaw = 'string', <Bone name that will determine the yaw rotation (rotation along the Y axis)>
  1139. TurretDualManipulators = 'true/false', <Do we need two manipulators? Used for bots with arms>
  1140. Turreted = 'true/false', <Does this have a turret?>
  1141. TurretPitch = 'n', <The center angle for determining pitch, based off the rest pose of the art>
  1142. TurretPitchRange = 'n', <The angle +/- off the pitch that is a valid angle to turn to>
  1143. TurretPitchSpeed = 'n', <The speed at which the turret can pitch>
  1144. TurretYaw = 'n', <The center angle for determining yaw, based off the rest pose of the art>
  1145. TurretYawRange = 'n', <The angle +/- off the yaw that is a valid angle to turn to>
  1146. TurretYawSpeed = 'n', <The speed at which the turret can yaw>
  1147. WeaponCategory = 'string', <Deprecated attribute (Changing these will do nothing to the weapon)>
  1148. WeaponRepackTimeout = 'n', <Amount of time after the unit has lost its target that it will wait before repacking the weapon>
  1149. WeaponUnpackAnimation = 'string', <Animation name of the unpack animation>
  1150. WeaponUnpackAnimationRate = 'n', <How fast the unpack animation runs>
  1151. WeaponUnpackLocksMotion = 'true/false', <Halts all unit motion while this weapon is active and locks out all other weapons not flagged as NotExclusive = true. This is useful when a unit must the stationary to fire such as a moble artillery unit or when a unit is required to be stationary during an unpack / repack sequence.>
  1152. WeaponUnpackTimeout = 'n', <Time the unit will take to unpack the weapon>
  1153. WeaponUnpacks = 'true/false', <Weapon must unpack before ready to fire>
  1154.  
  1155. Note: New Commands
  1156.  
  1157. AimsStraightOnDisable = 'true/false', <This weapon will aim straight ahead when disabled.>
  1158. AlwaysRecheckTarget = 'true/false', <Always recheck for better target regardless of whether you already have one or not.>
  1159. AttackGroundTries = 'n', <This determines the number of shots at a ground target before moving on to the next target.>
  1160. CountedProjectile = 'true/false', <This projectile needs to be built and stored before the weapon can fire.>
  1161. EffectiveRadius = 'n', <The effective range that this weapon really is.>
  1162. IgnoresAlly = 'true/false', <This determines whether the weapon affect ally units or not.>
  1163. LeadTarget = 'true/false', <True if weapon should lead its target when aiming.>
  1164. ManualFire = 'true/false', <Never fires automaticly.>
  1165. MaxHeightDiff = '?', <The maximum height diff range for the weapon. Keep in mind weapons are now cylinder in nature.>
  1166. MaxProjectileStorage = 'n', <This weapon can only hold this many counted projectiles.>
  1167. MinRadius = 'n', <The minimum range we must be to fire at our target.>
  1168. MuzzleVelocityRandom = 'n', <Random variation for muzzle velocity (gaussian).>
  1169. NukeWeapon = 'true/false', <Nuke weapon flag.>
  1170. OverchargeWeapon = 'true/false', <Overcharge weapon flag.>
  1171. RequiresEnergy = 'n', <Weapon requires this much avaible energy to fire.>
  1172. RequiresMass = 'n', <Weapon requires this much avaible mass to fire.>
  1173. SlavedToBody = 'true/false', <Flag to specify if the weapon is slaved to the unit body, thus requiring unit to face target to fire.>
  1174. TargetType = 'string', <The type of entity this unit can target. (RULEWTT_Unit)>
  1175. UIMaxRangeVisualId = '?', <Allow the UI to know what kind of maximum range indicator to draw for this weapon.>
  1176. UIMinRangeVisualId = '?', <Allow the UI to know what kind of minimum range indicator to draw for this weapon.>
  1177. NoPause = 'true/false', <(?)>
  1178. FiringRandomnessWhileMoving = 'n', <the firing randomness that this weapon has while the pparent unit is moving>
  1179.  
  1180. },
  1181.  
  1182. Wreckage section
  1183.  
  1184. Here are wreckage informations defined.
  1185.  
  1186. Wreckage = {
  1187.  
  1188. Blueprint = 'string', <(?)>
  1189. EnergyMult = 'n', <the amount of energy you get when reclaiming expressed as a multiplier of the energy cost when it was alive>
  1190. HealthMult = 'n', <the amount of health this wreck has so it can take damage from weapons that do area damage>
  1191. MassMult = 'n', <the amount of mass you get when reclaiming expressed as a multiplier of the mass cost when it was alive>
  1192. ReclaimTimeMultiplier = 'n', <the time it takes to reclaim this wreck expressed as a multiplier of the build time>
  1193. WreckageLayers = { <(?)Subcategories are:>
  1194.  
  1195. Air = 'true/false', <(?)>
  1196. Land = 'true/false', <(?)>
  1197. Seabed = 'true/false', <(?)>
  1198. Sub = 'true/false', <(?)>
  1199. Water = 'true/false', <(?)>
  1200.  
  1201. },
  1202.  
  1203. },
  1204.  
  1205. Notes
  1206.  
  1207. 'n' stands for a number, positive or negative. Quote marks before and after the number are not needed.
  1208. 'integer' stands for a integer. Quote marks before and after the integer are not needed.
  1209. 'true/false' is a true or false argument. Quote marks before and after the argument are not needed.
  1210. 'string' is a word or a combination of words. Quote marks before and after a string are required.
  1211. 'path' ponits to other bp, lua files. Quote marks before and after following with comma for a location are required.
  1212. You can use -- to add comments in the blueprints. This could be useful when changing things temporarily.
Add Comment
Please, Sign In to add comment