Lua SyncedRead
Spring.ALL_UNITS -> number
Spring.MY_UNITS -> number
Spring.ALLY_UNITS -> number
Spring.ENEMY_UNITS -> number
Spring.IsCheatingEnabled
( ) -> boolean
Spring.IsDevLuaEnabled
( ) -> boolean
Spring.IsEditDefsEnabled
( ) -> boolean
Spring.AreHelperAIsEnabled
( ) -> boolean
Spring.IsGameOver
( ) -> boolean
Spring.GetGaiaTeamID
( ) -> number teamID
Spring.GetRulesInfoMap
( string key ) -> string
( ) -> { [key1] = string value1, [key2] = string value2, ... }
Spring.GetGameSpeed
( ) -> number userSpeedFactor, number speedFactor, boolean paused
Spring.GetGameFrame
( ) -> number frameNum%dayFrames, number frameNum/dayFrames
Spring.GetGameSeconds
( ) -> number seconds
Spring.GetGameRulesParam
( number index | string ruleName ) -> number value
Spring.GetGameRulesParams
( ) -> { [rule1] = number value1, [rule2] = number value2, ... }
Spring.GetWind
( ) -> number dirX, number dirY, number dirZ,
number strength, number normDirX, number normDirY, number normDirZ
Spring.GetHeadingFromVector
( number x, number z ) -> number heading
Spring.GetVectorFromHeading
( number heading ) -> number x, number z
Spring.GetAllyTeamStartBox
( number allyID ) -> number xmin, number zmin, number xmax, number zmax
Spring.GetTeamStartPosition
( number teamID ) -> number x, number y, number z
Spring.GetPlayerList
( [number teamID, boolean onlyActive] ) -> nil | { [1] = number playerID, etc... }
Spring.GetTeamList
( [number allyTeamID] ) -> nil | { [1] = number teamID, etc... }
Spring.GetAllyTeamList
( ) -> { [1] = number allyTeamID, etc... }
Spring.GetPlayerInfo
( number playerID ) ->
nil | string "name",
boolean active,
boolean spectator,
number teamID,
number allyTeamID,
number pingTime,
number cpuUsage,
string country,
number rank
Spring.GetPlayerControlledUnit
( number playerID ) -> nil | number unitID
Spring.GetTeamInfo
( number teamID ) ->
nil | number teamNum,
number leader,
boolean active,
boolean isDead,
boolean isAiTeam,
string "side",
number allyTeam
Spring.GetTeamResources
( number teamID, string "metal" | "energy" ) ->
nil | number currentLevel,
number storage,
number pull,
number income,
number expense,
number share,
number sent,
number received
Spring.GetTeamUnitStats
( number teamID ) ->
nil | number killed,
number died,
number capturedBy,
number capturedFrom,
number received,
number sent
Spring.GetTeamRulesParam
( number teamID, number index | string ruleName ) -> nil | number value
Spring.GetTeamRulesParams
( number teamID ) -> nil | { [rule1] = number value1, [rule2] = number value2, ... }
Spring.GetTeamStatsHistory
( number teamID, number startTime, number endTime ) ->
{
[1] = {
"frame" = number,
"metalUsed" = number,
"metalProduced" = number,
"metalExcess" = number,
"metalReceived" = number,
"metalSent" = number,
"energyUsed" = number,
"energyProduced" = number,
"energyExcess" = number,
"energyReceived" = number,
"energySent" = number,
"damageDealt" = number,
"damageReceived" = number,
"unitsProduced" = number,
"unitsDied" = number,
"unitsReceived" = number,
"unitsSent" = number,
"unitsCaptured" = number,
"unitsOutCaptured" = number,
"unitsKilled" = number
},
[2] = {...}, ...
}
Spring.AreTeamsAllied
( number teamID1, number teamID2 ) -> nil | boolean
Spring.ArePlayersAllied
( number playerID1, number playerID2 ) -> nil | boolean
Spring.GetAllUnits
( ) -> nil | unitTable = { [1] = number unitID, ... }
Spring.GetTeamUnits
( number teamID ) -> nil | unitTable = { [1] = number unitID, etc... }
Spring.GetTeamUnitsSorted
( number teamID ) -> nil |
unitDefTable = {
[number unitDefID] = { [1] = [number unitID], etc... },
etc...
}
Spring.GetTeamUnitsCounts
( number teamID ) -> nil | countTable = { [number unitDefID] = count, etc... }
Spring.GetTeamUnitsByDefs
( number teamID, number unitDefID | { number unitDefID1, ... } ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetTeamUnitDefCount
( number teamID, number unitDefID ) -> nil | number count
Spring.GetTeamUnitCount
( number teamID ) -> nil | number count
Spring.GetUnitsInRectangle
( number xmin, number zmin, number xmax, number zmax [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInBox
( number xmin, number ymin, number zmin,
number xmax, number ymax, number zmax [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInSphere
( number x, number y, number z, number radius [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInCylinder
( number x, number z, number radius [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInPlanes
( planes = { [1] = { number nx, number ny, number nz, number d }, etc... } ) ->
nil | unitTable = { [1] = number unitID, etc... }
plane normals point towards accepted space, so the acceptance criteria for each plane is: radius = unit radius px, py, pz = unit position [(nx * px) + (ny * py) + (nz * pz) + (d - radius)] <= 0
Spring.GetFeaturesInRectangle
( number xmin, number zmin, number xmax, number zmax [,number teamID] ) ->
nil | featureTable = { [1] = number featureID, etc... }
Spring.GetUnitNearestAlly
( number unitID [, number range ] ) -> nil | number unitID
Spring.GetUnitNearestEnemy
( number unitID [, number range ] ) -> nil | number unitID
Spring.GetUnitTooltip
( number unitID ) -> nil | string tooltip
Spring.GetUnitDefID
( number unitID ) -> nil | number unitDefID
Spring.GetUnitTeam
( number unitID ) -> nil | number teamID
Spring.GetUnitAllyTeam
( number unitID ) -> nil | number allyID
Spring.GetUnitLineage
( number unitID ) -> nil | number lineage, boolean lineageRoot
Spring.GetUnitNeutral
( number unitID ) -> nil | boolean neutral
Spring.GetUnitHealth
( number unitID ) -> nil | number health, number maxHealth, number paralyzeDamage,
number captureProgress, number buildProgress
Spring.GetUnitIsStunned
( number unitID ) -> nil | boolean stunned_or_inbuild, boolean stunned, boolean inbuild
Spring.GetUnitResources
( number unitID ) -> nil | number metalMake, number metalUse,
number energyMake, number energyUse
Spring.GetUnitExperience
( number unitID ) -> nil | number experience
Spring.GetUnitStates
( number unitID ) -> nil | {
"firestate" = number,
"movestate" = number,
"repeat" = boolean,
"cloak" = boolean,
"active" = boolean,
"trajectory" = boolean,
["autoland" = boolean,]
["autorepairlevel" = number,]
["loopbackattack" = boolean]
}
Spring.GetUnitIsActive
( number unitID ) -> nil | boolean
Spring.GetUnitIsCloaked
( number unitID ) -> nil | boolean
Spring.GetUnitSelfDTime
( number unitID ) -> nil | number
Spring.GetUnitStockpile
( number unitID ) -> nil | number numStockpiled, number numStockpileQued, number buildPercent
Spring.GetUnitHeight
( number unitID ) -> nil | number
Spring.GetUnitRadius
( number unitID ) -> nil | number
Spring.GetUnitPosition
( number unitID ) -> nil | number x, number y, number z
Spring.GetUnitBasePosition
( number unitID ) -> nil | number x, number y, number z
Spring.GetUnitDirection
( number unitID ) -> nil | number dx, number dy, number dz
Spring.GetUnitHeading
( number unitID ) -> nil | number heading
Spring.GetUnitVelocity
( number unitID ) -> nil | number velx, number vely, number velz
Spring.GetUnitBuildFacing
( number unitID ) -> nil | number
Spring.GetUnitIsBuilding
( number unitID ) -> nil | number unitID
Spring.GetUnitTransporter
( number unitID ) -> nil | number unitID
Spring.GetUnitIsTransporting
( number unitID ) -> nil | { [1] = number unitID, etc... }
Spring.GetUnitShieldState
( number unitID ) -> nil | number isEnabled, number curPower
Spring.GetUnitWeaponState
( number unitID ) -> nil | boolean angleGood, boolean loaded, number reloadFrame,
number salvoLeft, number numStockpiled
Spring.GetUnitTravel
( number unitID ) -> nil | number travel, number travelPeriod
Spring.GetUnitLosState
( number unitID [, number allyTeamID ] ) -> nil |
{ ["los" = true] [, "radar" = true] [, "typed" = true] }
Spring.GetUnitSeparation
( number unitID1, number unitID2 [, boolean 2D ] ) -> nil | number
Spring.GetUnitDefDimensions
( number unitDefID ) -> nil | {
"height" = number,
"radius" = number,
"midx" = number,
"minx" = number,
"maxx" = number,
"midy" = number,
"miny" = number,
"maxy" = number,
"midz" = number,
"minz" = number,
"maxz" = number
}
Spring.GetUnitCommands Spring.GetFactoryCounts Spring.GetFactoryCommands
Spring.GetCommandQueue Spring.GetFullBuildQueue Spring.GetRealBuildQueue
Spring.GetUnitCmdDescs Spring.FindUnitCmdDesc
Spring.GetUnitRulesParam Spring.GetUnitRulesParams
Spring.GetAllFeatures Spring.GetFeatureList Spring.GetFeatureDefID Spring.GetFeatureTeam Spring.GetFeatureAllyTeam Spring.GetFeatureHealth Spring.GetFeatureHeight Spring.GetFeatureRadius Spring.GetFeaturePosition Spring.GetFeatureDirection Spring.GetFeatureHeading Spring.GetFeatureResources Spring.GetFeatureNoSelect Spring.GetFeatureResurrect
Spring.GetGroundHeight Spring.GetGroundNormal Spring.GetGroundInfo Spring.GetGroundBlocked Spring.GetGroundExtremes
Spring.TestBuildOrder Spring.Pos2BuildPos Spring.GetPositionLosState Spring.GetClosestValidPosition
Spring.GetUnitPiecePosition Spring.GetUnitPieceDirection Spring.GetUnitPieceMatrix