<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Lua_UnitDefs</id>
	<title>Lua UnitDefs - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Lua_UnitDefs"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_UnitDefs&amp;action=history"/>
	<updated>2026-04-21T07:29:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Lua_UnitDefs&amp;diff=1128&amp;oldid=prev</id>
		<title>Qrow: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_UnitDefs&amp;diff=1128&amp;oldid=prev"/>
		<updated>2026-02-24T05:52:24Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:52, 23 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Lua_UnitDefs&amp;diff=1127&amp;oldid=prev</id>
		<title>luainter&gt;Raaar: moved min/mid/max properties of the model inside the model subtable and name, type and path being outside of it to match what&#039;s available on recent versions</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_UnitDefs&amp;diff=1127&amp;oldid=prev"/>
		<updated>2023-12-29T16:38:39Z</updated>

		<summary type="html">&lt;p&gt;moved min/mid/max properties of the model inside the model subtable and name, type and path being outside of it to match what&amp;#039;s available on recent versions&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Engine_Development|Development]] &amp;lt; [[Lua_Scripting|Lua Scripting]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Were you looking for the unitDefs page for Game Developers?&amp;#039;&amp;#039;&amp;#039; ([[Gamedev:UnitDefs]])&lt;br /&gt;
&lt;br /&gt;
==What is this==&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;UnitDefs[]&amp;#039;&amp;#039;&amp;#039; table holds information about the unit&amp;#039;&amp;#039;&amp;#039;types&amp;#039;&amp;#039;&amp;#039; used in the game. It is indexed by a number, and normally refered to as unitDefID. It is read-only. To access its tags you write, for example,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    UnitDefs[unitDefID].name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
The name of the keys often vary from the ones in the [[Gamedev:UnitDefs]] files.&lt;br /&gt;
For example &amp;#039;&amp;#039;maxDamage&amp;#039;&amp;#039; is named &amp;#039;&amp;#039;health&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==UnitDefs reverse lookup: UnitDefNames==&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;UnitDefNames[]&amp;#039;&amp;#039;&amp;#039; table holds the unitdefs and can be used to get the unitdef table for a known unitname:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    local unitDef = UnitDefNames[&amp;quot;supertank&amp;quot;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Print all unitDefs==&lt;br /&gt;
This example code prints all unitdefs, with all keys and their values (but not their subtables).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  for id,unitDef in pairs(UnitDefs) do&lt;br /&gt;
    for name,param in unitDef:pairs() do&lt;br /&gt;
      Spring.Echo(name,param)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that unitDef is a metatable, and requires the special iterator unitDef:pairs()&lt;br /&gt;
