global Spring
methods
Spring.AddGrass
function Spring.AddGrass(
x: number,
z: number
) -> nil
[source]
Spring.AddHeightMap
function Spring.AddHeightMap(
x: number,
z: number,
height: number
) -> newHeight integer?
Can only be called in Spring.SetHeightMapFunc
[source]
Spring.AddLightTrackingTarget
function Spring.AddLightTrackingTarget()
[source]
Spring.AddMapLight
function Spring.AddMapLight(lightParams: LightParams) -> lightHandle integer
requires MaxDynamicMapLights > 0
[source]
Spring.AddModelLight
function Spring.AddModelLight(lightParams: LightParams) -> lightHandle number
requires MaxDynamicMapLights > 0
[source]
Spring.AddObjectDecal
function Spring.AddObjectDecal(unitID: integer) -> nil
[source]
Spring.AddOriginalHeightMap
function Spring.AddOriginalHeightMap(
x: number,
y: number,
height: number
) -> nil
Can only be called in Spring.SetOriginalHeightMapFunc
[source]
Spring.AddSmoothMesh
function Spring.AddSmoothMesh(
x: number,
z: number,
height: number
) -> The number?
@return The
- new height, or nil
if coordinates are invalid.
Can only be called in Spring.SetSmoothMeshFunc
.
[source]
Spring.AddTeamResource
function Spring.AddTeamResource(
teamID: integer,
type: ResourceName,
amount: number
) -> nil
Adds metal or energy resources to the specified team.
[source]
Spring.AddUnitDamage
function Spring.AddUnitDamage(
unitID: integer,
damage: number,
paralyze: number?,
attackerID: integer?,
weaponID: integer?,
impulseX: number?,
impulseY: number?,
impulseZ: number?
) -> nil
@param paralyze
- (Default: 0) equals to the paralyzetime in the WeaponDef.
@param attackerID
- (Default: -1)
@param weaponID
- (Default: -1)
[source]
Spring.AddUnitExperience
function Spring.AddUnitExperience(
unitID: integer,
deltaExperience: number
) -> nil
@param deltaExperience
- Can be negative to subtract, but the unit will never have negative total afterwards
[source]
Spring.AddUnitIcon
function Spring.AddUnitIcon(
iconName: string,
texFile: string,
size: number?,
dist: number?,
radAdjust: number?
) -> added boolean
[source]
Spring.AddUnitImpulse
function Spring.AddUnitImpulse(
unitID: integer,
x: number,
y: number,
z: number,
decayRate: number?
) -> nil
[source]
Spring.AddUnitResource
function Spring.AddUnitResource(
unitID: integer,
resource: string,
amount: number
) -> nil
@param resource
- “m” | “e”
[source]
Spring.AddUnitSeismicPing
function Spring.AddUnitSeismicPing(
unitID: integer,
pindSize: number
) -> nil
[source]
Spring.AddWorldIcon
function Spring.AddWorldIcon(
cmdID: integer,
posX: number,
posY: number,
posZ: number
) -> nil
[source]
Spring.AddWorldText
function Spring.AddWorldText(
text: string,
posX: number,
posY: number,
posZ: number
) -> nil
[source]
Spring.AddWorldUnit
function Spring.AddWorldUnit(
unitDefID: integer,
posX: number,
posY: number,
posZ: number,
teamID: integer,
facing: number
) -> nil
[source]
Spring.AdjustHeightMap
function Spring.AdjustHeightMap(
x1: number,
y1: number,
x2_height: number,
y2: number?,
height: number?
) -> nil
@param x2_height
- if y2 and height are nil then this parameter is the height
Add a certain height to a point or rectangle area on the world
[source]
Spring.AdjustOriginalHeightMap
function Spring.AdjustOriginalHeightMap(
x1: number,
y1: number,
x2_height: number,
y2: number?,
height: number?
) -> nil
@param x2_height
- if y2 and height are nil then this parameter is the height
Add height to a point or rectangle area to the original map height cache
[source]
Spring.AdjustSmoothMesh
function Spring.AdjustSmoothMesh(
x1: number,
z1: number,
x2: number?,
z2: number?,
height: number
) -> nil
[source]
Spring.AreHelperAIsEnabled
function Spring.AreHelperAIsEnabled() -> enabled boolean
[source]
Spring.ArePlayersAllied
function Spring.ArePlayersAllied(
playerID1: number,
playerID2: number
) -> (nil|boolean)
[source]
Spring.AreTeamsAllied
function Spring.AreTeamsAllied(
teamID1: number,
teamID2: number
) -> (nil|boolean)
[source]
Spring.AssignMouseCursor
function Spring.AssignMouseCursor(
cmdName: string,
iconFileName: string,
overwrite: boolean?,
hotSpotTopLeft: boolean?
) -> assigned boolean?
@param iconFileName
- not the full filename, instead it is like this: Wanted filename: Anims/cursorattack_0.bmp => iconFileName: cursorattack
@param overwrite
- (Default: true)
@param hotSpotTopLeft
- (Default: false)
Changes/creates the cursor of a single CursorCmd.
[source]
Spring.AssignPlayerToTeam
function Spring.AssignPlayerToTeam(
playerID: integer,
teamID: integer
) -> nil
Assigns a player to a team.
[source]
Spring.BuggerOff
function Spring.BuggerOff(
x: number,
y: number,
z: number?,
radius: number,
teamID: integer,
spherical: boolean?,
forced: boolean?,
excludeUnitID: integer?,
excludeUnitDefIDs: number[]?
) -> nil
@param z
- uses ground height when unspecified
@param spherical
- (Default: true)
@param forced
- (Default: true)
[source]
Spring.CallCOBScript
function Spring.CallCOBScript(
unitID: integer,
funcName: (integer|string)?,
retArgs: integer,
...: any
) -> number...
@param funcName
- Function ID or name.
@param retArgs
- Number of values to return.
@param ...
- Arguments
[source]
Spring.ClearFeaturesPreviousDrawFlag
function Spring.ClearFeaturesPreviousDrawFlag() -> nil
[source]
Spring.ClearUnitGoal
function Spring.ClearUnitGoal(unitID: integer) -> nil
[source]
Spring.ClearUnitsPreviousDrawFlag
function Spring.ClearUnitsPreviousDrawFlag() -> nil
[source]
Spring.ClearWatchDogTimer
function Spring.ClearWatchDogTimer(threadName: string?) -> nil
@param threadName
- (Default: main)
[source]
Spring.ClosestBuildPos
function Spring.ClosestBuildPos(
teamID: integer,
unitDefID: integer,
posX: number,
posY: number,
posZ: number,
searchRadius: number,
minDistance: number,
buildFacing: number
)
-> buildPosX number
-> buildPosY number
-> buildPosZ number
@param buildFacing
- one of SOUTH = 0, EAST = 1, NORTH = 2, WEST = 3
[source]
Spring.CreateDir
function Spring.CreateDir(path: string) -> dirCreated boolean?
[source]
Spring.CreateFeature
function Spring.CreateFeature(
featureDef: (string|number),
x: number,
y: number,
z: number,
heading: number?,
AllyTeamID: integer?,
featureID: integer?
) -> featureID number
@param featureDef
- name or id
[source]
Spring.CreateGroundDecal
function Spring.CreateGroundDecal() -> decalID (nil|number)
[source]
Spring.CreateUnit
function Spring.CreateUnit(
unitDefName: (string|number),
x: number,
y: number,
z: number,
facing: Facing,
teamID: integer,
build: boolean?,
flattenGround: boolean?,
unitID: integer?,
builderID: integer?
) -> unitID (number|nil)
@param unitDefName
- or unitDefID
@param build
- (Default: false) the unit is created in “being built” state with buildProgress = 0
@param flattenGround
- (Default: true) the unit flattens ground, if it normally does so
@param unitID
- requests specific unitID
@return unitID
- meaning unit was created
[source]
Spring.DeleteProjectile
function Spring.DeleteProjectile(projectileID: integer) -> nil
Silently removes projectiles (no explosion).
[source]
Spring.DeselectUnit
function Spring.DeselectUnit(unitID: integer) -> nil
[source]
Spring.DeselectUnitArray
function Spring.DeselectUnitArray(unitIDs: table<any,integer>) -> nil
@param unitIDs
- Table with unit IDs as value.
Deselects multiple units.
[source]
Spring.DeselectUnitMap
function Spring.DeselectUnitMap(unitMap: table<integer,any>) -> nil
@param unitMap
- Table with unit IDs as keys.
Deselects multiple units.
[source]
Spring.DestroyFeature
function Spring.DestroyFeature(featureDefID: integer) -> nil
[source]
Spring.DestroyGroundDecal
function Spring.DestroyGroundDecal(decalID: integer) -> delSuccess boolean
[source]
Spring.DestroyUnit
function Spring.DestroyUnit(
unitID: integer,
selfd: boolean?,
reclaimed: boolean?,
attackerID: integer?,
cleanupImmediately: boolean?
) -> nil
@param selfd
- (Default: false) makes the unit act like it self-destructed.
@param reclaimed
- (Default: false) don’t show any DeathSequences, don’t leave a wreckage. This does not give back the resources to the team!
@param cleanupImmediately
- (Default: false) stronger version of reclaimed, removes the unit unconditionally and makes its ID available for immediate reuse (otherwise it takes a few frames)
[source]
Spring.DiffTimers
function Spring.DiffTimers(
endTimer: integer,
startTimer: integer,
returnMs: boolean?,
fromMicroSecs: boolean?
) -> timeAmount number
@param returnMs
- (Default: false) whether to return timeAmount
in milliseconds as opposed to seconds
@param fromMicroSecs
- (Default: false) whether timers are in microseconds instead of milliseconds
[source]
Spring.DrawUnitCommands
function Spring.DrawUnitCommands(unitID: integer) -> nil
[source]
Spring.Echo
function Spring.Echo(
arg: any,
...: any
) -> nil
Useful for debugging.
Prints values in the spring chat console. Hint: the default print() writes to STDOUT.
[source]
Spring.EditUnitCmdDesc
function Spring.EditUnitCmdDesc(
unitID: integer,
cmdDescID: integer,
cmdArray: CommandDescription
)
[source]
Spring.ExtractModArchiveFile
function Spring.ExtractModArchiveFile(modfile: string) -> extracted boolean
[source]
Spring.FindUnitCmdDesc
function Spring.FindUnitCmdDesc(unitID: integer)
[source]
Spring.FixedAllies
function Spring.FixedAllies() -> enabled (boolean|nil)
[source]
Spring.ForceLayoutUpdate
function Spring.ForceLayoutUpdate() -> nil
[source]
Spring.ForceTesselationUpdate
function Spring.ForceTesselationUpdate(
normal: boolean?,
shadow: boolean?
) -> updated boolean
@param normal
- (Default: true)
@param shadow
- (Default: false)
[source]
Spring.ForceUnitCollisionUpdate
function Spring.ForceUnitCollisionUpdate(unitID: integer) -> nil
Prevent collision checks from working on outdated data
There’s a rare edge case that requires units to be in specific positions and being shot by specific weapons but which can result in shots ghosting through the unit. This is because the unit’s collision volume is stale. The movement.unitQuadPositionUpdateRate
modrule controls this behaviour and can guarantee 100% correctness if set to 1, but the default value is 3 and large-scale games generally don’t want to set it so low. This function lets you guarantee success for important weapons regardless of how high the normal update rate is set.
[source]
Spring.FreeUnitIcon
function Spring.FreeUnitIcon(iconName: string) -> freed boolean?
[source]
Spring.GameOver
function Spring.GameOver(
allyTeamID1: number?,
allyTeamID2: number?,
allyTeamIDn: number?
) -> nil
Will declare game over.
A list of winning allyteams can be passed, if undecided (like when dropped from the host) it should be empty (no winner), in the case of a draw with multiple winners, all should be listed.
[source]
Spring.GarbageCollectCtrl
function Spring.GarbageCollectCtrl(
itersPerBatch: integer?,
numStepsPerIter: integer?,
minStepsPerIter: integer?,
maxStepsPerIter: integer?,
minLoopRunTime: number?,
maxLoopRunTime: number?,
baseRunTimeMult: number?,
baseMemLoadMult: number?
) -> nil
[source]
Spring.GetAIInfo
function Spring.GetAIInfo(teamID: integer)
-> skirmishAIID number
-> name string
-> hostingPlayerID number
-> shortName string
-> version string
-> options table<string,string>
@return shortName
- when synced “SYNCED_NOSHORTNAME”, otherwise the AI shortname or “UNKNOWN”
@return version
- when synced “SYNCED_NOVERSION”, otherwise the AI version or “UNKNOWN”
[source]
Spring.GetActionHotKeys
function Spring.GetActionHotKeys(actionName: string) -> hotkeys string[]?
[source]
Spring.GetActiveCmdDesc
function Spring.GetActiveCmdDesc(cmdIndex: integer) -> CommandDescription?
[source]
Spring.GetActiveCmdDescs
function Spring.GetActiveCmdDescs() -> cmdDescs CommandDescription[]
[source]
Spring.GetActiveCommand
function Spring.GetActiveCommand()
-> cmdIndex number?
-> cmdID number?
-> cmdType number?
-> cmdName (nil|string)
[source]
Spring.GetActivePage
function Spring.GetActivePage()
-> activePage number
-> maxPage number
[source]
Spring.GetAllFeatures
function Spring.GetAllFeatures()
[source]
Spring.GetAllGroundDecals
function Spring.GetAllGroundDecals() -> decalIDs number[]
[source]
Spring.GetAllUnits
function Spring.GetAllUnits() -> unitIDs number[]
Get a list of all unitIDs
Note that when called from a widget, this also returns units that are only radar blips.
For units that are radar blips, you may want to check if they are in los, as GetUnitDefID() will still return true if they have previously been seen.
[source]
Spring.GetAllyTeamInfo
function Spring.GetAllyTeamInfo(allyTeamID: integer) -> (nil|table<string,string>)
[source]
Spring.GetAllyTeamList
function Spring.GetAllyTeamList() -> list number[]
@return list
- of allyTeamIDs
[source]
Spring.GetAllyTeamStartBox
function Spring.GetAllyTeamStartBox(allyID: integer)
-> xMin number?
-> zMin number?
-> xMax number?
-> zMax number?
[source]
Spring.GetBoxSelectionByEngine
function Spring.GetBoxSelectionByEngine() -> when boolean
@return when
- true engine won’t select units inside selection box when released
Get if selection box is handled by engine
[source]
Spring.GetBuildFacing
function Spring.GetBuildFacing() -> buildFacing Facing
[source]
Spring.GetBuildSpacing
function Spring.GetBuildSpacing() -> buildSpacing number
[source]
Spring.GetCEGID
function Spring.GetCEGID()
[source]
Spring.GetCOBScriptID
function Spring.GetCOBScriptID(
unitID: integer,
funcName: string
) -> funcID integer?
[source]
Spring.GetCameraDirection
function Spring.GetCameraDirection()
-> dirX number
-> dirY number
-> dirZ number
[source]
Spring.GetCameraFOV
function Spring.GetCameraFOV()
-> vFOV number
-> hFOV number
[source]
Spring.GetCameraNames
function Spring.GetCameraNames() -> Table table<string,number>
@return Table
- where where keys are names and values are indices.
Get available cameras.
[source]
Spring.GetCameraPosition
function Spring.GetCameraPosition()
-> posX number
-> posY number
-> posZ number
[source]
Spring.GetCameraRotation
function Spring.GetCameraRotation()
-> rotX number
-> rotY number
-> rotZ number
@return rotX
- in radians
@return rotY
- in radians
@return rotZ
- in radians
[source]
Spring.GetCameraState
function Spring.GetCameraState(useReturns: unknown) -> cameraState CameraState
[source]
Spring.GetCameraVectors
function Spring.GetCameraVectors() -> CameraVectors
[source]
Spring.GetClipboard
function Spring.GetClipboard() -> text string
[source]
Spring.GetCmdDescIndex
function Spring.GetCmdDescIndex(cmdID: integer) -> cmdDescIndex integer?
[source]
Spring.GetCommandQueue
function Spring.GetCommandQueue(
unitID: integer,
count: integer
) -> commands Command[]
@param count
- Number of commands to return, -1
returns all commands, 0
returns command count.
Get the commands for a unit.
Same as Spring.GetUnitCommands
[source]
Spring.GetConfigFloat
function Spring.GetConfigFloat(
name: string,
default: number?
) -> configFloat number?
@param default
- (Default: 0
)
[source]
Spring.GetConfigInt
function Spring.GetConfigInt(
name: string,
default: number?
) -> configInt number?
@param default
- (Default: 0
)
[source]
Spring.GetConfigParams
function Spring.GetConfigParams() -> Configuration[]
[source]
Spring.GetConfigString
function Spring.GetConfigString(
name: string,
default: string?
) -> configString number?
@param default
- (Default: ""
)
[source]
Spring.GetConsoleBuffer
function Spring.GetConsoleBuffer(maxLines: number) -> buffer { priority: integer,text: string }[]
[source]
Spring.GetCurrentTooltip
function Spring.GetCurrentTooltip() -> tooltip string
[source]
Spring.GetDecalQuadPos
function Spring.GetDecalQuadPos(decalID: integer)
-> posTL.x number?
-> posTL.z number
-> posTR.x number
-> posTR.z number
-> posBR.x number
-> posBR.z number
-> posBL.x number
-> posBL.z number
[source]
Spring.GetDecalTextures
function Spring.GetDecalTextures(isMainTex: boolean?) -> textureNames string[]
@param isMainTex
- (Default: true) If false, it gets the texture for normals/glow maps
@return textureNames
- All textures on the atlas and available for use in SetGroundDecalTexture
[source]
Spring.GetDefaultCommand
function Spring.GetDefaultCommand()
-> cmdIndex number?
-> cmdID number?
-> cmdType number?
-> cmdName (nil|string)
[source]
Spring.GetDrawFrame
function Spring.GetDrawFrame()
-> low_16bit number
-> high_16bit number
[source]
Spring.GetDrawSeconds
function Spring.GetDrawSeconds() -> Time integer
@return Time
- in seconds
[source]
Spring.GetDrawSelectionInfo
function Spring.GetDrawSelectionInfo() -> boolean
[source]
Spring.GetDualViewGeometry
function Spring.GetDualViewGeometry()
-> dualViewSizeX number
-> dualViewSizeY number
-> dualViewPosX number
-> dualViewPosY number
@return dualViewSizeX
- in px
@return dualViewSizeY
- in px
@return dualViewPosX
- offset from leftmost screen left border in px
@return dualViewPosY
- offset from bottommost screen bottom border in px
Get dual view geometry (minimap when enabled)
[source]
Spring.GetFPS
function Spring.GetFPS() -> fps number
[source]
Spring.GetFacingFromHeading
function Spring.GetFacingFromHeading(heading: number) -> facing number
[source]
Spring.GetFactoryBuggerOff
function Spring.GetFactoryBuggerOff(unitID: integer)
[source]
Spring.GetFactoryCommands
function Spring.GetFactoryCommands(
unitID: integer,
count: number
) -> commands (number|Command[])
@param count
- when 0 returns the number of commands in the units queue, when -1 returns all commands, number of commands to return otherwise
Get the number or list of commands for a factory
[source]
Spring.GetFactoryCounts
function Spring.GetFactoryCounts(
unitID: integer,
count: integer?,
addCmds: boolean?
) -> counts table<number,number>?
@param count
- (Default: -1) Number of commands to retrieve, -1
for all.
@param addCmds
- (Default: false) Retrieve commands other than buildunit
@return counts
- Build queue count by unitDefID
or -cmdID
, or nil
if unit is not found.
Gets the build queue of a factory
[source]
Spring.GetFeatureAllyTeam
function Spring.GetFeatureAllyTeam(featureID: integer) -> number?
[source]
Spring.GetFeatureAlwaysUpdateMatrix
function Spring.GetFeatureAlwaysUpdateMatrix(featureID: integer) -> nil boolean?
@return nil
- when featureID cannot be parsed
[source]
Spring.GetFeatureBlocking
function Spring.GetFeatureBlocking(featureID: integer)
-> isBlocking (nil|boolean)
-> isSolidObjectCollidable boolean
-> isProjectileCollidable boolean
-> isRaySegmentCollidable boolean
-> crushable boolean
-> blockEnemyPushing boolean
-> blockHeightChanges boolean
[source]
Spring.GetFeatureCollisionVolumeData
function Spring.GetFeatureCollisionVolumeData(featureID: integer)
[source]
Spring.GetFeatureDefID
function Spring.GetFeatureDefID(featureID: integer) -> number?
[source]
Spring.GetFeatureDirection
function Spring.GetFeatureDirection(featureID: integer)
-> frontDirX number
-> frontDirY number
-> frontDirZ number
-> rightDirX number
-> rightDirY number
-> rightDirZ number
-> upDirX number
-> upDirY number
-> upDirZ number
[source]
Spring.GetFeatureDrawFlag
function Spring.GetFeatureDrawFlag(featureID: integer) -> nil number?
@return nil
- when featureID cannot be parsed
[source]
Spring.GetFeatureEngineDrawMask
function Spring.GetFeatureEngineDrawMask(featureID: integer) -> nil boolean?
@return nil
- when featureID cannot be parsed
[source]
Spring.GetFeatureHeading
function Spring.GetFeatureHeading(featureID: integer)
[source]
Spring.GetFeatureHealth
function Spring.GetFeatureHealth(featureID: integer)
-> health number?
-> defHealth number
-> resurrectProgress number
[source]
Spring.GetFeatureHeight
function Spring.GetFeatureHeight(featureID: integer) -> number?
[source]
Spring.GetFeatureLastAttackedPiece
function Spring.GetFeatureLastAttackedPiece(featureID: integer)
[source]
Spring.GetFeatureLuaDraw
function Spring.GetFeatureLuaDraw(featureID: integer) -> nil boolean?
@return nil
- when featureID cannot be parsed
[source]
Spring.GetFeatureMass
function Spring.GetFeatureMass(featureID: integer) -> number?
[source]
Spring.GetFeatureNoDraw
function Spring.GetFeatureNoDraw(featureID: integer) -> nil boolean?
@return nil
- when featureID cannot be parsed
[source]
Spring.GetFeatureNoSelect
function Spring.GetFeatureNoSelect(featureID: integer) -> (nil|boolean)
[source]
Spring.GetFeaturePieceCollisionVolumeData
function Spring.GetFeaturePieceCollisionVolumeData(featureID: integer)
[source]
Spring.GetFeaturePieceDirection
function Spring.GetFeaturePieceDirection(
featureID: integer,
pieceIndex: integer
)
-> dirX (number|nil)
-> dirY number
-> dirZ number
[source]
Spring.GetFeaturePieceInfo
function Spring.GetFeaturePieceInfo(
featureID: integer,
pieceIndex: integer
) -> pieceInfo PieceInfo?
[source]
Spring.GetFeaturePieceList
function Spring.GetFeaturePieceList(featureID: integer) -> pieceNames string[]
[source]
Spring.GetFeaturePieceMap
function Spring.GetFeaturePieceMap(featureID: integer) -> pieceInfos table<string,number>
@return pieceInfos
- where keys are piece names and values are indices
[source]
Spring.GetFeaturePieceMatrix
function Spring.GetFeaturePieceMatrix(featureID: integer)
-> m11 (number|nil)
-> m12 number
-> m13 number
-> m14 number
-> m21 number
-> m22 number
-> m23 number
-> m24 number
-> m31 number
-> m32 number
-> m33 number
-> m34 number
-> m41 number
-> m42 number
-> m43 number
-> m44 number
[source]
Spring.GetFeaturePiecePosDir
function Spring.GetFeaturePiecePosDir(
featureID: integer,
pieceIndex: integer
)
-> posX (number|nil)
-> posY number
-> posZ number
-> dirX number
-> dirY number
-> dirZ number
[source]
Spring.GetFeaturePiecePosition
function Spring.GetFeaturePiecePosition(
featureID: integer,
pieceIndex: integer
)
-> posX (number|nil)
-> posY number
-> posZ number
[source]
Spring.GetFeaturePosition
function Spring.GetFeaturePosition(featureID: integer)
[source]
Spring.GetFeatureRadius
function Spring.GetFeatureRadius(featureID: integer) -> number?
[source]
Spring.GetFeatureResources
function Spring.GetFeatureResources(featureID: integer)
-> metal number?
-> defMetal number
-> energy number
-> defEnergy number
-> reclaimLeft number
-> reclaimTime number
[source]
Spring.GetFeatureResurrect
function Spring.GetFeatureResurrect(featureID: integer)
[source]
Spring.GetFeatureRootPiece
function Spring.GetFeatureRootPiece(featureID: integer) -> index number
@return index
- of the root piece
[source]
Spring.GetFeatureRotation
function Spring.GetFeatureRotation(featureID: integer)
-> pitch number
-> yaw number
-> roll number
@return pitch
- Rotation in X axis
@return yaw
- Rotation in Y axis
@return roll
- Rotation in Z axis
Note: PYR order
[source]
Spring.GetFeatureRulesParam
function Spring.GetFeatureRulesParam(
featureID: integer,
ruleRef: (number|string)
) -> value (nil|number|string)
@param ruleRef
- the rule index or name
[source]
Spring.GetFeatureRulesParams
function Spring.GetFeatureRulesParams(featureID: integer) -> rulesParams RulesParams
@return rulesParams
- map with rules names as key and values as values
[source]
Spring.GetFeatureSelectionVolumeData
function Spring.GetFeatureSelectionVolumeData(featureID: integer)
-> scaleX number?
-> scaleY number
-> scaleZ number
-> offsetX number
-> offsetY number
-> offsetZ number
-> volumeType number
-> useContHitTest number
-> getPrimaryAxis number
-> ignoreHits boolean
@return scaleX
- nil when unitID cannot be parsed
[source]
Spring.GetFeatureSeparation
function Spring.GetFeatureSeparation(
featureID1: number,
featureID2: number,
direction: boolean?
) -> number?
@param direction
- (Default: false) to subtract from, default featureID1 - featureID2
[source]
Spring.GetFeatureTeam
function Spring.GetFeatureTeam(featureID: integer) -> number?
[source]
Spring.GetFeatureTransformMatrix
function Spring.GetFeatureTransformMatrix(featureID: integer)
-> m11 number?
-> m12 number
-> m13 number
-> m14 number
-> m21 number
-> m22 number
-> m23 number
-> m24 number
-> m31 number
-> m32 number
-> m33 number
-> m34 number
-> m41 number
-> m42 number
-> m43 number
-> m44 number
@return m11
- nil when featureID cannot be parsed
[source]
Spring.GetFeatureVelocity
function Spring.GetFeatureVelocity(featureID: integer)
[source]
Spring.GetFeaturesInCylinder
function Spring.GetFeaturesInCylinder(
x: number,
z: number,
radius: number,
allegiance: number?
) -> featureIDs number[]
[source]
Spring.GetFeaturesInRectangle
function Spring.GetFeaturesInRectangle(
xmin: number,
zmin: number,
xmax: number,
zmax: number
) -> featureIDs number[]
[source]
Spring.GetFeaturesInScreenRectangle
function Spring.GetFeaturesInScreenRectangle(
left: number,
top: number,
right: number,
bottom: number
) -> featureIDs (nil|number[])
Get features inside a rectangle area on the map
[source]
Spring.GetFeaturesInSphere
function Spring.GetFeaturesInSphere(
x: number,
y: number,
z: number,
radius: number
) -> featureIDs number[]
[source]
Spring.GetFrameTimeOffset
function Spring.GetFrameTimeOffset() -> offset number?
@return offset
- of the current draw frame from the last sim frame, expressed in fractions of a frame
Ideally, when running 30hz sim, and 60hz rendering, the draw frames should have and offset of either 0.0 frames, or 0.5 frames.
When draw frames are not integer multiples of sim frames, some interpolation happens, and this timeoffset shows how far along it is.
[source]
Spring.GetFrameTimer
function Spring.GetFrameTimer(lastFrameTime: boolean?) -> integer
@param lastFrameTime
- (Default: false) whether to use last frame time instead of last frame start
Get a timer for the start of the frame
This should give better results for camera interpolations
[source]
Spring.GetFullBuildQueue
function Spring.GetFullBuildQueue(unitID: integer) -> buildqueue (nil|table<number,number>)
@return buildqueue
- indexed by unitDefID with count values
Returns the build queue
[source]
Spring.GetGaiaTeamID
function Spring.GetGaiaTeamID() -> teamID number
[source]
Spring.GetGameFrame
function Spring.GetGameFrame()
-> t1 number
-> t2 number
@return t1
- frameNum % dayFrames
@return t2
- frameNum / dayFrames
[source]
Spring.GetGameName
function Spring.GetGameName() -> name string
[source]
Spring.GetGameRulesParam
function Spring.GetGameRulesParam(ruleRef: (number|string)) -> number?
@param ruleRef
- the rule index or name
@return - | string value |
[source]
Spring.GetGameRulesParams
function Spring.GetGameRulesParams() -> rulesParams RulesParams
@return rulesParams
- map with rules names as key and values as values
[source]
Spring.GetGameSeconds
function Spring.GetGameSeconds() -> seconds number
[source]
Spring.GetGameSpeed
function Spring.GetGameSpeed()
-> wantedSpeedFactor number
-> speedFactor number
-> paused boolean
[source]
Spring.GetGameState
function Spring.GetGameState(maxLatency: number?)
-> doneLoading boolean
-> isSavedGame boolean
-> isClientPaused boolean
-> isSimLagging boolean
@param maxLatency
- (Default: 500) used for isSimLagging
return parameter
[source]
Spring.GetGatherMode
function Spring.GetGatherMode() -> gatherMode number
[source]
Spring.GetGlobalLos
function Spring.GetGlobalLos(teamID: integer?) -> enabled boolean
[source]
Spring.GetGrass
function Spring.GetGrass(
x: number,
z: number
) -> number
[source]
Spring.GetGroundBlocked
function Spring.GetGroundBlocked()
[source]
Spring.GetGroundDecalAlpha
function Spring.GetGroundDecalAlpha(decalID: integer)
-> alpha number?
-> alphaFalloff number
@return alpha
- Between 0 and 1
@return alphaFalloff
- Between 0 and 1, per second
[source]
Spring.GetGroundDecalCreationFrame
function Spring.GetGroundDecalCreationFrame(decalID: integer)
-> creationFrameMin number?
-> creationFrameMax number
Min can be not equal to max for “gradient” style decals, e.g. unit tracks
[source]
Spring.GetGroundDecalMiddlePos
function Spring.GetGroundDecalMiddlePos(decalID: integer)
-> posX number?
-> posZ number
[source]
Spring.GetGroundDecalMisc
function Spring.GetGroundDecalMisc(decalID: integer)
-> dotElimExp number?
-> refHeight number
-> minHeight number
-> maxHeight number
-> forceHeightMode number
Returns less important parameters of a ground decal
[source]
Spring.GetGroundDecalNormal
function Spring.GetGroundDecalNormal(decalID: integer)
-> normal.x number?
-> normal.y number
-> normal.z number
If all three equal 0, the decal follows the normals of ground at midpoint
[source]
Spring.GetGroundDecalOwner
function Spring.GetGroundDecalOwner(decalID: integer) -> unitID number?
@return unitID - | number featureID(+MAX_UNITS) |
[source]
Spring.GetGroundDecalRotation
function Spring.GetGroundDecalRotation(decalID: integer) -> rotation number?
@return rotation
- in radians
[source]
Spring.GetGroundDecalSizeAndHeight
function Spring.GetGroundDecalSizeAndHeight(decalID: integer)
-> sizeX number?
-> sizeY number
-> projCubeHeight number
[source]
Spring.GetGroundDecalTexture
function Spring.GetGroundDecalTexture(
decalID: integer,
isMainTex: boolean?
) -> texture (nil|string)
@param isMainTex
- (Default: true) If false, it gets the normals/glow map
[source]
Spring.GetGroundDecalTint
function Spring.GetGroundDecalTint(decalID: integer)
-> tintR number?
-> tintG number
-> tintB number
-> tintA number
Gets the tint of the ground decal. A color of (0.5, 0.5, 0.5, 0.5) is effectively no tint
[source]
Spring.GetGroundDecalType
function Spring.GetGroundDecalType(decalID: integer) -> type (nil|string)
@return type - “explosion” | “plate” | “lua” | “track” | “unknown” |
[source]
Spring.GetGroundExtremes
function Spring.GetGroundExtremes()
-> initMinHeight number
-> initMaxHeight number
-> currMinHeight number
-> currMaxHeight number
[source]
Spring.GetGroundHeight
function Spring.GetGroundHeight(
x: number,
z: number
) -> number
Get ground height
On sea, this returns the negative depth of the seafloor
[source]
Spring.GetGroundInfo
function Spring.GetGroundInfo(
x: number,
z: number
)
-> ix number
-> iz number
-> terrainTypeIndex number
-> name string
-> metalExtraction number
-> hardness number
-> tankSpeed number
-> kbotSpeed number
-> hoverSpeed number
-> shipSpeed number
-> receiveTracks boolean
[source]
Spring.GetGroundNormal
function Spring.GetGroundNormal(
x: number,
z: number,
smoothed: boolean?
)
-> normalX number
-> normalY number
-> normalZ number
-> slope number
@param smoothed
- (Default: false) raw or smoothed center normal
[source]
Spring.GetGroundOrigHeight
function Spring.GetGroundOrigHeight(
x: number,
z: number
) -> number
Get ground height as it was at game start
Returns the original height before the ground got deformed
[source]
Spring.GetGroupList
function Spring.GetGroupList() -> where (nil|table<number,number>)
@return where
- keys are groupIDs and values are counts
[source]
Spring.GetGroupUnits
function Spring.GetGroupUnits(groupID: integer) -> unitIDs (nil|number[])
[source]
Spring.GetGroupUnitsCount
function Spring.GetGroupUnitsCount(groupID: integer) -> groupSize number?
[source]
Spring.GetGroupUnitsCounts
function Spring.GetGroupUnitsCounts(groupID: integer) -> where (nil|table<number,number>)
@return where
- keys are unitDefIDs and values are counts
[source]
Spring.GetGroupUnitsSorted
function Spring.GetGroupUnitsSorted(groupID: integer) -> where (nil|table<number,number[]>)
@return where
- keys are unitDefIDs and values are unitIDs
[source]
Spring.GetHeadingFromFacing
function Spring.GetHeadingFromFacing(facing: number) -> heading number
[source]
Spring.GetHeadingFromVector
function Spring.GetHeadingFromVector(
x: number,
z: number
) -> heading number
[source]
Spring.GetInvertQueueKey
function Spring.GetInvertQueueKey() -> queueKey number?
[source]
Spring.GetKeyBindings
function Spring.GetKeyBindings(
keySet1: string?,
keySet2: string?
) -> KeyBinding[]
@param keySet1
- filters keybindings bound to this keyset
@param keySet2
- OR bound to this keyset
[source]
Spring.GetKeyCode
function Spring.GetKeyCode(keySym: string) -> keyCode number
[source]
Spring.GetKeyFromScanSymbol
function Spring.GetKeyFromScanSymbol(scanSymbol: string) -> keyName string
[source]
Spring.GetKeyState
function Spring.GetKeyState(keyCode: number) -> pressed boolean
[source]
Spring.GetKeySymbol
function Spring.GetKeySymbol(keyCode: number)
-> keyCodeName string
-> keyCodeDefaultName string
@return keyCodeDefaultName
- name when there are not aliases
[source]
Spring.GetLastMessagePositions
function Spring.GetLastMessagePositions() -> message xyz[]
@return message
- positions
[source]
Spring.GetLastUpdateSeconds
function Spring.GetLastUpdateSeconds() -> lastUpdateSeconds number?
[source]
Spring.GetLocalAllyTeamID
function Spring.GetLocalAllyTeamID() -> allyTeamID number
[source]
Spring.GetLocalPlayerID
function Spring.GetLocalPlayerID() -> playerID number
[source]
Spring.GetLocalTeamID
function Spring.GetLocalTeamID() -> teamID number
[source]
Spring.GetLogSections
function Spring.GetLogSections() -> sections table<string,number>
@return sections
- where keys are names and loglevel are values. E.g. { "KeyBindings" = LOG.INFO, "Font" = LOG.INFO, "Sound" = LOG.WARNING, ... }
[source]
Spring.GetLosViewColors
function Spring.GetLosViewColors()
-> always rgb
-> LOS rgb
-> radar rgb
-> jam rgb
-> radar2 rgb
[source]
Spring.GetLuaMemUsage
function Spring.GetLuaMemUsage()
-> luaHandleAllocedMem number
-> luaHandleNumAllocs number
-> luaGlobalAllocedMem number
-> luaGlobalNumAllocs number
-> luaUnsyncedGlobalAllocedMem number
-> luaUnsyncedGlobalNumAllocs number
-> luaSyncedGlobalAllocedMem number
-> luaSyncedGlobalNumAllocs number
@return luaHandleAllocedMem
- in kilobytes
@return luaHandleNumAllocs
- divided by 1000
@return luaGlobalAllocedMem
- in kilobytes
@return luaGlobalNumAllocs
- divided by 1000
@return luaUnsyncedGlobalAllocedMem
- in kilobytes
@return luaUnsyncedGlobalNumAllocs
- divided by 1000
@return luaSyncedGlobalAllocedMem
- in kilobytes
@return luaSyncedGlobalNumAllocs
- divided by 1000
[source]
Spring.GetMapDrawMode
function Spring.GetMapDrawMode() -> ("normal"|"height"|"metal"|"pathTraversability"|"los")
[source]
Spring.GetMapOption
function Spring.GetMapOption(mapOption: string) -> value string
@return value
- Value of modOption
.
[source]
Spring.GetMapOptions
function Spring.GetMapOptions() -> mapOptions table<string,string>
@return mapOptions
- Table with options names as keys and values as values.
[source]
Spring.GetMapSquareTexture
function Spring.GetMapSquareTexture(
texSquareX: number,
texSquareY: number,
lodMin: number,
luaTexName: string,
lodMax: number?
) -> success boolean?
@param lodMax
- (Default: lodMin)
[source]
Spring.GetMapStartPositions
function Spring.GetMapStartPositions() -> array float3[]
@return array
- of positions indexed by teamID
[source]
Spring.GetMenuName
function Spring.GetMenuName() -> name string
@return name
- name .. version from Modinfo.lua. E.g. “Spring: 1944 test-5640-ac2d15b”.
[source]
Spring.GetMiniMapDualScreen
function Spring.GetMiniMapDualScreen() -> position string
@return position - “left” | “right” when dual screen is enabled, false when not |
[source]
Spring.GetMiniMapGeometry
function Spring.GetMiniMapGeometry()
-> minimapPosX number
-> minimapPosY number
-> minimapSizeX number
-> minimapSizeY number
-> minimized boolean
-> maximized boolean
@return minimapPosX
- in px
@return minimapPosY
- in px
@return minimapSizeX
- in px
@return minimapSizeY
- in px
Get minimap geometry
[source]
Spring.GetMiniMapRotation
function Spring.GetMiniMapRotation() -> amount number
@return amount
- in radians
Get minimap rotation
[source]
Spring.GetModKeyState
function Spring.GetModKeyState()
-> alt boolean
-> ctrl boolean
-> meta boolean
-> shift boolean
[source]
Spring.GetModOption
function Spring.GetModOption(modOption: string) -> value string
@return value
- Value of modOption
.
[source]
Spring.GetModOptions
function Spring.GetModOptions() -> modOptions table<string,string>
@return modOptions
- Table with options names as keys and values as values.
[source]
Spring.GetModelPieceList
function Spring.GetModelPieceList(modelName: string) -> pieceNames (nil|string[])
[source]
Spring.GetModelPieceMap
function Spring.GetModelPieceMap(modelName: string) -> pieceInfos (nil|table<string,number>)
@return pieceInfos
- where keys are piece names and values are indices
[source]
Spring.GetModelRootPiece
function Spring.GetModelRootPiece(modelName: string) -> index number
@return index
- of the root piece
[source]
Spring.GetMouseCursor
function Spring.GetMouseCursor()
-> cursorName string
-> cursorScale number
[source]
Spring.GetMouseStartPosition
function Spring.GetMouseStartPosition(button: number)
-> x number
-> y number
-> camPosX number
-> camPosY number
-> camPosZ number
-> dirX number
-> dirY number
-> dirZ number
[source]
Spring.GetMouseState
function Spring.GetMouseState()
-> x number
-> y number
-> lmbPressed number
-> mmbPressed number
-> rmbPressed number
-> offscreen boolean
-> mmbScroll boolean
@return lmbPressed
- left mouse button pressed
@return mmbPressed
- middle mouse button pressed
@return rmbPressed
- right mouse button pressed
[source]
Spring.GetNanoProjectileParams
function Spring.GetNanoProjectileParams()
-> rotVal number
-> rotVel number
-> rotAcc number
-> rotValRng number
-> rotVelRng number
-> rotAccRng number
@return rotVal
- in degrees
@return rotVel
- in degrees
@return rotAcc
- in degrees
@return rotValRng
- in degrees
@return rotVelRng
- in degrees
@return rotAccRng
- in degrees
[source]
Spring.GetNumDisplays
function Spring.GetNumDisplays() -> numDisplays number
@return numDisplays
- as returned by SDL_GetNumVideoDisplays
[source]
Spring.GetPieceProjectileParams
function Spring.GetPieceProjectileParams(projectileID: integer)
-> explosionFlags number?
-> spinAngle number
-> spinSpeed number
-> spinVectorX number
-> spinVectorY number
-> spinVectorZ number
@return explosionFlags
- encoded bitwise with SHATTER = 1, EXPLODE = 2, EXPLODE_ON_HIT = 2, FALL = 4, SMOKE = 8, FIRE = 16, NONE = 32, NO_CEG_TRAIL = 64, NO_HEATCLOUD = 128
[source]
Spring.GetPixelDir
function Spring.GetPixelDir(
x: number,
y: number
)
-> dirX number
-> dirY number
-> dirZ number
[source]
Spring.GetPlayerControlledUnit
function Spring.GetPlayerControlledUnit(playerID: integer) -> number?
Returns unit controlled by player on FPS mode
[source]
Spring.GetPlayerInfo
function Spring.GetPlayerInfo(
playerID: integer,
getPlayerOpts: boolean?
)
-> name string
-> active boolean
-> spectator boolean
-> teamID number
-> allyTeamID number
-> pingTime number
-> cpuUsage number
-> country string
-> rank number
-> hasSkirmishAIsInTeam boolean
-> playerOpts { , [string]: string }
-> desynced boolean
@param getPlayerOpts
- (Default: true) whether to return custom player options
@return playerOpts
- when playerOpts is true
[source]
Spring.GetPlayerList
function Spring.GetPlayerList(
teamID: integer?,
active: boolean?
) -> list number[]?
@param teamID
- (Default: -1) to filter by when >= 0
@param active
- (Default: false) whether to filter only active teams
@return list
- of playerIDs
[source]
Spring.GetPlayerRoster
function Spring.GetPlayerRoster(
sortType: number?,
showPathingPlayers: boolean?
) -> playerTable Roster[]?
@param sortType
- return unsorted if unspecified. Disabled = 0, Allies = 1, TeamID = 2, PlayerName = 3, PlayerCPU = 4, PlayerPing = 5
@param showPathingPlayers
- (Default: false)
[source]
Spring.GetPlayerRulesParam
function Spring.GetPlayerRulesParam(
playerID: integer,
ruleRef: (number|string)
) -> value (nil|number|string)
@param ruleRef
- the rule index or name
[source]
Spring.GetPlayerRulesParams
function Spring.GetPlayerRulesParams(playerID: integer) -> rulesParams RulesParams
@return rulesParams
- map with rules names as key and values as values
[source]
Spring.GetPlayerStatistics
function Spring.GetPlayerStatistics(playerID: integer)
-> mousePixels number?
-> mouseClicks number
-> keyPresses number
-> numCommands number
-> unitCommands number
@return mousePixels
- nil when invalid playerID
[source]
Spring.GetPlayerTraffic
function Spring.GetPlayerTraffic(
playerID: integer,
packetID: integer?
) -> traffic number
[source]
Spring.GetPositionLosState
function Spring.GetPositionLosState(
posX: number,
posY: number,
posZ: number,
allyTeamID: integer?
)
-> inLosOrRadar boolean
-> inLos boolean
-> inRadar boolean
-> inJammer boolean
[source]
Spring.GetPressedKeys
function Spring.GetPressedKeys() -> where table<(number|string),unknown>
@return where
- keys are keyCodes or key names
[source]
Spring.GetPressedScans
function Spring.GetPressedScans() -> where table<(number|string),unknown>
@return where
- keys are scanCodes or scan names
[source]
Spring.GetProfilerRecordNames
function Spring.GetProfilerRecordNames() -> profilerNames string[]
[source]
Spring.GetProfilerTimeRecord
function Spring.GetProfilerTimeRecord(
profilerName: string,
frameData: boolean?
)
-> total number
-> current number
-> max_dt number
-> time_pct number
-> peak_pct number
-> frameData table<number,number>?
@param frameData
- (Default: false)
@return total
- in ms
@return current
- in ms
@return frameData
- Table where key is the frame index and value is duration.
[source]
Spring.GetProjectileAllyTeamID
function Spring.GetProjectileAllyTeamID(projectileID: integer) -> number?
[source]
Spring.GetProjectileDamages
function Spring.GetProjectileDamages(
projectileID: integer,
tag: string
) -> number?
@param tag
- one of: “paralyzeDamageTime” “impulseFactor” “impulseBoost” “craterMult” “craterBoost” “dynDamageExp” “dynDamageMin” “dynDamageRange” “dynDamageInverted” “craterAreaOfEffect” “damageAreaOfEffect” “edgeEffectiveness” “explosionSpeed”
- or - an armor type index to get the damage against it.
[source]
Spring.GetProjectileDefID
function Spring.GetProjectileDefID(projectileID: integer) -> number?
Using this to get a weaponDefID is HIGHLY preferred to indexing WeaponDefNames via GetProjectileName
[source]
Spring.GetProjectileDirection
function Spring.GetProjectileDirection(projectileID: integer)
-> dirX number?
-> dirY number
-> dirZ number
[source]
Spring.GetProjectileGravity
function Spring.GetProjectileGravity(projectileID: integer) -> number?
[source]
Spring.GetProjectileIsIntercepted
function Spring.GetProjectileIsIntercepted(projectileID: integer) -> (nil|boolean)
[source]
Spring.GetProjectileOwnerID
function Spring.GetProjectileOwnerID(projectileID: integer) -> number?
[source]
Spring.GetProjectilePosition
function Spring.GetProjectilePosition(projectileID: integer)
-> posX number?
-> posY number
-> posZ number
[source]
Spring.GetProjectileTarget
function Spring.GetProjectileTarget(projectileID: integer)
-> targetTypeInt number?
-> target (number|float3)
@return targetTypeInt
- where string.byte(‘g’) := GROUND string.byte(‘u’) := UNIT string.byte(‘f’) := FEATURE string.byte(‘p’) := PROJECTILE
@return target
- targetID or targetPos when targetTypeInt == string.byte(‘g’)
[source]
Spring.GetProjectileTeamID
function Spring.GetProjectileTeamID(projectileID: integer) -> number?
[source]
Spring.GetProjectileTimeToLive
function Spring.GetProjectileTimeToLive(projectileID: integer) -> number?
[source]
Spring.GetProjectileType
function Spring.GetProjectileType(projectileID: integer)
-> weapon (nil|boolean)
-> piece boolean
[source]
Spring.GetProjectileVelocity
function Spring.GetProjectileVelocity(projectileID: integer)
-> velX number?
-> velY number
-> velZ number
-> velW number
[source]
Spring.GetProjectilesInRectangle
function Spring.GetProjectilesInRectangle(
xmin: number,
zmin: number,
xmax: number,
zmax: number,
excludeWeaponProjectiles: boolean?,
excludePieceProjectiles: boolean?
) -> projectileIDs number[]
@param excludeWeaponProjectiles
- (Default: false)
@param excludePieceProjectiles
- (Default: false)
[source]
Spring.GetRadarErrorParams
function Spring.GetRadarErrorParams(allyTeamID: integer)
-> radarErrorSize number?
-> baseRadarErrorSize number
-> baseRadarErrorMult number
@return radarErrorSize
- actual radar error size (when allyTeamID is allied to current team) or base radar error size
[source]
Spring.GetRealBuildQueue
function Spring.GetRealBuildQueue(unitID: integer) -> buildqueue (nil|table<number,number>)
@return buildqueue
- indexed by unitDefID with count values
Returns the build queue cleaned of things the unit can’t build itself
[source]
Spring.GetRenderFeatures
function Spring.GetRenderFeatures()
[source]
Spring.GetRenderFeaturesDrawFlagChanged
function Spring.GetRenderFeaturesDrawFlagChanged()
[source]
Spring.GetRenderUnits
function Spring.GetRenderUnits()
[source]
Spring.GetRenderUnitsDrawFlagChanged
function Spring.GetRenderUnitsDrawFlagChanged()
[source]
Spring.GetReplayLength
function Spring.GetReplayLength() -> timeInSeconds number?
[source]
Spring.GetScanSymbol
function Spring.GetScanSymbol(scanCode: number)
-> scanCodeName string
-> scanCodeDefaultName string
@return scanCodeDefaultName
- name when there are not aliases
[source]
Spring.GetScreenGeometry
function Spring.GetScreenGeometry(
displayIndex: number?,
queryUsable: boolean?
)
-> screenSizeX number
-> screenSizeY number
-> screenPosX number
-> screenPosY number
-> windowBorderTop number
-> windowBorderLeft number
-> windowBorderBottom number
-> windowBorderRight number
-> screenUsableSizeX number?
-> screenUsableSizeY number?
-> screenUsablePosX number?
-> screenUsablePosY number?
@param displayIndex
- (Default: -1)
@param queryUsable
- (Default: false)
@return screenSizeX
- in px
@return screenSizeY
- in px
@return screenPosX
- in px
@return screenPosY
- in px
@return windowBorderTop
- in px
@return windowBorderLeft
- in px
@return windowBorderBottom
- in px
@return windowBorderRight
- in px
@return screenUsableSizeX
- in px
@return screenUsableSizeY
- in px
@return screenUsablePosX
- in px
@return screenUsablePosY
- in px
Get screen geometry
[source]
Spring.GetSelectedGroup
function Spring.GetSelectedGroup() -> groupID number
[source]
Spring.GetSelectedUnits
function Spring.GetSelectedUnits() -> unitIDs number[]
[source]
Spring.GetSelectedUnitsCount
function Spring.GetSelectedUnitsCount() -> selectedUnitsCount number
Returns the amount of selected units
[source]
Spring.GetSelectedUnitsCounts
function Spring.GetSelectedUnitsCounts()
-> unitsCounts table<number,number>
-> the integer
@return unitsCounts
- where keys are unitDefIDs and values are counts
@return the
- number of unitDefIDs
Get an aggregate count of selected units per unitDefID
[source]
Spring.GetSelectedUnitsSorted
function Spring.GetSelectedUnitsSorted()
-> where table<number,number[]>
-> the integer
@return where
- keys are unitDefIDs and values are unitIDs
@return the
- number of unitDefIDs
Get selected units aggregated by unitDefID
[source]
Spring.GetSelectionBox
function Spring.GetSelectionBox()
-> left number?
-> top number?
-> right number?
-> bottom number?
Get vertices from currently active selection box
Returns nil when selection box is inactive
[source]
Spring.GetSideData
function Spring.GetSideData(sideName: string)
-> startUnit (nil|string)
-> caseSensitiveSideName string
[source]
Spring.GetSmoothMeshHeight
function Spring.GetSmoothMeshHeight(
x: number,
z: number
) -> height number
[source]
Spring.GetSoundDevices
function Spring.GetSoundDevices() -> devices SoundDeviceSpec[]
@return devices
- Sound devices.
[source]
Spring.GetSoundEffectParams
function Spring.GetSoundEffectParams()
[source]
Spring.GetSoundStreamTime
function Spring.GetSoundStreamTime()
-> playTime number
-> time number
[source]
Spring.GetSpectatingState
function Spring.GetSpectatingState()
-> spectating boolean
-> spectatingFullView boolean
-> spectatingFullSelect boolean
[source]
Spring.GetSyncedGCInfo
function Spring.GetSyncedGCInfo(collectGC: boolean?) -> GC number?
@param collectGC
- (Default: false) collect before returning metric
@return GC
- values are expressed in Kbytes: #bytes/2^10
[source]
Spring.GetTeamAllyTeamID
function Spring.GetTeamAllyTeamID(teamID: integer) -> allyTeamID integer?
[source]
Spring.GetTeamColor
function Spring.GetTeamColor(teamID: integer)
-> r number?
-> g number?
-> b number?
-> a number?
@return r
- factor from 0 to 1
@return g
- factor from 0 to 1
@return b
- factor from 0 to 1
@return a
- factor from 0 to 1
[source]
Spring.GetTeamDamageStats
function Spring.GetTeamDamageStats(teamID: integer)
-> damageDealt number
-> damageReceived number
Gets team damage dealt/received totals
Returns a team’s damage stats. Note that all damage is counted, including self-inflicted and unconfirmed out-of-sight.
[source]
Spring.GetTeamInfo
function Spring.GetTeamInfo(
teamID: integer,
getTeamKeys: boolean?
)
-> teamID number?
-> leader number
-> isDead number
-> hasAI number
-> side string
-> allyTeam number
-> incomeMultiplier number
-> customTeamKeys table<string,string>
@param getTeamKeys
- (Default: true) whether to return the customTeamKeys table
@return customTeamKeys
- when getTeamKeys is true, otherwise nil
[source]
Spring.GetTeamList
function Spring.GetTeamList(allyTeamID: integer?) -> list number[]?
@param allyTeamID
- (Default: -1) to filter teams belonging to when >= 0
@return list
- of teamIDs
[source]
Spring.GetTeamLuaAI
function Spring.GetTeamLuaAI(teamID: integer) -> string
[source]
Spring.GetTeamMaxUnits
function Spring.GetTeamMaxUnits(teamID: integer)
-> maxUnits number
-> currentUnits number?
Returns a team’s unit cap.
Also returns the current unit count for readable teams as the 2nd value.
[source]
Spring.GetTeamOrigColor
function Spring.GetTeamOrigColor(teamID: integer)
-> r number?
-> g number?
-> b number?
-> a number?
@return r
- factor from 0 to 1
@return g
- factor from 0 to 1
@return b
- factor from 0 to 1
@return a
- factor from 0 to 1
[source]
Spring.GetTeamResourceStats
function Spring.GetTeamResourceStats(
teamID: integer,
resource: ResourceName
)
-> used number?
-> produced number
-> excessed number
-> received number
-> sent number
[source]
Spring.GetTeamResources
function Spring.GetTeamResources(
teamID: integer,
resource: ResourceName
)
-> currentLevel number?
-> storage number
-> pull number
-> income number
-> expense number
-> share number
-> sent number
-> received number
-> excess number
[source]
Spring.GetTeamRulesParam
function Spring.GetTeamRulesParam(
teamID: integer,
ruleRef: (number|string)
) -> value (nil|number|string)
@param ruleRef
- the rule index or name
[source]
Spring.GetTeamRulesParams
function Spring.GetTeamRulesParams(teamID: integer) -> rulesParams RulesParams
@return rulesParams
- map with rules names as key and values as values
[source]
Spring.GetTeamStartPosition
function Spring.GetTeamStartPosition(teamID: integer)
-> x number?
-> y number?
-> x number?
[source]
Spring.GetTeamStatsHistory
function Spring.GetTeamStatsHistory(teamID: integer) -> historyCount integer?
@return historyCount
- The number of history entries, or nil
if unable to resolve team.
Get the number of history entries.
[source]
Spring.GetTeamUnitCount
function Spring.GetTeamUnitCount(teamID: integer) -> count number?
[source]
Spring.GetTeamUnitDefCount
function Spring.GetTeamUnitDefCount(
teamID: integer,
unitDefID: integer
) -> count number?
[source]
Spring.GetTeamUnitStats
function Spring.GetTeamUnitStats(teamID: integer)
-> killed number?
-> died number
-> capturedBy number
-> capturedFrom number
-> received number
-> sent number
[source]
Spring.GetTeamUnits
function Spring.GetTeamUnits(teamID: integer) -> unitIDs number[]?
[source]
Spring.GetTeamUnitsByDefs
function Spring.GetTeamUnitsByDefs(
teamID: integer,
unitDefIDs: (number|number[])
) -> unitIDs number[]?
[source]
Spring.GetTeamUnitsCounts
function Spring.GetTeamUnitsCounts(teamID: integer) -> countByUnit table<number,number>?
@return countByUnit
- A table where keys are unitDefIDs and values are counts.
[source]
Spring.GetTeamUnitsSorted
function Spring.GetTeamUnitsSorted(teamID: integer) -> unitsByDef table<integer,integer>
@return unitsByDef
- A table where keys are unitDefIDs and values are unitIDs
[source]
Spring.GetTerrainTypeData
function Spring.GetTerrainTypeData(terrainTypeInfo: number)
-> index number
-> name string
-> hardness number
-> tankSpeed number
-> kbotSpeed number
-> hoverSpeed number
-> shipSpeed number
-> receiveTracks boolean
[source]
Spring.GetTidal
function Spring.GetTidal() -> tidalStrength number
[source]
Spring.GetTimer
function Spring.GetTimer() -> integer
Get a timer with millisecond resolution
[source]
Spring.GetTimerMicros
function Spring.GetTimerMicros() -> integer
Get a timer with microsecond resolution
[source]
Spring.GetUnitAllyTeam
function Spring.GetUnitAllyTeam(unitID: integer) -> number?
[source]
Spring.GetUnitAlwaysUpdateMatrix
function Spring.GetUnitAlwaysUpdateMatrix(unitID: integer) -> nil boolean?
@return nil
- when unitID cannot be parsed
[source]
Spring.GetUnitArmored
function Spring.GetUnitArmored(unitID: integer)
-> armored (nil|boolean)
-> armorMultiple number
[source]
Spring.GetUnitArrayCentroid
function Spring.GetUnitArrayCentroid(units: table)
-> centerX number
-> centerY number
-> centerZ number
@param units
- { unitID, unitID, … }
Returns the centroid of an array of units
Returns nil for an empty array
[source]
Spring.GetUnitBasePosition
function Spring.GetUnitBasePosition(unitID: integer)
-> posX number?
-> posY number
-> posZ number
[source]
Spring.GetUnitBlocking
function Spring.GetUnitBlocking(unitID: integer)
-> isBlocking (nil|boolean)
-> isSolidObjectCollidable boolean
-> isProjectileCollidable boolean
-> isRaySegmentCollidable boolean
-> crushable boolean
-> blockEnemyPushing boolean
-> blockHeightChanges boolean
[source]
Spring.GetUnitBuildFacing
function Spring.GetUnitBuildFacing(unitID: integer)
[source]
Spring.GetUnitBuildParams
function Spring.GetUnitBuildParams(unitID: integer)
[source]
Spring.GetUnitBuildeeRadius
function Spring.GetUnitBuildeeRadius(unitID: integer) -> number?
Gets the unit’s radius for when targeted by build, repair, reclaim-type commands.
[source]
Spring.GetUnitCmdDescs
function Spring.GetUnitCmdDescs(unitID: integer)
[source]
Spring.GetUnitCollisionVolumeData
function Spring.GetUnitCollisionVolumeData(unitID: integer)
[source]
Spring.GetUnitCommands
function Spring.GetUnitCommands(
unitID: integer,
count: integer
) -> commands Command[]
@param count
- Number of commands to return, -1
returns all commands, 0
returns command count.
Get the commands for a unit.
Same as Spring.GetCommandQueue
[source]
Spring.GetUnitCostTable
function Spring.GetUnitCostTable(unitID: integer)
-> cost ResourceCost?
-> buildTime number?
@return cost
- The cost of the unit, or nil
if invalid.
@return buildTime
- The build time the unit, or nil
if invalid.
[source]
Spring.GetUnitCosts
function Spring.GetUnitCosts(unitID: integer)
-> buildTime number?
-> metalCost number
-> energyCost number
[source]
Spring.GetUnitCurrentBuildPower
function Spring.GetUnitCurrentBuildPower(unitID: integer)
[source]
Spring.GetUnitCurrentCommand
function Spring.GetUnitCurrentCommand(
unitID: integer,
cmdIndex: integer
)
@param unitID
- Unit id.
@param cmdIndex
- Command index to get. If negative will count from the end of the queue, for example -1 will be the last command.
[source]
Spring.GetUnitDefDimensions
function Spring.GetUnitDefDimensions(unitDefID: integer)
[source]
Spring.GetUnitDefID
function Spring.GetUnitDefID(unitID: integer) -> number?
[source]
Spring.GetUnitDirection
function Spring.GetUnitDirection(unitID: integer)
-> frontDirX number
-> frontDirY number
-> frontDirZ number
-> rightDirX number
-> rightDirY number
-> rightDirZ number
-> upDirX number
-> upDirY number
-> upDirZ number
[source]
Spring.GetUnitDrawFlag
function Spring.GetUnitDrawFlag(unitID: integer) -> nil number?
@return nil
- when unitID cannot be parsed
[source]
Spring.GetUnitEffectiveBuildRange
function Spring.GetUnitEffectiveBuildRange(
unitID: integer,
buildeeDefID: integer
) -> effectiveBuildRange number
@param buildeeDefID
- or nil
@return effectiveBuildRange
- counted to the center of prospective buildee; buildRange if buildee nil
Useful for setting move goals manually.
[source]
Spring.GetUnitEngineDrawMask
function Spring.GetUnitEngineDrawMask(unitID: integer) -> nil boolean?
@return nil
- when unitID cannot be parsed
[source]
Spring.GetUnitEstimatedPath
function Spring.GetUnitEstimatedPath(unitID: integer)
[source]
Spring.GetUnitExperience
function Spring.GetUnitExperience(unitID: integer)
-> xp number
-> limXp number
@return xp
- [0.0; +∞)
@return limXp
- [0.0; 1.0) as experience approaches infinity
[source]
Spring.GetUnitFeatureSeparation
function Spring.GetUnitFeatureSeparation(unitID: integer)
[source]
Spring.GetUnitFlanking
function Spring.GetUnitFlanking(unitID: integer)
[source]
Spring.GetUnitGroup
function Spring.GetUnitGroup(unitID: integer) -> groupID number?
[source]
Spring.GetUnitHarvestStorage
function Spring.GetUnitHarvestStorage(unitID: integer)
-> storedMetal number
-> maxStoredMetal number
-> storedEnergy number
-> maxStoredEnergy number
Get a unit’s carried resources
Checks resources being carried internally by the unit.
[source]
Spring.GetUnitHeading
function Spring.GetUnitHeading(
unitID: integer,
convertToRadians: boolean?
) -> heading number
@param convertToRadians
- (Default: false)
[source]
Spring.GetUnitHealth
function Spring.GetUnitHealth(unitID: integer)
-> health number?
-> maxHealth number
-> paralyzeDamage number
-> captureProgress number
-> buildProgress number
@return buildProgress
- between 0.0-1.0
[source]
Spring.GetUnitHeight
function Spring.GetUnitHeight(unitID: integer) -> number?
[source]
Spring.GetUnitInBuildStance
function Spring.GetUnitInBuildStance(unitID: integer) -> inBuildStance boolean
Is builder in build stance
Checks if a builder is in build stance, i.e. can create nanoframes. Returns nil for non-builders.
[source]
Spring.GetUnitIsActive
function Spring.GetUnitIsActive(unitID: integer) -> isActive boolean?
[source]
Spring.GetUnitIsBeingBuilt
function Spring.GetUnitIsBeingBuilt(unitID: integer)
-> beingBuilt boolean
-> buildProgress number
[source]
Spring.GetUnitIsBuilding
function Spring.GetUnitIsBuilding(unitID: integer) -> buildeeUnitID number
@return buildeeUnitID
- or nil
Checks whether a unit is currently building another (NOT for checking if it’s a structure)
Works for both mobile builders and factories.
[source]
Spring.GetUnitIsCloaked
function Spring.GetUnitIsCloaked(unitID: integer) -> isCloaked boolean?
[source]
Spring.GetUnitIsDead
function Spring.GetUnitIsDead(unitID: integer) -> (nil|boolean)
[source]
Spring.GetUnitIsStunned
function Spring.GetUnitIsStunned(unitID: integer)
-> stunnedOrBuilt (nil|boolean)
-> stunned boolean
-> beingBuilt boolean
@return stunnedOrBuilt
- unit is disabled
@return stunned
- unit is either stunned via EMP or being transported by a non-fireplatform
@return beingBuilt
- unit is under construction
Checks whether a unit is disabled and can’t act
The first return value is a simple OR of the following ones, any of those conditions is sufficient to disable the unit.
Note that EMP and being transported are mechanically the same and thus lumped together. Use other callouts to differentiate them if you need to.
[source]
Spring.GetUnitIsTransporting
function Spring.GetUnitIsTransporting(unitID: integer) -> transporteeArray integer[]?
@return transporteeArray
- An array of unitIDs being transported by this unit, or nil
if not a transport.
Get units being transported
[source]
Spring.GetUnitLastAttackedPiece
function Spring.GetUnitLastAttackedPiece(unitID: integer)
[source]
Spring.GetUnitLastAttacker
function Spring.GetUnitLastAttacker(unitID: integer)
[source]
Spring.GetUnitLosState
function Spring.GetUnitLosState(
unitID: integer,
allyTeamID: integer?,
raw: unknown
) -> bitmask integer?
@param raw
- Return a bitmask.
@return bitmask
- A bitmask integer, or nil
if unitID
is invalid.
Bitmask bits:
[source]
Spring.GetUnitLuaDraw
function Spring.GetUnitLuaDraw(unitID: integer) -> draw boolean?
@return draw
- nil when unitID cannot be parsed
[source]
Spring.GetUnitMapCentroid
function Spring.GetUnitMapCentroid(units: table)
-> centerX number
-> centerY number
-> centerZ number
@param units
- { [unitID] = true, [unitID] = true, … }
Returns the centroid of a map of units
Returns nil for an empty map
[source]
Spring.GetUnitMass
function Spring.GetUnitMass(unitID: integer) -> number?
[source]
Spring.GetUnitMaxRange
function Spring.GetUnitMaxRange(unitID: integer) -> maxRange number
Get a unit’s engagement range
Returns the range at which a unit will stop to engage. By default this is the highest among the unit’s weapon ranges (hence name), but can be changed dynamically. Also note that unarmed units ignore this.
[source]
Spring.GetUnitMetalExtraction
function Spring.GetUnitMetalExtraction(unitID: integer) -> metalExtraction number?
[source]
Spring.GetUnitMoveTypeData
function Spring.GetUnitMoveTypeData(unitID: integer)
[source]
Spring.GetUnitNanoPieces
function Spring.GetUnitNanoPieces(unitID: integer) -> pieceArray integer[]
Get construction FX attachment points
Returns an array of pieces which represent construction points. Default engine construction FX (nano spray) will originate there.
Only works on builders and factories, returns nil (NOT empty table) for other units.
[source]
Spring.GetUnitNearestAlly
function Spring.GetUnitNearestAlly(
unitID: integer,
range: number?
) -> unitID number?
@param range
- (Default: 1.0e9f)
[source]
Spring.GetUnitNearestEnemy
function Spring.GetUnitNearestEnemy(
unitID: integer,
range: number?,
useLOS: boolean?
) -> unitID number?
@param range
- (Default: 1.0e9f)
@param useLOS
- (Default: true)
[source]
Spring.GetUnitNeutral
function Spring.GetUnitNeutral(unitID: integer) -> (nil|boolean)
Checks if a unit is neutral (NOT Gaia!)
Note that a “neutral” unit can belong to any ally-team (ally, enemy, Gaia). To check if a unit is Gaia, check its owner team.
[source]
Spring.GetUnitNoDraw
function Spring.GetUnitNoDraw(unitID: integer) -> nil boolean?
@return nil
- when unitID cannot be parsed
[source]
Spring.GetUnitNoGroup
function Spring.GetUnitNoGroup(unitID: integer) -> noGroup (nil|boolean)
@return noGroup
- nil
when unitID
cannot be parsed.
[source]
Spring.GetUnitNoMinimap
function Spring.GetUnitNoMinimap(unitID: integer) -> nil boolean?
@return nil
- when unitID cannot be parsed
[source]
Spring.GetUnitNoSelect
function Spring.GetUnitNoSelect(unitID: integer) -> noSelect boolean?
@return noSelect
- nil
when unitID
cannot be parsed.
[source]
Spring.GetUnitPhysicalState
function Spring.GetUnitPhysicalState(unitID: integer) -> Unit number
@return Unit
- ‘s PhysicalState bitmask
[source]
Spring.GetUnitPieceDirection
function Spring.GetUnitPieceDirection(
unitID: integer,
pieceIndex: integer
)
-> dirX (number|nil)
-> dirY number
-> dirZ number
[source]
Spring.GetUnitPieceInfo
function Spring.GetUnitPieceInfo(
unitID: integer,
pieceIndex: integer
) -> pieceInfo PieceInfo?
[source]
Spring.GetUnitPieceList
function Spring.GetUnitPieceList(unitID: integer) -> pieceNames string[]
[source]
Spring.GetUnitPieceMap
function Spring.GetUnitPieceMap(unitID: integer) -> pieceInfos (nil|table<string,number>)
@return pieceInfos
- where keys are piece names and values are indices
[source]
Spring.GetUnitPieceMatrix
function Spring.GetUnitPieceMatrix(unitID: integer)
-> m11 (number|nil)
-> m12 number
-> m13 number
-> m14 number
-> m21 number
-> m22 number
-> m23 number
-> m24 number
-> m31 number
-> m32 number
-> m33 number
-> m34 number
-> m41 number
-> m42 number
-> m43 number
-> m44 number
[source]
Spring.GetUnitPiecePosDir
function Spring.GetUnitPiecePosDir(
unitID: integer,
pieceIndex: integer
)
-> posX (number|nil)
-> posY number
-> posZ number
-> dirX number
-> dirY number
-> dirZ number
[source]
Spring.GetUnitPiecePosition
function Spring.GetUnitPiecePosition(
unitID: integer,
pieceIndex: integer
)
-> posX (number|nil)
-> posY number
-> posZ number
[source]
Spring.GetUnitPosErrorParams
function Spring.GetUnitPosErrorParams(
unitID: integer,
allyTeamID: integer?
)
-> posErrorVectorX number?
-> posErrorVectorY number
-> posErrorVectorZ number
-> posErrorDeltaX number
-> posErrorDeltaY number
-> posErrorDeltaZ number
-> nextPosErrorUpdatebaseErrorMult number
-> posErrorBit boolean
[source]
Spring.GetUnitPosition
function Spring.GetUnitPosition(
unitID: integer,
midPos: boolean?,
aimPos: boolean?
)
-> basePointX number?
-> basePointY number
-> basePointZ number
-> midPointX number?
-> midPointY number
-> midPointZ number
-> aimPointX number?
-> aimPointY number
-> aimPointZ number
@param midPos
- (Default: false) return midpoint as well
@param aimPos
- (Default: false) return aimpoint as well
[source]
Spring.GetUnitRadius
function Spring.GetUnitRadius(unitID: integer) -> number?
[source]
Spring.GetUnitResources
function Spring.GetUnitResources(unitID: integer)
-> metalMake number?
-> metalUse number
-> energyMake number
-> energyUse number
[source]
Spring.GetUnitRootPiece
function Spring.GetUnitRootPiece(unitID: integer) -> index number
@return index
- of the root piece
[source]
Spring.GetUnitRotation
function Spring.GetUnitRotation(unitID: integer)
-> pitch number
-> yaw number
-> roll number
@return pitch
- Rotation in X axis
@return yaw
- Rotation in Y axis
@return roll
- Rotation in Z axis
Note: PYR order
[source]
Spring.GetUnitRulesParam
function Spring.GetUnitRulesParam(
unitID: integer,
ruleRef: (number|string)
) -> value (nil|number|string)
@param ruleRef
- the rule index or name
[source]
Spring.GetUnitRulesParams
function Spring.GetUnitRulesParams(unitID: integer) -> rulesParams RulesParams
@return rulesParams
- map with rules names as key and values as values
[source]
Spring.GetUnitScriptNames
function Spring.GetUnitScriptNames(unitID: integer) -> where table<string,number>
@return where
- keys are piece names and values are piece indices
[source]
Spring.GetUnitScriptPiece
function Spring.GetUnitScriptPiece(unitID: integer) -> pieceIndices integer[]
[source]
Spring.GetUnitSeismicSignature
function Spring.GetUnitSeismicSignature(unitID: integer) -> seismicSignature number?
[source]
Spring.GetUnitSelectionVolumeData
function Spring.GetUnitSelectionVolumeData(unitID: integer)
-> scaleX number?
-> scaleY number
-> scaleZ number
-> offsetX number
-> offsetY number
-> offsetZ number
-> volumeType number
-> useContHitTest number
-> getPrimaryAxis number
-> ignoreHits boolean
@return scaleX
- nil when unitID cannot be parsed
[source]
Spring.GetUnitSelfDTime
function Spring.GetUnitSelfDTime(unitID: integer) -> selfDTime integer?
[source]
Spring.GetUnitSensorRadius
function Spring.GetUnitSensorRadius(
unitID: integer,
type: string
) -> radius number?
@param type
- one of los, airLos, radar, sonar, seismic, radarJammer, sonarJammer
[source]
Spring.GetUnitSeparation
function Spring.GetUnitSeparation(
unitID1: number,
unitID2: number,
direction: boolean?,
subtractRadii: boolean?
) -> number?
@param direction
- (Default: false) to subtract from, default unitID1 - unitID2
@param subtractRadii
- (Default: false) whether units radii should be subtracted from the total
[source]
Spring.GetUnitShieldState
function Spring.GetUnitShieldState(
unitID: integer,
weaponNum: number?
)
-> isEnabled number
-> currentPower number
@param weaponNum
- Optional if the unit has just one shield
@return isEnabled
- Warning, number not boolean. 0 or 1
[source]
Spring.GetUnitStates
function Spring.GetUnitStates(unitID: integer) -> UnitState
[source]
Spring.GetUnitStockpile
function Spring.GetUnitStockpile(unitID: integer)
-> numStockpiled integer?
-> numStockpileQued integer?
-> buildPercent number?
[source]
Spring.GetUnitStorage
function Spring.GetUnitStorage(unitID: integer)
-> Unit number
-> Unit number
@return Unit
- ‘s metal storage
@return Unit
- ‘s energy storage
[source]
Spring.GetUnitTeam
function Spring.GetUnitTeam(unitID: integer) -> number?
[source]
Spring.GetUnitTooltip
function Spring.GetUnitTooltip(unitID: integer) -> (nil|string)
[source]
Spring.GetUnitTransformMatrix
function Spring.GetUnitTransformMatrix(unitID: integer)
-> m11 number?
-> m12 number
-> m13 number
-> m14 number
-> m21 number
-> m22 number
-> m23 number
-> m24 number
-> m31 number
-> m32 number
-> m33 number
-> m34 number
-> m41 number
-> m42 number
-> m43 number
-> m44 number
@return m11
- nil when unitID cannot be parsed
[source]
Spring.GetUnitTransporter
function Spring.GetUnitTransporter(unitID: integer) -> transportUnitID (number|nil)
Get the transport carrying the unit
Returns the unit ID of the transport, if any. Returns nil if the unit is not being transported.
[source]
Spring.GetUnitVectors
function Spring.GetUnitVectors(unitID: integer)
-> front float3?
-> up float3
-> right float3
[source]
Spring.GetUnitVelocity
function Spring.GetUnitVelocity(unitID: integer)
[source]
Spring.GetUnitViewPosition
function Spring.GetUnitViewPosition(
unitID: integer,
midPos: boolean?
)
-> x number?
-> y number
-> z number
@param midPos
- (Default: false)
@return x
- nil when unitID cannot be parsed
[source]
Spring.GetUnitWeaponCanFire
function Spring.GetUnitWeaponCanFire(unitID: integer)
[source]
Spring.GetUnitWeaponDamages
function Spring.GetUnitWeaponDamages(unitID: integer)
[source]
Spring.GetUnitWeaponHaveFreeLineOfFire
function Spring.GetUnitWeaponHaveFreeLineOfFire(unitID: integer)
[source]
Spring.GetUnitWeaponState
function Spring.GetUnitWeaponState(
unitID: integer,
weaponNum: number,
stateName: string
) -> stateValue number
Check the state of a unit’s weapon
Available states to poll: “reloadFrame” (frame on which the weapon will be ready to fire), “reloadSpeed” (reload time in seconds), “range” (in elmos), “autoTargetRangeBoost” (predictive aiming range buffer, in elmos), “projectileSpeed” (in elmos/frame), “reloadTimeXP” (reload time after XP bonus, in seconds), “reaimTime” (frames between AimWeapon calls), “burst” (shots in a burst), “burstRate” (delay between shots in a burst, in seconds), “projectiles” (projectiles per shot), “salvoLeft” (shots remaining in ongoing burst), “nextSalvo” (simframe of the next shot in an ongoing burst), “accuracy” (INaccuracy after XP bonus), “sprayAngle” (spray angle after XP bonus), “targetMoveError” (extra inaccuracy against moving targets, after XP bonus) “avoidFlags” (bitmask for targeting avoidance), “collisionFlags” (bitmask for collisions).
The state “salvoError” is an exception and returns a table: {x, y, z}, which represents the inaccuracy error of the ongoing burst.
[source]
Spring.GetUnitWeaponTarget
function Spring.GetUnitWeaponTarget(
unitID: integer,
weaponNum: integer
)
-> TargetType 0
-> isUserTarget boolean
@return TargetType
- none
Checks a weapon’s target
Note that this doesn’t need to reflect the unit’s Attack orders or such, and that weapons can aim individually unless slaved.
[source]
Spring.GetUnitWeaponTestRange
function Spring.GetUnitWeaponTestRange(unitID: integer)
[source]
Spring.GetUnitWeaponTestTarget
function Spring.GetUnitWeaponTestTarget(unitID: integer)
[source]
Spring.GetUnitWeaponTryTarget
function Spring.GetUnitWeaponTryTarget(unitID: integer)
[source]
Spring.GetUnitWeaponVectors
function Spring.GetUnitWeaponVectors(unitID: integer)
[source]
Spring.GetUnitWorkerTask
function Spring.GetUnitWorkerTask(unitID: integer)
-> cmdID number
-> targetID number
@return cmdID
- of the relevant command
@return targetID
- if applicable (all except RESTORE)
Checks a builder’s current task
Checks what a builder is currently doing. This is not the same as Spring.GetUnitCurrentCommand
, because you can have a command at the front of the queue and not be doing it (for example because the target is still too far away), and on the other hand you can also be doing a task despite not having it in front of the queue (for example you’re Guarding another builder who does). Also, it resolves the Repair command into either actual repair, or construction assist (in which case it returns the appropriate “build” command). Only build-related commands are returned (no Move or any custom commands).
The possible commands returned are repair, reclaim, resurrect, capture, restore, and build commands (negative buildee unitDefID).
[source]
Spring.GetUnitsInBox
function Spring.GetUnitsInBox(
xmin: number,
ymin: number,
zmin: number,
xmax: number,
ymax: number,
zmax: number,
allegiance: number?
) -> unitIDs number[]
[source]
Spring.GetUnitsInCylinder
function Spring.GetUnitsInCylinder(
x: number,
z: number,
radius: number
) -> unitIDs number[]
[source]
Spring.GetUnitsInPlanes
function Spring.GetUnitsInPlanes(
planes: Plane[],
allegiance: integer?
) -> unitIDs integer[]
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
[source]
Spring.GetUnitsInRectangle
function Spring.GetUnitsInRectangle(
xmin: number,
zmin: number,
xmax: number,
zmax: number,
allegiance: number?
) -> unitIDs number[]
[source]
Spring.GetUnitsInScreenRectangle
function Spring.GetUnitsInScreenRectangle(
left: number,
top: number,
right: number,
bottom: number,
allegiance: number?
) -> unitIDs (nil|number[])
@param allegiance
- (Default: -1) teamID when > 0, when < 0 one of AllUnits = -1, MyUnits = -2, AllyUnits = -3, EnemyUnits = -4
Get units inside a rectangle area on the map
[source]
Spring.GetUnitsInSphere
function Spring.GetUnitsInSphere(
x: number,
y: number,
z: number,
radius: number
) -> unitIDs number[]
[source]
Spring.GetVectorFromHeading
function Spring.GetVectorFromHeading(heading: number)
-> x number
-> z number
[source]
Spring.GetVidMemUsage
function Spring.GetVidMemUsage()
-> usedMem number
-> availableMem number
@return usedMem
- in MB
@return availableMem
- in MB
[source]
Spring.GetVideoCapturingMode
function Spring.GetVideoCapturingMode() -> allowRecord boolean
[source]
Spring.GetViewGeometry
function Spring.GetViewGeometry()
-> viewSizeX number
-> viewSizeY number
-> viewPosX number
-> viewPosY number
@return viewSizeX
- in px
@return viewSizeY
- in px
@return viewPosX
- offset from leftmost screen left border in px
@return viewPosY
- offset from bottommost screen bottom border in px
Get main view geometry (map and game rendering)
[source]
Spring.GetVisibleFeatures
function Spring.GetVisibleFeatures(
teamID: integer?,
radius: number?,
icons: boolean?,
geos: boolean?
) -> featureIDs (nil|number[])
@param teamID
- (Default: -1)
@param radius
- (Default: 30)
@param icons
- (Default: true)
@param geos
- (Default: true)
[source]
Spring.GetVisibleProjectiles
function Spring.GetVisibleProjectiles(
allyTeamID: integer?,
addSyncedProjectiles: boolean?,
addWeaponProjectiles: boolean?,
addPieceProjectiles: boolean?
) -> projectileIDs (nil|number[])
@param allyTeamID
- (Default: -1)
@param addSyncedProjectiles
- (Default: true)
@param addWeaponProjectiles
- (Default: true)
@param addPieceProjectiles
- (Default: true)
[source]
Spring.GetVisibleUnits
function Spring.GetVisibleUnits(
teamID: integer?,
radius: number?,
icons: boolean?
) -> unitIDs (nil|number[])
@param teamID
- (Default: -1)
@param radius
- (Default: 30)
@param icons
- (Default: true)
[source]
Spring.GetWaterLevel
function Spring.GetWaterLevel(
x: number,
z: number
) -> waterLevel number
Get water level in a specific position
Water is currently a flat plane, so this returns the same value regardless of XZ. However water may become more dynamic at some point so by using this you are future-proof.
[source]
Spring.GetWaterMode
function Spring.GetWaterMode()
-> waterRendererID number
-> waterRendererName string
[source]
Spring.GetWaterPlaneLevel
function Spring.GetWaterPlaneLevel() -> waterPlaneLevel number
Get water plane height
Water may at some point become shaped (rivers etc) but for now it is always a flat plane. Use this function instead of GetWaterLevel to denote you are relying on that assumption.
[source]
Spring.GetWind
function Spring.GetWind() -> windStrength number
[source]
Spring.GetWindowDisplayMode
function Spring.GetWindowDisplayMode()
-> width number
-> height number
-> bits number
-> refresh number
@return width
- in px
@return height
- in px
@return bits
- per pixel
@return refresh
- rate in Hz
Get main window display mode
[source]
Spring.GetWindowGeometry
function Spring.GetWindowGeometry()
-> winSizeX number
-> winSizeY number
-> winPosX number
-> winPosY number
-> windowBorderTop number
-> windowBorderLeft number
-> windowBorderBottom number
-> windowBorderRight number
@return winSizeX
- in px
@return winSizeY
- in px
@return winPosX
- in px
@return winPosY
- in px
@return windowBorderTop
- in px
@return windowBorderLeft
- in px
@return windowBorderBottom
- in px
@return windowBorderRight
- in px
Get main window geometry
[source]
Spring.GiveOrder
function Spring.GiveOrder(
cmdID: integer,
params: table,
options: cmdOpts
) -> nil
[source]
Spring.GiveOrderArrayToUnit
function Spring.GiveOrderArrayToUnit(
unitID: integer,
cmdArray: Command[]
) -> ordersGiven boolean
[source]
Spring.GiveOrderArrayToUnitArray
function Spring.GiveOrderArrayToUnitArray(
unitArray: number[],
commands: Command[]
) -> nil
@param unitArray
- containing unitIDs
[source]
Spring.GiveOrderArrayToUnitMap
function Spring.GiveOrderArrayToUnitMap(
unitMap: { , [number]: any },
commands: Command[]
) -> unitsOrdered number
@param unitMap
- table with unitIDs as keys
[source]
Spring.GiveOrderToUnit
function Spring.GiveOrderToUnit(
unitID: integer,
cmdID: integer,
params: number[]?,
options: CommandOptions?
) -> unitOrdered boolean
[source]
Spring.GiveOrderToUnitArray
function Spring.GiveOrderToUnitArray(
unitIDs: number[],
cmdID: integer,
params: number[]?,
options: CommandOptions?
) -> unitsOrdered number
[source]
Spring.GiveOrderToUnitMap
function Spring.GiveOrderToUnitMap(
unitMap: table<number,table>,
cmdID: integer,
params: number[]?,
options: CommandOptions?
) -> unitsOrdered number
@param unitMap
- table with unitIDs as keys
[source]
Spring.HaveAdvShading
function Spring.HaveAdvShading()
-> useAdvShading boolean
-> groundUseAdvShading boolean
[source]
Spring.HaveShadows
function Spring.HaveShadows() -> shadowsLoaded boolean
[source]
Spring.InsertUnitCmdDesc
function Spring.InsertUnitCmdDesc(
unitID: integer,
cmdDescID: integer?,
cmdArray: CommandDescription
)
[source]
Spring.IsAABBInView
function Spring.IsAABBInView(
minX: number,
minY: number,
minZ: number,
maxX: number,
maxY: number,
maxZ: number
) -> inView boolean
[source]
Spring.IsAboveMiniMap
function Spring.IsAboveMiniMap(
x: number,
y: number
) -> isAbove boolean
[source]
Spring.IsCheatingEnabled
function Spring.IsCheatingEnabled() -> enabled boolean
[source]
Spring.IsDevLuaEnabled
function Spring.IsDevLuaEnabled() -> enabled boolean
[source]
Spring.IsEditDefsEnabled
function Spring.IsEditDefsEnabled() -> enabled boolean
[source]
Spring.IsGUIHidden
function Spring.IsGUIHidden() -> boolean
[source]
Spring.IsGameOver
function Spring.IsGameOver() -> isGameOver boolean
[source]
Spring.IsGodModeEnabled
function Spring.IsGodModeEnabled() -> enabled boolean
[source]
Spring.IsNoCostEnabled
function Spring.IsNoCostEnabled() -> enabled boolean
[source]
Spring.IsPosInAirLos
function Spring.IsPosInAirLos(
posX: number,
posY: number,
posZ: number,
allyTeamID: integer?
) -> boolean
[source]
Spring.IsPosInLos
function Spring.IsPosInLos(
posX: number,
posY: number,
posZ: number,
allyTeamID: integer?
) -> boolean
[source]
Spring.IsPosInMap
function Spring.IsPosInMap(
x: number,
z: number
)
-> inPlayArea boolean
-> inMap boolean
@return inPlayArea
- whether the position is in the active play area
@return inMap
- whether the position is in the full map area (currently this is the same as above)
[source]
Spring.IsPosInRadar
function Spring.IsPosInRadar(
posX: number,
posY: number,
posZ: number,
allyTeamID: integer?
) -> boolean
[source]
Spring.IsReplay
function Spring.IsReplay() -> isReplay boolean?
[source]
Spring.IsSphereInView
function Spring.IsSphereInView(
posX: number,
posY: number,
posZ: number,
radius: number?
) -> inView boolean
@param radius
- (Default: 0)
[source]
Spring.IsUnitAllied
function Spring.IsUnitAllied(unitID: integer) -> isAllied boolean?
@return isAllied
- nil with unitID cannot be parsed
[source]
Spring.IsUnitIcon
function Spring.IsUnitIcon(unitID: integer) -> isUnitIcon boolean?
@return isUnitIcon
- nil when unitID cannot be parsed
[source]
Spring.IsUnitInAirLos
function Spring.IsUnitInAirLos(
unitID: integer,
allyTeamID: integer
) -> inAirLos boolean
[source]
Spring.IsUnitInJammer
function Spring.IsUnitInJammer(
unitID: integer,
allyTeamID: integer
) -> inJammer boolean
[source]
Spring.IsUnitInLos
function Spring.IsUnitInLos(
unitID: integer,
allyTeamID: integer
) -> inLos boolean
[source]
Spring.IsUnitInRadar
function Spring.IsUnitInRadar(
unitID: integer,
allyTeamID: integer
) -> inRadar boolean
[source]
Spring.IsUnitInView
function Spring.IsUnitInView(unitID: integer) -> inView boolean?
@return inView
- nil when unitID cannot be parsed
[source]
Spring.IsUnitSelected
function Spring.IsUnitSelected(unitID: integer) -> isSelected boolean?
@return isSelected
- nil when unitID cannot be parsed
[source]
Spring.IsUnitVisible
function Spring.IsUnitVisible(
unitID: integer,
radius: number?,
checkIcon: boolean
) -> isVisible boolean?
@param radius
- unitRadius when not specified
@return isVisible
- nil when unitID cannot be parsed
[source]
Spring.IsUserWriting
function Spring.IsUserWriting() -> boolean
[source]
Spring.KillTeam
function Spring.KillTeam(teamID: integer) -> nil
Will declare a team to be dead (no further orders can be assigned to such teams units).
Gaia team cannot be killed.
[source]
Spring.LevelHeightMap
function Spring.LevelHeightMap(
x1: number,
z1: number,
x2_height: number,
z2: number?,
height: number?
) -> nil
@param x2_height
- if y2 and height are nil then this parameter is the height
Set a certain height to a point or rectangle area on the world
[source]
Spring.LevelOriginalHeightMap
function Spring.LevelOriginalHeightMap(
x1: number,
y1: number,
x2_height: number,
y2: number?,
height: number?
) -> nil
@param x2_height
- if y2 and height are nil then this parameter is the height
Set a height to a point or rectangle area to the original map height cache
[source]
Spring.LevelSmoothMesh
function Spring.LevelSmoothMesh(
x1: number,
z1: number,
x2: number?,
z2: number?,
height: number
) -> nil
[source]
Spring.LoadCmdColorsConfig
function Spring.LoadCmdColorsConfig(config: string) -> nil
[source]
Spring.LoadCtrlPanelConfig
function Spring.LoadCtrlPanelConfig(config: string) -> nil
[source]
Spring.LoadModelTextures
function Spring.LoadModelTextures(modelName: string) -> success boolean?
[source]
Spring.LoadSoundDef
function Spring.LoadSoundDef(soundfile: string) -> success boolean
Loads a SoundDefs file, the format is the same as in gamedata/sounds.lua
.
[source]
Spring.Log
function Spring.Log(
section: string,
logLevel: LogLevel?,
...: string
)
@param logLevel
- (Default: “notice”)
@param ...
- messages
[source]
Spring.MarkerAddLine
function Spring.MarkerAddLine(
x1: number,
y1: number,
z1: number,
x2: number,
y2: number,
z2: number,
localOnly: boolean?,
playerId: number?
) -> nil
@param localOnly
- (Default: false)
[source]
Spring.MarkerAddPoint
function Spring.MarkerAddPoint(
x: number,
y: number,
z: number,
text: string?,
localOnly: boolean?
) -> nil
@param text
- (Default: “”)
[source]
Spring.MarkerErasePosition
function Spring.MarkerErasePosition(
x: number,
y: number,
z: number,
unused: nil,
localOnly: boolean?,
playerId: number?,
alwaysErase: boolean?
) -> nil
@param unused
- This argument is ignored.
@param localOnly
- (Default: false) do not issue a network message, erase only for the current player
@param playerId
- when not specified it uses the issuer playerId
@param alwaysErase
- (Default: false) erase any marker when localOnly
and current player is spectating. Allows spectators to erase players markers locally
Issue an erase command for markers on the map.
[source]
Spring.PauseDollyCamera
function Spring.PauseDollyCamera(fraction: number) -> nil
@param fraction
- Fraction of the total runtime to pause at, 0 to 1 inclusive. A null value pauses at current percent
Pause Dolly Camera
[source]
Spring.PauseSoundStream
function Spring.PauseSoundStream() -> nil
Pause any SoundStream currently running.
[source]
Spring.Ping
function Spring.Ping(pingTag: number) -> nil
Send a ping request to the server
[source]
Spring.PlaySoundFile
function Spring.PlaySoundFile(
soundfile: string,
volume: number?,
posx: number?,
posy: number?,
posz: number?,
speedx: number?,
speedy: number?,
speedz: number?,
channel: SoundChannel?
) -> playSound boolean
@param volume
- (Default: 1.0)
@param channel
- (Default: 0|"general"
)
[source]
Spring.PlaySoundStream
function Spring.PlaySoundStream(
oggfile: string,
volume: number?,
enqueue: boolean?
) -> success boolean
@param volume
- (Default: 1.0)
Allows to play an Ogg Vorbis (.OGG) and mp3 compressed sound file.
Multiple sound streams may be played at once.
[source]
Spring.Pos2BuildPos
function Spring.Pos2BuildPos(
unitDefID: integer,
posX: number,
posY: number,
posZ: number,
buildFacing: number?
)
-> buildPosX number
-> buildPosY number
-> buildPosZ number
@param buildFacing
- (Default: 0) one of SOUTH = 0, EAST = 1, NORTH = 2, WEST = 3
Snaps a position to the building grid
[source]
Spring.PreloadFeatureDefModel
function Spring.PreloadFeatureDefModel(featureDefID: integer) -> nil
[source]
Spring.PreloadSoundItem
function Spring.PreloadSoundItem(name: string) -> nil
[source]
Spring.PreloadUnitDefModel
function Spring.PreloadUnitDefModel(unitDefID: integer) -> nil
Allow the engine to load the unit’s model (and texture) in a background thread. Wreckages and buildOptions of a unit are automatically preloaded.
[source]
Spring.Quit
function Spring.Quit() -> nil
Closes the application
[source]
Spring.RebuildSmoothMesh
function Spring.RebuildSmoothMesh() -> nil
Heightmap changes normally take up to 25s to propagate to the smooth mesh. Use to force a mapwide update immediately.
[source]
Spring.Reload
function Spring.Reload(startScript: string) -> nil
@param startScript
- the CONTENT of the script.txt spring should use to start.
[source]
Spring.RemoveGrass
function Spring.RemoveGrass(
x: number,
z: number
) -> nil
[source]
Spring.RemoveObjectDecal
function Spring.RemoveObjectDecal(unitID: integer) -> nil
[source]
Spring.RemoveUnitCmdDesc
function Spring.RemoveUnitCmdDesc(
unitID: integer,
cmdDescID: integer?
)
[source]
Spring.ReplaceMouseCursor
function Spring.ReplaceMouseCursor(
oldFileName: string,
newFileName: string,
hotSpotTopLeft: boolean?
) -> assigned boolean?
@param hotSpotTopLeft
- (Default: false)
Mass replace all occurrences of the cursor in all CursorCmds.
[source]
Spring.Restart
function Spring.Restart(
commandline_args: string,
startScript: string
) -> nil
@param commandline_args
- commandline arguments passed to spring executable.
If this call returns, something went wrong
[source]
Spring.ResumeDollyCamera
function Spring.ResumeDollyCamera() -> nil
Resume Dolly Camera
[source]
Spring.RevertHeightMap
function Spring.RevertHeightMap(
x1: number,
y1: number,
x2_factor: number,
y2: number?,
factor: number?
) -> nil
@param x2_factor
- if y2 and factor are nil then this parameter is the factor
Restore original map height to a point or rectangle area on the world
[source]
Spring.RevertOriginalHeightMap
function Spring.RevertOriginalHeightMap(
x1: number,
y1: number,
x2_factor: number,
y2: number?,
factor: number?
) -> nil
@param x2_factor
- if y2 and factor are nil then this parameter is the factor
Restore original map height cache to a point or rectangle area on the world
[source]
Spring.RevertSmoothMesh
function Spring.RevertSmoothMesh(
x1: number,
z1: number,
x2: number?,
z2: number?,
origFactor: number
) -> nil
[source]
Spring.RunDollyCamera
function Spring.RunDollyCamera(runtime: number) -> nil
@param runtime
- Runtime in milliseconds.
Runs Dolly Camera
[source]
Spring.SDLSetTextInputRect
function Spring.SDLSetTextInputRect(
x: number,
y: number,
width: number,
height: number
) -> nil
[source]
Spring.SDLStartTextInput
function Spring.SDLStartTextInput() -> nil
[source]
Spring.SDLStopTextInput
function Spring.SDLStopTextInput() -> nil
[source]
Spring.SelectUnit
function Spring.SelectUnit(
unitID: integer?,
append: boolean?
) -> nil
@param append
- (Default: false) Append to current selection.
Selects a single unit
[source]
Spring.SelectUnitArray
function Spring.SelectUnitArray(
unitMap: table<any,integer>,
append: boolean?
) -> nil
@param unitMap
- Table with unit IDs as values.
@param append
- (Default: false) append to current selection
Selects multiple units, or appends to selection. Accepts a table with unitIDs as values
[source]
Spring.SelectUnitMap
function Spring.SelectUnitMap(
unitMap: table<integer,any>,
append: boolean?
) -> nil
@param unitMap
- Table with unit IDs as keys.
@param append
- (Default: false) append to current selection
Selects multiple units, or appends to selection. Accepts a table with unitIDs as keys
[source]
Spring.SendCommands
function Spring.SendCommands(commands: string[])
[source]
Spring.SendLuaGaiaMsg
function Spring.SendLuaGaiaMsg(message: string) -> nil
[source]
Spring.SendLuaMenuMsg
function Spring.SendLuaMenuMsg(msg: string)
[source]
Spring.SendLuaRulesMsg
function Spring.SendLuaRulesMsg(message: string) -> nil
[source]
Spring.SendLuaUIMsg
function Spring.SendLuaUIMsg(
message: string,
mode: string
) -> nil
@param mode
- “s”/”specs” | “a”/”allies”
[source]
Spring.SendMessage
function Spring.SendMessage(message: string) -> nil
[source]
Spring.SendMessageToAllyTeam
function Spring.SendMessageToAllyTeam(
allyID: integer,
message: string
) -> nil
[source]
Spring.SendMessageToPlayer
function Spring.SendMessageToPlayer(
playerID: integer,
message: string
) -> nil
[source]
Spring.SendMessageToSpectators
function Spring.SendMessageToSpectators(message: unknown) -> nil
@param message
- “<PLAYER#>
”`` where #
is a player ID.
This will be replaced with the player’s name. e.g.
Spring.SendMessage("`<PLAYER1>` did something") -- "ProRusher did something"
[source]
Spring.SendMessageToTeam
function Spring.SendMessageToTeam(
teamID: integer,
message: string
) -> nil
[source]
Spring.SendSkirmishAIMessage
function Spring.SendSkirmishAIMessage(
aiTeam: number,
message: string
) -> ai_processed boolean?
[source]
Spring.SetActiveCommand
function Spring.SetActiveCommand(
action: string,
actionExtra: string?
) -> commandSet boolean?
[source]
Spring.SetAlly
function Spring.SetAlly(
firstAllyTeamID: integer,
secondAllyTeamID: integer,
ally: boolean
) -> nil
Changes the value of the (one-sided) alliance between: firstAllyTeamID -> secondAllyTeamID.
[source]
Spring.SetAllyTeamStartBox
function Spring.SetAllyTeamStartBox(
allyTeamID: integer,
xMin: number,
zMin: number,
xMax: number,
zMax: number
) -> nil
@param xMin
- left start box boundary (elmos)
@param zMin
- top start box boundary (elmos)
@param xMax
- right start box boundary (elmos)
@param zMax
- bottom start box boundary (elmos)
Changes the start box position of an allyTeam.
[source]
Spring.SetAtmosphere
function Spring.SetAtmosphere(params: AtmosphereParams)
It can be used to modify the following atmosphere parameters
Usage:
Spring.SetAtmosphere({ fogStart = 0, fogEnd = 0.5, fogColor = { 0.7, 0.2, 0.2, 1 }})
[source]
Spring.SetAutoShowMetal
function Spring.SetAutoShowMetal(autoShow: boolean) -> nil
[source]
Spring.SetBoxSelectionByEngine
function Spring.SetBoxSelectionByEngine(state: boolean) -> nil
[source]
Spring.SetBuildFacing
function Spring.SetBuildFacing(facing: number) -> nil
[source]
Spring.SetBuildSpacing
function Spring.SetBuildSpacing(spacing: number) -> nil
[source]
Spring.SetCameraOffset
function Spring.SetCameraOffset(
posX: number?,
posY: number?,
posZ: number?,
tiltX: number?,
tiltY: number?,
tiltZ: number?
) -> nil
@param posX
- (Default: 0)
@param posY
- (Default: 0)
@param posZ
- (Default: 0)
@param tiltX
- (Default: 0)
@param tiltY
- (Default: 0)
@param tiltZ
- (Default: 0)
[source]
Spring.SetCameraState
function Spring.SetCameraState(
camState: camState,
transitionTime: number?,
transitionTimeFactor: number?,
transitionTimeExponent: number?
) -> set boolean
@param transitionTime
- (Default: 0) in nanoseconds
@param transitionTimeFactor
- multiplicative factor applied to this and all subsequent transition times for this camera mode.
Defaults to “CamTimeFactor” springsetting unless set previously.
@param transitionTimeExponent
- tween factor applied to this and all subsequent transitions for this camera mode.
Defaults to “CamTimeExponent” springsetting unless set previously.
Sets camera state
The fields in camState
must be consistent with the name/mode and current/new camera mode
[source]
Spring.SetCameraTarget
function Spring.SetCameraTarget(
x: number,
y: number,
z: number,
transTime: number?
) -> nil
For Spring Engine XZ represents horizontal, from north west corner of map and Y vertical, from water level and rising.
[source]
Spring.SetClipboard
function Spring.SetClipboard(text: string) -> nil
[source]
Spring.SetConfigFloat
function Spring.SetConfigFloat(
name: string,
value: number,
useOverla: boolean?
) -> nil
@param useOverla
- (Default: false) the value will only be set in memory, and not be restored for the next game.y
[source]
Spring.SetConfigInt
function Spring.SetConfigInt(
name: string,
value: number,
useOverlay: boolean?
) -> nil
@param useOverlay
- (Default: false) the value will only be set in memory, and not be restored for the next game.
[source]
Spring.SetConfigString
function Spring.SetConfigString(
name: string,
value: number,
useOverlay: boolean?
) -> nil
@param useOverlay
- (Default: false) the value will only be set in memory, and not be restored for the next game.
[source]
Spring.SetCustomCommandDrawData
function Spring.SetCustomCommandDrawData(cmdID: integer) -> assigned boolean?
Register your custom cmd so it gets visible in the unit’s cmd queue
[source]
Spring.SetDollyCameraCurve
function Spring.SetDollyCameraCurve(
degree: number,
cpoints: ControlPoint[],
knots: table
) -> nil
@param cpoints
- NURBS control point positions.
Sets Dolly Camera movement Curve
[source]
Spring.SetDollyCameraLookCurve
function Spring.SetDollyCameraLookCurve(
degree: number,
cpoints: ControlPoint[],
knots: table
) -> nil
@param cpoints
- NURBS control point positions.
Sets Dolly Camera Look Curve
[source]
Spring.SetDollyCameraLookPosition
function Spring.SetDollyCameraLookPosition(
x: number,
y: number,
z: number
) -> nil
Sets Dolly Camera Look Position
[source]
Spring.SetDollyCameraLookUnit
function Spring.SetDollyCameraLookUnit(unitID: integer) -> nil
@param unitID
- The unit to look at.
Sets target unit for Dolly Camera to look towards
[source]
Spring.SetDollyCameraMode
function Spring.SetDollyCameraMode(mode: (1|2)) -> nil
@param mode
- 1
static position, 2
nurbs curve
Sets Dolly Camera movement mode
[source]
Spring.SetDollyCameraPosition
function Spring.SetDollyCameraPosition(
x: number,
y: number,
z: number
) -> nil
Sets Dolly Camera Position
[source]
Spring.SetDollyCameraRelativeMode
function Spring.SetDollyCameraRelativeMode(relativeMode: unknown) -> nil
@param relativeMode
- world, 2
look target
Sets Dolly Camera movement curve to world relative or look target relative
[source]
Spring.SetDrawGround
function Spring.SetDrawGround(drawGround: boolean) -> nil
[source]
Spring.SetDrawGroundDeferred
function Spring.SetDrawGroundDeferred(
drawGroundDeferred: boolean,
drawGroundForward: boolean?
) -> nil
@param drawGroundForward
- allows disabling of the forward pass
[source]
Spring.SetDrawModelsDeferred
function Spring.SetDrawModelsDeferred(
drawUnitsDeferred: boolean,
drawFeaturesDeferred: boolean,
drawUnitsForward: boolean?,
drawFeaturesForward: boolean?
) -> nil
@param drawUnitsForward
- allows disabling of the respective forward passes
@param drawFeaturesForward
- allows disabling of the respective forward passes
[source]
Spring.SetDrawSelectionInfo
function Spring.SetDrawSelectionInfo(enable: boolean) -> nil
Disables the “Selected Units x” box in the GUI.
[source]
Spring.SetDrawSky
function Spring.SetDrawSky(drawSky: boolean) -> nil
[source]
Spring.SetDrawWater
function Spring.SetDrawWater(drawWater: boolean) -> nil
[source]
Spring.SetExperienceGrade
function Spring.SetExperienceGrade(
expGrade: number,
ExpPowerScale: number?,
ExpHealthScale: number?,
ExpReloadScale: number?
) -> nil
Defines how often Callins.UnitExperience
will be called.
[source]
Spring.SetFactoryBuggerOff
function Spring.SetFactoryBuggerOff(
unitID: integer,
buggerOff: boolean?,
offset: number?,
radius: number?,
relHeading: number?,
spherical: boolean?,
forced: boolean?
) -> buggerOff (nil|number)
[source]
Spring.SetFeatureAlwaysUpdateMatrix
function Spring.SetFeatureAlwaysUpdateMatrix(
featureID: integer,
alwaysUpdateMat: number
) -> nil
[source]
Spring.SetFeatureAlwaysVisible
function Spring.SetFeatureAlwaysVisible(
featureID: integer,
enable: boolean
) -> nil
[source]
Spring.SetFeatureBlocking
function Spring.SetFeatureBlocking(
featureID: integer,
isBlocking: boolean,
isSolidObjectCollidable: boolean,
isProjectileCollidable: boolean,
isRaySegmentCollidable: boolean,
crushable: boolean,
blockEnemyPushing: boolean,
blockHeightChanges: boolean
) -> nil
[source]
Spring.SetFeatureCollisionVolumeData
function Spring.SetFeatureCollisionVolumeData(
featureID: integer,
scaleX: number,
scaleY: number,
scaleZ: number,
offsetX: number,
offsetY: number,
offsetZ: number,
vType: number,
tType: number,
Axis: number
) -> nil
Check Spring.SetUnitCollisionVolumeData
for further explanation of the arguments.
[source]
Spring.SetFeatureDirection
function Spring.SetFeatureDirection(
featureID: integer,
frontx: number,
fronty: number,
frontz: number
) -> nil
Set feature front direction vector. The vector is normalized in the engine.
[source]
Spring.SetFeatureEngineDrawMask
function Spring.SetFeatureEngineDrawMask(
featureID: integer,
engineDrawMask: number
) -> nil
[source]
Spring.SetFeatureFade
function Spring.SetFeatureFade(
featureID: integer,
allow: boolean
) -> nil
Control whether a feature will fade or not when zoomed out.
[source]
Spring.SetFeatureHeadingAndUpDir
function Spring.SetFeatureHeadingAndUpDir(
featureID: integer,
heading: number,
upx: number,
upy: number,
upz: number
) -> nil
Use this call to set up feature direction in a robust way. Heading (-32768 to 32767) represents a 2D (xz plane) feature orientation if feature was completely upright, new {upx,upy,upz} direction will be used as new “up” vector, the rotation set by “heading” will remain preserved.
[source]
Spring.SetFeatureHealth
function Spring.SetFeatureHealth(
featureID: integer,
health: number
) -> nil
[source]
Spring.SetFeatureMass
function Spring.SetFeatureMass(
featureID: integer,
mass: number
) -> nil
[source]
Spring.SetFeatureMaxHealth
function Spring.SetFeatureMaxHealth(
featureID: integer,
maxHealth: number
) -> nil
@param maxHealth
- minimum 0.1
[source]
Spring.SetFeatureMidAndAimPos
function Spring.SetFeatureMidAndAimPos(
featureID: integer,
mpX: number,
mpY: number,
mpZ: number,
apX: number,
apY: number,
apZ: number,
relative: boolean?
) -> success boolean
Check Spring.SetUnitMidAndAimPos
for further explanation of the arguments.
[source]
Spring.SetFeatureMoveCtrl
function Spring.SetFeatureMoveCtrl(
featureID: integer,
enable: boolean?,
arg1: number?,
arg2: number?,
argn: number?
) -> nil
Use this callout to control feature movement. The arg* arguments are parsed as follows and all optional:
If enable is true: [, velVector(x,y,z) * initial velocity for feature [, accVector(x,y,z) * acceleration added every frame]]
If enable is false: [, velocityMask(x,y,z) * dimensions in which velocity is allowed to build when not using MoveCtrl [, impulseMask(x,y,z) * dimensions in which impulse is allowed to apply when not using MoveCtrl [, movementMask(x,y,z) * dimensions in which feature is allowed to move when not using MoveCtrl]]]
It is necessary to unlock feature movement on x,z axis before changing feature physics.
For example use Spring.SetFeatureMoveCtrl(featureID,false,1,1,1,1,1,1,1,1,1)
to unlock all movement prior to making Spring.SetFeatureVelocity
calls.
[source]
Spring.SetFeatureNoDraw
function Spring.SetFeatureNoDraw(
featureID: integer,
noDraw: boolean
) -> nil
[source]
Spring.SetFeatureNoSelect
function Spring.SetFeatureNoSelect(
featureID: integer,
noSelect: boolean
) -> nil
[source]
Spring.SetFeaturePhysics
function Spring.SetFeaturePhysics(
featureID: integer,
posX: number,
posY: number,
posZ: number,
velX: number,
velY: number,
velZ: number,
rotX: number,
rotY: number,
rotZ: number,
dragX: number,
dragY: number,
dragZ: number
) -> nil
[source]
Spring.SetFeaturePieceCollisionVolumeData
function Spring.SetFeaturePieceCollisionVolumeData(
featureID: integer,
pieceIndex: number,
enable: boolean,
scaleX: number,
scaleY: number,
scaleZ: number,
offsetX: number,
offsetY: number,
offsetZ: number,
Axis: number,
volumeType: number,
primaryAxis: number?
) -> nil
[source]
Spring.SetFeaturePieceVisible
function Spring.SetFeaturePieceVisible(
featureID: integer,
pieceIndex: number,
visible: boolean
) -> nil
[source]
Spring.SetFeaturePosition
function Spring.SetFeaturePosition(
featureID: integer,
x: number,
y: number,
z: number,
snapToGround: boolean?
) -> nil
[source]
Spring.SetFeatureRadiusAndHeight
function Spring.SetFeatureRadiusAndHeight(
featureID: integer,
radius: number,
height: number
) -> success boolean
[source]
Spring.SetFeatureReclaim
function Spring.SetFeatureReclaim(
featureID: integer,
reclaimLeft: number
) -> nil
[source]
Spring.SetFeatureResources
function Spring.SetFeatureResources(
featureID: integer,
metal: number,
energy: number,
reclaimTime: number?,
reclaimLeft: number?,
featureDefMetal: number?,
featureDefEnergy: number?
) -> nil
[source]
Spring.SetFeatureResurrect
function Spring.SetFeatureResurrect(
featureID: integer,
unitDef: (string|integer),
facing: Facing?,
progress: number?
) -> nil
@param unitDef
- Can be a number id or a string name, this allows cancelling resurrection by passing -1
.
@param facing
- (Default: "south"
)
@param progress
- Set the level of progress.
[source]
Spring.SetFeatureRotation
function Spring.SetFeatureRotation(
featureID: integer,
pitch: number,
yaw: number,
roll: number
) -> nil
@param pitch
- Rotation in X axis
@param yaw
- Rotation in Y axis
@param roll
- Rotation in Z axis
Note: PYR order
[source]
Spring.SetFeatureRulesParam
function Spring.SetFeatureRulesParam(
featureID: integer,
paramName: string,
paramValue: (number|string)?,
losAccess: losAccess?
) -> nil
@param paramValue
- numeric paramValues in quotes will be converted to number.
[source]
Spring.SetFeatureSelectionVolumeData
function Spring.SetFeatureSelectionVolumeData(
featureID: integer,
scaleX: number,
scaleY: number,
scaleZ: number,
offsetX: number,
offsetY: number,
offsetZ: number,
vType: number,
tType: number,
Axis: number
) -> nil
[source]
Spring.SetFeatureUseAirLos
function Spring.SetFeatureUseAirLos(
featureID: integer,
useAirLos: boolean
) -> nil
[source]
Spring.SetFeatureVelocity
function Spring.SetFeatureVelocity(
featureID: integer,
velX: number,
velY: number,
velZ: number
) -> nil
[source]
Spring.SetGameRulesParam
function Spring.SetGameRulesParam(
paramName: string,
paramValue: (number|string)?,
losAccess: losAccess?
) -> nil
@param paramValue
- numeric paramValues in quotes will be converted to number.
[source]
Spring.SetGlobalLos
function Spring.SetGlobalLos(
allyTeamID: integer,
globallos: boolean
) -> nil
Changes access to global line of sight for a team and its allies.
[source]
Spring.SetGroundDecalAlpha
function Spring.SetGroundDecalAlpha(
decalID: integer,
alpha: number?,
alphaFalloff: number?
) -> decalSet boolean
@param alpha
- (Default: currAlpha) Between 0 and 1
@param alphaFalloff
- (Default: currAlphaFalloff) Between 0 and 1, per second
[source]
Spring.SetGroundDecalCreationFrame
function Spring.SetGroundDecalCreationFrame(
decalID: integer,
creationFrameMin: number?,
creationFrameMax: number?
) -> decalSet boolean
@param creationFrameMin
- (Default: currCreationFrameMin)
@param creationFrameMax
- (Default: currCreationFrameMax)
Use separate min and max for “gradient” style decals such as tank tracks
[source]
Spring.SetGroundDecalMisc
function Spring.SetGroundDecalMisc(
decalID: integer,
dotElimExp: number?,
refHeight: number?,
minHeight: number?,
maxHeight: number?,
forceHeightMode: number?
) -> decalSet boolean
@param dotElimExp
- (Default: curValue) pow(max(dot(decalProjVector, SurfaceNormal), 0.0), dotElimExp), used to reduce decal artifacts on surfaces non-collinear with the projection vector
@param refHeight
- (Default: curValue)
@param minHeight
- (Default: curValue)
@param maxHeight
- (Default: curValue)
@param forceHeightMode
- (Default: curValue) in case forceHeightMode==1.0 ==> force relative height: midPoint.y = refHeight + clamp(midPoint.y - refHeight, minHeight); forceHeightMode==2.0 ==> force absolute height: midPoint.y = midPoint.y, clamp(midPoint.y, minHeight, maxHeight); other forceHeightMode values do not enforce the height of the center position
Sets varios secondary parameters of a decal
[source]
Spring.SetGroundDecalNormal
function Spring.SetGroundDecalNormal(
decalID: integer,
normalX: number?,
normalY: number?,
normalZ: number?
) -> decalSet boolean
@param normalX
- (Default: 0)
@param normalY
- (Default: 0)
@param normalZ
- (Default: 0)
Sets projection cube normal to orient in 3D space. In case the normal (0,0,0) then normal is picked from the terrain
[source]
Spring.SetGroundDecalPosAndDims
function Spring.SetGroundDecalPosAndDims(
decalID: integer,
midPosX: number?,
midPosZ: number?,
sizeX: number?,
sizeZ: number?,
projCubeHeight: number?
) -> decalSet boolean
@param midPosX
- (Default: currMidPosX)
@param midPosZ
- (Default: currMidPosZ)
@param sizeX
- (Default: currSizeX)
@param sizeZ
- (Default: currSizeZ)
@param projCubeHeight
- (Default: calculateProjCubeHeight)
[source]
Spring.SetGroundDecalQuadPosAndHeight
function Spring.SetGroundDecalQuadPosAndHeight(
decalID: integer,
posTL: xz?,
posTR: xz?,
posBR: xz?,
posBL: xz?,
projCubeHeight: number?
) -> decalSet boolean
@param posTL
- (Default: currPosTL)
@param posTR
- (Default: currPosTR)
@param posBR
- (Default: currPosBR)
@param posBL
- (Default: currPosBL)
@param projCubeHeight
- (Default: calculateProjCubeHeight)
Use for non-rectangular decals
[source]
Spring.SetGroundDecalRotation
function Spring.SetGroundDecalRotation(
decalID: integer,
rot: number?
) -> decalSet boolean
@param rot
- (Default: random) in radians
[source]
Spring.SetGroundDecalTexture
function Spring.SetGroundDecalTexture(
decalID: integer,
textureName: string,
isMainTex: boolean?
) -> decalSet (nil|boolean)
@param textureName
- The texture has to be on the atlas which seems to mean it’s defined as an explosion, unit tracks, or building plate decal on some unit already (no arbitrary textures)
@param isMainTex
- (Default: true) If false, it sets the normals/glow map
[source]
Spring.SetGroundDecalTextureParams
function Spring.SetGroundDecalTextureParams(
decalID: integer,
texWrapDistance: number?,
texTraveledDistance: number?
) -> decalSet (nil|boolean)
@param texWrapDistance
- (Default: currTexWrapDistance) if non-zero sets the mode to repeat the texture along the left-right direction of the decal every texWrapFactor elmos
@param texTraveledDistance
- (Default: currTexTraveledDistance) shifts the texture repetition defined by texWrapFactor so the texture of a next line in the continuous multiline can start where the previous finished. For that it should collect all elmo lengths of the previously set multiline segments.
[source]
Spring.SetGroundDecalTint
function Spring.SetGroundDecalTint(
decalID: integer,
tintColR: number?,
tintColG: number?,
tintColB: number?,
tintColA: number?
) -> decalSet boolean
@param tintColR
- (Default: curTintColR)
@param tintColG
- (Default: curTintColG)
@param tintColB
- (Default: curTintColB)
@param tintColA
- (Default: curTintColA)
Sets the tint of the ground decal. Color = 2 * textureColor * tintColor Respectively a color of (0.5, 0.5, 0.5, 0.5) is effectively no tint
[source]
Spring.SetHeightMap
function Spring.SetHeightMap(
x: number,
z: number,
height: number,
terraform: number?
) -> absHeightDiff integer?
@param terraform
- (Default: 1) Scaling factor.
@return absHeightDiff
- If 0
, nothing will be changed (the terraform starts), if 1
the terraform will be finished.
Can only be called in Spring.SetHeightMapFunc
. The terraform argument is
[source]
Spring.SetHeightMapFunc
function Spring.SetHeightMapFunc(
luaFunction: function,
arg: number,
...: number
) -> absTotalHeightMapAmountChanged integer?
Example code:
function Spring.SetHeightMapFunc(function()
for z=0,Game.mapSizeZ, Game.squareSize do
for x=0,Game.mapSizeX, Game.squareSize do
Spring.SetHeightMap( x, z, 200 + 20 * math.cos((x + z) / 90) )
end
end
end)
[source]
Spring.SetLastMessagePosition
function Spring.SetLastMessagePosition(
x: number,
y: number,
z: number
) -> nil
[source]
Spring.SetLogSectionFilterLevel
function Spring.SetLogSectionFilterLevel(
sectionName: string,
logLevel: (string|number)?
) -> nil
[source]
Spring.SetLosViewColors
function Spring.SetLosViewColors(
always: rgb,
LOS: rgb,
radar: rgb,
jam: rgb,
radar2: rgb
) -> nil
[source]
Spring.SetMapLightTrackingState
function Spring.SetMapLightTrackingState(
lightHandle: number,
unitOrProjectileID: integer,
enableTracking: boolean,
unitOrProjectile: boolean
) -> success boolean
Set a map-illuminating light to start/stop tracking the position of a moving object (unit or projectile)
[source]
Spring.SetMapRenderingParams
function Spring.SetMapRenderingParams(params: MapRenderingParams) -> nil
Allows to change map rendering params at runtime.
[source]
Spring.SetMapShader
function Spring.SetMapShader(
standardShaderID: integer,
deferredShaderID: integer
) -> nil
The ID’s must refer to valid programs returned by gl.CreateShader
. Passing in a value of 0 will cause the respective shader to revert back to its engine default. Custom map shaders that declare a uniform ivec2 named “texSquare” can sample from the default diffuse texture(s), which are always bound to TU 0.
[source]
Spring.SetMapShadingTexture
function Spring.SetMapShadingTexture(
texType: string,
texName: string
) -> success boolean
[source]
Spring.SetMapSquareTerrainType
function Spring.SetMapSquareTerrainType(
x: number,
z: number,
newType: number
) -> oldType integer?
[source]
Spring.SetMapSquareTexture
function Spring.SetMapSquareTexture(
texSqrX: number,
texSqrY: number,
luaTexName: string
) -> success boolean
[source]
Spring.SetMetalAmount
function Spring.SetMetalAmount(
x: integer,
z: integer,
metalAmount: number
) -> nil
@param x
- in worldspace/16.
@param z
- in worldspace/16.
@param metalAmount
- must be between 0 and 255*maxMetal (with maxMetal from the .smd or mapinfo.lua).
[source]
Spring.SetMiniMapRotation
function Spring.SetMiniMapRotation(rotation: number) -> nil
@param rotation
- amount in radians
[source]
Spring.SetModelLightTrackingState
function Spring.SetModelLightTrackingState(
lightHandle: number,
unitOrProjectileID: integer,
enableTracking: boolean,
unitOrProjectile: boolean
) -> success boolean
Set a model-illuminating light to start/stop tracking the position of a moving object (unit or projectile)
[source]
Spring.SetMouseCursor
function Spring.SetMouseCursor(
cursorName: string,
cursorScale: number?
) -> nil
@param cursorScale
- (Default: 1.0)
[source]
Spring.SetNanoProjectileParams
function Spring.SetNanoProjectileParams(
rotVal: number?,
rotVel: number?,
rotAcc: number?,
rotValRng: number?,
rotVelRng: number?,
rotAccRng: number?
) -> nil
@param rotVal
- (Default: 0) in degrees
@param rotVel
- (Default: 0) in degrees
@param rotAcc
- (Default: 0) in degrees
@param rotValRng
- (Default: 0) in degrees
@param rotVelRng
- (Default: 0) in degrees
@param rotAccRng
- (Default: 0) in degrees
[source]
Spring.SetNoPause
function Spring.SetNoPause(noPause: boolean) -> nil
[source]
Spring.SetOriginalHeightMap
function Spring.SetOriginalHeightMap(
x: number,
y: number,
height: number,
factor: number?
) -> nil
Can only be called in Spring.SetOriginalHeightMapFunc
[source]
Spring.SetOriginalHeightMapFunc
function Spring.SetOriginalHeightMapFunc(heightMapFunc: function) -> nil
Cannot recurse on itself
[source]
Spring.SetPieceProjectileParams
function Spring.SetPieceProjectileParams(
projectileID: integer,
explosionFlags: number?,
spinAngle: number?,
spinSpeed: number?,
spinVectorX: number?,
spinVectorY: number?,
spinVectorZ: number?
) -> nil
[source]
Spring.SetPlayerRulesParam
function Spring.SetPlayerRulesParam(
playerID: integer,
paramName: string,
paramValue: (number|string)?,
losAccess: losAccess?
) -> nil
@param paramValue
- numeric paramValues in quotes will be converted to number.
[source]
Spring.SetProjectileAlwaysVisible
function Spring.SetProjectileAlwaysVisible(
projectileID: integer,
alwaysVisible: boolean
) -> nil
[source]
Spring.SetProjectileCEG
function Spring.SetProjectileCEG(
projectileID: integer,
ceg_name: string
) -> nil
[source]
Spring.SetProjectileCollision
function Spring.SetProjectileCollision(projectileID: integer) -> nil
[source]
Spring.SetProjectileDamages
function Spring.SetProjectileDamages(
unitID: integer,
weaponNum: number,
key: string,
value: number
) -> nil
[source]
Spring.SetProjectileGravity
function Spring.SetProjectileGravity(
projectileID: integer,
grav: number?
) -> nil
@param grav
- (Default: 0)
[source]
Spring.SetProjectileIgnoreTrackingError
function Spring.SetProjectileIgnoreTrackingError(
projectileID: integer,
ignore: boolean
) -> nil
[source]
Spring.SetProjectileIsIntercepted
function Spring.SetProjectileIsIntercepted(projectileID: integer) -> nil
[source]
Spring.SetProjectileMoveControl
function Spring.SetProjectileMoveControl(
projectileID: integer,
enable: boolean
) -> nil
Disables engine movecontrol, so lua can fully control the physics.
[source]
Spring.SetProjectilePosition
function Spring.SetProjectilePosition(
projectileID: integer,
posX: number?,
posY: number?,
posZ: number?
) -> nil
@param posX
- (Default: 0)
@param posY
- (Default: 0)
@param posZ
- (Default: 0)
[source]
Spring.SetProjectileTarget
function Spring.SetProjectileTarget(
projectileID: integer,
arg1: number?,
arg2: number?,
posZ: number?
) -> validTarget boolean?
@param arg1
- (Default: 0) targetID or posX
@param arg2
- (Default: 0) targetType or posY
@param posZ
- (Default: 0)
targetTypeStr can be one of: ‘u’ - unit ‘f’ - feature ‘p’ - projectile while targetTypeInt is one of: string.byte(‘g’) := GROUND string.byte(‘u’) := UNIT string.byte(‘f’) := FEATURE string.byte(‘p’) := PROJECTILE
[source]
Spring.SetProjectileTimeToLive
function Spring.SetProjectileTimeToLive(
projectileID: integer,
ttl: number
) -> nil
@param ttl
- Remaining time to live in frames
[source]
Spring.SetProjectileUseAirLos
function Spring.SetProjectileUseAirLos(
projectileID: integer,
useAirLos: boolean
) -> nil
[source]
Spring.SetProjectileVelocity
function Spring.SetProjectileVelocity(
projectileID: integer,
velX: number?,
velY: number?,
velZ: number?
) -> nil
@param velX
- (Default: 0)
@param velY
- (Default: 0)
@param velZ
- (Default: 0)
[source]
Spring.SetRadarErrorParams
function Spring.SetRadarErrorParams(
allyTeamID: integer,
allyteamErrorSize: number,
baseErrorSize: number?,
baseErrorMult: number?
) -> nil
[source]
Spring.SetShareLevel
function Spring.SetShareLevel(
resource: string,
shareLevel: number
) -> nil
@param resource
- metal | energy
[source]
Spring.SetSkyBoxTexture
function Spring.SetSkyBoxTexture(texName: string) -> nil
[source]
Spring.SetSmoothMesh
function Spring.SetSmoothMesh(
x: number,
z: number,
height: number,
terraform: number?
) -> The number?
@param terraform
- (Default: 1)
@return The
- absolute height difference, or nil
if coordinates are invalid.
Can only be called in Spring.SetSmoothMeshFunc
.
[source]
Spring.SetSmoothMeshFunc
function Spring.SetSmoothMeshFunc(
luaFunction: function,
arg: any?,
...: any?
) -> absTotalHeightMapAmountChanged number?
[source]
Spring.SetSoundEffectParams
function Spring.SetSoundEffectParams()
[source]
Spring.SetSoundStreamVolume
function Spring.SetSoundStreamVolume(volume: number) -> nil
Set volume for SoundStream
[source]
Spring.SetSquareBuildingMask
function Spring.SetSquareBuildingMask(
x: number,
z: number,
mask: number
) -> See nil
@return See
- also buildingMask unitdef tag.
[source]
Spring.SetSunDirection
function Spring.SetSunDirection(
dirX: number,
dirY: number,
dirZ: number,
intensity: number?
) -> nil
@param intensity
- (Default: 1.0
)
[source]
Spring.SetSunLighting
function Spring.SetSunLighting(params: { groundDiffuseColor: rgb,groundAmbientColor: rgb })
Modify sun lighting parameters.
Spring.SetSunLighting({groundAmbientColor = {1, 0.1, 1}, groundDiffuseColor = {1, 0.1, 1} })
[source]
Spring.SetTeamColor
function Spring.SetTeamColor(
teamID: integer,
r: number,
g: number,
b: number
) -> nil
[source]
Spring.SetTeamResource
function Spring.SetTeamResource(
teamID: integer,
resource: (ResourceName|StorageName),
amount: number
) -> nil
[source]
Spring.SetTeamRulesParam
function Spring.SetTeamRulesParam(
teamID: integer,
paramName: string,
paramValue: (number|string)?,
losAccess: losAccess?
) -> nil
@param paramValue
- numeric paramValues in quotes will be converted to number.
[source]
Spring.SetTeamShareLevel
function Spring.SetTeamShareLevel(
teamID: integer,
type: ResourceName,
amount: number
) -> nil
Changes the resource amount for a team beyond which resources aren’t stored but transferred to other allied teams if possible.
[source]
Spring.SetTerrainTypeData
function Spring.SetTerrainTypeData(
typeIndex: number,
speedTanks: number?,
speedKBOts: number?,
speedHovers: number?,
speedShips: number?
) -> boolean?
@param speedTanks
- (Default: nil)
@param speedKBOts
- (Default: nil)
@param speedHovers
- (Default: nil)
@param speedShips
- (Default: nil)
@return - true
[source]
Spring.SetTidal
function Spring.SetTidal(strength: number) -> nil
Set tidal strength
[source]
Spring.SetUnitAlwaysUpdateMatrix
function Spring.SetUnitAlwaysUpdateMatrix(
unitID: integer,
alwaysUpdateMatrix: boolean
) -> nil
[source]
Spring.SetUnitAlwaysVisible
function Spring.SetUnitAlwaysVisible(
unitID: integer,
alwaysVisible: boolean
) -> nil
[source]
Spring.SetUnitArmored
function Spring.SetUnitArmored(
unitID: integer,
armored: boolean?,
armorMultiple: number?
) -> nil
[source]
Spring.SetUnitBlocking
function Spring.SetUnitBlocking(
unitID: integer,
isblocking: boolean,
isSolidObjectCollidable: boolean,
isProjectileCollidable: boolean,
isRaySegmentCollidable: boolean,
crushable: boolean,
blockEnemyPushing: boolean,
blockHeightChanges: boolean
) -> nil
[source]
Spring.SetUnitBuildParams
function Spring.SetUnitBuildParams(
unitID: integer,
paramName: string,
value: (number|boolean)
) -> nil
@param paramName
- one of buildRange
|buildDistance
|buildRange3D
@param value
- boolean when paramName
is buildRange3D
, otherwise number.
[source]
Spring.SetUnitBuildSpeed
function Spring.SetUnitBuildSpeed(
builderID: integer,
buildSpeed: number,
repairSpeed: number?,
reclaimSpeed: number?,
captureSpeed: number?,
terraformSpeed: number?
) -> nil
[source]
Spring.SetUnitBuildeeRadius
function Spring.SetUnitBuildeeRadius(
unitID: integer,
build: number
) -> nil
@param build
- radius for when targeted by build, repair, reclaim-type commands.
Sets the unit’s radius for when targeted by build, repair, reclaim-type commands.
[source]
Spring.SetUnitCloak
function Spring.SetUnitCloak(
unitID: integer,
cloak: (boolean|number),
cloakArg: (boolean|number)
) -> nil
If the 2nd argument is a number, the value works like this: 1:=normal cloak 2:=for free cloak (cost no E) 3:=for free + no decloaking (except the unit is stunned) 4:=ultimate cloak (no ecost, no decloaking, no stunned decloak)
The decloak distance is only changed:
Spring.SetUnitCollisionVolumeData
function Spring.SetUnitCollisionVolumeData(
unitID: integer,
scaleX: number,
scaleY: number,
scaleZ: number,
offsetX: number,
offsetY: number,
offsetZ: number,
vType: number,
tType: number,
Axis: number
) -> enum nil
@return enum
- COLVOL_TYPES { COLVOL_TYPE_DISABLED = -1, COLVOL_TYPE_ELLIPSOID = 0, COLVOL_TYPE_CYLINDER, COLVOL_TYPE_BOX, COLVOL_TYPE_SPHERE, COLVOL_NUM_TYPES // number of non-disabled collision volume types }; enum COLVOL_TESTS { COLVOL_TEST_DISC = 0, COLVOL_TEST_CONT = 1, COLVOL_NUM_TESTS = 2 // number of tests }; enum COLVOL_AXES { COLVOL_AXIS_X = 0, COLVOL_AXIS_Y = 1, COLVOL_AXIS_Z = 2, COLVOL_NUM_AXES = 3 // number of collision volume axes };
[source]
Spring.SetUnitCosts
function Spring.SetUnitCosts(
unitID: integer,
where: table<number,number>
) -> nil
@param where
- keys and values are, respectively and in this order: buildTime=amount, metalCost=amount, energyCost=amount
[source]
Spring.SetUnitCrashing
function Spring.SetUnitCrashing(
unitID: integer,
crashing: boolean
) -> success boolean
[source]
Spring.SetUnitDefIcon
function Spring.SetUnitDefIcon(
unitDefID: integer,
iconName: string
) -> nil
[source]
Spring.SetUnitDefImage
function Spring.SetUnitDefImage(
unitDefID: integer,
image: string
) -> nil
@param image
- luaTexture|texFile
[source]
Spring.SetUnitDirection
function Spring.SetUnitDirection(
unitID: integer,
frontx: number,
fronty: number,
frontz: number
) -> nil
Set unit front direction vector. The vector is normalized in the engine.
[source]
Spring.SetUnitEngineDrawMask
function Spring.SetUnitEngineDrawMask(
unitID: integer,
drawMask: number
) -> nil
[source]
Spring.SetUnitExperience
function Spring.SetUnitExperience(
unitID: integer,
experience: number
) -> nil
[source]
Spring.SetUnitFlanking
function Spring.SetUnitFlanking(
unitID: integer,
type: string,
arg1: number,
y: number?,
z: number?
) -> nil
@param type
- “dir”|”minDamage”|”maxDamage”|”moveFactor”|”mode”
@param arg1 - x | minDamage | maxDamage | moveFactor | mode |
@param y
- only when type is “dir”
@param z
- only when type is “dir”
[source]
Spring.SetUnitGroup
function Spring.SetUnitGroup(
unitID: integer,
groupID: number
) -> nil
@param groupID
- the group number to be assigned, or -1 for deassignment
[source]
Spring.SetUnitHarvestStorage
function Spring.SetUnitHarvestStorage(
unitID: integer,
metal: number
) -> nil
See also harvestStorage UnitDef tag.
[source]
Spring.SetUnitHeadingAndUpDir
function Spring.SetUnitHeadingAndUpDir(
unitID: integer,
heading: number,
upx: number,
upy: number,
upz: number
) -> nil
Use this call to set up unit direction in a robust way. Heading (-32768 to 32767) represents a 2D (xz plane) unit orientation if unit was completely upright, new {upx,upy,upz} direction will be used as new “up” vector, the rotation set by “heading” will remain preserved.
[source]
Spring.SetUnitHealth
function Spring.SetUnitHealth(
unitID: integer,
health: (number|SetUnitHealthAmounts)
) -> nil
@param health
- If a number, sets the units health to that value. Pass a table to update health, capture progress, paralyze damage, and build progress.
Note, if your game’s custom shading framework doesn’t support reverting into nanoframes then reverting into nanoframes via the “build” tag will fail to render properly.
[source]
Spring.SetUnitIconDraw
function Spring.SetUnitIconDraw(
unitID: integer,
drawIcon: boolean
) -> nil
[source]
Spring.SetUnitLandGoal
function Spring.SetUnitLandGoal(
unitID: integer,
goalX: number,
goalY: number,
goalZ: number,
goalRadius: number?
) -> nil
Used in conjunction with Spring.UnitAttach et al. to re-implement old airbase & fuel system in Lua.
[source]
Spring.SetUnitLeaveTracks
function Spring.SetUnitLeaveTracks(
unitID: integer,
unitLeaveTracks: boolean
) -> nil
@param unitLeaveTracks
- whether unit leaves tracks on movement
[source]
Spring.SetUnitLoadingTransport
function Spring.SetUnitLoadingTransport(
passengerID: integer,
transportID: integer
) -> nil
Disables collisions between the two units to allow colvol intersection during the approach.
[source]
Spring.SetUnitLosMask
function Spring.SetUnitLosMask(
unitID: integer,
allyTeam: number,
losTypes: (number|table)
) -> nil
The 3rd argument is either the bit-and combination of the following numbers:
LOS_INLOS = 1 LOS_INRADAR = 2 LOS_PREVLOS = 4 LOS_CONTRADAR = 8
or a table of the following form:
losTypes = { [los = boolean,] [radar = boolean,] [prevLos = boolean,] [contRadar = boolean] }
[source]
Spring.SetUnitLosState
function Spring.SetUnitLosState(
unitID: integer,
allyTeam: number,
los: (number|table)
) -> nil
[source]
Spring.SetUnitMass
function Spring.SetUnitMass(
unitID: integer,
mass: number
) -> nil
[source]
Spring.SetUnitMaxHealth
function Spring.SetUnitMaxHealth(
unitID: integer,
maxHealth: number
) -> nil
[source]
Spring.SetUnitMaxRange
function Spring.SetUnitMaxRange(
unitID: integer,
maxRange: number
) -> nil
[source]
Spring.SetUnitMetalExtraction
function Spring.SetUnitMetalExtraction(
unitID: integer,
depth: number,
range: number?
) -> nil
@param depth
- corresponds to metal extraction rate
@param range
- similar to “extractsMetal” in unitDefs.
[source]
Spring.SetUnitMidAndAimPos
function Spring.SetUnitMidAndAimPos(
unitID: integer,
mpX: number,
mpY: number,
mpZ: number,
apX: number,
apY: number,
apZ: number,
relative: boolean?
) -> success boolean
@param mpX
- new middle positionX of unit
@param mpY
- new middle positionY of unit
@param mpZ
- new middle positionZ of unit
@param apX
- new positionX that enemies aim at on this unit
@param apY
- new positionY that enemies aim at on this unit
@param apZ
- new positionZ that enemies aim at on this unit
@param relative
- (Default: false) are the new coordinates relative to world (false) or unit (true) coordinates? Also, note that apy is inverted!
[source]
Spring.SetUnitMoveGoal
function Spring.SetUnitMoveGoal(
unitID: integer,
goalX: number,
goalY: number,
goalZ: number,
goalRadius: number?,
moveSpeed: number?,
moveRaw: boolean?
) -> nil
Used by default commands to get in build-, attackrange etc.
[source]
Spring.SetUnitNanoPieces
function Spring.SetUnitNanoPieces(
builderID: integer,
pieces: table
) -> nil
This saves a lot of engine calls, by replacing: function script.QueryNanoPiece() return currentpiece end Use it!
[source]
Spring.SetUnitNeutral
function Spring.SetUnitNeutral(
unitID: integer,
neutral: boolean
) -> setNeutral (nil|boolean)
[source]
Spring.SetUnitNoDraw
function Spring.SetUnitNoDraw(
unitID: integer,
noDraw: boolean
) -> nil
[source]
Spring.SetUnitNoGroup
function Spring.SetUnitNoGroup(
unitID: integer,
unitNoGroup: boolean
)
@param unitNoGroup
- Whether unit can be added to selection groups
[source]
Spring.SetUnitNoMinimap
function Spring.SetUnitNoMinimap(
unitID: integer,
unitNoMinimap: boolean
) -> nil
[source]
Spring.SetUnitNoSelect
function Spring.SetUnitNoSelect(
unitID: integer,
unitNoSelect: boolean
) -> nil
@param unitNoSelect
- whether unit can be selected or not
[source]
Spring.SetUnitPhysicalStateBit
function Spring.SetUnitPhysicalStateBit(
unitID: integer,
Physical
) -> nil
[source]
Spring.SetUnitPhysics
function Spring.SetUnitPhysics(
unitID: integer,
posX: number,
posY: number,
posZ: number,
velX: number,
velY: number,
velZ: number,
rotX: number,
rotY: number,
rotZ: number,
dragX: number,
dragY: number,
dragZ: number
) -> nil
[source]
Spring.SetUnitPieceCollisionVolumeData
function Spring.SetUnitPieceCollisionVolumeData(
unitID: integer,
pieceIndex: number,
enable: boolean,
scaleX: number,
scaleY: number,
scaleZ: number,
offsetX: number,
offsetY: number,
offsetZ: number,
volumeType: number?,
primaryAxis: number?
) -> nil
[source]
Spring.SetUnitPieceMatrix
function Spring.SetUnitPieceMatrix(
unitID: integer,
pieceNum: number,
matrix: number[]
) -> nil
@param matrix
- an array of 16 floats
Sets the local (i.e. parent-relative) matrix of the given piece.
If any of the first three elements are non-zero, and also blocks all script animations from modifying it until {0, 0, 0} is passed.
[source]
Spring.SetUnitPieceParent
function Spring.SetUnitPieceParent(
unitID: integer,
AlteredPiece: number,
ParentPiece: number
) -> nil
Changes the pieces hierarchy of a unit by attaching a piece to a new parent.
[source]
Spring.SetUnitPieceVisible
function Spring.SetUnitPieceVisible(
unitID: integer,
pieceIndex: number,
visible: boolean
) -> nil
[source]
Spring.SetUnitPosErrorParams
function Spring.SetUnitPosErrorParams(
unitID: integer,
posErrorVectorX: number,
posErrorVectorY: number,
posErrorVectorZ: number,
posErrorDeltaX: number,
posErrorDeltaY: number,
posErrorDeltaZ: number,
nextPosErrorUpdate: number?
) -> nil
Sets a unit’s radar wobble
Controls how much a unit’s radar dot will wobble. Note that setting this above the allyTeam’s default wobble may result in the edgemost dot positions failing to register in ray traces, i.e. things like native “is under cursor” checks and some Lua interfaces.
[source]
Spring.SetUnitPosition
function Spring.SetUnitPosition(
unitID: integer,
x: number,
z: number,
floating: boolean?
) -> nil
@param floating
- (Default: false) If true, over water the position is on surface. If false, on seafloor.
Set unit position (2D)
Sets a unit’s position in 2D, at terrain height.
[source]
Spring.SetUnitRadiusAndHeight
function Spring.SetUnitRadiusAndHeight(
unitID: integer,
radius: number,
height: number
) -> success boolean
[source]
Spring.SetUnitResourcing
function Spring.SetUnitResourcing(
unitID: integer,
res: string,
amount: number
) -> nil
[source]
Spring.SetUnitRotation
function Spring.SetUnitRotation(
unitID: integer,
pitch: number,
yaw: number,
roll: number
) -> nil
@param pitch
- Rotation in X axis
@param yaw
- Rotation in Y axis
@param roll
- Rotation in Z axis
Note: PYR order
[source]
Spring.SetUnitRulesParam
function Spring.SetUnitRulesParam(
unitID: integer,
paramName: string,
paramValue: (number|string)?,
losAccess: losAccess?
) -> nil
@param paramValue
- numeric paramValues in quotes will be converted to number.
[source]
Spring.SetUnitSeismicSignature
function Spring.SetUnitSeismicSignature(
unitID: integer,
seismicSignature: number
) -> nil
[source]
Spring.SetUnitSelectionVolumeData
function Spring.SetUnitSelectionVolumeData(
unitID: integer,
featureID: integer,
scaleX: number,
scaleY: number,
scaleZ: number,
offsetX: number,
offsetY: number,
offsetZ: number,
vType: number,
tType: number,
Axis: number
) -> nil
[source]
Spring.SetUnitSensorRadius
function Spring.SetUnitSensorRadius(
unitID: integer,
type: ("los"|"airLos"|"radar"|"sonar"|"seismic"|"radarJammer"|"sonarJammer"),
radius: number
) -> New number?
@return New
- radius, or nil
if unit is invalid.
[source]
Spring.SetUnitShieldRechargeDelay
function Spring.SetUnitShieldRechargeDelay(
unitID: integer,
weaponID: integer?,
rechargeTime: number?
) -> nil
@param weaponID
- (optional if the unit only has one shield)
@param rechargeTime
- (in seconds; emulates a regular hit if nil)
[source]
Spring.SetUnitShieldState
function Spring.SetUnitShieldState(
unitID: integer,
weaponID: integer?,
enabled: boolean?,
power: number?
) -> nil
@param weaponID
- (Default: -1)
[source]
Spring.SetUnitSonarStealth
function Spring.SetUnitSonarStealth(
unitID: integer,
sonarStealth: boolean
) -> nil
[source]
Spring.SetUnitStealth
function Spring.SetUnitStealth(
unitID: integer,
stealth: boolean
) -> nil
[source]
Spring.SetUnitStockpile
function Spring.SetUnitStockpile(
unitID: integer,
stockpile: number?,
buildPercent: number?
) -> nil
[source]
Spring.SetUnitStorage
function Spring.SetUnitStorage(
unitID: number,
res: string,
amount: number
)
[source]
Spring.SetUnitTarget
function Spring.SetUnitTarget(
unitID: integer,
enemyUnitID: integer?,
dgun: boolean?,
userTarget: boolean?,
weaponNum: number?
) -> success boolean
@param enemyUnitID
- when nil drops the units current target.
@param dgun
- (Default: false)
@param userTarget
- (Default: false)
@param weaponNum
- (Default: -1)
Defines a unit’s target.
[source]
Spring.SetUnitTooltip
function Spring.SetUnitTooltip(
unitID: integer,
tooltip: string
) -> nil
[source]
Spring.SetUnitUseAirLos
function Spring.SetUnitUseAirLos(
unitID: integer,
useAirLos: boolean
) -> nil
[source]
Spring.SetUnitUseWeapons
function Spring.SetUnitUseWeapons(
unitID: integer,
forceUseWeapons: number?,
allowUseWeapons: number?
) -> nil
[source]
Spring.SetUnitVelocity
function Spring.SetUnitVelocity(
unitID: integer,
velX: number,
velY: number,
velZ: number
) -> nil
[source]
Spring.SetUnitWeaponDamages
function Spring.SetUnitWeaponDamages(
unitID: integer,
weaponNum: (number|"selfDestruct"|"explode"),
damages: WeaponDamages
) -> nil
[source]
Spring.SetUnitWeaponState
function Spring.SetUnitWeaponState(
unitID: integer,
weaponNum: number,
states: WeaponState
) -> nil
[source]
Spring.SetVideoCapturingMode
function Spring.SetVideoCapturingMode(allowCaptureMode: boolean) -> nil
This doesn’t actually record the game in any way, it just regulates the framerate and interpolations.
[source]
Spring.SetVideoCapturingTimeOffset
function Spring.SetVideoCapturingTimeOffset(timeOffset: boolean) -> nil
[source]
Spring.SetWMIcon
function Spring.SetWMIcon(iconFileName: string) -> nil
Sets the icon for the process which is seen in the OS task-bar and other places (default: spring-logo).
Note: has to be 24bit or 32bit. Note: on windows, it has to be 32x32 pixels in size (recommended for cross-platform) Note: *.bmp images have to be in BGR format (default for m$ ones). Note: *.ico images are not supported.
[source]
Spring.SetWaterParams
function Spring.SetWaterParams(waterParams: WaterParams) -> nil
Does not need cheating enabled.
Allows to change water params (mostly BumpWater
ones) at runtime. You may want to set BumpWaterUseUniforms
in your springrc
to 1, then you don’t even need to restart BumpWater
via /water 4
.
[source]
Spring.SetWind
function Spring.SetWind(
minStrength: number,
maxStrength: number
) -> nil
Set wind strength
[source]
Spring.SetWindowGeometry
function Spring.SetWindowGeometry(
displayIndex: number,
winRelPosX: number,
winRelPosY: number,
winSizeX: number,
winSizeY: number,
fullScreen: boolean,
borderless: boolean
) -> nil
[source]
Spring.SetWindowMaximized
function Spring.SetWindowMaximized() -> maximized boolean
[source]
Spring.SetWindowMinimized
function Spring.SetWindowMinimized() -> minimized boolean
[source]
Spring.ShareResources
function Spring.ShareResources(
teamID: integer,
units: string
) -> nil
[source]
Spring.ShareTeamResource
function Spring.ShareTeamResource(
teamID_src: integer,
teamID_recv: integer,
type: ResourceName,
amount: number
) -> nil
Transfers resources between two teams.
[source]
Spring.SolveNURBSCurve
function Spring.SolveNURBSCurve(groupID: integer) -> unitIDs number[]?
[source]
Spring.SpawnCEG
function Spring.SpawnCEG(
cegname: string,
posX: number?,
posY: number?,
posZ: number?,
dirX: number?,
dirY: number?,
dirZ: number?,
radius: number?,
damage: number?
)
-> success boolean?
-> cegID number
@param posX
- (Default: 0)
@param posY
- (Default: 0)
@param posZ
- (Default: 0)
@param dirX
- (Default: 0)
@param dirY
- (Default: 0)
@param dirZ
- (Default: 0)
@param radius
- (Default: 0)
@param damage
- (Default: 0)
[source]
Spring.SpawnExplosion
function Spring.SpawnExplosion(
posX: number?,
posY: number?,
posZ: number?,
dirX: number?,
dirY: number?,
dirZ: number?,
explosionParams: ExplosionParams
) -> nil
@param posX
- (Default: 0)
@param posY
- (Default: 0)
@param posZ
- (Default: 0)
@param dirX
- (Default: 0)
@param dirY
- (Default: 0)
@param dirZ
- (Default: 0)
[source]
Spring.SpawnProjectile
function Spring.SpawnProjectile(
weaponDefID: integer,
projectileParams: ProjectileParams
) -> projectileID integer?
[source]
Spring.SpawnSFX
function Spring.SpawnSFX(
unitID: integer?,
sfxID: integer?,
posX: number?,
posY: number?,
posZ: number?,
dirX: number?,
dirY: number?,
dirZ: number?,
radius: number?,
damage: number?,
absolute: boolean?
) -> success boolean?
@param unitID
- (Default: 0)
@param sfxID
- (Default: 0)
@param posX
- (Default: 0)
@param posY
- (Default: 0)
@param posZ
- (Default: 0)
@param dirX
- (Default: 0)
@param dirY
- (Default: 0)
@param dirZ
- (Default: 0)
@param radius
- (Default: 0)
@param damage
- (Default: 0)
Equal to the UnitScript versions of EmitSFX, but takes position and direction arguments (in either unit- or piece-space) instead of a piece index.
[source]
Spring.Start
function Spring.Start(
commandline_args: string,
startScript: string
) -> nil
@param commandline_args
- commandline arguments passed to spring executable.
@param startScript
- the CONTENT of the script.txt spring should use to start (if empty, no start-script is added, you can still point spring to your custom script.txt when you add the file-path to commandline_args.
Launches a new Spring instance without terminating the existing one.
If this call returns, something went wrong
[source]
Spring.StopSoundStream
function Spring.StopSoundStream() -> nil
Terminates any SoundStream currently running.
[source]
Spring.TestBuildOrder
function Spring.TestBuildOrder(
unitDefID: integer,
x: number,
y: number,
z: number,
facing: Facing
)
-> blocking BuildOrderBlockedStatus
-> featureID integer?
@return featureID
- A reclaimable feature in the way.
[source]
Spring.TestMoveOrder
function Spring.TestMoveOrder(
unitDefID: integer,
pos: float3,
dir: float3?,
testTerrain: boolean?,
testObjects: boolean?,
centerOnly: boolean?
) -> boolean
@param dir
- (Default: { x: 0, y: 0, z: 0 }
)
@param testTerrain
- (Default: true)
@param testObjects
- (Default: true)
@param centerOnly
- (Default: false)
[source]
Spring.TraceRayGroundBetweenPositions
function Spring.TraceRayGroundBetweenPositions(
startX: number,
startY: number,
startZ: number,
endX: number,
endY: number,
endZ: number,
testWater: boolean?
)
-> rayLength number
-> posX number
-> posY number
-> posZ number
@param testWater
- (Default: true
)
Checks for a ground collision between two positions
Checks if there is surface (ground, optionally water) between two positions and returns the distance to the closest hit and its position, if any.
[source]
Spring.TraceRayGroundInDirection
function Spring.TraceRayGroundInDirection(
posX: number,
posY: number,
posZ: number,
dirX: number,
dirY: number,
dirZ: number,
testWater: boolean?
)
-> rayLength number
-> posX number
-> posY number
-> posZ number
@param testWater
- (Default: true
)
Checks for a ground collision in given direction
Checks if there is surface (ground, optionally water) towards a vector and returns the distance to the closest hit and its position, if any.
[source]
Spring.TraceScreenRay
function Spring.TraceScreenRay(
screenX: number,
screenY: number,
onlyCoords: boolean?,
useMinimap: boolean?,
includeSky: boolean?,
ignoreWater: boolean?,
heightOffset: number?
)
-> description (nil|string)
-> unitID (nil|number|string|xyz)
-> featureID (nil|number|string)
-> coords (nil|xyz)
@param screenX
- position on x axis in mouse coordinates (origin on left border of view)
@param screenY
- position on y axis in mouse coordinates (origin on top border of view)
@param onlyCoords
- (Default: false) return only description (1st return value) and coordinates (2nd return value)
@param useMinimap
- (Default: false) if position arguments are contained by minimap, use the minimap corresponding world position
@param includeSky
- (Default: false)
@param ignoreWater
- (Default: false)
@param heightOffset
- (Default: 0)
@return description
- of traced position
@return unitID
- or feature, position triple when onlyCoords=true
@return featureID
- or ground
Get information about a ray traced from screen to world position
Extended to allow a custom plane, parameters are (0, 1, 0, D=0) where D is the offset D can be specified in the third argument (if all the bools are false) or in the seventh (as shown).
Intersection coordinates are returned in t[4],t[5],t[6] when the ray goes offmap and includeSky is true), or when no unit or feature is hit (or onlyCoords is true).
This will only work for units & objects with the default collision sphere. Per Piece collision and custom collision objects are not supported.
The unit must be selectable, to appear to a screen trace ray.
[source]
Spring.TransferFeature
function Spring.TransferFeature(
featureDefID: integer,
teamID: integer
) -> nil
Feature Control
[source]
Spring.TransferUnit
function Spring.TransferUnit(
unitID: integer,
newTeamID: integer,
given: boolean?
) -> nil
@param given
- (Default: true) if false, the unit is captured.
[source]
Spring.UnitAttach
function Spring.UnitAttach(
transporterID: integer,
passengerID: integer,
pieceNum: number
) -> nil
[source]
Spring.UnitDetach
function Spring.UnitDetach(passengerID: integer) -> nil
[source]
Spring.UnitDetachFromAir
function Spring.UnitDetachFromAir(passengerID: integer) -> nil
[source]
Spring.UnitFinishCommand
function Spring.UnitFinishCommand(unitID: integer)
[source]
Spring.UnitIconGetDraw
function Spring.UnitIconGetDraw(unitID: integer) -> drawIcon boolean?
@return drawIcon
- true
if icon is being drawn, nil
when unitID is invalid, otherwise false
.
[source]
Spring.UnitIconSetDraw
function Spring.UnitIconSetDraw(
unitID: integer,
drawIcon: boolean
) -> nil
Use Spring.SetUnitIconDraw instead.
[source]
Spring.UnitWeaponFire
function Spring.UnitWeaponFire(
unitID: integer,
weaponID: integer
) -> nil
[source]
Spring.UnitWeaponHoldFire
function Spring.UnitWeaponHoldFire(
unitID: integer,
weaponID: integer
) -> nil
[source]
Spring.UpdateMapLight
function Spring.UpdateMapLight(
lightHandle: number,
lightParams: LightParams
) -> success boolean
[source]
Spring.UpdateModelLight
function Spring.UpdateModelLight(
lightHandle: number,
lightParams: LightParams
) -> success boolean
[source]
Spring.UseTeamResource
function Spring.UseTeamResource(
teamID: integer,
type: ResourceName,
amount: number
) -> hadEnough boolean
@param type
- Resource type.
@param amount
- Amount of resource to use.
@return hadEnough
- True if enough of the resource type was available and was consumed, otherwise false.
Consumes metal or energy resources of the specified team.
[source]
Spring.UseUnitResource
function Spring.UseUnitResource(
unitID: integer,
resource: ResourceName,
amount: number
) -> okay boolean?
[source]
Spring.ValidFeatureID
function Spring.ValidFeatureID(featureID: integer) -> boolean
[source]
Spring.ValidUnitID
function Spring.ValidUnitID(unitID: integer) -> boolean
[source]
Spring.WarpMouse
function Spring.WarpMouse(
x: number,
y: number
) -> nil
[source]
Spring.WorldToScreenCoords
function Spring.WorldToScreenCoords(
x: number,
y: number,
z: number
)
-> viewPortX number
-> viewPortY number
-> viewPortZ number
[source]
Spring.Yield
function Spring.Yield() -> when boolean
@return when
- true caller should continue calling Spring.Yield
during the widgets/gadgets load, when false it shouldn’t call it any longer.
Relinquish control of the game loading thread and OpenGL context back to the UI (LuaIntro).
Should be called after each widget/unsynced gadget is loaded in widget/gadget handler. Use it to draw screen updates and process windows events.
[source]