&lt;br /&gt;
==Useful keys/snippets==&lt;br /&gt;
&amp;lt;code&amp;gt; UnitDefs[unitDefID].id &amp;lt;/code&amp;gt; - gives back the unitDefID &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; UnitDefs[unitDefID].name &amp;lt;/code&amp;gt; - the internal unit name&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; UnitDefs[unitDefID].humanName &amp;lt;/code&amp;gt; - the displayed unit name&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;UnitDefs[unitDefID].weapons&amp;lt;/code&amp;gt; - See [[Lua_WeaponDefs]], &amp;lt;code&amp;gt;UnitDefs[unitDefID].weapons[1].weaponDef&amp;lt;/code&amp;gt; returns the weaponDefID of the units first weapon, which apppears in the WeaponsDef table as &amp;lt;code&amp;gt;WeaponDefs[weaponDefID]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To read [[Gamedev:UnitDefs#customParams|custom parameters]] use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    local myCustomParameters = UnitDefs[unitDefID].customParams&lt;br /&gt;
    if (myCustomParameters) then&lt;br /&gt;
      blub = myCustomParameters.blubfactor&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Key-names of the customParams table written must be lowercase and their values can only be strings.&lt;br /&gt;
&lt;br /&gt;
===Types of Units===&lt;br /&gt;
Sometimes one wants to check type of unit. Like is it a factory, is it a transport and so on.&lt;br /&gt;
Complete list: &amp;lt;ref&amp;gt;&amp;#039;&amp;#039;Spring 95, commit message&amp;#039;&amp;#039;,{{Sourcelinkhash|4e58b8b0f7af04065878d34e5e17523246739b0c}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*isTransport&lt;br /&gt;
*isImmobile&lt;br /&gt;
*isBuilding&lt;br /&gt;
*isBuilder&lt;br /&gt;
*isMobileBuilder&lt;br /&gt;
*isStaticBuilder&lt;br /&gt;
*isFactory&lt;br /&gt;
*isExtractor&lt;br /&gt;
*isGroundUnit&lt;br /&gt;
*isAirUnit&lt;br /&gt;
*isStrafingAirUnit&lt;br /&gt;
*isHoveringAirUnit&lt;br /&gt;
*isFighterAirUnit&lt;br /&gt;
*isBomberAirUnit&lt;br /&gt;
&lt;br /&gt;
==Example UnitDef table==&lt;br /&gt;
In the form of key = value, where UnitDefs[unitDefID].key = value, with subtables at the bottom.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    activateWhenBuilt = true,&lt;br /&gt;
    airLosRadius = 5.2734375,&lt;br /&gt;
    airStrafe = true,&lt;br /&gt;
    armorType = 3,&lt;br /&gt;
    armoredMultiple = 1,&lt;br /&gt;
    autoHeal = 2.5,&lt;br /&gt;
    bankingAllowed = true,&lt;br /&gt;
    buildDistance = 112,&lt;br /&gt;
    buildRange3D = false,&lt;br /&gt;
    buildSpeed = 300,&lt;br /&gt;
    buildTime = 75000,&lt;br /&gt;
    builder = false,&lt;br /&gt;
    buildingDecalDecaySpeed = 0.10000000149012,&lt;br /&gt;
    buildingDecalSizeX = 4,&lt;br /&gt;
    buildingDecalSizeY = 4,&lt;br /&gt;
    buildingDecalType = -1,&lt;br /&gt;
    buildpicname = &amp;quot;CORCOM.DDS&amp;quot;,&lt;br /&gt;
    canAssist = true,&lt;br /&gt;
    canAttack = true,&lt;br /&gt;
    canAttackWater = true,&lt;br /&gt;
    canBeAssisted = true,&lt;br /&gt;
    canCapture = true,&lt;br /&gt;
    canCloak = true,&lt;br /&gt;
    canCrash = false,&lt;br /&gt;
    canDGun = false,&lt;br /&gt;
    canDropFlare = false,&lt;br /&gt;
    canFight = true,&lt;br /&gt;
    canFireControl = true,&lt;br /&gt;
    canFly = false,&lt;br /&gt;
    canGuard = true,&lt;br /&gt;
    canKamikaze = false,&lt;br /&gt;
    canLoopbackAttack = false,&lt;br /&gt;
    canManualFire = true,&lt;br /&gt;
    canMove = true,&lt;br /&gt;
    canParalyze = false,&lt;br /&gt;
    canPatrol = true,&lt;br /&gt;
    canReclaim = true,&lt;br /&gt;
    canRepair = true,&lt;br /&gt;
    canRepeat = true,&lt;br /&gt;
    canRestore = true,&lt;br /&gt;
    canResurrect = false,&lt;br /&gt;
    canSelfD = true,&lt;br /&gt;
    canSelfRepair = false,&lt;br /&gt;
    canStockpile = false,&lt;br /&gt;
    canSubmerge = false,&lt;br /&gt;
    cantBeTransported = false,&lt;br /&gt;
    capturable = true,&lt;br /&gt;
    captureSpeed = 900,&lt;br /&gt;
    cloakCost = 100,&lt;br /&gt;
    cloakCostMoving = 1000,&lt;br /&gt;
    cloakTimeout = 128,&lt;br /&gt;
    cobID = -1,&lt;br /&gt;
    collide = true,&lt;br /&gt;
    cost = 3111.4499511719,&lt;br /&gt;
    crashDrag = 0.0049999998882413,&lt;br /&gt;
    deathExplosion = &amp;quot;commander_blast&amp;quot;,&lt;br /&gt;
    decloakDistance = 50,&lt;br /&gt;
    decloakOnFire = true,&lt;br /&gt;
    decloakSpherical = true,&lt;br /&gt;
    dlHoverFactor = -1,&lt;br /&gt;
    energyCost = 26667,&lt;br /&gt;
    energyMake = 25,&lt;br /&gt;
    energyStorage = 0,&lt;br /&gt;
    energyUpkeep = 0,&lt;br /&gt;
    extractRange = 0,&lt;br /&gt;
    extractsMetal = 0,&lt;br /&gt;
    factoryHeadingTakeoff = true,&lt;br /&gt;
    fallSpeed = 0.20000000298023,&lt;br /&gt;
    fireState = -1,&lt;br /&gt;
    flankingBonusDirX = 0,&lt;br /&gt;
    flankingBonusDirY = 0,&lt;br /&gt;
    flankingBonusDirZ = 1,&lt;br /&gt;
    flankingBonusMax = 1.8999999761581,&lt;br /&gt;
    flankingBonusMin = 0.89999997615814,&lt;br /&gt;
    flankingBonusMobilityAdd = 0.0099999997764826,&lt;br /&gt;
    flankingBonusMode = 1,&lt;br /&gt;
    flareDelay = 0.30000001192093,&lt;br /&gt;
    flareDropVectorX = 0,&lt;br /&gt;
    flareDropVectorY = 0,&lt;br /&gt;
    flareDropVectorZ = 0,&lt;br /&gt;
    flareEfficiency = 0.5,&lt;br /&gt;
    flareReloadTime = 5,&lt;br /&gt;
    flareSalvoDelay = 0,&lt;br /&gt;
    flareSalvoSize = 4,&lt;br /&gt;
    flareTime = 90,&lt;br /&gt;
    floatOnWater = false,&lt;br /&gt;
    floater = false,&lt;br /&gt;
    frontToSpeed = 0.10000000149012,&lt;br /&gt;
    fullHealthFactory = false,&lt;br /&gt;
    hasShield = false,&lt;br /&gt;
    health = 3000,&lt;br /&gt;
    height = 50,&lt;br /&gt;
    hideDamage = true,&lt;br /&gt;
    highTrajectoryType = 0,&lt;br /&gt;
    holdSteady = false,&lt;br /&gt;
    hoverAttack = false,&lt;br /&gt;
    humanName = &amp;quot;Commander&amp;quot;,&lt;br /&gt;
    iconType = &amp;quot;corcom.user&amp;quot;,&lt;br /&gt;
    id = 261,&lt;br /&gt;
    idleAutoHeal = 2.5,&lt;br /&gt;
    idleTime = 1800,&lt;br /&gt;
    isAirBase = false,&lt;br /&gt;
    isAirUnit = false,&lt;br /&gt;
    isBomberAirUnit = false,&lt;br /&gt;
    isBuilder = true,&lt;br /&gt;
    isBuilding = false,&lt;br /&gt;
    isCommander = false,&lt;br /&gt;
    isExtractor = false,&lt;br /&gt;
    isFactory = false,&lt;br /&gt;
    isFeature = false,&lt;br /&gt;
    isFighterAirUnit = false,&lt;br /&gt;
    isFirePlatform = false,&lt;br /&gt;
    isGroundUnit = true,&lt;br /&gt;
    isHoveringAirUnit = false,&lt;br /&gt;
    isImmobile = false,&lt;br /&gt;
    isMobileBuilder = true,&lt;br /&gt;
    isStaticBuilder = false,&lt;br /&gt;
    isStrafingAirUnit = false,&lt;br /&gt;
    isTransport = false,&lt;br /&gt;
    jammerRadius = 0,&lt;br /&gt;
    kamikazeDist = 0,&lt;br /&gt;
    kamikazeUseLOS = false,&lt;br /&gt;
    leaveTracks = false,&lt;br /&gt;
    levelGround = true,&lt;br /&gt;
    loadingRadius = 220,&lt;br /&gt;
    losHeight = 40,&lt;br /&gt;
    losRadius = 14.0625,&lt;br /&gt;
    makesMetal = 0,&lt;br /&gt;
    mass = 5000,&lt;br /&gt;
    maxAcc = 0.18000000715256,&lt;br /&gt;
    maxAileron = 0.014999999664724,&lt;br /&gt;
    maxBank = 0.80000001192093,&lt;br /&gt;
    maxCoverage = 0,&lt;br /&gt;
    maxDec = 1.125,&lt;br /&gt;
    maxElevator = 0.0099999997764826,&lt;br /&gt;
    maxFuel = 0,&lt;br /&gt;
    maxHeightDif = 14.558809280396,&lt;br /&gt;
    maxPitch = 0.44999998807907,&lt;br /&gt;
    maxRepairSpeed = 300,&lt;br /&gt;
    maxRudder = 0.0040000001899898,&lt;br /&gt;
    maxSlope = -1,&lt;br /&gt;
    maxThisUnit = 32000,&lt;br /&gt;
    maxWaterDepth = 35,&lt;br /&gt;
    maxWeaponRange = 300,&lt;br /&gt;
    metalCost = 2667,&lt;br /&gt;
    metalMake = 1.5,&lt;br /&gt;
    metalStorage = 0,&lt;br /&gt;
    metalUpkeep = 0,&lt;br /&gt;
    minAirBasePower = 0,&lt;br /&gt;
    minCollisionSpeed = 1,&lt;br /&gt;
    minWaterDepth = -10000000,&lt;br /&gt;
    modelname = &amp;quot;CORCOM.s3o&amp;quot;,&lt;br /&gt;
    modelpath = &amp;quot;objects3d/CORCOM.s3o&amp;quot;,&lt;br /&gt;
    modeltype = &amp;quot;s3o&amp;quot;,&lt;br /&gt;
    moveState = -1,&lt;br /&gt;
    myGravity = 0.40000000596046,&lt;br /&gt;
    name = &amp;quot;corcom&amp;quot;,&lt;br /&gt;
    nanoColorB = 0.20000000298023,&lt;br /&gt;
    nanoColorG = 0.69999998807907,&lt;br /&gt;
    nanoColorR = 0.20000000298023,&lt;br /&gt;
    needGeo = false,&lt;br /&gt;
    onOffable = false,&lt;br /&gt;
    power = 3111.4499511719,&lt;br /&gt;
    primaryWeapon = 2,&lt;br /&gt;
    rSpeed = 0,&lt;br /&gt;
    radarRadius = 700,&lt;br /&gt;
    radius = 22,&lt;br /&gt;
    reclaimSpeed = 300,&lt;br /&gt;
    reclaimable = false,&lt;br /&gt;
    refuelTime = 5,&lt;br /&gt;
    releaseHeld = false,&lt;br /&gt;
    reloadTime = 1,&lt;br /&gt;
    repairSpeed = 300,&lt;br /&gt;
    repairable = true,&lt;br /&gt;
    resurrectSpeed = 300,&lt;br /&gt;
    scriptName = &amp;quot;corcom.cob&amp;quot;,&lt;br /&gt;
    scriptPath = &amp;quot;corcom.cob&amp;quot;,&lt;br /&gt;
    seismicRadius = 0,&lt;br /&gt;
    seismicSignature = 0,&lt;br /&gt;
    selfDCountdown = 5,&lt;br /&gt;
    selfDExplosion = &amp;quot;commander_blast&amp;quot;,&lt;br /&gt;
    shieldPower = -1,&lt;br /&gt;
    showNanoFrame = true,&lt;br /&gt;
    showNanoSpray = true,&lt;br /&gt;
    showPlayerName = true,&lt;br /&gt;
    slideTolerance = 0,&lt;br /&gt;
    sonarJamRadius = 0,&lt;br /&gt;
    sonarRadius = 300,&lt;br /&gt;
    sonarStealth = false,&lt;br /&gt;
    speed = 37.5,&lt;br /&gt;
    speedToFront = 0.070000000298023,&lt;br /&gt;
    startCloaked = false,&lt;br /&gt;
    stealth = false,&lt;br /&gt;
    strafeToAttack = false,&lt;br /&gt;
    targfac = false,&lt;br /&gt;
    techLevel = 0,&lt;br /&gt;
    terraformSpeed = 1500,&lt;br /&gt;
    tidalGenerator = 0,&lt;br /&gt;
    tooltip = &amp;quot;Commander&amp;quot;,&lt;br /&gt;
    totalEnergyOut = 25,&lt;br /&gt;
    trackOffset = 0,&lt;br /&gt;
    trackStrength = 0,&lt;br /&gt;
    trackStretch = 1,&lt;br /&gt;
    trackType = -1,&lt;br /&gt;
    trackWidth = 32,&lt;br /&gt;
    transportByEnemy = false,&lt;br /&gt;
    transportCapacity = 0,&lt;br /&gt;
    transportMass = 100000,&lt;br /&gt;
    transportSize = 0,&lt;br /&gt;
    transportUnloadMethod = 0,&lt;br /&gt;
    turnInPlace = true,&lt;br /&gt;
    turnInPlaceSpeedLimit = 0.82499998807907,&lt;br /&gt;
    turnRadius = 500,&lt;br /&gt;
    turnRate = 1133,&lt;br /&gt;
    type = &amp;quot;&amp;quot;,&lt;br /&gt;
    unitFallSpeed = 0,&lt;br /&gt;
    upright = true,&lt;br /&gt;
    useBuildingGroundDecal = false,&lt;br /&gt;
    useSmoothMesh = true,&lt;br /&gt;
    verticalSpeed = 3,&lt;br /&gt;
    wantedHeight = 0,&lt;br /&gt;
    waterline = 0,&lt;br /&gt;
    windGenerator = 0,&lt;br /&gt;
    wingAngle = 0.079999998211861,&lt;br /&gt;
    wingDrag = 0.070000000298023,&lt;br /&gt;
    wreckName = &amp;quot;corcom_dead&amp;quot;,&lt;br /&gt;
    xsize = 4,&lt;br /&gt;
    zsize = 4,&lt;br /&gt;
&lt;br /&gt;
    buildOptions = {&lt;br /&gt;
        [1] = unitDefID1,&lt;br /&gt;
        [2] = unitDefID2,&lt;br /&gt;
        ...&lt;br /&gt;
    },&lt;br /&gt;
    collisionVolume = {&lt;br /&gt;
        boundingRadius = 1.0893974967364e-026,&lt;br /&gt;
        defaultToFootPrint = false,&lt;br /&gt;
        defaultToPieceTree = false,&lt;br /&gt;
        defaultToSphere = false,&lt;br /&gt;
        offsetX = 0,&lt;br /&gt;
        offsetY = 1,&lt;br /&gt;
        offsetZ = 1.089395031546e-026,&lt;br /&gt;
        scaleX = 6.4911419586111e-027,&lt;br /&gt;
        scaleY = 1.9340968033141e-038,&lt;br /&gt;
        scaleZ = 1.0894122878784e-026,&lt;br /&gt;
        type = &amp;quot;ellipsoid&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    customParams = {&lt;br /&gt;
        ...&lt;br /&gt;
    },&lt;br /&gt;
    modCategories = {&lt;br /&gt;
        all = true,&lt;br /&gt;
        commander = true,&lt;br /&gt;
        notair = true,&lt;br /&gt;
        ...&lt;br /&gt;
    },&lt;br /&gt;
    model = {&lt;br /&gt;
        minx = -16.537784576416,&lt;br /&gt;
        miny = 0.058725833892822,&lt;br /&gt;
        minz = -9.709508895874,&lt;br /&gt;
        midx = 0.66120779514313,&lt;br /&gt;
        midy = 19,&lt;br /&gt;
        midz = 1.7122877836227,&lt;br /&gt;
        maxx = 17.423709869385,&lt;br /&gt;
        maxy = 48.386325836182,&lt;br /&gt;
        maxz = 14.10532283783,&lt;br /&gt;
        textures = {&lt;br /&gt;
            tex1 = &amp;quot;Core_color.dds&amp;quot;,&lt;br /&gt;
            tex2 = &amp;quot;Core_other.dds&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
    },&lt;br /&gt;
    moveDef = {&lt;br /&gt;
        crushStrength = 50,&lt;br /&gt;
        depth = 5000,&lt;br /&gt;
        depthMod = 0,&lt;br /&gt;
        family = &amp;quot;kbot&amp;quot;,&lt;br /&gt;
        heatMapping = false,&lt;br /&gt;
        heatMod = 0.0041666668839753,&lt;br /&gt;
        heatProduced = 60,&lt;br /&gt;
        id = 6,&lt;br /&gt;
        maxSlope = 0.41221469640732,&lt;br /&gt;
        name = &amp;quot;akbot2&amp;quot;,&lt;br /&gt;
        slopeMod = 9.6801977157593,&lt;br /&gt;
        type = &amp;quot;ground&amp;quot;,&lt;br /&gt;
        xsize = 3,&lt;br /&gt;
        zsize = 3,&lt;br /&gt;
    },&lt;br /&gt;
    noChaseCategories = {&lt;br /&gt;
        all = true,&lt;br /&gt;
        ...&lt;br /&gt;
    },&lt;br /&gt;
    sounds = {&lt;br /&gt;
        activate = {},&lt;br /&gt;
        arrived = {},&lt;br /&gt;
        build = {&lt;br /&gt;
            [1] = {&lt;br /&gt;
                id = 208,&lt;br /&gt;
                name = &amp;quot;nanlath2&amp;quot;,&lt;br /&gt;
                volume = 1,&lt;br /&gt;
            },&lt;br /&gt;
            ...&lt;br /&gt;
        },&lt;br /&gt;
        ...&lt;br /&gt;
    },&lt;br /&gt;
    weapons = {&lt;br /&gt;
        [1] = {&lt;br /&gt;
            fuelUsage = 0,&lt;br /&gt;
            mainDirX = 0,&lt;br /&gt;
            mainDirY = 0,&lt;br /&gt;
            mainDirZ = 0.99999564886093,&lt;br /&gt;
            maxAngleDif = -1,&lt;br /&gt;
            slavedTo = 0,&lt;br /&gt;
            weaponDef = 221,&lt;br /&gt;
            badTargets = {&lt;br /&gt;
                vtol = true,&lt;br /&gt;
            },&lt;br /&gt;
            onlyTargets = {&lt;br /&gt;
                all = true,&lt;br /&gt;
                antiemg = true,&lt;br /&gt;
                ...&lt;br /&gt;
            },&lt;br /&gt;
        },&lt;br /&gt;
        ...&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unit/Weapon damages and armor classes==&lt;br /&gt;
&lt;br /&gt;
For details on how to extract which units/weapons target/damage which units, see https://springrts.com/phpbb/viewtopic.php?f=44&amp;amp;t=34382&amp;amp;p=575738#p575738 (TODO: migrate info to wiki).&lt;br /&gt;
&lt;br /&gt;
==How to save unitDef tables to file==&lt;br /&gt;
To save all unitDefs to a file, including all tables, you can use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    local unitDef = UnitDefs[unitDefID]&lt;br /&gt;
    local t = {}&lt;br /&gt;
    for k,v in unitDef:pairs() do&lt;br /&gt;
        t[k] = v&lt;br /&gt;
    end&lt;br /&gt;
    table.save(t, &amp;quot;lua_unitDef_&amp;quot; .. unitDef.name .. &amp;quot;.lua&amp;quot;, &amp;quot;-- generated by table.save&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The special iterator is needed because metatables. See https://springrts.com/phpbb/viewtopic.php?f=67&amp;amp;t=33778 for a widget to regenerate the example defs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category: Lua]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>luainter&gt;Raaar</name></author>
	</entry>
</feed>