Lua API
Overview
We list here all globals available among all different lua environments within Recoil. Some types listed here exist only as helpers for aliasing parameters and returns.
The documentation pages are still a work in progress.
Spring (table)
Members
Spring.Ping (function) view source
Send a ping request to the serverSpring.Ping(integer?) -> nilParameters
integer?pingTag
Returns
Spring.SendCommands (function) view source
Spring.SendCommands(string[]) -> nilParameters
string[]commands
Spring.SendCommands (function overload 1) view source
Spring.SendCommands(string, [string, ]*) -> nilParameters
Returns
Spring.SendPublicChat (function) view source
Sends a chat message to everyone (players and spectators).Spring.SendPublicChat(string) -> nilParameters
stringmessage
Returns
Spring.SendAllyChat (function) view source
Sends a chat message to the sender’s ally team (if a spectator, to other spectators).Spring.SendAllyChat(string) -> nilParameters
stringmessage
Returns
Spring.SendSpectatorChat (function) view source
Sends a chat message to spectators. Works even if you’re a player.Spring.SendSpectatorChat(string) -> nilParameters
stringmessage
Returns
Spring.SendPrivateChat (function) view source
Sends a private chat message to a specific player ID.Spring.SendPrivateChat(string, PlayerID) -> nilParameters
Returns
Spring.SendMessage (function) view source
Spring.SendMessage(string) -> nilParameters
stringmessage
Returns
Spring.SendMessageToSpectators (function) view source
Send a message to spectators.
If message contains "<PLAYER#>" (where # is a player ID) it will be
replaced with the player’s name. e.g.
lua
Spring.SendMessageToSpectators(" did something") – “ProRusher did something”
Spring.SendMessageToSpectators(string) -> nilParameters
stringmessage- Message to send.
Returns
Spring.SendMessageToPlayer (function) view source
Spring.SendMessageToPlayer(PlayerID, string) -> nilParameters
Returns
Spring.SendMessageToTeam (function) view source
Spring.SendMessageToTeam(TeamID, string) -> nilParameters
Returns
Spring.SendMessageToAllyTeam (function) view source
Spring.SendMessageToAllyTeam(AllyTeamID, string) -> nilParameters
AllyTeamIDallyIDstringmessage
Returns
Spring.RequestStartPosition (function) view source
Requests a startpoint, as if clicking the spot with the native GUI.Spring.RequestStartPosition(number, number, number, boolean?) -> nilParameters
Spring.LoadSoundDef (function) view source
Loads a SoundDefs file, the format is the same as ingamedata/sounds.lua.Spring.LoadSoundDef(string) -> booleanParameters
stringsoundfile
Returns
booleansuccess
Spring.PlaySoundFile (function) view source
Spring.PlaySoundFile(string, number?, number?, number?, number?, number?, number?, number?, SoundChannel?) -> booleanParameters
stringsoundfilenumber?volume- (Default: 1.0) optional; all following arguments are optional
number?posx- world position X (use with
posyandposz, or omit all three) number?posynumber?posznumber?speedx- velocity X (use with
speedyandspeedzafter position, or omit all three) number?speedynumber?speedzSoundChannel?channel- (Default:
0|“general”) optional; parsed from the last argument index after position and speed triples
Returns
booleanplaySound
Spring.PlaySoundStream (function) view source
Allows to play an Ogg Vorbis (.OGG) and mp3 compressed sound file.
Multiple sound streams may be played at once.
Spring.PlaySoundStream(string, number?, boolean?) -> booleanParameters
Returns
booleansuccess
Spring.StopSoundStream (function) view source
Terminates any SoundStream currently running.Spring.StopSoundStream() -> nilReturns
Spring.PauseSoundStream (function) view source
Pause any SoundStream currently running.Spring.PauseSoundStream() -> nilReturns
Spring.SetSoundStreamVolume (function) view source
Set volume for SoundStreamSpring.SetSoundStreamVolume(number) -> nilParameters
numbervolume
Returns
Spring.SetSoundEffectParams (function) view source
Spring.SetSoundEffectParams() -> nilSpring.AddWorldIcon (function) view source
Spring.AddWorldIcon(integer, number, number, number) -> nilParameters
Returns
Spring.AddWorldText (function) view source
Spring.AddWorldText(string, number, number, number) -> nilParameters
Returns
Spring.AddWorldUnit (function) view source
Spring.AddWorldUnit(UnitDefID, number, number, number, TeamID, FacingInteger) -> nilParameters
Returns
Spring.DrawUnitCommands (function) view source
Spring.DrawUnitCommands(UnitID) -> nilParameters
Spring.DrawUnitCommands (function overload 1) view source
Spring.DrawUnitCommands(UnitID[], false?) -> nilParameters
UnitID[]unitIDs- Unit ids.
false?tableOrArray- Set to
trueif the unit IDs should be read from the keys ofunitIDs.
Spring.DrawUnitCommands (function overload 2) view source
Spring.DrawUnitCommands(table<UnitID,any>, true) -> nilParameters
table<UnitID,any>unitIDs- Table with unit IDs as keys.
truetableOrArray- Set to
falseif the unit IDs should be read from the values ofunitIDs.
Returns
Spring.SetCameraTarget (function) view source
For Spring Engine XZ represents horizontal, from north west corner of map and Y vertical, from water level and rising.Spring.SetCameraTarget(number, number, number, number?, number?, number?, number?) -> nilParameters
numberxnumberynumberznumber?transTime- (Default:
0.5) transition duration; values below zero are clamped to zero number?dirX- (Default: current camera direction X)
number?dirY- (Default: current camera direction Y)
number?dirZ- (Default: current camera direction Z)
Returns
Spring.SetCameraOffset (function) view source
Spring.SetCameraOffset(number?, number?, number?, number?, number?, number?) -> nilParameters
number?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0) number?tiltX- (Default:
0) number?tiltY- (Default:
0) number?tiltZ- (Default:
0)
Returns
Spring.SetCameraState (function) view source
Set camera state.
transitionTimeFactor defaults to “CamTimeFactor” springsetting unless set
previously.
transitionTimeExponent defaults to “CamTimeExponent” springsetting unless
set previously.
Spring.SetCameraState(CameraState, number?, number?, number?) -> booleanParameters
CameraStatecameraState- The fields must be consistent with the name/mode and current/new camera mode.
number?transitionTime- (Default:
0) in nanoseconds number?transitionTimeFactor- Multiplicative factor applied to this and all subsequent transition times for this camera mode.
number?transitionTimeExponent- Tween factor applied to this and all subsequent transitions for this camera mode.
Returns
booleansettruewhen applied without errors, otherwisefalse.
Spring.RunDollyCamera (function) view source
Runs Dolly CameraSpring.RunDollyCamera(number) -> nilParameters
numberruntime- Runtime in milliseconds.
Returns
Spring.PauseDollyCamera (function) view source
Pause Dolly CameraSpring.PauseDollyCamera(number?) -> nilParameters
number?fraction- Fraction of the total runtime to pause at, 0 to 1 inclusive. A null value pauses at current percent
Returns
Spring.ResumeDollyCamera (function) view source
Resume Dolly CameraSpring.ResumeDollyCamera() -> nilReturns
Spring.SetDollyCameraPosition (function) view source
Sets Dolly Camera PositionSpring.SetDollyCameraPosition(number, number, number) -> nilParameters
Returns
Spring.SetDollyCameraCurve (function) view source
Sets Dolly Camera movement CurveSpring.SetDollyCameraCurve(integer, ControlPoint[], table) -> nilParameters
integerdegreeControlPoint[]cpoints- NURBS control point positions.
tableknots
Returns
Spring.SetDollyCameraMode (function) view source
Sets Dolly Camera movement modeSpring.SetDollyCameraMode((1|2)) -> nilParameters
(1|2)mode1static position,2nurbs curve
Returns
Spring.SetDollyCameraRelativeMode (function) view source
Sets Dolly Camera movement curve to world relative or look target relativeSpring.SetDollyCameraRelativeMode(integer) -> nilParameters
integerrelativeMode1world,2look target
Returns
Spring.SetDollyCameraLookCurve (function) view source
Sets Dolly Camera Look CurveSpring.SetDollyCameraLookCurve(integer, ControlPoint[], table) -> nilParameters
integerdegreeControlPoint[]cpoints- NURBS control point positions.
tableknots
Returns
Spring.SetDollyCameraLookPosition (function) view source
Sets Dolly Camera Look PositionSpring.SetDollyCameraLookPosition(number, number, number) -> nilParameters
Returns
Spring.SetDollyCameraLookUnit (function) view source
Sets target unit for Dolly Camera to look towardsSpring.SetDollyCameraLookUnit(UnitID) -> nilParameters
Returns
Spring.SelectUnit (function) view source
Selects a single unitSpring.SelectUnit(UnitID?, boolean?) -> nilParameters
Returns
Spring.DeselectUnit (function) view source
Spring.DeselectUnit(UnitID) -> nilParameters
Returns
Spring.DeselectUnitArray (function) view source
Deselects multiple units.Spring.DeselectUnitArray(UnitID[]) -> nilParameters
Returns
Spring.DeselectUnitMap (function) view source
Deselects multiple units.Spring.DeselectUnitMap(table<UnitID,any>) -> nilParameters
table<UnitID,any>unitMap- Table with unit IDs as keys.
Returns
Spring.SelectUnitArray (function) view source
Selects multiple units, or appends to selection. Accepts a table with unitIDs as valuesSpring.SelectUnitArray(UnitID[], boolean?) -> nilParameters
UnitID[]unitIDs- Table with unit IDs as values.
boolean?append- (Default:
false) append to current selection
Returns
Spring.SelectUnitMap (function) view source
Selects multiple units, or appends to selection. Accepts a table with unitIDs as keysSpring.SelectUnitMap(table<UnitID,any>, boolean?) -> nilParameters
table<UnitID,any>unitMap- Table with unit IDs as keys.
boolean?append- (Default:
false) append to current selection
Returns
Spring.AddMapLight (function) view source
requires MaxDynamicMapLights > 0Spring.AddMapLight(LightParams) -> integerParameters
Returns
integerlightHandle
Spring.AddModelLight (function) view source
requires MaxDynamicMapLights > 0Spring.AddModelLight(LightParams) -> integerParameters
Returns
integerlightHandle
Spring.UpdateMapLight (function) view source
Spring.UpdateMapLight(integer, LightParams) -> booleanParameters
Returns
booleansuccess
Spring.UpdateModelLight (function) view source
Spring.UpdateModelLight(integer, LightParams) -> booleanParameters
Returns
booleansuccess
Spring.AddLightTrackingTarget (function) view source
Spring.AddLightTrackingTarget() -> nilSpring.SetMapLightTrackingState (function) view source
Set a map-illuminating light to start/stop tracking the position of a moving object (unit or projectile)Spring.SetMapLightTrackingState(integer, (UnitID|ProjectileID), boolean?, boolean?) -> booleanParameters
integerlightHandle(UnitID|ProjectileID)unitOrProjectileIDboolean?enableTrackingboolean?unitOrProjectile
Returns
booleansuccess
Spring.SetModelLightTrackingState (function) view source
Set a model-illuminating light to start/stop tracking the position of a moving object (unit or projectile)Spring.SetModelLightTrackingState(integer, (UnitID|ProjectileID), boolean?, boolean?) -> booleanParameters
integerlightHandle(UnitID|ProjectileID)unitOrProjectileIDboolean?enableTrackingboolean?unitOrProjectile
Returns
booleansuccess
Spring.SetMapShader (function) view source
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.Spring.SetMapShader(integer, integer, boolean?) -> nilParameters
integerstandardShaderIDintegerdeferredShaderIDboolean?combinedShader- (Default:
false) Declares that the deferred program also writes the lit forward color to fragment output 5, with non-zero alpha where ground is opaque (the composite skips zero-alpha pixels). WithAllowCombinedMapRenderingthe ground is then rasterized only once (no forward pass,DrawGroundPreForwardis not called, and on void maps the alpha test reads output 0’s alpha); otherwise the flag is ignored and both programs run as before.
Returns
Spring.SetMapSquareTexture (function) view source
Spring.SetMapSquareTexture(integer, integer, string) -> booleanParameters
integertexSqrXintegertexSqrYstringluaTexName
Returns
booleansuccess
Spring.SetMapShadingTexture (function) view source
Spring.SetMapShadingTexture(string, string) -> booleanParameters
Returns
booleansuccess
Spring.SetSkyBoxTexture (function) view source
Spring.SetSkyBoxTexture(string) -> nilParameters
stringtexName
Returns
Spring.SetUnitNoDraw (function) view source
Spring.SetUnitNoDraw(UnitID, boolean) -> nilParameters
Returns
Spring.SetUnitEngineDrawMask (function) view source
Spring.SetUnitEngineDrawMask(UnitID, number) -> nilParameters
Returns
Spring.SetUnitAlwaysUpdateMatrix (function) view source
Spring.SetUnitAlwaysUpdateMatrix(UnitID, boolean) -> nilParameters
Returns
Spring.SetUnitNoMinimap (function) view source
Spring.SetUnitNoMinimap(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleanunitNoMinimap
Returns
Spring.SetMiniMapRotation (function) view source
Spring.SetMiniMapRotation(number) -> nilParameters
numberrotation- amount in radians
Returns
Spring.SetUnitNoGroup (function) view source
Spring.SetUnitNoGroup(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleanunitNoGroup- Whether unit can be added to selection groups
Spring.SetUnitNoSelect (function) view source
Spring.SetUnitNoSelect(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleanunitNoSelect- whether unit can be selected or not
Returns
Spring.SetUnitLeaveTracks (function) view source
Spring.SetUnitLeaveTracks(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleanunitLeaveTracks- whether unit leaves tracks on movement
Returns
Spring.SetUnitSelectionVolumeData (function) view source
Spring.SetUnitSelectionVolumeData(UnitID, number, number, number, number, number, number, integer, integer, integer) -> nilParameters
UnitIDunitIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZintegervTypeintegertTypeintegerAxis
Returns
Spring.SetFeatureNoDraw (function) view source
Spring.SetFeatureNoDraw(FeatureID, boolean) -> nilParameters
Returns
Spring.SetFeatureEngineDrawMask (function) view source
Spring.SetFeatureEngineDrawMask(FeatureID, number) -> nilParameters
Returns
Spring.SetFeatureAlwaysUpdateMatrix (function) view source
Spring.SetFeatureAlwaysUpdateMatrix(FeatureID, number) -> nilParameters
Returns
Spring.SetFeatureFade (function) view source
Control whether a feature will fade or not when zoomed out.Spring.SetFeatureFade(FeatureID, boolean) -> nilParameters
Returns
Spring.SetFeatureSelectionVolumeData (function) view source
Spring.SetFeatureSelectionVolumeData(FeatureID, number, number, number, number, number, number, integer, integer, integer) -> nilParameters
FeatureIDfeatureIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZintegervTypeintegertTypeintegerAxis
Returns
Spring.AddUnitIcon (function) view source
Spring.AddUnitIcon(string, string, number?, number?, number?, number?, number?, number?, number?, number?) -> booleanParameters
stringiconNamestringtexFilenumber?sizenumber?distnumber?radAdjustnumber?u0number?v0number?u1number?v1number?drawOrder- (Default: 0) Sort priority for icon drawing; icons with higher values are drawn on top of lower ones.
Returns
booleanadded
Spring.FreeUnitIcon (function) view source
Spring.FreeUnitIcon(string) -> boolean?Parameters
stringiconName
Returns
boolean?freed
Spring.UnitIconSetDraw (function) view source
Use Spring.SetUnitIconDraw instead.Deprecated
Spring.UnitIconSetDraw(UnitID, boolean) -> nilParameters
Returns
Spring.SetUnitIconDraw (function) view source
Spring.SetUnitIconDraw(UnitID, boolean) -> nilParameters
Returns
Spring.SetUnitIcon (function) view source
Spring.SetUnitIcon(UnitID, string?) -> nilParameters
Returns
Spring.SetUnitDefIcon (function) view source
Spring.SetUnitDefIcon(UnitDefID, string) -> nilParameters
Returns
Spring.SetUnitDefImage (function) view source
Spring.SetUnitDefImage(UnitDefID, string?) -> nilParameters
Returns
Spring.ExtractModArchiveFile (function) view source
Spring.ExtractModArchiveFile(string) -> booleanParameters
stringmodfile
Returns
booleanextracted
Spring.CreateDir (function) view source
Spring.CreateDir(string) -> boolean?Parameters
stringpath
Returns
boolean?dirCreated
Spring.SetActiveCommand (function) view source
Spring.SetActiveCommand(string, string?) -> boolean?Parameters
stringactionstring?actionExtra
Returns
boolean?commandSet
Spring.SetActiveCommand (function overload 1) view source
Spring.SetActiveCommand(integer, integer?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> boolean?Parameters
integercmdIndexinteger?button- (Default:
1) boolean?leftClickboolean?rightClickboolean?altboolean?ctrlboolean?metaboolean?shift
Returns
boolean?commandSet
Spring.LoadCmdColorsConfig (function) view source
Spring.LoadCmdColorsConfig(string) -> nilParameters
stringconfig
Returns
Spring.LoadCtrlPanelConfig (function) view source
Spring.LoadCtrlPanelConfig(string) -> nilParameters
stringconfig
Returns
Spring.ForceLayoutUpdate (function) view source
Spring.ForceLayoutUpdate() -> nilReturns
Spring.SetDrawSelectionInfo (function) view source
Disables the “Selected Units x” box in the GUI.Spring.SetDrawSelectionInfo(boolean) -> nilParameters
booleanenable
Returns
Spring.SetBoxSelectionByEngine (function) view source
Spring.SetBoxSelectionByEngine(boolean) -> nilParameters
booleanstate
Returns
Spring.SetTeamColor (function) view source
Spring.SetTeamColor(TeamID, number, number, number, number?) -> nilParameters
Returns
Spring.SetCustomPaletteColor (function) view source
Spring.SetCustomPaletteColor(integer, number, number, number) -> nilParameters
integerindex- 0-based index into custom palette (0..1791, maps to palette slots 256..2047)
numberrnumbergnumberb
Returns
Spring.SetUnitPaletteIndex (function) view source
Sets a custom color for a unit from the palette. Custom assignments are permanent until explicitly reset by passing nil, and are NOT affected by team changes.Spring.SetUnitPaletteIndex(UnitID, integer?) -> nilParameters
UnitIDunitIDinteger?customIndex- [0..MAX_CUSTOM_COLORS) index into custom palette, or nil to reset to team color
Returns
Spring.SetFeaturePaletteIndex (function) view source
Sets a custom color for a feature from the palette. Custom assignments are permanent until explicitly reset by passing nil, and are NOT affected by team changes.Spring.SetFeaturePaletteIndex(FeatureID, integer?) -> nilParameters
FeatureIDfeatureIDinteger?customIndex- [0..MAX_CUSTOM_COLORS) index into custom palette, or nil to reset to team color
Returns
Spring.AssignMouseCursor (function) view source
Changes/creates the cursor of a single CursorCmd.
iconFileName is not the full filename, instead it is like this:
Wanted filename: Anims/cursorattack_0.bmp
=> iconFileName: cursorattack
Spring.AssignMouseCursor(string, string, boolean?, boolean?) -> boolean?Parameters
stringcmdNamestringiconFileName- The cursor name, without path, frame number or extension.
boolean?overwrite- (Default:
true) boolean?hotSpotTopLeft- (Default:
false)
Returns
boolean?assigned
Spring.ReplaceMouseCursor (function) view source
Mass replace all occurrences of the cursor in all CursorCmds.Spring.ReplaceMouseCursor(string, string, boolean?) -> boolean?Parameters
stringoldFileNamestringnewFileNameboolean?hotSpotTopLeft- (Default:
false)
Returns
boolean?assigned
Spring.SetCustomCommandDrawData (function) view source
Register your custom cmd so it gets visible in the unit’s cmd queueSpring.SetCustomCommandDrawData(integer, (string|integer)?, rgba?, boolean?) -> nilParameters
integercmdID(string|integer)?cmdReference- The name or ID of an icon for command. Pass
nilto clear draw data for command. rgba?color- (Default: white)
boolean?showArea- (Default:
false)
Returns
Spring.WarpMouse (function) view source
Spring.WarpMouse(integer, integer) -> nilParameters
Returns
Spring.SetMouseCursor (function) view source
Spring.SetMouseCursor(string, number?) -> nilParameters
stringcursorNamenumber?cursorScale- (Default:
1.0)
Returns
Spring.SetLosViewColors (function) view source
Spring.SetLosViewColors(rgb, rgb, rgb, rgb, rgb) -> nilParameters
Returns
Spring.SetNanoProjectileParams (function) view source
Spring.SetNanoProjectileParams(number?, number?, number?, number?, number?, number?) -> nilParameters
number?rotVal- (Default:
0) in degrees number?rotVel- (Default:
0) in degrees number?rotAcc- (Default:
0) in degrees number?rotValRng- (Default:
0) in degrees number?rotVelRng- (Default:
0) in degrees number?rotAccRng- (Default:
0) in degrees
Returns
Spring.UnbindAll (function) view source
Completely unbinds all key bindings without setting fallback bootstrap keys.Spring.UnbindAll() -> nilReturns
Spring.SetConfigInt (function) view source
Spring.SetConfigInt(string, integer, boolean?) -> nilParameters
stringnameintegervalueboolean?useOverlay- (Default:
false) Iftrue, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.SetConfigFloat (function) view source
Spring.SetConfigFloat(string, number, boolean?) -> nilParameters
stringnamenumbervalueboolean?useOverlay- (Default:
false) Iftrue, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.SetConfigString (function) view source
Spring.SetConfigString(string, string, boolean?) -> nilParameters
stringnamestringvalueboolean?useOverlay- (Default:
false) Iftrue, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.Quit (function) view source
Closes the applicationSpring.Quit() -> nilReturns
Spring.SetUnitGroup (function) view source
Spring.SetUnitGroup(UnitID, GroupID) -> nilParameters
Returns
Spring.GiveOrder (function) view source
Give order to selected units.Spring.GiveOrder((CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> booleanParameters
(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
Spring.GiveOrderToUnit (function) view source
Give order to specific unit.Spring.GiveOrderToUnit(UnitID, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> booleanParameters
UnitIDunitID(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
Spring.GiveOrderToUnit (function overload 1) view source
Spring.GiveOrderToUnit(UnitID, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> booleanParameters
UnitIDunitID(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
booleanunitOrdered
Spring.GiveOrderToUnitMap (function) view source
Give order to multiple units, specified by table keys.Spring.GiveOrderToUnitMap(table<UnitID,any>, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> booleanParameters
table<UnitID,any>unitMap- A table with unit IDs as keys.
(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
booleanorderGiven
Spring.GiveOrderToUnitMap (function overload 1) view source
Give order to multiple units, specified by table keys.Spring.GiveOrderToUnitMap(table<UnitID,any>, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> integerParameters
table<UnitID,any>unitMap- A table with unit IDs as keys.
(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
integerunitsOrdered- The number of units ordered.
Spring.GiveOrderToUnitArray (function) view source
Give order to an array of units.Spring.GiveOrderToUnitArray(UnitID[], (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> booleanParameters
UnitID[]unitIDs- Array of unit IDs.
(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderToUnitArray (function overload 1) view source
Spring.GiveOrderToUnitArray(UnitID[], (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> integerParameters
UnitID[]unitIDs- An array of unit IDs.
(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
integerunitsOrdered- The number of units ordered.
Spring.GiveOrderArrayToUnit (function) view source
Spring.GiveOrderArrayToUnit(UnitID, CreateCommand[]) -> booleanParameters
UnitIDunitID- Unit ID.
CreateCommand[]commands
Returns
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderArrayToUnit (function overload 1) view source
Spring.GiveOrderArrayToUnit(UnitID, CreateCommand[]) -> booleanParameters
Returns
booleanordersGiven
Spring.GiveOrderArrayToUnitMap (function) view source
Spring.GiveOrderArrayToUnitMap(table<UnitID,any>, CreateCommand[]) -> booleanParameters
table<UnitID,any>unitMap- A table with unit IDs as keys.
CreateCommand[]commands
Returns
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderArrayToUnitMap (function overload 1) view source
Spring.GiveOrderArrayToUnitMap(table<UnitID,any>, CreateCommand[]) -> integerParameters
table<UnitID,any>unitMap- A table with unit IDs as keys.
CreateCommand[]commands
Returns
integerunitsOrdered- The number of units ordered.
Spring.GiveOrderArrayToUnitArray (function) view source
When pairwise is false, assign all commands to each unit.
When true, assign commands according to index between units and cmds arrays.
If len(unitArray) < len(cmdArray) only the first len(unitArray) commands
will be assigned, and vice-versa.
Spring.GiveOrderArrayToUnitArray(UnitID[], CreateCommand[], boolean?) -> booleanParameters
UnitID[]unitIDs- Array of unit IDs.
CreateCommand[]commandsboolean?pairwise- (Default:
false) Whentrue, assign commands to units by index.
Returns
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderArrayToUnitArray (function overload 1) view source
When pairwise is false, assign all commands to each unit.
When true, assign commands according to index between units and cmds arrays.
If len(unitArray) < len(cmdArray) only the first len(unitArray) commands
will be assigned, and vice-versa.
Spring.GiveOrderArrayToUnitArray(UnitID[], CreateCommand[], boolean?) -> integerParameters
UnitID[]unitIDs- Array of unit IDs.
CreateCommand[]commandsboolean?pairwise- (Default:
false) Whentrue, assign commands to units by index.
Returns
integerunitsOrdered- The number of units ordered.
Spring.SetBuildSpacing (function) view source
Spring.SetBuildSpacing(integer) -> nilParameters
integerspacing
Returns
Spring.SetBuildFacing (function) view source
Spring.SetBuildFacing(FacingInteger) -> nilParameters
Returns
Spring.SendLuaUIMsg (function) view source
Spring.SendLuaUIMsg(string, string?) -> nilParameters
Returns
Spring.SendLuaGaiaMsg (function) view source
Spring.SendLuaGaiaMsg(string) -> nilParameters
stringmessage
Returns
Spring.SendLuaRulesMsg (function) view source
Spring.SendLuaRulesMsg(string) -> nilParameters
stringmessage
Returns
Spring.SendLuaMenuMsg (function) view source
Spring.SendLuaMenuMsg(string) -> nilParameters
stringmsg
Spring.SetShareLevel (function) view source
Spring.SetShareLevel(string, number) -> nilParameters
stringresource- metal | energy
numbershareLevel
Returns
Spring.ShareResources (function) view source
Spring.ShareResources(TeamID, string) -> nilParameters
Returns
Spring.ShareResources (function overload 1) view source
Spring.ShareResources(TeamID, string, number) -> nilParameters
Returns
Spring.SetLastMessagePosition (function) view source
Spring.SetLastMessagePosition(number, number, number) -> nilParameters
Returns
Spring.MarkerAddPoint (function) view source
Spring.MarkerAddPoint(number, number, number, string?, boolean?, PlayerID?) -> nilParameters
numberxnumberynumberzstring?text- (Default:
"") boolean?localOnlyPlayerID?playerID- Local labels pretend they are from this player
Returns
Spring.MarkerAddLine (function) view source
Spring.MarkerAddLine(number, number, number, number, number, number, boolean?, PlayerID?) -> nilParameters
Returns
Spring.MarkerErasePosition (function) view source
Issue an erase command for markers on the map.Spring.MarkerErasePosition(number, number, number, nil, boolean?, PlayerID?, boolean?) -> nilParameters
numberxnumberynumberznilunused- This argument is ignored.
boolean?localOnly- (Default:
false) do not issue a network message, erase only for the current player PlayerID?playerId- when not specified it uses the issuer playerId
boolean?alwaysErase- (Default:
false) erase any marker whenlocalOnlyand current player is spectating. Allows spectators to erase players markers locally
Returns
Spring.SetAtmosphere (function) view source
Set atmosphere parametersSpring.SetAtmosphere(AtmosphereParams) -> nilParameters
Spring.SetSunDirection (function) view source
Spring.SetSunDirection(number, number, number, number?) -> nilParameters
Returns
Spring.SetSunLighting (function) view source
Modify sun lighting parameters.
lua
Spring.SetSunLighting({groundAmbientColor = {1, 0.1, 1}, groundDiffuseColor = {1, 0.1, 1} })
Spring.SetSunLighting(SunLightingParams) -> nilParameters
Spring.SetMapRenderingParams (function) view source
Allows to change map rendering params at runtime.Spring.SetMapRenderingParams(MapRenderingParams) -> nilParameters
Returns
Spring.ForceTesselationUpdate (function) view source
Spring.ForceTesselationUpdate(boolean?, boolean?) -> booleanParameters
Returns
booleanupdated
Spring.SendSkirmishAIMessage (function) view source
Spring.SendSkirmishAIMessage(TeamID, string) -> boolean?Parameters
Returns
boolean?ai_processed
Spring.SetLogSectionFilterLevel (function) view source
Spring.SetLogSectionFilterLevel(string, (string|number)?) -> nilParameters
stringsectionName(string|number)?logLevel
Returns
Spring.GarbageCollectCtrl (function) view source
Spring.GarbageCollectCtrl(integer?, integer?, integer?, integer?, number?, number?, number?, number?) -> nilParameters
integer?itersPerBatchinteger?numStepsPerIterinteger?minStepsPerIterinteger?maxStepsPerIternumber?minLoopRunTimenumber?maxLoopRunTimenumber?baseRunTimeMultnumber?baseMemLoadMult
Returns
Spring.SetAutoShowMetal (function) view source
Spring.SetAutoShowMetal(boolean) -> nilParameters
booleanautoShow
Returns
Spring.SetDrawSky (function) view source
Spring.SetDrawSky(boolean) -> nilParameters
booleandrawSky
Returns
Spring.SetDrawWater (function) view source
Spring.SetDrawWater(boolean) -> nilParameters
booleandrawWater
Returns
Spring.SetDrawGround (function) view source
Spring.SetDrawGround(boolean) -> nilParameters
booleandrawGround
Returns
Spring.SetDrawGroundDeferred (function) view source
Spring.SetDrawGroundDeferred(boolean, boolean?) -> nilParameters
booleandrawGroundDeferredboolean?drawGroundForward- allows disabling of the forward pass
Returns
Spring.SetDrawModelsDeferred (function) view source
Spring.SetDrawModelsDeferred(boolean, boolean, boolean?, boolean?) -> nilParameters
booleandrawUnitsDeferredbooleandrawFeaturesDeferredboolean?drawUnitsForward- allows disabling of the respective forward passes
boolean?drawFeaturesForward- allows disabling of the respective forward passes
Returns
Spring.SetEngineBuildSquareRendering (function) view source
Spring.SetEngineBuildSquareRendering(boolean) -> nilParameters
booleanenabled
Returns
Spring.SetVideoCapturingMode (function) view source
This doesn’t actually record the game in any way, it just regulates the framerate and interpolations.Spring.SetVideoCapturingMode(boolean) -> nilParameters
booleanallowCaptureMode
Returns
Spring.SetVideoCapturingTimeOffset (function) view source
Spring.SetVideoCapturingTimeOffset(boolean) -> nilParameters
booleantimeOffset
Returns
Spring.SetWaterParams (function) view source
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.
Spring.SetWaterParams(WaterParams) -> nilParameters
Returns
Spring.PreloadUnitDefModel (function) view source
Allow the engine to load the unit’s model (and texture) in a background thread. Wreckages and buildOptions of a unit are automatically preloaded.Spring.PreloadUnitDefModel(UnitDefID) -> nilParameters
Returns
Spring.PreloadFeatureDefModel (function) view source
Spring.PreloadFeatureDefModel(FeatureDefID) -> nilParameters
Returns
Spring.PreloadSoundItem (function) view source
Spring.PreloadSoundItem(string) -> nilParameters
stringname
Returns
Spring.LoadModelTextures (function) view source
Spring.LoadModelTextures(string?) -> boolean?Parameters
string?modelName
Returns
boolean?success
Spring.CreateGroundDecal (function) view source
Spring.CreateGroundDecal() -> DecalID?Returns
Spring.DestroyGroundDecal (function) view source
Spring.DestroyGroundDecal(DecalID) -> booleanParameters
Returns
booleandelSuccess
Spring.SetGroundDecalPosAndDims (function) view source
Spring.SetGroundDecalPosAndDims(DecalID, number?, number?, number?, number?, number?) -> booleanParameters
DecalIDdecalIDnumber?midPosX- (Default: currMidPosX)
number?midPosZ- (Default: currMidPosZ)
number?sizeX- (Default: currSizeX)
number?sizeZ- (Default: currSizeZ)
number?projCubeHeight- (Default: calculateProjCubeHeight)
Returns
booleandecalSet
Spring.SetGroundDecalQuadPosAndHeight (function) view source
Use for non-rectangular decalsSpring.SetGroundDecalQuadPosAndHeight(DecalID, xz?, xz?, xz?, xz?, number?) -> booleanParameters
DecalIDdecalIDxz?posTL- (Default: currPosTL)
xz?posTR- (Default: currPosTR)
xz?posBR- (Default: currPosBR)
xz?posBL- (Default: currPosBL)
number?projCubeHeight- (Default: calculateProjCubeHeight)
Returns
booleandecalSet
Spring.SetGroundDecalRotation (function) view source
Spring.SetGroundDecalRotation(DecalID, number?) -> booleanParameters
Returns
booleandecalSet
Spring.SetGroundDecalTexture (function) view source
Spring.SetGroundDecalTexture(DecalID, string, boolean?) -> boolean?Parameters
DecalIDdecalIDstringtextureName- 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)
boolean?isMainTex- (Default:
true) If false, it sets the normals/glow map
Returns
boolean?decalSet
Spring.SetGroundDecalTextureParams (function) view source
Spring.SetGroundDecalTextureParams(DecalID, number?, number?) -> boolean?Parameters
DecalIDdecalIDnumber?texWrapDistance- (Default: currTexWrapDistance) if non-zero sets the mode to repeat the texture along the left-right direction of the decal every texWrapFactor elmos
number?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.
Returns
boolean?decalSet
Spring.SetGroundDecalAlpha (function) view source
Spring.SetGroundDecalAlpha(DecalID, number?, number?) -> booleanParameters
DecalIDdecalIDnumber?alpha- (Default: currAlpha) Between 0 and 1
number?alphaFalloff- (Default: currAlphaFalloff) Between 0 and 1, per second
Returns
booleandecalSet
Spring.SetGroundDecalNormal (function) view source
Sets projection cube normal to orient in 3D space. In case the normal (0,0,0) then normal is picked from the terrainSpring.SetGroundDecalNormal(DecalID, number?, number?, number?) -> booleanParameters
Returns
booleandecalSet
Spring.SetGroundDecalTint (function) view source
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 tintSpring.SetGroundDecalTint(DecalID, number?, number?, number?, number?) -> booleanParameters
DecalIDdecalIDnumber?tintColR- (Default: curTintColR)
number?tintColG- (Default: curTintColG)
number?tintColB- (Default: curTintColB)
number?tintColA- (Default: curTintColA)
Returns
booleandecalSet
Spring.SetGroundDecalMisc (function) view source
Sets varios secondary parameters of a decalSpring.SetGroundDecalMisc(DecalID, number?, number?, number?, number?, number?) -> booleanParameters
DecalIDdecalIDnumber?dotElimExp- (Default: curValue) pow(max(dot(decalProjVector, SurfaceNormal), 0.0), dotElimExp), used to reduce decal artifacts on surfaces non-collinear with the projection vector
number?refHeight- (Default: curValue)
number?minHeight- (Default: curValue)
number?maxHeight- (Default: curValue)
number?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
Returns
booleandecalSet
Spring.SetGroundDecalCreationFrame (function) view source
Use separate min and max for “gradient” style decals such as tank tracksSpring.SetGroundDecalCreationFrame(DecalID, number?, number?) -> booleanParameters
DecalIDdecalIDnumber?creationFrameMin- (Default: currCreationFrameMin)
number?creationFrameMax- (Default: currCreationFrameMax)
Returns
booleandecalSet
Spring.SetGroundDecalGlowParams (function) view source
Set decal glow parametersSpring.SetGroundDecalGlowParams(DecalID, number?, number?) -> booleanParameters
DecalIDdecalIDnumber?glow- Between 0 and 1 (Default: currGlow)
number?glowFalloff- Between 0 and 1, per second (Default: currGlowFallOff)
Returns
booleandecalSet
Spring.SetGroundDecalUserData (function) view source
Set decal user data. Useful in conjunction with custom decal shadersSpring.SetGroundDecalUserData(DecalID, integer, number?, number?, number?, number?) -> booleanParameters
DecalIDdecalIDintegerudQuad- vec4 index, must be within [0;1] for now
number?x- Any valid Lua float number (Default: current data)
number?y- Any valid Lua float number (Default: current data)
number?z- Any valid Lua float number (Default: current data)
number?w- Any valid Lua float number (Default: current data)
Returns
booleandecalSet
Spring.SDLSetTextInputRect (function) view source
Spring.SDLSetTextInputRect(integer, integer, integer, integer) -> nilParameters
Returns
Spring.SDLStartTextInput (function) view source
Spring.SDLStartTextInput() -> nilReturns
Spring.SDLStopTextInput (function) view source
Spring.SDLStopTextInput() -> nilReturns
Spring.SetWindowGeometry (function) view source
Spring.SetWindowGeometry(integer, integer, integer, integer, integer, boolean, boolean) -> nilParameters
integerdisplayIndexintegerwinRelPosXintegerwinRelPosYintegerwinSizeXintegerwinSizeYbooleanfullScreenbooleanborderless
Returns
Spring.SetWindowMinimized (function) view source
Spring.SetWindowMinimized() -> booleanReturns
booleanminimized
Spring.SetWindowMaximized (function) view source
Spring.SetWindowMaximized() -> booleanReturns
booleanmaximized
Spring.Reload (function) view source
Spring.Reload(string) -> nilParameters
stringstartScript- the CONTENT of the script.txt spring should use to start.
Returns
Spring.Restart (function) view source
If this call returns, something went wrongSpring.Restart(string, string) -> nilParameters
stringcommandline_args- commandline arguments passed to spring executable.
stringstartScript
Returns
Spring.Start (function) view source
Launches a new Spring instance without terminating the existing one.
If this call returns, something went wrong
Spring.Start(string, string) -> nilParameters
stringcommandline_args- commandline arguments passed to spring executable.
stringstartScript- 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.
Returns
Spring.SetWMIcon (function) view source
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.
Spring.SetWMIcon(string, boolean?) -> nilParameters
stringiconFileNameboolean?autoFree
Returns
Spring.SetWMCaption (function) view source
Set the window title for the process
Note
shortTitle is only ever possibly used under X11 (Linux & OS X), but not with QT (KDE) and never under Windows.
Spring.SetWMCaption(string, string?) -> nilParameters
stringtitle- (Default:
“Spring <version>") string?titleShort- (Default:
“Spring <version>") Displayed in the OS task-bar.
Returns
Spring.ClearWatchDogTimer (function) view source
Spring.ClearWatchDogTimer(string?) -> nilParameters
string?threadName- (Default: main)
Returns
Spring.SetClipboard (function) view source
Spring.SetClipboard(string) -> nilParameters
stringtext
Returns
Spring.Yield (function) view source
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.
Spring.Yield() -> booleanReturns
booleancontinueYielding- when true caller should continue calling Spring.Yield during the widgets/gadgets load, when false it shouldn’t call it any longer.
Spring.CallAsTeam (function) view source
Calls a function from given team’s PoV. In particular this makes callouts obey that team’s visibility rules.Spring.CallAsTeam(TeamID, fun(...), [any, ]*) -> any ...Parameters
Returns
any ...The- return values of the function.
Spring.CallAsTeam (function overload 1) view source
Spring.CallAsTeam(CallAsTeamOptions, fun(...), [any, ]*) -> any ...Parameters
CallAsTeamOptionsoptions- Options.
fun(...)func- The function to call.
any...- Arguments to pass to the function.
Returns
any ...The- return values of the function.
Spring.Echo (function) view source
Prints values in the spring chat console. Useful for debugging.
Hint: the default print() writes to STDOUT.
Spring.Echo(any, [any, ]*) -> nilParameters
Returns
Spring.Log (function) view source
Logs a message to the logfile/console.Spring.Log(string, (LogLevel|LOG)?, [string, ]*) -> nilParameters
stringsection- Sets an arbitrary section. Level filtering can be applied per-section
(LogLevel|LOG)?logLevel- (Default:
“notice”) string...- messages
Spring.SetAlly (function) view source
Changes the value of the (one-sided) alliance between: firstAllyTeamID -> secondAllyTeamID.Spring.SetAlly(AllyTeamID, AllyTeamID, boolean) -> nilParameters
Returns
Spring.SetAllyTeamStartBox (function) view source
Changes the start box position of an allyTeam.Spring.SetAllyTeamStartBox(AllyTeamID, number, number, number, number) -> nilParameters
AllyTeamIDallyTeamIDnumberxMin- left start box boundary (elmos)
numberzMin- top start box boundary (elmos)
numberxMax- right start box boundary (elmos)
numberzMax- bottom start box boundary (elmos)
Returns
Spring.AssignPlayerToTeam (function) view source
Assigns a player to a team.Spring.AssignPlayerToTeam(PlayerID, TeamID) -> nilParameters
Returns
Spring.SetTeamStartPosition (function) view source
Set the starting position of a team.
If the position argument is outside the team’s startbox, the position is clamped.
Spring.SetTeamStartPosition(TeamID, number, number, number) -> booleanParameters
Returns
booleansuccess- true if the position was set, false if the teamID is invalid
Spring.SetPlayerReadyState (function) view source
Set the ready state of a player.
Use to mark a player (un)ready in the pregame phase.
Spring.SetPlayerReadyState(PlayerID, boolean) -> booleanParameters
Returns
booleansuccess- true if the state was set, false if the playerID was invalid
Spring.SetGlobalLos (function) view source
Changes access to global line of sight for a team and its allies.Spring.SetGlobalLos(AllyTeamID, boolean) -> nilParameters
Returns
Spring.SetCheatingEnabled (function) view source
Changes whether activating cheats is allowed. Note that already activated cheats (e.g. god mode) stay active even if you disallow activating.Spring.SetCheatingEnabled(boolean) -> nilParameters
booleancheatsEnabled
Returns
Spring.SetGodMode (function) view source
Toggles ‘god mode’, i.e. whether control of teams other than one’s own is allowed. Affects all teams.Spring.SetGodMode(boolean?, boolean?) -> nilParameters
boolean?controlAlliesboolean?controlEnemies
Returns
Spring.KillTeam (function) view source
Will declare a team to be dead (no further orders can be assigned to such teams units).
Gaia team cannot be killed.
Spring.KillTeam(TeamID) -> nilParameters
Returns
Spring.GameOver (function) view source
Declare game over.
Pass multiple winners to declare a draw. Pass no arguments if undecided (e.g. when dropped from the host).
Spring.GameOver(AllyTeamID[]) -> integerParameters
AllyTeamID[]winningAllyTeamIDs- List of winning ally team IDs.
Returns
integerteams- Number of accepted (valid) ally teams.
Spring.SetTidal (function) view source
Set tidal strengthSpring.SetTidal(number?) -> nilParameters
number?strength
Returns
Spring.SetWind (function) view source
Set wind strengthSpring.SetWind(number?, number?) -> nilParameters
number?minStrengthnumber?maxStrength
Returns
Spring.AddTeamResource (function) view source
Adds metal or energy resources to the specified team. Counts as production in post-game graph statistics.Spring.AddTeamResource(TeamID, ResourceName, number) -> nilParameters
Returns
Spring.UseTeamResource (function) view source
Consumes metal or energy resources of the specified team. Counts as usage in post-game graph statistics.Spring.UseTeamResource(TeamID, ResourceName, number) -> booleanParameters
TeamIDteamIDResourceNametype- Resource type.
numberamount- Amount of resource to use.
Returns
booleanhadEnough- True if enough of the resource type was available and was consumed, otherwise false.
Spring.UseTeamResource (function overload 1) view source
Consumes metal and/or energy resources of the specified team. Counts as usage in post-game graph statistics.Spring.UseTeamResource(TeamID, ResourceUsage) -> booleanParameters
Returns
booleanhadEnough- True if enough of the resource type(s) were available and was consumed, otherwise false.
Spring.SetTeamResource (function) view source
Spring.SetTeamResource(TeamID, (ResourceName|StorageName), number) -> nilParameters
Returns
Spring.SetTeamShareLevel (function) view source
Changes the resource amount for a team beyond which resources aren’t stored but transferred to other allied teams if possible.Spring.SetTeamShareLevel(TeamID, ResourceName, number) -> nilParameters
Returns
Spring.AddTeamResourceExcessStats (function) view source
Records resource excess for a team without moving resources.
The engine normally tracks excess, but if you use gadget:ResourceExcess
to handle it manually it’s now also up to you to track stats.
Spring.AddTeamResourceExcessStats(TeamID, ResourceName, number) -> nilParameters
TeamIDteamIDResourceNametypenumberexcess- Amount wasted this tick.
Returns
Spring.ShareTeamResource (function) view source
Transfers resources between two teams. Transfers directly, without involving AllowResourceTransfer callin. Approximately equivalent to doing Use and Add for the sender and receiver, the difference being that it counts to sent/received stats rather than used/produced in end-game statistics graphs.Spring.ShareTeamResource(TeamID, TeamID, ResourceName, number) -> nilParameters
Returns
Spring.SetGameRulesParam (function) view source
Spring.SetGameRulesParam(string, (boolean|string|number)?, losAccess?) -> nilParameters
stringparamName(boolean|string|number)?paramValue- numeric paramValues in quotes will be converted to number.
losAccess?losAccess
Returns
Spring.SetTeamRulesParam (function) view source
Spring.SetTeamRulesParam(TeamID, string, (boolean|string|number)?, losAccess?) -> nilParameters
TeamIDteamIDstringparamName(boolean|string|number)?paramValue- numeric paramValues in quotes will be converted to number.
losAccess?losAccess
Returns
Spring.SetPlayerRulesParam (function) view source
Spring.SetPlayerRulesParam(PlayerID, string, (boolean|string|number)?, losAccess?) -> nilParameters
PlayerIDplayerIDstringparamName(boolean|string|number)?paramValue- numeric paramValues in quotes will be converted to number.
losAccess?losAccess
Returns
Spring.SetUnitRulesParam (function) view source
Spring.SetUnitRulesParam(UnitID, string, (boolean|string|number)?, losAccess?) -> nilParameters
UnitIDunitIDstringparamName(boolean|string|number)?paramValue- numeric paramValues in quotes will be converted to number.
losAccess?losAccess
Returns
Spring.SetFeatureRulesParam (function) view source
Spring.SetFeatureRulesParam(FeatureID, string, (boolean|string|number)?, losAccess?) -> nilParameters
FeatureIDfeatureIDstringparamName(boolean|string|number)?paramValue- numeric paramValues in quotes will be converted to number.
losAccess?losAccess
Returns
Spring.CallCOBScript (function) view source
Spring.CallCOBScript(UnitID, (string|integer)?, integer, [any, ]*) -> integer ...Parameters
UnitIDunitID(string|integer)?funcName- Function ID or name.
integerretArgs- Number of values to return.
any...- Arguments
Returns
Spring.GetCOBScriptID (function) view source
Spring.GetCOBScriptID(UnitID, string) -> integer?Parameters
Returns
integer?funcID
Spring.CreateUnit (function) view source
Spring.CreateUnit((string|integer), number, number, number, Facing, TeamID?, boolean?, boolean?, UnitID?, UnitID?) -> UnitID?Parameters
(string|integer)unitDef- UnitDef name or ID.
numberposXnumberposYnumberposZFacingfacingTeamID?teamIDboolean?build- (Default:
false) The unit is created in “being built” state with zerobuildProgress. boolean?flattenGround- (Default:
true) The unit flattens ground, if it normally does so. UnitID?unitID- Request a specific unitID.
UnitID?builderID
Returns
Spring.DestroyUnit (function) view source
Spring.DestroyUnit(UnitID, boolean?, boolean?, UnitID?, boolean?) -> nilParameters
UnitIDunitIDboolean?selfd- (Default:
false) makes the unit act like it self-destructed. boolean?reclaimed- (Default:
false) don’t show any DeathSequences, don’t leave a wreckage. This does not give back the resources to the team! UnitID?attackerIDboolean?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)
Returns
Spring.TransferUnit (function) view source
Spring.TransferUnit(UnitID, TeamID, boolean?, boolean?) -> booleanParameters
UnitIDunitIDTeamIDnewTeamIDboolean?given- (Default:
true) if false, the unit is captured. boolean?adjustUnitLimit- (Default:
false) if true, also transfer the limit slot
Returns
booleansuccessfulTransfer
Spring.TransferTeamMaxUnits (function) view source
Transfer capacity of units from one team to another
There are some conditions that must be satisfied for the operation to be successful:
transferAmntmust be lower or equal than the origin team current maxunits (can’t transfer limit team does not have available)transferAmntmust be lower than origin team maxunits - currentunitscount (can’t transfer limit if origin team would be already over the limit after transfer)
Spring.TransferTeamMaxUnits(TeamID, TeamID, integer) -> booleanParameters
Returns
booleansuccessfulTransfer- Whether the max unit limit was successfully transferred.
Spring.SetUnitCosts (function) view source
Spring.SetUnitCosts(UnitID, table<number,number>) -> nilParameters
UnitIDunitIDtable<number,number>where- keys and values are, respectively and in this order: buildTime=amount, metalCost=amount, energyCost=amount
Returns
Spring.SetUnitResourcing (function) view source
Spring.SetUnitResourcing(UnitID, string, number) -> nilParameters
Returns
Spring.SetUnitResourcing (function overload 1) view source
Spring.SetUnitResourcing(UnitID, table<string,number>) -> nilParameters
UnitIDunitIDtable<string,number>res- keys are: “[u|c][u|m][m|e]” unconditional | conditional, use | make, metal | energy. Values are amounts
Returns
Spring.SetUnitStorage (function) view source
Spring.SetUnitStorage(UnitID, string, number) -> nilParameters
Spring.SetUnitStorage (function overload 1) view source
Spring.SetUnitStorage(UnitID, ResourceUsage) -> nilParameters
UnitIDunitIDResourceUsageres- keys are: “[m|e]” metal | energy. Values are amounts
Spring.SetUnitTooltip (function) view source
Spring.SetUnitTooltip(UnitID, string) -> nilParameters
Returns
Spring.SetUnitHealth (function) view source
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.Spring.SetUnitHealth(UnitID, (number|SetUnitHealthAmounts)) -> nilParameters
UnitIDunitID(number|SetUnitHealthAmounts)health- If a number, sets the units health to that value. Pass a table to update health, capture progress, paralyze damage, and build progress.
Returns
Spring.SetUnitMaxHealth (function) view source
Spring.SetUnitMaxHealth(UnitID, number) -> nilParameters
Returns
Spring.SetUnitStockpile (function) view source
Spring.SetUnitStockpile(UnitID, integer?, number?) -> nilParameters
UnitIDunitIDinteger?stockpilenumber?buildPercent
Returns
Spring.SetUnitUseWeapons (function) view source
Spring.SetUnitUseWeapons(UnitID, number?, number?) -> nilParameters
UnitIDunitIDnumber?forceUseWeaponsnumber?allowUseWeapons
Returns
Spring.SetUnitWeaponState (function) view source
Spring.SetUnitWeaponState(UnitID, integer, WeaponState) -> nilParameters
Returns
Spring.SetUnitWeaponState (function overload 1) view source
Spring.SetUnitWeaponState(UnitID, integer, string, number) -> nilParameters
Returns
Spring.SetUnitWeaponDamages (function) view source
Spring.SetUnitWeaponDamages(UnitID, (integer|"selfDestruct"|"explode"), WeaponDamages) -> nilParameters
UnitIDunitID(integer|"selfDestruct"|"explode")weaponNumWeaponDamagesdamages
Returns
Spring.SetUnitWeaponDamages (function overload 1) view source
Spring.SetUnitWeaponDamages(UnitID, (integer|"selfDestruct"|"explode"), string, number) -> nilParameters
Returns
Spring.SetUnitMaxRange (function) view source
Spring.SetUnitMaxRange(UnitID, number) -> nilParameters
Returns
Spring.SetUnitExperience (function) view source
See Spring.AddUnitExperience, Spring.GetUnitExperience
Spring.SetUnitExperience(UnitID, number) -> nilParameters
UnitIDunitIDnumberexperience
Returns
Spring.AddUnitExperience (function) view source
See Spring.SetUnitExperience, Spring.GetUnitExperience
Spring.AddUnitExperience(UnitID, number) -> nilParameters
UnitIDunitIDnumberdeltaExperience- Can be negative to subtract, but the unit will never have negative total afterwards
Returns
Spring.SetUnitArmored (function) view source
Spring.SetUnitArmored(UnitID, boolean?, number?) -> nilParameters
UnitIDunitIDboolean?armorednumber?armorMultiple
Returns
Spring.SetUnitLosMask (function) view source
Set visibility status mask for a unit and team
Use this to allow or disallow a unit from having its visibility status against a certain team updated by the engine.
Spring.SetUnitLosMask(UnitID, AllyTeamID, (LosTable|LosMask|integer)) -> nilParameters
UnitIDunitIDAllyTeamIDallyTeam(LosTable|LosMask|integer)losTypes- A bitmask of LosMask bits or a table. True bits disable engine updates to visibility.
Spring.SetUnitLosState (function) view source
Set current visibility status for a unit and team
Note this state will not be persisted if the visibility state is not masked.
Use it to change visibility state, once you set the unit to not receive engine visibility updates.
A few notes on certain bits:
contradar: True when the unit entered los at some point, remains set until radar is lost. Useful for tracking the unit type in radar, if you lost los you still know what unit type that radar dot refers to.prevlos: True when the unit has entered los at least once, useful for tracking building locations (controls whether a ghost appears or not in the location)
Spring.SetUnitLosState(UnitID, AllyTeamID, (LosTable|LosMask|integer)) -> nilParameters
UnitIDunitIDAllyTeamIDallyTeam(LosTable|LosMask|integer)losTypes- A bitmask of LosMask bits or a table.
Spring.SetUnitCloak (function) view source
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:
- if the 3th argument is a number or a boolean.
- if the boolean is false it takes the default decloak distance for that unitdef,
- if the boolean is true it takes the absolute value of it.
Spring.SetUnitCloak(UnitID, (boolean|number)?, (boolean|number)?) -> nilParameters
Returns
Spring.SetUnitStealth (function) view source
Spring.SetUnitStealth(UnitID, boolean) -> nilParameters
Returns
Spring.SetUnitSonarStealth (function) view source
Spring.SetUnitSonarStealth(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleansonarStealth
Returns
Spring.SetUnitSeismicSignature (function) view source
Spring.SetUnitSeismicSignature(UnitID, number) -> nilParameters
Returns
Spring.SetUnitLeavesGhost (function) view source
Set whether unit leaves static radar ghosts.Spring.SetUnitLeavesGhost(boolean, boolean?) -> nilParameters
booleanleavesGhostboolean?leaveDeadGhost- (Default:
false) leave a dead ghost behind if disabling and the unit had a live static ghost.
Spring.SetUnitAlwaysVisible (function) view source
Spring.SetUnitAlwaysVisible(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleanalwaysVisible
Returns
Spring.SetUnitUseAirLos (function) view source
Spring.SetUnitUseAirLos(UnitID, boolean) -> nilParameters
Returns
Spring.SetUnitMetalExtraction (function) view source
Spring.SetUnitMetalExtraction(UnitID, number, number?) -> nilParameters
UnitIDunitIDnumberdepth- corresponds to metal extraction rate
number?range- similar to “extractsMetal” in unitDefs.
Returns
Spring.SetUnitHarvestStorage (function) view source
See also harvestStorage UnitDef tag.Spring.SetUnitHarvestStorage(UnitID, number?) -> nilParameters
Returns
Spring.SetUnitBuildParams (function) view source
Spring.SetUnitBuildParams(UnitID, string, (boolean|number)?) -> nilParameters
UnitIDunitIDstringparamName- one of
buildRange|buildDistance|buildRange3D (boolean|number)?value- boolean when
paramNameisbuildRange3D, otherwise number.
Returns
Spring.SetUnitBuildSpeed (function) view source
Spring.SetUnitBuildSpeed(UnitID, number, number?, number?, number?, number?) -> nilParameters
UnitIDbuilderIDnumberbuildSpeednumber?repairSpeednumber?reclaimSpeednumber?captureSpeednumber?terraformSpeed
Returns
Spring.SetUnitNanoPieces (function) view source
This saves a lot of engine calls, by replacing: function script.QueryNanoPiece() return currentpiece end Use it!Spring.SetUnitNanoPieces(UnitID, table) -> nilParameters
Returns
Spring.SetUnitBlocking (function) view source
Spring.SetUnitBlocking(UnitID, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> booleanParameters
UnitIDunitIDboolean?isBlocking- If
trueadd this unit to theGroundBlockingMap, but only if it collides with solid objects (or is being set to collide with theisSolidObjectCollidableargument). Iffalse, remove this unit from theGroundBlockingMap. No change ifnil. boolean?isSolidObjectCollidable- Enable or disable collision with solid objects, or no change if
nil. boolean?isProjectileCollidable- Enable or disable collision with projectiles, or no change if
nil. boolean?isRaySegmentCollidable- Enable or disable collision with ray segments, or no change if
nil. boolean?crushable- Enable or disable crushable, or no change if
nil. boolean?blockEnemyPushing- Enable or disable blocking enemy pushing, or no change if
nil. boolean?blockHeightChanges- Enable or disable blocking height changes, or no change if
nil.
Returns
booleanisBlocking
Spring.SetUnitCrashing (function) view source
Spring.SetUnitCrashing(UnitID, boolean?) -> booleanParameters
Returns
booleansuccess
Spring.SetUnitShieldState (function) view source
Spring.SetUnitShieldState(UnitID, integer?, boolean?, number?) -> nilParameters
Returns
Spring.SetUnitShieldRechargeDelay (function) view source
Spring.SetUnitShieldRechargeDelay(UnitID, integer?, number?) -> nilParameters
UnitIDunitIDinteger?weaponID- (optional if the unit only has one shield)
number?rechargeTime- (in seconds; emulates a regular hit if nil)
Returns
Spring.SetUnitFlanking (function) view source
Spring.SetUnitFlanking(UnitID, string, number, number?, number?) -> nilParameters
UnitIDunitIDstringtype- “dir”|“minDamage”|“maxDamage”|“moveFactor”|“mode”
numberarg1- x|minDamage|maxDamage|moveFactor|mode
number?y- only when type is “dir”
number?z- only when type is “dir”
Returns
Spring.SetUnitPhysicalStateBit (function) view source
Spring.SetUnitPhysicalStateBit(UnitID, number[bit]) -> nilParameters
Returns
Spring.GetUnitPhysicalState (function) view source
Spring.GetUnitPhysicalState(UnitID) -> integerParameters
Returns
integerphysicalState- Unit’s PhysicalState bitmask
Spring.SetUnitNeutral (function) view source
Spring.SetUnitNeutral(UnitID, boolean) -> boolean?Parameters
Returns
boolean?setNeutral
Spring.SetUnitTarget (function) view source
Defines a unit’s target.Spring.SetUnitTarget(UnitID, UnitID?, boolean?, boolean?, boolean?, integer?) -> booleanParameters
UnitIDunitIDUnitID?enemyUnitID- when nil drops the units current target.
boolean?dgun- (Default:
false) boolean?userTarget- (Default:
false) boolean?dontForceTargetinteger?weaponNum- (Default:
-1)
Returns
booleansuccess
Spring.SetUnitTarget (function overload 1) view source
Spring.SetUnitTarget(UnitID, number?, number?, number?, boolean?, boolean?, boolean?, integer?) -> booleanParameters
UnitIDunitIDnumber?x- when nil or not passed it will drop target and ignore other parameters
number?ynumber?zboolean?dgun- (Default:
false) boolean?userTarget- (Default:
false) boolean?dontForceTargetinteger?weaponNum- (Default:
-1)
Returns
booleansuccess
Spring.SetUnitMidAndAimPos (function) view source
Spring.SetUnitMidAndAimPos(UnitID, number, number, number, number, number, number, boolean?) -> booleanParameters
UnitIDunitIDnumbermpX- new middle positionX of unit
numbermpY- new middle positionY of unit
numbermpZ- new middle positionZ of unit
numberapX- new positionX that enemies aim at on this unit
numberapY- new positionY that enemies aim at on this unit
numberapZ- new positionZ that enemies aim at on this unit
boolean?relative- (Default:
false) are the new coordinates relative to world (false) or unit (true) coordinates? Also, note that apy is inverted!
Returns
booleansuccess
Spring.SetUnitRadiusAndHeight (function) view source
Spring.SetUnitRadiusAndHeight(UnitID, number?, number?) -> booleanParameters
Returns
booleansuccess
Spring.SetUnitBuildeeRadius (function) view source
Sets the unit’s radius for when targeted by build, repair, reclaim-type commands.Spring.SetUnitBuildeeRadius(UnitID, number) -> nilParameters
Returns
Spring.SetUnitPieceParent (function) view source
Changes the pieces hierarchy of a unit by attaching a piece to a new parent.Spring.SetUnitPieceParent(UnitID, integer, integer) -> nilParameters
UnitIDunitIDintegerAlteredPieceintegerParentPiece
Returns
Spring.SetUnitPieceMatrix (function) view source
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.
Spring.SetUnitPieceMatrix(UnitID, integer, number[]) -> boolean?Parameters
Returns
boolean?valid- whether the matrix can be used for the purpose of defining the piece spatial transformation. Blocks the piece animation, if true.
Spring.SetUnitCollisionVolumeData (function) view source
cpp
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
};
Spring.SetUnitCollisionVolumeData(UnitID, number, number, number, number, number, number, integer, integer, integer) -> nilParameters
UnitIDunitIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZintegervTypeintegertTypeintegerAxis
Returns
Spring.SetUnitPieceCollisionVolumeData (function) view source
Spring.SetUnitPieceCollisionVolumeData(UnitID, integer, boolean, number, number, number, number, number, number, integer?, integer?) -> nilParameters
UnitIDunitIDintegerpieceIndexbooleanenablenumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZinteger?volumeTypeinteger?primaryAxis
Returns
Spring.SetUnitPieceVisible (function) view source
Spring.SetUnitPieceVisible(UnitID, integer, boolean) -> nilParameters
UnitIDunitIDintegerpieceIndexbooleanvisible
Returns
Spring.SetUnitSensorRadius (function) view source
Spring.SetUnitSensorRadius(UnitID, ("los"|"airLos"|"radar"|"sonar"|"seismic"|"radarJammer"...), integer) -> integer?Parameters
Returns
integer?newRadius- New radius, or
nilif unit is invalid.
Spring.SetUnitPosErrorParams (function) view source
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.
Spring.SetUnitPosErrorParams(UnitID, number?, number?, number?, number?, number?, number?, integer?) -> nilParameters
UnitIDunitIDnumber?posErrorVectorXnumber?posErrorVectorYnumber?posErrorVectorZnumber?posErrorDeltaXnumber?posErrorDeltaYnumber?posErrorDeltaZinteger?nextPosErrorUpdate
Returns
Spring.SetUnitMoveGoal (function) view source
Used by default commands to get in build-, attackrange etc.Spring.SetUnitMoveGoal(UnitID, number, number, number, number?, number?, boolean?) -> nilParameters
Returns
Spring.SetUnitLandGoal (function) view source
Used in conjunction with Spring.UnitAttach et al. to re-implement old airbase & fuel system in Lua.Spring.SetUnitLandGoal(UnitID, number, number, number, number?) -> nilParameters
Returns
Spring.ClearUnitGoal (function) view source
Spring.ClearUnitGoal(UnitID, boolean?) -> nilParameters
Returns
Spring.SetUnitPhysics (function) view source
Spring.SetUnitPhysics(UnitID, number, number, number, number, number, number, number, number, number, number, number, number) -> nilParameters
UnitIDunitIDnumberposXnumberposYnumberposZnumbervelXnumbervelYnumbervelZnumberrotXnumberrotYnumberrotZnumberdragXnumberdragYnumberdragZ
Returns
Spring.SetUnitMass (function) view source
Spring.SetUnitMass(UnitID, number) -> nilParameters
Returns
Spring.SetUnitPosition (function) view source
Set unit position (2D)
Sets a unit’s position in 2D, at terrain height.
Spring.SetUnitPosition(UnitID, number, number, boolean?) -> nilParameters
UnitIDunitIDnumberxnumberzboolean?floating- (Default:
false) If true, over water the position is on surface. If false, on seafloor.
Returns
Spring.SetUnitPosition (function overload 1) view source
Set unit position (3D)
Sets a unit’s position in 3D, at an arbitrary height.
Spring.SetUnitPosition(UnitID, number, number, number) -> nilParameters
Returns
Spring.SetUnitRotation (function) view source
Note: PYR orderSpring.SetUnitRotation(UnitID, number, number, number) -> nilParameters
Returns
Spring.SetUnitDirection (function) view source
Set unit front direction vector. The vector is normalized in the engine.Deprecated: It’s strongly that you use the overload that accepts
Spring.SetUnitDirection(UnitID, number, number, number) -> nilParameters
Returns
Spring.SetUnitDirection (function overload 1) view source
Set unit front and right direction vectors.
Both vectors will be normalized in the engine.
Spring.SetUnitDirection(UnitID, number, number, number, number, number, number) -> nilParameters
Returns
Spring.SetUnitHeadingAndUpDir (function) view source
Use this call to set up unit direction in a robust way. 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.Spring.SetUnitHeadingAndUpDir(UnitID, Heading, number, number, number) -> nilParameters
Returns
Spring.SetUnitVelocity (function) view source
Set the velocity of a UnitSee Spring.SetUnitMoveCtrl for disabling/enabling this control
Spring.SetUnitVelocity(UnitID, number, number, number) -> nilParameters
UnitIDunitIDnumbervelX- Velocity x component in elmos/frame.
numbervelY- Velocity y component in elmos/frame.
numbervelZ- Velocity z component in elmos/frame.
Spring.SetFactoryBuggerOff (function) view source
Spring.SetFactoryBuggerOff(UnitID, boolean?, number?, number?, Heading?, boolean?, boolean?) -> number?Parameters
UnitIDunitIDboolean?buggerOffnumber?offsetnumber?radiusHeading?relHeadingboolean?sphericalboolean?forced
Returns
number?buggerOff
Spring.BuggerOff (function) view source
Spring.BuggerOff(number, number, number?, number, TeamID, boolean?, boolean?, UnitID?, UnitDefID[]?) -> nilParameters
numberxnumberynumber?z- uses ground height when unspecified
numberradiusTeamIDteamIDboolean?spherical- (Default:
true) boolean?forced- (Default:
true) UnitID?excludeUnitIDUnitDefID[]?excludeUnitDefIDs
Returns
Spring.AddFeatureDamage (function) view source
Apply damage to feature
Will trigger FeaturePreDamaged and FeatureDamaged callins.
Won’t do anything if paralyze is not zero, the feature is already marked for deletion, or in void.
If health goes below 0 and featureDef is destructable the feature will be deleted and
a wreck created.
See SyncedCallins:FeaturePreDamaged, SyncedCallins:FeatureDamaged
Spring.AddFeatureDamage(FeatureID, number, integer?, UnitID?, WeaponDefID?, number?, number?, number?) -> nilParameters
FeatureIDfeatureIDnumberdamageinteger?paralyze- (Default:
0) equals to the paralyzetime in the WeaponDef. UnitID?attackerID- (Default:
-1) WeaponDefID?weaponID- (Default:
-1) number?impulseXnumber?impulseYnumber?impulseZ
Spring.AddUnitDamage (function) view source
Spring.AddUnitDamage(UnitID, number, integer?, UnitID?, WeaponDefID?, number?, number?, number?) -> nilParameters
UnitIDunitIDnumberdamageinteger?paralyze- (Default:
0) equals to the paralyzetime in the WeaponDef. UnitID?attackerID- (Default:
-1) WeaponDefID?weaponID- (Default:
-1) number?impulseXnumber?impulseYnumber?impulseZ
Returns
Spring.AddUnitImpulse (function) view source
Spring.AddUnitImpulse(UnitID, number, number, number, number?) -> nilParameters
Returns
Spring.AddUnitSeismicPing (function) view source
Spring.AddUnitSeismicPing(UnitID, number) -> nilParameters
Returns
Spring.AddUnitResource (function) view source
Spring.AddUnitResource(UnitID, string, number) -> nilParameters
Returns
Spring.UseUnitResource (function) view source
Spring.UseUnitResource(UnitID, ResourceName, number) -> boolean?Parameters
Returns
boolean?okay
Spring.UseUnitResource (function overload 1) view source
Spring.UseUnitResource(UnitID, ResourceUsage) -> boolean?Parameters
Returns
boolean?okay
Spring.AddObjectDecal (function) view source
Spring.AddObjectDecal(UnitID) -> nilParameters
Returns
Spring.RemoveObjectDecal (function) view source
Spring.RemoveObjectDecal(UnitID) -> nilParameters
Returns
Spring.AddGrass (function) view source
Spring.AddGrass(number, number) -> nilParameters
Returns
Spring.RemoveGrass (function) view source
Spring.RemoveGrass(number, number) -> nilParameters
Returns
Spring.CreateFeature (function) view source
Spring.CreateFeature((string|integer), number, number, number, Heading?, TeamID?, FeatureID?) -> FeatureID?Parameters
(string|integer)featureDef- name or id
numberxnumberynumberzHeading?headingTeamID?teamIDFeatureID?featureID
Returns
Spring.DestroyFeature (function) view source
Spring.DestroyFeature(FeatureID) -> nilParameters
Returns
Spring.TransferFeature (function) view source
Feature ControlSpring.TransferFeature(FeatureID, TeamID) -> nilParameters
Returns
Spring.SetFeatureAlwaysVisible (function) view source
Spring.SetFeatureAlwaysVisible(FeatureID, boolean) -> nilParameters
Returns
Spring.SetFeatureUseAirLos (function) view source
Spring.SetFeatureUseAirLos(FeatureID, boolean) -> nilParameters
Returns
Spring.SetFeatureHealth (function) view source
Spring.SetFeatureHealth(FeatureID, number, boolean?) -> nilParameters
FeatureIDfeatureIDnumberhealthboolean?checkDestruction- (Default:
false) Whether to destroy feature if feature goes below 0 health.
Returns
Spring.SetFeatureMaxHealth (function) view source
Spring.SetFeatureMaxHealth(FeatureID, number) -> nilParameters
Returns
Spring.SetFeatureReclaim (function) view source
Spring.SetFeatureReclaim(FeatureID, number) -> nilParameters
Returns
Spring.SetFeatureResources (function) view source
Spring.SetFeatureResources(FeatureID, number, number, number?, number?, number?, number?) -> nilParameters
FeatureIDfeatureIDnumbermetalnumberenergynumber?reclaimTimenumber?reclaimLeftnumber?featureDefMetalnumber?featureDefEnergy
Returns
Spring.SetFeatureResurrect (function) view source
Spring.SetFeatureResurrect(FeatureID, (string|integer)?, Facing?, number?) -> nilParameters
FeatureIDfeatureID(string|integer)?unitDef- Can be a number id or a string name, this allows cancelling resurrection by passing
-1. Facing?facing- (Default:
“south”) number?progress- Set the level of progress.
Returns
Spring.SetFeatureMoveCtrl (function) view source
Enable feature movement control.Spring.SetFeatureMoveCtrl(FeatureID, true, number?, number?, number?, number?, number?, number?) -> nilParameters
FeatureIDfeatureIDtrueenabled- Enable feature movement.
number?initialVelocityX- Initial velocity on X axis, or
nilfor no change. number?initialVelocityY- Initial velocity on Y axis, or
nilfor no change. number?initialVelocityZ- Initial velocity on Z axis, or
nilfor no change. number?accelerationX- Acceleration per frame on X axis, or
nilfor no change. number?accelerationY- Acceleration per frame on Y axis, or
nilfor no change. number?accelerationZ- Acceleration per frame on Z axis, or
nilfor no change.
Spring.SetFeatureMoveCtrl (function overload 1) view source
Disable feature movement control.
Optional parameter allow physics vectors to build when not using MoveCtrl.
It is necessary to unlock feature movement on x, z axis before changing feature physics.
For example:
lua
– Unlock all movement before setting velocity.
Spring.SetFeatureMoveCtrl(featureID,false,1,1,1,1,1,1,1,1,1)
– Set velocity.
Spring.SetFeatureVelocity(featureID,10,0,10)
Spring.SetFeatureMoveCtrl(FeatureID, false, number?, number?, number?, number?, number?, number?, number?, number?, number?) -> nilParameters
FeatureIDfeatureIDfalseenabled- Disable feature movement.
number?velocityMaskX- Lock velocity change in X dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?velocityMaskY- Lock velocity change in Y dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?velocityMaskZ- Lock velocity change in Z dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?impulseMaskX- Lock impulse in X dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?impulseMaskY- Lock impulse in Y dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?impulseMaskZ- Lock impulse in Z dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?movementMaskX- Lock move in X dimension when not using MoveCtrl.
0to lock the axis, non-zero to allow, ornilfor no change. number?movementMaskY- Lock move in Y dimension when not using MoveCtrl.
0to lock the axis, non-zero to allow, ornilfor no change. number?movementMaskZ- Lock move in Z dimension when not using MoveCtrl.
0to lock the axis, non-zero to allow, ornilfor no change.
Spring.SetFeaturePhysics (function) view source
Spring.SetFeaturePhysics(FeatureID, number, number, number, number, number, number, number, number, number, number, number, number) -> nilParameters
FeatureIDfeatureIDnumberposXnumberposYnumberposZnumbervelXnumbervelYnumbervelZnumberrotXnumberrotYnumberrotZnumberdragXnumberdragYnumberdragZ
Returns
Spring.SetFeatureMass (function) view source
Spring.SetFeatureMass(FeatureID, number) -> nilParameters
Returns
Spring.SetFeaturePosition (function) view source
Spring.SetFeaturePosition(FeatureID, number, number, number, boolean?) -> nilParameters
Returns
Spring.SetFeatureRotation (function) view source
Note: PYR orderSpring.SetFeatureRotation(FeatureID, number, number, number) -> nilParameters
FeatureIDfeatureIDnumberpitch- Rotation in X axis
numberyaw- Rotation in Y axis
numberroll- Rotation in Z axis
Returns
Spring.SetFeatureDirection (function) view source
Set feature front direction vector. The vector is normalized in the engine.Deprecated: It’s strongly that you use the overload that accepts
Spring.SetFeatureDirection(FeatureID, number, number, number) -> nilParameters
Returns
Spring.SetFeatureDirection (function overload 1) view source
Set feature front and right direction vectors.
Both vectors will be normalized in the engine.
Spring.SetFeatureDirection(FeatureID, number, number, number, number, number, number) -> nilParameters
Returns
Spring.SetFeatureHeadingAndUpDir (function) view source
Use this call to set up feature direction in a robust way. 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.Spring.SetFeatureHeadingAndUpDir(FeatureID, Heading, number, number, number) -> nilParameters
Returns
Spring.SetFeatureVelocity (function) view source
Set the velocity of a FeatureSee Spring.SetFeatureMoveCtrl for disabling/enabling this control
Spring.SetFeatureVelocity(FeatureID, number, number, number) -> nilParameters
FeatureIDfeatureIDnumbervelX- Velocity x component in elmos/frame.
numbervelY- Velocity y component in elmos/frame.
numbervelZ- Velocity z component in elmos/frame.
Spring.SetFeatureBlocking (function) view source
Spring.SetFeatureBlocking(FeatureID, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> booleanParameters
FeatureIDfeatureIDboolean?isBlocking- If
trueadd this feature to theGroundBlockingMap, but only if it collides with solid objects (or is being set to collide with theisSolidObjectCollidableargument). Iffalse, remove this feature from theGroundBlockingMap. No change ifnil. boolean?isSolidObjectCollidable- Enable or disable collision with solid objects, or no change if
nil. boolean?isProjectileCollidable- Enable or disable collision with projectiles, or no change if
nil. boolean?isRaySegmentCollidable- Enable or disable collision with ray segments, or no change if
nil. boolean?crushable- Enable or disable crushable, or no change if
nil. boolean?blockEnemyPushing- Enable or disable blocking enemy pushing, or no change if
nil. boolean?blockHeightChanges- Enable or disable blocking height changes, or no change if
nil.
Returns
booleanisBlocking
Spring.SetFeatureNoSelect (function) view source
Spring.SetFeatureNoSelect(FeatureID, boolean) -> nilParameters
Returns
Spring.SetFeatureMidAndAimPos (function) view source
Check Spring.SetUnitMidAndAimPos for further explanation of the arguments.Spring.SetFeatureMidAndAimPos(FeatureID, number, number, number, number, number, number, boolean?) -> booleanParameters
Returns
booleansuccess
Spring.SetFeatureRadiusAndHeight (function) view source
Spring.SetFeatureRadiusAndHeight(FeatureID, number?, number?) -> booleanParameters
Returns
booleansuccess
Spring.SetFeatureCollisionVolumeData (function) view source
Check Spring.SetUnitCollisionVolumeData for further explanation of the arguments.Spring.SetFeatureCollisionVolumeData(FeatureID, number, number, number, number, number, number, integer, integer, integer) -> nilParameters
FeatureIDfeatureIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZintegervTypeintegertTypeintegerAxis
Returns
Spring.SetFeaturePieceCollisionVolumeData (function) view source
Spring.SetFeaturePieceCollisionVolumeData(FeatureID, integer, boolean, number, number, number, number, number, number, number, number, number?) -> nilParameters
FeatureIDfeatureIDintegerpieceIndexbooleanenablenumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumberAxisnumbervolumeTypenumber?primaryAxis
Returns
Spring.SetFeaturePieceVisible (function) view source
Spring.SetFeaturePieceVisible(FeatureID, integer, boolean) -> nilParameters
FeatureIDfeatureIDintegerpieceIndexbooleanvisible
Returns
Spring.SetFeaturePieceMatrix (function) view source
Sets the local (i.e. parent-relative) matrix of the given piece, for a feature.Spring.SetFeaturePieceMatrix(FeatureID, integer, number[]) -> boolean?Parameters
FeatureIDfeatureIDintegerpieceIndexnumber[]matrix- an array of 16 floats
Returns
boolean?valid- whether the matrix can be used for the purpose of defining the piece spatial transformation
Spring.SetFeatureFireTime (function) view source
Set the fire timer for a feature.
Starts or resets an internal feature fire timer, when reaching zero the feature will be destroyed.
Spring.SetFeatureFireTime(FeatureID, number) -> nilParameters
Spring.SetFeatureSmokeTime (function) view source
Set the smoke timer for a feature.
If different than zero, starts emitting smoke until the timer counts down to zero.
Setting to zero will stop smoke emission by the feature.
The smoke timer affects both the duration and size of the smoke particles.
Spring.SetFeatureSmokeTime(FeatureID, number) -> nilParameters
Spring.CreateUnitWreck (function) view source
Create a wreck from a unitSpring.CreateUnitWreck(UnitID, integer?, boolean?) -> FeatureID?Parameters
UnitIDunitIDinteger?wreckLevel- (Default:
1) Wreck index to use. boolean?doSmoke- (Default:
true) Wreck emits smoke whentrue.
Returns
Spring.CreateFeatureWreck (function) view source
Create a wreck from a featureSpring.CreateFeatureWreck(FeatureID, integer?, boolean?) -> FeatureID?Parameters
FeatureIDfeatureIDinteger?wreckLevel- (Default:
1) Wreck index to use. boolean?doSmoke- (Default:
false) Wreck emits smoke whentrue.
Returns
Spring.SetProjectileAlwaysVisible (function) view source
Spring.SetProjectileAlwaysVisible(ProjectileID, boolean) -> nilParameters
Returns
Spring.SetProjectileUseAirLos (function) view source
Spring.SetProjectileUseAirLos(ProjectileID, boolean) -> nilParameters
Returns
Spring.SetProjectileMoveControl (function) view source
Set whether engine should process position and speed for a projectile
Contrary to Spring.SetFeatureMoveCtrl, speed and position for projectiles can be set regardless of whether this method has been called or not.
Passing true merely skips engine updating velocity and position.
Spring.SetProjectileMoveControl(ProjectileID, boolean?) -> nilParameters
ProjectileIDprojectileIDboolean?enable
Spring.SetProjectilePosition (function) view source
Set the position of a projectileSpring.SetProjectilePosition(ProjectileID, number?, number?, number?) -> nilParameters
ProjectileIDprojectileIDnumber?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0)
Spring.SetProjectileVelocity (function) view source
Set the velocity of a projectile
Note
Differently from features, Spring.SetProjectileMoveControl is not required to have been called to make use of this method, but often used in conjunction.
See Spring.SetProjectileMoveControl
Spring.SetProjectileVelocity(ProjectileID, number, number, number) -> nilParameters
ProjectileIDprojectileIDnumbervelX- Velocity x component in elmos/frame.
numbervelY- Velocity y component in elmos/frame.
numbervelZ- Velocity z component in elmos/frame.
Spring.SetProjectileCollision (function) view source
Spring.SetProjectileCollision(ProjectileID) -> nilParameters
Spring.SetProjectileTarget (function) view source
Set projectile target (object)Spring.SetProjectileTarget(ProjectileID, (UnitID|FeatureID|ProjectileID), ProjectileTargetType) -> boolean?Parameters
Returns
boolean?validTarget
Spring.SetProjectileTarget (function overload 1) view source
Set projectile target (position)Spring.SetProjectileTarget(ProjectileID, number, number, number) -> boolean?Parameters
ProjectileIDprojectileIDnumberposXnumberposYnumberposZ
Returns
boolean?validTarget
Spring.SetProjectileTimeToLive (function) view source
Set Time To Live for a projectileSpring.SetProjectileTimeToLive(ProjectileID, integer) -> nilParameters
ProjectileIDprojectileIDintegerttl- Remaining time to live in frames
Spring.SetProjectileIsIntercepted (function) view source
Spring.SetProjectileIsIntercepted(ProjectileID) -> nilParameters
Spring.SetProjectileDamages (function) view source
Spring.SetProjectileDamages(ProjectileID, integer, string, number) -> nilParameters
ProjectileIDprojectileIDintegerweaponNumstringkeynumbervalue
Spring.SetProjectileIgnoreTrackingError (function) view source
Spring.SetProjectileIgnoreTrackingError(ProjectileID, boolean) -> nilParameters
Spring.SetProjectileGravity (function) view source
Spring.SetProjectileGravity(ProjectileID, number?) -> nilParameters
ProjectileIDprojectileIDnumber?grav- (Default:
0)
Returns
Spring.SetPieceProjectileParams (function) view source
Set piece projectile params
Non passed or nil args don’t set params.
Spring.SetPieceProjectileParams(ProjectileID, integer?, number?, number?, number?, number?, number?) -> nilParameters
ProjectileIDprojectileIDinteger?explosionFlagsnumber?spinAnglenumber?spinSpeednumber?spinVectorXnumber?spinVectorYnumber?spinVectorZ
Spring.SetProjectileCEG (function) view source
Spring.SetProjectileCEG(ProjectileID, string) -> nilParameters
Returns
Spring.UnitFinishCommand (function) view source
Spring.UnitFinishCommand(UnitID) -> nilParameters
Spring.LevelHeightMap (function) view source
Set the height of a point in the world.Spring.LevelHeightMap(number, number, number) -> nilParameters
Spring.LevelHeightMap (function overload 1) view source
Set the height of a rectangle area in the world.Spring.LevelHeightMap(number, number, number, number, number?) -> nilParameters
Returns
Spring.AdjustHeightMap (function) view source
Add height to a point in the world.Spring.AdjustHeightMap(number, number, number) -> nilParameters
Spring.AdjustHeightMap (function overload 1) view source
Add height to a rectangle in the world.Spring.AdjustHeightMap(number, number, number, number, number?) -> nilParameters
Returns
Spring.RevertHeightMap (function) view source
Restore map height at a point in the world.Spring.RevertHeightMap(number, number, number) -> nilParameters
Spring.RevertHeightMap (function overload 1) view source
Restore map height of a rectangle area in the world.Spring.RevertHeightMap(number, number, number, number, number?) -> nilParameters
Returns
Spring.AddHeightMap (function) view source
Can only be called in Spring.SetHeightMapFuncSpring.AddHeightMap(number, number, number) -> integer?Parameters
Returns
integer?newHeight
Spring.SetHeightMap (function) view source
Can only be called in Spring.SetHeightMapFunc.Spring.SetHeightMap(number, number, number, number?) -> integer?Parameters
Returns
integer?absHeightDiff- If
0, nothing will be changed (the terraform starts), if1the terraform will be finished.
Spring.SetHeightMapFunc (function) view source
Example code:
lua
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)
Spring.SetHeightMapFunc(function, [number, ]*) -> integer?Parameters
functionluaFunctionnumber...
Returns
integer?absTotalHeightMapAmountChanged
Spring.LevelOriginalHeightMap (function) view source
Set the height of a point in the original map height cache.Spring.LevelOriginalHeightMap(number, number, number) -> nilParameters
Spring.LevelOriginalHeightMap (function overload 1) view source
Set the height of a rectangle area in the original map height cache.Spring.LevelOriginalHeightMap(number, number, number, number, number) -> nilParameters
Spring.AdjustOriginalHeightMap (function) view source
Add height to a point in the original map height cache.Spring.AdjustOriginalHeightMap(number, number, number) -> nilParameters
Spring.AdjustOriginalHeightMap (function overload 1) view source
Add height to a rectangle area in the original map height cache.Spring.AdjustOriginalHeightMap(number, number, number, number, number) -> nilParameters
Spring.RevertOriginalHeightMap (function) view source
Restore original map height at a point in the world.Spring.RevertOriginalHeightMap(number, number, number) -> nilParameters
Spring.RevertOriginalHeightMap (function overload 1) view source
Restore original map height over a rectangle in the world.Spring.RevertOriginalHeightMap(number, number, number, number, number?) -> nilParameters
Returns
Spring.AddOriginalHeightMap (function) view source
Can only be called in Spring.SetOriginalHeightMapFuncSpring.AddOriginalHeightMap(number, number, number) -> nilParameters
Returns
Spring.SetOriginalHeightMap (function) view source
Can only be called in Spring.SetOriginalHeightMapFuncSpring.SetOriginalHeightMap(number, number, number, number?) -> nilParameters
Returns
Spring.SetOriginalHeightMapFunc (function) view source
Cannot recurse on itselfSpring.SetOriginalHeightMapFunc(function) -> nilParameters
functionheightMapFunc
Returns
Spring.RebuildSmoothMesh (function) view source
Heightmap changes normally take up to 25s to propagate to the smooth mesh. Use to force a mapwide update immediately.Spring.RebuildSmoothMesh() -> nilReturns
Spring.LevelSmoothMesh (function) view source
Spring.LevelSmoothMesh(number, number, number) -> nilParameters
Spring.LevelSmoothMesh (function overload 1) view source
Spring.LevelSmoothMesh(number, number, number, number, number) -> nilParameters
Spring.AdjustSmoothMesh (function) view source
Spring.AdjustSmoothMesh(number, number, number) -> nilParameters
Spring.AdjustSmoothMesh (function overload 1) view source
Spring.AdjustSmoothMesh(number, number, number, number, number) -> nilParameters
Spring.RevertSmoothMesh (function) view source
Spring.RevertSmoothMesh(number, number, number) -> nilParameters
numberxnumberznumberorigFactor
Spring.RevertSmoothMesh (function overload 1) view source
Spring.RevertSmoothMesh(number, number, number, number, number) -> nilParameters
numberx1numberz1numberx2numberz2numberorigFactor
Spring.AddSmoothMesh (function) view source
Can only be called in Spring.SetSmoothMeshFunc.Spring.AddSmoothMesh(number, number, number) -> number?Parameters
Returns
number?height- The new height, or
nilif coordinates are invalid.
Spring.SetSmoothMesh (function) view source
Can only be called in Spring.SetSmoothMeshFunc.Spring.SetSmoothMesh(number, number, number, number?) -> number?Parameters
Returns
number?heightDifference- The absolute height difference, or
nilif coordinates are invalid.
Spring.SetSmoothMeshFunc (function) view source
Spring.SetSmoothMeshFunc(function, any, [any, ]*) -> number?Parameters
functionluaFunctionanyargany...
Returns
Spring.SetMapSquareTerrainType (function) view source
Spring.SetMapSquareTerrainType(number, number, integer) -> integer?Parameters
Returns
integer?oldType
Spring.SetTerrainTypeData (function) view source
Spring.SetTerrainTypeData(integer, number?, number?, number?, number?) -> boolean?Parameters
integertypeIndexnumber?speedTanks- (Default: nil)
number?speedKBOts- (Default: nil)
number?speedHovers- (Default: nil)
number?speedShips- (Default: nil)
Returns
Spring.SetSquareBuildingMask (function) view source
See also buildingMask unitdef tag.Spring.SetSquareBuildingMask(integer, integer, integer) -> nilParameters
Returns
Spring.UnitWeaponFire (function) view source
Spring.UnitWeaponFire(UnitID, integer) -> nilParameters
Returns
Spring.UnitWeaponHoldFire (function) view source
Spring.UnitWeaponHoldFire(UnitID, integer) -> nilParameters
Returns
Spring.ForceUnitCollisionUpdate (function) view source
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.
Spring.ForceUnitCollisionUpdate(UnitID) -> nilParameters
Returns
Spring.UnitAttach (function) view source
Spring.UnitAttach(UnitID, UnitID, integer, boolean?) -> nilParameters
UnitIDtransporterIDUnitIDpassengerIDintegerpieceNumboolean?force
Returns
Spring.UnitDetach (function) view source
Spring.UnitDetach(UnitID) -> nilParameters
Returns
Spring.UnitDetachFromAir (function) view source
Spring.UnitDetachFromAir(UnitID) -> nilParameters
Returns
Spring.SetUnitLoadingTransport (function) view source
Disables collisions between the two units to allow colvol intersection during the approach.Spring.SetUnitLoadingTransport(UnitID, UnitID) -> nilParameters
Returns
Spring.SpawnProjectile (function) view source
Spring.SpawnProjectile(WeaponDefID, ProjectileParams) -> ProjectileID?Parameters
Returns
Spring.DeleteProjectile (function) view source
Silently removes projectiles (no explosion).Spring.DeleteProjectile(ProjectileID) -> nilParameters
Returns
Spring.SpawnExplosion (function) view source
Spring.SpawnExplosion(number?, number?, number?, number?, number?, number?, ExplosionParams?) -> nilParameters
number?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0) number?dirX- (Default:
0) number?dirY- (Default:
0) number?dirZ- (Default:
0) ExplosionParams?explosionParams
Returns
Spring.SpawnCEG (function) view source
Spring.SpawnCEG(string, number?, number?, number?, number?, number?, number?, number?, number?) -> boolean?, integerParameters
stringcegnamenumber?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0) number?dirX- (Default:
0) number?dirY- (Default:
0) number?dirZ- (Default:
0) number?radius- (Default:
0) number?damage- (Default:
0)
Returns
Spring.SpawnSFX (function) view source
Equal to the UnitScript versions of EmitSFX, but takes position and direction arguments (in either unit- or piece-space) instead of a piece index.Spring.SpawnSFX(UnitID?, integer?, number?, number?, number?, number?, number?, number?, number?, number?, boolean?) -> boolean?Parameters
UnitID?unitID- (Default:
0) integer?sfxID- (Default:
0) number?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0) number?dirX- (Default:
0) number?dirY- (Default:
0) number?dirZ- (Default:
0) number?radius- (Default:
0) number?damage- (Default:
0) boolean?absolute
Returns
boolean?success
Spring.SetNoPause (function) view source
Spring.SetNoPause(boolean) -> nilParameters
booleannoPause
Returns
Spring.SetExperienceGrade (function) view source
Defines how oftenCallins.UnitExperience will be called.Spring.SetExperienceGrade(number, number?, number?, number?) -> nilParameters
numberexpGradenumber?ExpPowerScalenumber?ExpHealthScalenumber?ExpReloadScale
Returns
Spring.SetRadarErrorParams (function) view source
Spring.SetRadarErrorParams(AllyTeamID, number, number?, number?) -> nilParameters
AllyTeamIDallyTeamIDnumberallyteamErrorSizenumber?baseErrorSizenumber?baseErrorMult
Returns
Spring.EditUnitCmdDesc (function) view source
Spring.EditUnitCmdDesc(UnitID, integer, CommandDescription) -> nilParameters
Spring.InsertUnitCmdDesc (function) view source
Insert a command description at a specific index.Spring.InsertUnitCmdDesc(UnitID, integer, CommandDescription) -> nilParameters
Spring.InsertUnitCmdDesc (function overload 1) view source
Insert a command description at the last position.Spring.InsertUnitCmdDesc(UnitID, CommandDescription) -> nilParameters
Spring.RemoveUnitCmdDesc (function) view source
Spring.RemoveUnitCmdDesc(UnitID, integer?) -> nilParameters
Spring.SetShockFrontFactors (function) view source
Spring.SetShockFrontFactors(number?, number?, number?) -> nilParameters
Spring.RequestPath (function) view source
Spring.RequestPath((string|integer), number, number, number, number, number, number, number?) -> userdata?Parameters
(string|integer)moveIDnumberstartXnumberstartYnumberstartZnumberendXnumberendYnumberendZnumber?radius
Returns
userdata?path
Spring.InitPathNodeCostsArray (function) view source
Spring.InitPathNodeCostsArray(integer, integer, integer) -> booleanParameters
integeroverlayIndexintegersizeXintegersizeZ
Returns
booleansuccess
Spring.FreePathNodeCostsArray (function) view source
Spring.FreePathNodeCostsArray(integer) -> booleanParameters
integeroverlayIndex
Returns
booleansuccess
Spring.SetPathNodeCosts (function) view source
Spring.SetPathNodeCosts(integer) -> booleanParameters
integeroverlayIndex
Returns
booleansuccess
Spring.GetPathNodeCosts (function) view source
Spring.GetPathNodeCosts(integer) -> (table|boolean)Parameters
integeroverlayIndex
Returns
(table|boolean)costs
Spring.SetPathNodeCost (function) view source
Spring.SetPathNodeCost(integer, integer, number) -> booleanParameters
integeroverlayIndexintegercostIndex- 0-based index in the overlay
numbercost
Returns
booleansuccess
Spring.GetPathNodeCost (function) view source
Spring.GetPathNodeCost(integer, integer) -> numberParameters
Returns
numbercost
Spring.IsReplay (function) view source
Spring.IsReplay() -> booleanReturns
booleanisReplay
Spring.GetReplayLength (function) view source
Spring.GetReplayLength() -> number?Returns
number?timeInSeconds
Spring.GetGameName (function) view source
Spring.GetGameName() -> stringReturns
stringname
Spring.GetReplayFilePath (function) view source
If a replay is currently being watched, returns its file path.Spring.GetReplayFilePath() -> stringReturns
stringfilePath
Spring.GetReplayRecordingFilePath (function) view source
If a replay is being recorded, returns its projected file path. Note that replay contents are only written there at game exit. Note also that watching a replay also records a meta-replay if the DemoFromDemo springsetting is set.Spring.GetReplayRecordingFilePath() -> stringReturns
stringfilePath
Spring.GetMenuName (function) view source
Spring.GetMenuName() -> stringReturns
stringname- name .. version from Modinfo.lua. E.g. “Spring: 1944 test-5640-ac2d15b”.
Spring.GetProfilerTimeRecord (function) view source
Spring.GetProfilerTimeRecord(string, boolean?) -> number, number, number, number, number, table<integer,number>?Parameters
stringprofilerNameboolean?frameData- (Default:
false)
Returns
numbertotal- in ms
numbercurrent- in ms
numbermax_dtnumbertime_pctnumberpeak_pcttable<integer,number>?frameData- Table where key is the frame index and value is duration.
Spring.GetProfilerRecordNames (function) view source
Spring.GetProfilerRecordNames() -> string[]Returns
string[]profilerNames
Spring.GetLuaMemUsage (function) view source
Spring.GetLuaMemUsage() -> number, number, number, number, number, number, number, numberReturns
numberluaHandleAllocedMem- in kilobytes
numberluaHandleNumAllocs- divided by 1000
numberluaGlobalAllocedMem- in kilobytes
numberluaGlobalNumAllocs- divided by 1000
numberluaUnsyncedGlobalAllocedMem- in kilobytes
numberluaUnsyncedGlobalNumAllocs- divided by 1000
numberluaSyncedGlobalAllocedMem- in kilobytes
numberluaSyncedGlobalNumAllocs- divided by 1000
Spring.GetVidMemUsage (function) view source
Spring.GetVidMemUsage() -> number, numberReturns
numberusedMem- in MB
numberavailableMem- in MB
Spring.GetTimer (function) view source
Get a timer with millisecond resolutionSpring.GetTimer() -> integerReturns
Spring.GetTimerMicros (function) view source
Get a timer with microsecond resolutionSpring.GetTimerMicros() -> integerReturns
Spring.GetFrameTimer (function) view source
Get a timer for the start of the frame
This should give better results for camera interpolations
Spring.GetFrameTimer(boolean?) -> integerParameters
boolean?lastFrameTime- (Default:
false) whether to use last frame time instead of last frame start
Returns
Spring.DiffTimers (function) view source
Spring.DiffTimers(integer, integer, boolean?, boolean?) -> numberParameters
integerendTimerintegerstartTimerboolean?returnMs- (Default:
false) whether to returntimeAmountin milliseconds as opposed to seconds boolean?fromMicroSecs- (Default:
false) whether timers are in microseconds instead of milliseconds
Returns
numbertimeAmount
Spring.GetNumDisplays (function) view source
Spring.GetNumDisplays() -> integerReturns
integernumDisplays- as returned by
SDL_GetNumVideoDisplays
Spring.GetViewGeometry (function) view source
Get main view geometry (map and game rendering)Spring.GetViewGeometry() -> integer, integer, integer, integerReturns
integerviewSizeX- in px
integerviewSizeY- in px
integerviewPosX- offset from leftmost screen left border in px
integerviewPosY- offset from bottommost screen bottom border in px
Spring.GetDualViewGeometry (function) view source
Get dual view geometry (minimap when enabled)Spring.GetDualViewGeometry() -> integer, integer, integer, integerReturns
integerdualViewSizeX- in px
integerdualViewSizeY- in px
integerdualViewPosX- offset from leftmost screen left border in px
integerdualViewPosY- offset from bottommost screen bottom border in px
Spring.GetWindowGeometry (function) view source
Get main window geometrySpring.GetWindowGeometry() -> integer, integer, integer, integer, integer, integer, integer, integerReturns
integerwinSizeX- in px
integerwinSizeY- in px
integerwinPosX- in px
integerwinPosY- in px
integerwindowBorderTop- in px
integerwindowBorderLeft- in px
integerwindowBorderBottom- in px
integerwindowBorderRight- in px
Spring.GetWindowDisplayMode (function) view source
Get main window display modeSpring.GetWindowDisplayMode() -> integer, integer, integer, integerReturns
Spring.GetScreenGeometry (function) view source
Get screen geometrySpring.GetScreenGeometry(integer?, boolean?) -> integer, integer, integer, integer, integer, integer, integer, integer, integer?, integer?, integer?, integer?Parameters
integer?displayIndex- (Default:
-1) boolean?queryUsable- (Default:
false)
Returns
integerscreenSizeX- in px
integerscreenSizeY- in px
integerscreenPosX- in px
integerscreenPosY- in px
integerwindowBorderTop- in px
integerwindowBorderLeft- in px
integerwindowBorderBottom- in px
integerwindowBorderRight- in px
integer?screenUsableSizeX- in px
integer?screenUsableSizeY- in px
integer?screenUsablePosX- in px
integer?screenUsablePosY- in px
Spring.GetMiniMapGeometry (function) view source
Get minimap geometrySpring.GetMiniMapGeometry() -> integer, integer, integer, integer, boolean, booleanReturns
integerminimapPosX- in px
integerminimapPosY- in px
integerminimapSizeX- in px
integerminimapSizeY- in px
booleanminimizedbooleanmaximized
Spring.GetMiniMapRotation (function) view source
Get minimap rotationSpring.GetMiniMapRotation() -> numberReturns
numberrotation- in radians
Spring.GetMiniMapDualScreen (function) view source
Spring.GetMiniMapDualScreen() -> ("left"|"right"|false)Returns
("left"|"right"|false)position“left”or“right”when dual screen is enabled, otherwisefalse.
Spring.GetSelectionBox (function) view source
Get vertices from currently active selection box
Returns nil when selection box is inactive
See Spring.GetUnitsInScreenRectangle
Spring.GetSelectionBox() -> number?, number?, number?, number?Returns
Spring.GetDrawSelectionInfo (function) view source
Spring.GetDrawSelectionInfo() -> booleanReturns
Spring.IsAboveMiniMap (function) view source
Spring.IsAboveMiniMap(integer, integer) -> booleanParameters
Returns
booleanisAbove
Spring.GetDrawFrame (function) view source
Spring.GetDrawFrame() -> integer, integerReturns
integerlow_16bitintegerhigh_16bit
Spring.GetFrameTimeOffset (function) view source
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.
Spring.GetFrameTimeOffset() -> number?Returns
number?offset- of the current draw frame from the last sim frame, expressed in fractions of a frame
Spring.GetGameSecondsInterpolated (function) view source
Gets game time for drawing purposes
Returns the game time, taking the interpolated draw frame into account.
Spring.GetGameSecondsInterpolated() -> numberReturns
numbertime- in seconds
Spring.GetLastUpdateSeconds (function) view source
Spring.GetLastUpdateSeconds() -> number?Returns
number?lastUpdateSeconds
Spring.GetVideoCapturingMode (function) view source
Spring.GetVideoCapturingMode() -> booleanReturns
booleanallowRecord
Spring.GetPrevFrameSyncChecksum (function) view source
Returns the engine’s sync checksum for the previous simframe, useful for testing. The returned string is NOT convertible to a number within Lua.
Returns a dummy value if Platform.hasSyncChecksums is false, or if no frames were processed yet.
Spring.GetPrevFrameSyncChecksum() -> stringReturns
stringchecksum
Spring.IsUnitAllied (function) view source
Spring.IsUnitAllied(UnitID) -> boolean?Parameters
Returns
boolean?isAllied- nil with unitID cannot be parsed
Spring.IsUnitSelected (function) view source
Spring.IsUnitSelected(UnitID) -> boolean?Parameters
Returns
boolean?isSelected- nil when unitID cannot be parsed
Spring.GetUnitLuaDraw (function) view source
Spring.GetUnitLuaDraw(UnitID) -> boolean?Parameters
Returns
boolean?draw- nil when unitID cannot be parsed
Spring.GetUnitNoDraw (function) view source
Spring.GetUnitNoDraw(UnitID) -> boolean?Parameters
Returns
boolean?noDrawnilwhen unitID cannot be parsed
Spring.GetUnitEngineDrawMask (function) view source
Spring.GetUnitEngineDrawMask(UnitID) -> boolean?Parameters
Returns
boolean?drawMasknilwhen unitID cannot be parsed
Spring.GetUnitAlwaysUpdateMatrix (function) view source
Spring.GetUnitAlwaysUpdateMatrix(UnitID) -> boolean?Parameters
Returns
boolean?alwaysUpdateMatrixnilwhen unitID cannot be parsed
Spring.GetUnitDrawFlag (function) view source
Spring.GetUnitDrawFlag(UnitID) -> number?Parameters
Returns
number?drawFlagnilwhen unitID cannot be parsed
Spring.GetUnitNoMinimap (function) view source
Spring.GetUnitNoMinimap(UnitID) -> boolean?Parameters
Returns
boolean?noMinimapnilwhen unitID cannot be parsed
Spring.GetUnitNoGroup (function) view source
Check if a unit is not allowed to be added to a group by a player.Spring.GetUnitNoGroup(UnitID) -> boolean?Parameters
Returns
boolean?noGrouptrueif the unit is not allowed to be added to a group,falseif it is allowed to be added to a group, ornilwhenunitIDis not valid.
Spring.GetUnitNoSelect (function) view source
Spring.GetUnitNoSelect(UnitID) -> boolean?Parameters
Returns
boolean?noSelectnilwhenunitIDcannot be parsed.
Spring.UnitIconGetDraw (function) view source
Spring.UnitIconGetDraw(UnitID) -> boolean?Parameters
Returns
boolean?drawIcontrueif icon is being drawn,nilwhen unitID is invalid, otherwisefalse.
Spring.GetUnitIconData (function) view source
Get unit icon dataSpring.GetUnitIconData(UnitID, boolean?) -> IconData?Parameters
UnitIDunitIDboolean?fullData- (Default: false) Whether additional information about the icon is returned, otherwise only
nameandatlasTexCoordsare returned
Returns
IconData?nilif unit is not found or unit currentIconIndex is invalid
Spring.GetUnitIcon (function) view source
Get unit icon nameSpring.GetUnitIcon(UnitID) -> stringParameters
Returns
stringiconName
Spring.GetIconData (function) view source
Get icon dataSpring.GetIconData(string, boolean?) -> IconData?Parameters
stringiconNameboolean?fullData- (Default: false) Whether additional information about the icon is returned, otherwise only
nameandatlasTexCoordsare returned
Returns
IconData?nilif iconName lookup fails
Spring.GetAllIconDataArray (function) view source
Get icon dataSee Spring.GetUnitIconData, Spring.GetIconData
Spring.GetAllIconDataArray(boolean?) -> IconData[]Parameters
boolean?fullData- (Default: false) Whether additional information about each icon is returned, otherwise only
nameandatlasTexCoordsare returned
Returns
Spring.GetUnitSelectionVolumeData (function) view source
Spring.GetUnitSelectionVolumeData(UnitID) -> number?, number, number, number, number, number, integer, integer, integer, booleanParameters
Returns
number?scaleX- nil when unitID cannot be parsed
numberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZintegervolumeTypeintegeruseContHitTestintegergetPrimaryAxisbooleanignoreHits
Spring.GetFeatureLuaDraw (function) view source
Spring.GetFeatureLuaDraw(FeatureID) -> boolean?Parameters
Returns
boolean?luaDrawnilwhen featureID cannot be parsed
Spring.GetFeatureNoDraw (function) view source
Spring.GetFeatureNoDraw(FeatureID) -> boolean?Parameters
Returns
boolean?noDrawnilwhen featureID cannot be parsed
Spring.GetFeatureEngineDrawMask (function) view source
Spring.GetFeatureEngineDrawMask(FeatureID) -> boolean?Parameters
Returns
boolean?drawMasknilwhen featureID cannot be parsed
Spring.GetFeatureAlwaysUpdateMatrix (function) view source
Spring.GetFeatureAlwaysUpdateMatrix(FeatureID) -> boolean?Parameters
Returns
boolean?alwaysUpdateMatrixnilwhen featureID cannot be parsed
Spring.GetFeatureDrawFlag (function) view source
Spring.GetFeatureDrawFlag(FeatureID) -> number?Parameters
Returns
number?drawFlagnilwhen featureID cannot be parsed
Spring.GetFeatureSelectionVolumeData (function) view source
Spring.GetFeatureSelectionVolumeData(FeatureID) -> number?, number, number, number, number, number, integer, integer, integer, booleanParameters
Returns
number?scaleX- nil when featureID cannot be parsed
numberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZintegervolumeTypeintegeruseContHitTestintegergetPrimaryAxisbooleanignoreHits
Spring.GetUnitTransformMatrix (function) view source
Spring.GetUnitTransformMatrix(UnitID) -> nilParameters
Returns
Spring.GetUnitTransformMatrix (function overload 1) view source
Spring.GetUnitTransformMatrix(UnitID) -> number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
Returns
numberm11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.GetFeatureTransformMatrix (function) view source
Spring.GetFeatureTransformMatrix(FeatureID) -> nilParameters
Returns
Spring.GetFeatureTransformMatrix (function overload 1) view source
Spring.GetFeatureTransformMatrix(FeatureID) -> number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
Returns
numberm11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.IsUnitInView (function) view source
Spring.IsUnitInView(UnitID) -> boolean?Parameters
Returns
boolean?inView- nil when unitID cannot be parsed
Spring.IsUnitVisible (function) view source
Spring.IsUnitVisible(UnitID, number?, boolean) -> boolean?Parameters
Returns
boolean?isVisible- nil when unitID cannot be parsed
Spring.IsUnitIcon (function) view source
Spring.IsUnitIcon(UnitID) -> boolean?Parameters
Returns
boolean?isUnitIcon- nil when unitID cannot be parsed
Spring.IsAABBInView (function) view source
Spring.IsAABBInView(number, number, number, number, number, number) -> booleanParameters
Returns
booleaninView
Spring.IsSphereInView (function) view source
Spring.IsSphereInView(number, number, number, number?) -> booleanParameters
Returns
booleaninView
Spring.GetUnitViewPosition (function) view source
Spring.GetUnitViewPosition(UnitID, boolean?) -> number?, number, numberParameters
Returns
Spring.GetVisibleUnits (function) view source
Spring.GetVisibleUnits(TeamID?, number?, boolean?) -> UnitID[]?Parameters
Returns
Spring.GetVisibleFeatures (function) view source
Spring.GetVisibleFeatures(TeamID?, number?, boolean?, boolean?) -> FeatureID[]?Parameters
TeamID?teamID- (Default:
-1) number?radius- (Default:
30) boolean?icons- (Default:
true) boolean?geos- (Default:
true)
Returns
Spring.GetVisibleProjectiles (function) view source
Spring.GetVisibleProjectiles(AllyTeamID?, boolean?, boolean?, boolean?) -> ProjectileID[]?Parameters
AllyTeamID?allyTeamID- (Default:
-1) boolean?addSyncedProjectiles- (Default:
true) boolean?addWeaponProjectiles- (Default:
true) boolean?addPieceProjectiles- (Default:
true)
Returns
Spring.GetRenderUnits (function) view source
Spring.GetRenderUnits(DrawMask, true) -> UnitID[], DrawFlag[]Parameters
DrawMaskdrawMask- (Default:
0) Filter objects by their draw flags. truesendMask- Whether to send objects draw flags as second return
Returns
Spring.GetRenderUnits (function overload 1) view source
Spring.GetRenderUnits(DrawMask, false?) -> UnitID[]Parameters
DrawMaskdrawMask- (Default:
0) Filter objects by their draw flags. false?sendMask- Whether to send objects draw flags as second return
Returns
Spring.GetRenderUnitsDrawFlagChanged (function) view source
Gets a list of IDs of units that have had their draw flags changed, and the corresponding flags.Spring.GetRenderUnitsDrawFlagChanged(true) -> UnitID[], DrawFlag[]Parameters
truesendMask- Whether to send objects draw flags as second return.
Returns
Spring.GetRenderUnitsDrawFlagChanged (function overload 1) view source
Gets a list of IDs of units that have had their draw flags changed, and the corresponding flags.Spring.GetRenderUnitsDrawFlagChanged(false?) -> UnitID[]Parameters
false?sendMask- Whether to send objects draw flags as second return.
Returns
Spring.GetRenderFeatures (function) view source
Spring.GetRenderFeatures(DrawMask, true) -> FeatureID[], DrawFlag[]Parameters
DrawMaskdrawMask- (Default:
0) Filter objects by their draw flags. truesendMask- Whether to send objects draw flags as second return
Returns
Spring.GetRenderFeatures (function overload 1) view source
Spring.GetRenderFeatures(DrawMask, false?) -> FeatureID[]Parameters
DrawMaskdrawMask- (Default:
0) Filter objects by their draw flags. false?sendMask- Whether to send objects draw flags as second return
Returns
Spring.GetRenderFeaturesDrawFlagChanged (function) view source
Gets a list of IDs of features that have had their draw flags changed, and the corresponding flags.Spring.GetRenderFeaturesDrawFlagChanged(true) -> FeatureID[], DrawFlag[]Parameters
truesendMask- Whether to send objects draw flags as second return.
Returns
Spring.GetRenderFeaturesDrawFlagChanged (function overload 1) view source
Gets a list of IDs of features that have had their draw flags changed, and the corresponding flags.Spring.GetRenderFeaturesDrawFlagChanged(false?) -> FeatureID[]Parameters
false?sendMask- Whether to send objects draw flags as second return.
Returns
Spring.ClearUnitsPreviousDrawFlag (function) view source
Spring.ClearUnitsPreviousDrawFlag() -> nilSpring.ClearFeaturesPreviousDrawFlag (function) view source
Spring.ClearFeaturesPreviousDrawFlag() -> nilSpring.GetUnitsInScreenRectangle (function) view source
Get units inside a rectangle area on the mapSpring.GetUnitsInScreenRectangle(number, number, number, number, integer?) -> UnitID[]?Parameters
numberleftnumbertopnumberrightnumberbottominteger?allegiance- (Default:
-1) teamID when > 0, when < 0 one of AllUnits = -1, MyUnits = -2, AllyUnits = -3, EnemyUnits = -4
Returns
Spring.GetFeaturesInScreenRectangle (function) view source
Get features inside a rectangle area on the mapSpring.GetFeaturesInScreenRectangle(number, number, number, number) -> FeatureID[]?Parameters
Returns
Spring.GetLocalPlayerID (function) view source
Spring.GetLocalPlayerID() -> PlayerIDReturns
Spring.GetMyPlayerID (function) view source
Alias of GetLocalPlayerIDSpring.GetMyPlayerID() -> PlayerIDReturns
Spring.GetLocalTeamID (function) view source
Spring.GetLocalTeamID() -> TeamIDReturns
Spring.GetMyTeamID (function) view source
Alias of GetLocalTeamIDSpring.GetMyTeamID() -> TeamIDReturns
Spring.GetLocalAllyTeamID (function) view source
Spring.GetLocalAllyTeamID() -> AllyTeamIDReturns
Spring.GetMyAllyTeamID (function) view source
Alias of GetLocalAllyTeamIDSpring.GetMyAllyTeamID() -> AllyTeamIDReturns
Spring.GetSpectatingState (function) view source
Spring.GetSpectatingState() -> boolean, boolean, booleanReturns
booleanspectatingbooleanspectatingFullViewbooleanspectatingFullSelect
Spring.GetSelectedUnits (function) view source
Spring.GetSelectedUnits() -> UnitID[]Returns
Spring.GetSelectedUnitsSorted (function) view source
Get selected units aggregated by unitDefIDSpring.GetSelectedUnitsSorted() -> table<UnitDefID,UnitID[]>, integerReturns
Spring.GetSelectedUnitsCounts (function) view source
Get an aggregate count of selected units per unitDefIDSpring.GetSelectedUnitsCounts() -> table<UnitDefID,integer>, integerReturns
table<UnitDefID,integer>unitsCountsintegercountDefs- the number of unitDefIDs
Spring.GetSelectedUnitsCount (function) view source
Returns the amount of selected unitsSpring.GetSelectedUnitsCount() -> integerReturns
integerselectedUnitsCount
Spring.GetBoxSelectionByEngine (function) view source
Get if selection box is handled by engine.See Spring.GetSelectionBox, Spring.SetBoxSelectionByEngine
Spring.GetBoxSelectionByEngine() -> booleanReturns
booleanisHandledByEnginetrueif the engine will select units inside selection box on release, otherwisefalse.
Spring.IsGUIHidden (function) view source
Spring.IsGUIHidden() -> booleanReturns
Spring.HaveShadows (function) view source
Spring.HaveShadows() -> booleanReturns
booleanshadowsLoaded
Spring.HaveAdvShading (function) view source
Spring.HaveAdvShading() -> boolean, booleanReturns
booleanuseAdvShadingbooleangroundUseAdvShading
Spring.GetWaterMode (function) view source
See rts/Rendering/Env/IWater.h
Spring.GetWaterMode() -> integer, stringReturns
integerwaterRendererIDstringwaterRendererName
Spring.GetMapDrawMode (function) view source
Spring.GetMapDrawMode() -> ("normal"|"height"|"metal"|"pathTraversability"|"los")Returns
Spring.GetMapSquareTexture (function) view source
Spring.GetMapSquareTexture(integer, integer, integer, string, integer?) -> boolean?Parameters
integertexSquareXintegertexSquareYintegerlodMinstringluaTexNameinteger?lodMax- (Default: lodMin)
Returns
boolean?success
Spring.GetLosViewColors (function) view source
Spring.GetLosViewColors() -> rgb, rgb, rgb, rgb, rgbReturns
Spring.GetNanoProjectileParams (function) view source
Spring.GetNanoProjectileParams() -> number, number, number, number, number, numberReturns
numberrotVal- in degrees
numberrotVel- in degrees
numberrotAcc- in degrees
numberrotValRng- in degrees
numberrotVelRng- in degrees
numberrotAccRng- in degrees
Spring.GetCameraNames (function) view source
Get available cameras.Spring.GetCameraNames() -> table<string,integer>Returns
table<string,integer>indexByName- Table where where keys are names and values are indices.
Spring.GetCameraState (function) view source
Spring.GetCameraState(false) -> CameraName, any ...Parameters
falseuseTable
Returns
CameraNamenameany ...depends- on the current controller mode.
Spring.GetCameraState (function overload 1) view source
Spring.GetCameraState(true?) -> CameraStateParameters
true?useTable- (Default:
true) Return a table instead of multiple values.
Returns
Spring.GetCameraPosition (function) view source
Spring.GetCameraPosition() -> number, number, numberReturns
Spring.GetCameraDirection (function) view source
Spring.GetCameraDirection() -> number, number, numberReturns
Spring.GetCameraRotation (function) view source
Get camera rotation in radians.Spring.GetCameraRotation() -> number, number, numberReturns
numberrotX- Rotation around X axis in radians.
numberrotY- Rotation around Y axis in radians.
numberrotZ- Rotation around Z axis in radians.
Spring.GetCameraFOV (function) view source
Spring.GetCameraFOV() -> number, numberReturns
Spring.GetCameraVectors (function) view source
Spring.GetCameraVectors() -> CameraVectorsReturns
Spring.WorldToScreenCoords (function) view source
Spring.WorldToScreenCoords(number, number, number) -> number, number, numberParameters
Returns
Spring.TraceScreenRay (function) view source
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.
Spring.TraceScreenRay(integer, integer, boolean?, boolean?, boolean?, boolean?, number?) -> string?, (UnitID|FeatureID|string|xyz)?, (FeatureID|string)?, xyz?Parameters
integerscreenX- position on x axis in mouse coordinates (origin on left border of view)
integerscreenY- position on y axis in mouse coordinates (origin on top border of view)
boolean?onlyCoords- (Default:
false) return only description (1st return value) and coordinates (2nd return value) boolean?useMinimap- (Default:
false) if position arguments are contained by minimap, use the minimap corresponding world position boolean?includeSky- (Default:
false) boolean?ignoreWater- (Default:
false) number?heightOffset- (Default:
0)
Returns
string?description- of traced position
(UnitID|FeatureID|string|xyz)?unitID- or feature, position triple when onlyCoords=true
(FeatureID|string)?featureID- or ground
xyz?coords
Spring.GetPixelDir (function) view source
Spring.GetPixelDir(integer, integer) -> number, number, numberParameters
Returns
Spring.GetTeamColor (function) view source
Spring.GetTeamColor(TeamID) -> number?, number?, number?, number?Parameters
Returns
number?r- factor from 0 to 1
number?g- factor from 0 to 1
number?b- factor from 0 to 1
number?a- factor from 0 to 1
Spring.GetTeamOrigColor (function) view source
Spring.GetTeamOrigColor(TeamID) -> number?, number?, number?, number?Parameters
Returns
number?r- factor from 0 to 1
number?g- factor from 0 to 1
number?b- factor from 0 to 1
number?a- factor from 0 to 1
Spring.GetCustomPaletteColor (function) view source
Spring.GetCustomPaletteColor(integer) -> number?, number?, number?Parameters
integerindex- 0-based index into custom palette
Returns
Spring.GetUnitPaletteIndex (function) view source
Returns the custom palette index for a unit, or nil if using team color.Spring.GetUnitPaletteIndex(UnitID) -> integer?Parameters
Returns
integer?customIndex- [0..MAX_CUSTOM_COLORS) if unit uses a custom color, nil if using team color
Spring.GetFeaturePaletteIndex (function) view source
Returns the custom palette index for a feature, or nil if using team color.Spring.GetFeaturePaletteIndex(FeatureID) -> integer?Parameters
Returns
integer?customIndex- [0..MAX_CUSTOM_COLORS) if feature uses a custom color, nil if using team color
Spring.GetDrawSeconds (function) view source
Spring.GetDrawSeconds() -> integerReturns
integertime- Time in seconds.
Spring.GetSoundDevices (function) view source
Spring.GetSoundDevices() -> SoundDeviceSpec[]Returns
SoundDeviceSpec[]devices- Sound devices.
Spring.GetSoundStreamTime (function) view source
Spring.GetSoundStreamTime() -> number, numberReturns
Spring.GetSoundEffectParams (function) view source
Spring.GetSoundEffectParams() -> table?Returns
table?soundEffectParamsnilon headless/no-sound builds or when EFX is unsupported.
Spring.GetFPS (function) view source
Spring.GetFPS() -> integerReturns
integerfps
Spring.GetGameSpeed (function) view source
Spring.GetGameSpeed() -> number, number, booleanReturns
numberwantedSpeedFactornumberspeedFactorbooleanpaused
Spring.GetGameState (function) view source
Spring.GetGameState(number?) -> boolean, boolean, boolean, booleanParameters
number?maxLatency- (Default:
500) used forisSimLaggingreturn parameter
Returns
booleandoneLoadingbooleanisSavedGamebooleanisClientPausedbooleanisSimLagging
Spring.GetActiveCommand (function) view source
Spring.GetActiveCommand() -> integer?, integer?, integer?, string?Returns
Spring.GetDefaultCommand (function) view source
Spring.GetDefaultCommand() -> integer?, integer?, integer?, string?Returns
Spring.GetActiveCmdDescs (function) view source
Spring.GetActiveCmdDescs() -> CommandDescription[]Returns
Spring.GetActiveCmdDesc (function) view source
Spring.GetActiveCmdDesc(integer) -> CommandDescription?Parameters
integercmdIndex
Returns
Spring.GetCmdDescIndex (function) view source
Spring.GetCmdDescIndex(integer) -> integer?Parameters
integercmdID
Returns
integer?cmdDescIndex
Spring.GetBuildFacing (function) view source
Spring.GetBuildFacing() -> FacingIntegerReturns
Spring.GetBuildSpacing (function) view source
Spring.GetBuildSpacing() -> integerReturns
integerbuildSpacing
Spring.GetGatherMode (function) view source
Spring.GetGatherMode() -> integerReturns
integergatherMode
Spring.GetActivePage (function) view source
Spring.GetActivePage() -> integer, integerReturns
integeractivePageintegermaxPage
Spring.GetMouseState (function) view source
Spring.GetMouseState() -> integer, integer, boolean, boolean, boolean, boolean, booleanReturns
integerxintegerybooleanlmbPressed- left mouse button pressed
booleanmmbPressed- middle mouse button pressed
booleanrmbPressed- right mouse button pressed
booleanoffscreenbooleanmmbScroll
Spring.GetMouseCursor (function) view source
Spring.GetMouseCursor() -> string, numberReturns
stringcursorNamenumbercursorScale
Spring.GetMouseStartPosition (function) view source
Spring.GetMouseStartPosition(integer) -> integer, integer, number, number, number, number, number, numberParameters
integerbutton
Returns
Spring.GetMouseButtonsPressed (function) view source
Get pressed status for specific buttons.Spring.GetMouseButtonsPressed(integer, [integer, ]*) -> boolean ...Parameters
Returns
boolean ...Pressed- status for the buttons.
Spring.GetClipboard (function) view source
Spring.GetClipboard() -> stringReturns
stringtext
Spring.IsUserWriting (function) view source
Spring.IsUserWriting() -> booleanReturns
Spring.GetLastMessagePositions (function) view source
Spring.GetLastMessagePositions() -> xyz[]Returns
Spring.GetConsoleBuffer (function) view source
Spring.GetConsoleBuffer(integer) -> { priority: integer, text: string }[]Parameters
integermaxLines
Returns
{ priority: integer, text: string }[]buffer
Spring.GetCurrentTooltip (function) view source
Spring.GetCurrentTooltip() -> stringReturns
stringtooltip
Spring.GetKeyFromScanSymbol (function) view source
Spring.GetKeyFromScanSymbol(string?) -> stringParameters
string?scanSymbol
Returns
stringkeyName
Spring.GetKeyState (function) view source
Spring.GetKeyState(integer) -> booleanParameters
integerkeyCode
Returns
booleanpressed
Spring.GetModKeyState (function) view source
Spring.GetModKeyState() -> boolean, boolean, boolean, booleanReturns
Spring.GetPressedKeys (function) view source
Spring.GetPressedKeys() -> table<(string|integer),true>Returns
table<(string|integer),true>keys- where keys are keyCodes or key names
Spring.GetPressedScans (function) view source
Spring.GetPressedScans() -> table<(string|integer),true>Returns
table<(string|integer),true>scans- where keys are scanCodes or scan names
Spring.GetInvertQueueKey (function) view source
Spring.GetInvertQueueKey() -> number?Returns
number?queueKey
Spring.GetKeyCode (function) view source
Spring.GetKeyCode(string) -> integerParameters
stringkeySym
Returns
integerkeyCode
Spring.GetKeySymbol (function) view source
Spring.GetKeySymbol(integer) -> string, stringParameters
integerkeyCode
Returns
stringkeyCodeNamestringkeyCodeDefaultName- name when there are not aliases
Spring.GetScanSymbol (function) view source
Spring.GetScanSymbol(integer) -> string, stringParameters
integerscanCode
Returns
stringscanCodeNamestringscanCodeDefaultName- name when there are not aliases
Spring.GetKeyBindings (function) view source
Spring.GetKeyBindings(string?, string?) -> KeyBinding[]Parameters
Returns
Spring.GetActionHotKeys (function) view source
Spring.GetActionHotKeys(string) -> string[]?Parameters
stringactionName
Returns
string[]?hotkeys
Spring.GetGroupList (function) view source
Spring.GetGroupList() -> table<GroupID,integer>?Returns
table<GroupID,integer>?groupCounts
Spring.GetSelectedGroup (function) view source
Spring.GetSelectedGroup() -> GroupIDReturns
Spring.GetUnitGroup (function) view source
Spring.GetUnitGroup(UnitID) -> GroupID?Parameters
Returns
Spring.GetGroupUnits (function) view source
Spring.GetGroupUnits(GroupID) -> UnitID[]?Parameters
Returns
Spring.GetGroupUnitsSorted (function) view source
Spring.GetGroupUnitsSorted(GroupID) -> table<UnitDefID,UnitID[]>?Parameters
Returns
table<UnitDefID,UnitID[]>?unitsIDs
Spring.GetGroupUnitsCounts (function) view source
Spring.GetGroupUnitsCounts(GroupID) -> table<UnitDefID,integer>?Parameters
Returns
table<UnitDefID,integer>?unitsCounts
Spring.GetGroupUnitsCount (function) view source
Spring.GetGroupUnitsCount(GroupID) -> integer?Parameters
Returns
integer?groupSize
Spring.GetPlayerRoster (function) view source
Spring.GetPlayerRoster(integer?, boolean?) -> Roster[]?Parameters
integer?sortType- return unsorted if unspecified. Disabled = 0, Allies = 1, TeamID = 2, PlayerName = 3, PlayerCPU = 4, PlayerPing = 5
boolean?showPathingPlayers- (Default:
false)
Returns
Spring.GetPlayerTraffic (function) view source
Spring.GetPlayerTraffic(PlayerID, integer?) -> integerParameters
Returns
integertraffic
Spring.GetPlayerStatistics (function) view source
Spring.GetPlayerStatistics(PlayerID) -> integer?, integer, integer, integer, integerParameters
Returns
integer?mousePixels- nil when invalid playerID
integermouseClicksintegerkeyPressesintegernumCommandsintegerunitCommands
Spring.GetConfigParams (function) view source
Spring.GetConfigParams() -> Configuration[]Returns
Spring.GetConfigInt (function) view source
Spring.GetConfigInt(string, integer) -> integerParameters
Returns
Spring.GetConfigFloat (function) view source
Spring.GetConfigFloat(string, number) -> numberParameters
Returns
Spring.GetConfigString (function) view source
Spring.GetConfigString(string, string) -> stringParameters
Returns
Spring.GetLogSections (function) view source
Spring.GetLogSections() -> table<string,integer>Returns
table<string,integer>sections- where keys are names and loglevel are values. E.g.
{ “KeyBindings” = LOG.INFO, “Font” = LOG.INFO, “Sound” = LOG.WARNING, … }
Spring.GetAllGroundDecals (function) view source
Spring.GetAllGroundDecals() -> DecalID[]Returns
Spring.GetGroundDecalMiddlePos (function) view source
Spring.GetGroundDecalMiddlePos(DecalID) -> number?, numberParameters
Returns
Spring.GetGroundDecalQuadPos (function) view source
Spring.GetGroundDecalQuadPos(DecalID) -> number?, number, number, number, number, number, number, numberParameters
Returns
number?posTL.xnumberposTL.znumberposTR.xnumberposTR.znumberposBR.xnumberposBR.znumberposBL.xnumberposBL.z
Spring.GetGroundDecalSizeAndHeight (function) view source
Spring.GetGroundDecalSizeAndHeight(DecalID) -> number?, number, numberParameters
Returns
number?sizeXnumbersizeYnumberprojCubeHeight
Spring.GetGroundDecalRotation (function) view source
Spring.GetGroundDecalRotation(DecalID) -> number?Parameters
Returns
number?rotation- Rotation in radians.
Spring.GetGroundDecalTexture (function) view source
Spring.GetGroundDecalTexture(DecalID, boolean?) -> string?Parameters
Returns
string?texture
Spring.GetGroundDecalTextures (function) view source
See Spring.GetGroundDecalTexture
Spring.GetGroundDecalTextures(boolean?, boolean?) -> string[]Parameters
boolean?isMainTex- (Default:
nil). Ifnil- no filtering is done, iffalse- return normal/glow textures, iftrue- return main color textures. boolean?addFilenames- (Default:
false). Iftrueadd the texture filenames in the second table
Returns
string[]textureNames- All textures on the atlas and available for use in
SetGroundDecalTexture.
Spring.GetGroundDecalTextureParams (function) view source
Spring.GetGroundDecalTextureParams(DecalID) -> number?, numberParameters
Returns
number?texWrapDistance- If non-zero, sets the mode to repeat the texture along the left-right direction of the decal every texWrapFactor elmos.
numbertexTraveledDistance- 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.
Spring.GetGroundDecalAlpha (function) view source
Spring.GetGroundDecalAlpha(DecalID) -> number?, numberParameters
Returns
number?alpha- Between 0 and 1
numberalphaFalloff- Between 0 and 1, per second
Spring.GetGroundDecalNormal (function) view source
If all three equal 0, the decal follows the normals of ground at midpointSpring.GetGroundDecalNormal(DecalID) -> number?, number, numberParameters
Returns
Spring.GetGroundDecalTint (function) view source
Gets the tint of the ground decal. A color of (0.5, 0.5, 0.5, 0.5) is effectively no tintSpring.GetGroundDecalTint(DecalID) -> number?, number, number, numberParameters
Returns
Spring.GetGroundDecalMisc (function) view source
Returns less important parameters of a ground decalSpring.GetGroundDecalMisc(DecalID) -> number?, number, number, number, numberParameters
Returns
number?dotElimExpnumberrefHeightnumberminHeightnumbermaxHeightnumberforceHeightMode
Spring.GetGroundDecalCreationFrame (function) view source
Min can be not equal to max for “gradient” style decals, e.g. unit tracksSpring.GetGroundDecalCreationFrame(DecalID) -> number?, numberParameters
Returns
number?creationFrameMinnumbercreationFrameMax
Spring.GetGroundDecalOwner (function) view source
Spring.GetGroundDecalOwner(DecalID) -> integer?Parameters
Returns
integer?value- If owner is a unit, then this is
unitID, if owner is a feature it isfeatureID + MAX_UNITS. If there is no owner, thennil.
Spring.GetGroundDecalGlowParams (function) view source
Gets the glow parameters of the ground decal.Spring.GetGroundDecalGlowParams(DecalID) -> number?, numberParameters
Returns
number?glow- Between 0 and 1
numberglowFalloff- Between 0 and 1, per second
Spring.GetGroundDecalUserData (function) view source
Gets the user defined decal data.Spring.GetGroundDecalUserData(DecalID, integer) -> number?, number, number, numberParameters
Returns
Spring.GetGroundDecalType (function) view source
Spring.GetGroundDecalType(DecalID) -> ("explosion"|"plate"|"lua"|"track"|"unknown")?Parameters
Returns
("explosion"|"plate"|"lua"|"track"|"unknown")?type
Spring.GetSyncedGCInfo (function) view source
Spring.GetSyncedGCInfo(boolean?) -> integer?Parameters
boolean?collectGC- (Default:
false) collect before returning metric
Returns
integer?GC- values are expressed in Kbytes: #bytes/2^10
Spring.SolveNURBSCurve (function) view source
Spring.SolveNURBSCurve(integer, number[], number[], integer) -> number[]Parameters
integerdegree- Degree of the curve.
number[]controlPoints- Flat array of
x, y, z, weightquadruples; its length must be a multiple of 4. number[]knots- Knot vector.
integersegments- Number of segments to evaluate.
Returns
number[]points- Flat array of
x, y, ztriples along the curve.
Spring.IsCheatingEnabled (function) view source
Spring.IsCheatingEnabled() -> booleanReturns
booleanenabled
Spring.IsGodModeEnabled (function) view source
Spring.IsGodModeEnabled() -> booleanReturns
booleanenabled
Spring.IsDevLuaEnabled (function) view source
Spring.IsDevLuaEnabled() -> booleanReturns
booleanenabled
Spring.IsEditDefsEnabled (function) view source
Spring.IsEditDefsEnabled() -> booleanReturns
booleanenabled
Spring.IsNoCostEnabled (function) view source
Spring.IsNoCostEnabled() -> booleanReturns
booleanenabled
Spring.GetGlobalLos (function) view source
Spring.GetGlobalLos(TeamID?) -> booleanParameters
Returns
booleanenabled
Spring.AreHelperAIsEnabled (function) view source
Spring.AreHelperAIsEnabled() -> booleanReturns
booleanenabled
Spring.FixedAllies (function) view source
Spring.FixedAllies() -> boolean?Returns
boolean?enabled
Spring.IsGameOver (function) view source
Spring.IsGameOver() -> booleanReturns
booleanisGameOver
Spring.GetGameFrame (function) view source
Spring.GetGameFrame() -> integer, integerReturns
Spring.GetGameSeconds (function) view source
Spring.GetGameSeconds() -> numberReturns
numberseconds
Spring.GetTidal (function) view source
Spring.GetTidal() -> numberReturns
numbertidalStrength
Spring.GetWind (function) view source
Spring.GetWind() -> number, number, number, number, number, number, numberReturns
numberwindSpeedXnumberwindSpeedY- (Always 0)
numberwindSpeedZnumberwindStrength- (Length of windSpeed)
numberwindDirX- (Normalized windSpeed)
numberwindDirY- (Always 0)
numberwindDirZ
Spring.GetGameRulesParams (function) view source
Spring.GetGameRulesParams() -> RulesParamsReturns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetTeamRulesParams (function) view source
Spring.GetTeamRulesParams(TeamID) -> RulesParamsParameters
Returns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetPlayerRulesParams (function) view source
Spring.GetPlayerRulesParams(PlayerID) -> RulesParamsParameters
Returns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetUnitRulesParams (function) view source
Spring.GetUnitRulesParams(UnitID) -> RulesParamsParameters
Returns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetFeatureRulesParams (function) view source
Spring.GetFeatureRulesParams(FeatureID) -> RulesParamsParameters
Returns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetGameRulesParam (function) view source
Spring.GetGameRulesParam(string) -> (boolean|string|number)?Parameters
stringname- rules-parameter key (only this argument is read)
Returns
(boolean|string|number)?value
Spring.GetTeamRulesParam (function) view source
Spring.GetTeamRulesParam(TeamID, (string|number)) -> (string|number)?Parameters
Returns
(string|number)?value
Spring.GetPlayerRulesParam (function) view source
Spring.GetPlayerRulesParam(PlayerID, (string|number)) -> (string|number)?Parameters
Returns
(string|number)?value
Spring.GetUnitRulesParam (function) view source
Spring.GetUnitRulesParam(UnitID, (string|number)) -> (string|number)?Parameters
Returns
(string|number)?value
Spring.GetFeatureRulesParam (function) view source
Spring.GetFeatureRulesParam(FeatureID, (string|number)) -> (string|number)?Parameters
Returns
(string|number)?value
Spring.GetMapOption (function) view source
Spring.GetMapOption(string) -> stringParameters
stringmapOption
Returns
stringvalue- Value of
modOption.
Spring.GetMapOptions (function) view source
Spring.GetMapOptions() -> table<string,string>Returns
table<string,string>mapOptions- Table with options names as keys and values as values.
Spring.GetModOption (function) view source
Spring.GetModOption(string) -> stringParameters
stringmodOption
Returns
stringvalue- Value of
modOption.
Spring.GetModOptions (function) view source
Spring.GetModOptions() -> table<string,string>Returns
table<string,string>modOptions- Table with options names as keys and values as values.
Spring.GetHeadingFromVector (function) view source
Spring.GetHeadingFromVector(number, number) -> integerParameters
Returns
integerheading
Spring.GetVectorFromHeading (function) view source
Spring.GetVectorFromHeading(integer) -> number, numberParameters
integerheading
Returns
Spring.GetFacingFromHeading (function) view source
Spring.GetFacingFromHeading(integer) -> FacingIntegerParameters
integerheading
Returns
Spring.GetHeadingFromFacing (function) view source
Spring.GetHeadingFromFacing(FacingInteger) -> integerParameters
Returns
integerheading
Spring.GetSideData (function) view source
Spring.GetSideData(string) -> string?, string?Parameters
stringsideName- Case-insensitive side name.
Returns
Spring.GetSideData (function overload 1) view source
Spring.GetSideData(integer) -> string?, string?, string?Parameters
integersideID
Returns
Spring.GetSideData (function overload 2) view source
Spring.GetSideData() -> SideSpec[]Returns
Spring.GetGaiaTeamID (function) view source
Spring.GetGaiaTeamID() -> TeamIDReturns
Spring.GetAllyTeamStartBox (function) view source
Spring.GetAllyTeamStartBox(AllyTeamID) -> number?, number?, number?, number?Parameters
Returns
Spring.GetTeamStartPosition (function) view source
Spring.GetTeamStartPosition(TeamID) -> number?, number?, number?Parameters
Returns
Spring.GetMapStartPositions (function) view source
Spring.GetMapStartPositions() -> float3[]Returns
float3[]startPositions- array of positions indexed by teamID
Spring.GetAllyTeamList (function) view source
Spring.GetAllyTeamList() -> AllyTeamID[]Returns
Spring.GetTeamList (function) view source
Get all team IDs.Spring.GetTeamList(-1?) -> TeamID[]Parameters
-1?allyTeamID- (Default:
-1)
Returns
Spring.GetTeamList (function overload 1) view source
Get team IDs in a specific ally team.Spring.GetTeamList(AllyTeamID) -> TeamID[]?Parameters
AllyTeamIDallyTeamID- The ally team ID to filter teams by. A value less than 0 will return all teams.
Returns
Spring.GetPlayerList (function) view source
Spring.GetPlayerList(TeamID?, boolean?) -> PlayerID[]?Parameters
TeamID?teamID- (Default:
-1) to filter by when >= 0 boolean?active- (Default:
false) whether to filter only active teams
Returns
Spring.GetTeamInfo (function) view source
Spring.GetTeamInfo(TeamID, boolean?) -> TeamID?, PlayerID, number, number, string, AllyTeamID, number, table<string,string>Parameters
TeamIDteamIDboolean?getTeamKeys- (Default:
true) whether to return the customTeamKeys table
Returns
TeamID?teamIDPlayerIDleadernumberisDeadnumberhasAIstringsideAllyTeamIDallyTeamnumberincomeMultipliertable<string,string>customTeamKeys- when getTeamKeys is true, otherwise nil
Spring.GetTeamAllyTeamID (function) view source
Spring.GetTeamAllyTeamID(TeamID) -> AllyTeamID?Parameters
Returns
Spring.GetTeamResources (function) view source
Spring.GetTeamResources(TeamID, ResourceName) -> number?, number, number, number, number, number, number, number, numberParameters
Returns
number?currentLevel- The current amount of the resource that the team has in storage at this moment
numberstorage- The maximum storage capacity for the resource.
numberpull- The total amount of the resource that is being requested/used by all units and buildings per second, regardless of whether the resource is actually available.
numberincome- The total amount of the resource being generated per second from all sources (e.g., mines, generators, reclaiming, etc.).
numberexpense- The total amount of the resource actually being spent per second. This is the real consumption, which may be less than pull if there isn’t enough resource available.
numbershare- The fraction (0.0 to 1.0) of the storage that the team is sharing with allied teams. A value of 0.0 means 100% of storage is shared, while 1.0 means only any excess is shared.
numbersent- The total amount of the resource that has actually been sent to allies (via sharing or manual transfer).
numberreceived- The total amount of the resource that has actually been received from allies (via sharing or manual transfer).
numberexcess- The amount of the resource that was lost due to storage overflow (wasted).
Spring.GetTeamUnitStats (function) view source
Spring.GetTeamUnitStats(TeamID) -> integer?, integer, integer, integer, integer, integerParameters
Returns
integer?killedintegerdiedintegercapturedByintegercapturedFromintegerreceivedintegersent
Spring.GetTeamResourceStats (function) view source
Spring.GetTeamResourceStats(TeamID, ResourceName) -> number?, number, number, number, numberParameters
Returns
Spring.GetTeamDamageStats (function) view source
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.
Spring.GetTeamDamageStats(TeamID) -> number, numberParameters
Returns
numberdamageDealtnumberdamageReceived
Spring.GetTeamStatsHistory (function) view source
Get the number of history entries.Spring.GetTeamStatsHistory(TeamID) -> integer?Parameters
Returns
integer?historyCount- The number of history entries, or
nilif unable to resolve team.
Spring.GetTeamStatsHistory (function overload 1) view source
Get team stats history.Spring.GetTeamStatsHistory(TeamID, integer, integer?) -> TeamStats[]Parameters
TeamIDteamIDintegerstartIndexinteger?endIndex- (Default: startIndex)
Returns
TeamStats[]teamStatsHistory- The team stats history, or
nilif unable to resolve team.
Spring.GetTeamLuaAI (function) view source
Spring.GetTeamLuaAI(TeamID) -> stringParameters
Returns
Spring.GetTeamMaxUnits (function) view source
Returns a team’s unit cap.
Also returns the current unit count for readable teams as the 2nd value.
Spring.GetTeamMaxUnits(TeamID) -> integer, integer?Parameters
Returns
integermaxUnitsinteger?currentUnits
Spring.GetPlayerInfo (function) view source
Spring.GetPlayerInfo(PlayerID, boolean?) -> string, boolean, boolean, TeamID, AllyTeamID, number, number, string, integer, boolean, { [string]: string }, booleanParameters
PlayerIDplayerIDboolean?getPlayerOpts- (Default:
true) whether to return custom player options
Returns
stringnamebooleanactivebooleanspectatorTeamIDteamIDAllyTeamIDallyTeamIDnumberpingTimenumbercpuUsagestringcountryintegerrankbooleanhasSkirmishAIsInTeam{ [string]: string }playerOpts- when playerOpts is true
booleandesynced
Spring.GetPlayerControlledUnit (function) view source
Returns unit controlled by player on FPS modeSpring.GetPlayerControlledUnit(PlayerID) -> UnitID?Parameters
Returns
Spring.GetAIInfo (function) view source
Spring.GetAIInfo(TeamID) -> integer, string, PlayerID, string, string, table<string,string>Parameters
Returns
integerskirmishAIIDstringnamePlayerIDhostingPlayerIDstringshortName- When synced
“SYNCED_NOSHORTNAME”, otherwise the AI shortname or“UNKNOWN”. stringversion- When synced
“SYNCED_NOVERSION”, otherwise the AI version or“UNKNOWN”. table<string,string>options
Spring.GetAllyTeamInfo (function) view source
Spring.GetAllyTeamInfo(AllyTeamID) -> table<string,string>?Parameters
Returns
Spring.AreTeamsAllied (function) view source
Spring.AreTeamsAllied(TeamID, TeamID) -> boolean?Parameters
Returns
Spring.ArePlayersAllied (function) view source
Spring.ArePlayersAllied(PlayerID, PlayerID) -> boolean?Parameters
Returns
Spring.GetAllUnits (function) view source
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.
See UnsyncedRead.GetVisibleUnits
Spring.GetAllUnits() -> UnitID[]Returns
Spring.GetTeamUnits (function) view source
Spring.GetTeamUnits(TeamID) -> UnitID[]?Parameters
Returns
Spring.GetTeamUnitsSorted (function) view source
Spring.GetTeamUnitsSorted(TeamID) -> table<UnitDefID,UnitID[]>Parameters
Returns
table<UnitDefID,UnitID[]>unitsByDef- A table where keys are unitDefIDs and values are arrays of unitIDs
Spring.GetTeamUnitsCounts (function) view source
Spring.GetTeamUnitsCounts(TeamID) -> table<UnitDefID,integer>?Parameters
Returns
table<UnitDefID,integer>?countByUnit- A table where keys are unitDefIDs and values are counts.
Spring.GetTeamUnitsByDefs (function) view source
Spring.GetTeamUnitsByDefs(TeamID, (UnitDefID|UnitDefID[])) -> UnitID[]?Parameters
Returns
Spring.GetTeamUnitDefCount (function) view source
Spring.GetTeamUnitDefCount(TeamID, UnitDefID) -> integer?Parameters
Returns
integer?count
Spring.GetTeamUnitCount (function) view source
Spring.GetTeamUnitCount(TeamID) -> integer?Parameters
Returns
integer?count
Spring.GetUnitsInRectangle (function) view source
Spring.GetUnitsInRectangle(number, number, number, number, integer?) -> UnitID[]Parameters
numberxminnumberzminnumberxmaxnumberzmaxinteger?allegiance
Returns
Spring.GetUnitsInBox (function) view source
Spring.GetUnitsInBox(number, number, number, number, number, number, integer?) -> UnitID[]Parameters
Returns
Spring.GetUnitsInCylinder (function) view source
Spring.GetUnitsInCylinder(number, number, number, TeamID?) -> UnitID[]Parameters
Returns
Spring.GetUnitsInSphere (function) view source
Spring.GetUnitsInSphere(number, number, number, number) -> UnitID[]Parameters
Returns
Spring.GetUnitsInPlanes (function) view source
Plane normals point towards accepted space, so the acceptance criteria for each plane is:
radius = unit radius
px, py, pz = unit position
[(nx * px) + (ny * py) + (nz * pz) + (d - radius)] <= 0
Spring.GetUnitsInPlanes(Plane[], integer?) -> UnitID[]Parameters
Plane[]planesinteger?allegiance
Returns
Spring.GetUnitArrayCentroid (function) view source
Returns the centroid of an array of units
Returns nil for an empty array
Spring.GetUnitArrayCentroid(table) -> number, number, numberParameters
tableunits- { unitID, unitID, … }
Returns
Spring.GetUnitMapCentroid (function) view source
Returns the centroid of a map of units
Returns nil for an empty map
Spring.GetUnitMapCentroid(table) -> number, number, numberParameters
tableunits- { [unitID] = true, [unitID] = true, … }
Returns
Spring.GetUnitNearestAlly (function) view source
Spring.GetUnitNearestAlly(UnitID, number?) -> UnitID?Parameters
Returns
Spring.GetUnitNearestEnemy (function) view source
Spring.GetUnitNearestEnemy(UnitID, number?, boolean?, boolean?, boolean?) -> UnitID?Parameters
UnitIDunitIDnumber?range- (Default:
1.0e9) range of the search. boolean?useLOS- (Default:
true) requires LOS/radar visibility of allied team. boolean?sphereDistTest- (Default:
false) determines if using spherical(3D, includes target radius) or cylindrical(2D) search. boolean?checkSightDist- (Default:
false) determine if during filter process, if candidate distance to be within candidate LOS radius.
Returns
Spring.GetClosestEnemyUnit (function) view source
Returns the enemy unit closest to a position.Spring.GetClosestEnemyUnit(number, number, number, number?, AllyTeamID?, boolean?, boolean?, boolean?) -> UnitID?Parameters
numberx- x coordinate of query position
numbery- y coordinate of query position
numberz- z coordinate of query position
number?range- (Default:
1.0e9) AllyTeamID?allyTeamID- whose enemies to consider, always own in non-full-read contexts
boolean?useLOS- (Default: true) requires LOS/radar visibility or not. Always true in non-full-read contexts
boolean?sphereDistTest- (Default:
false) For non-LOS mode only. Determines if using spherical(3D, includes target radius) or cylindrical(2D) search boolean?checkSightDist- (Default:
false) For non-LOS mode only. Determine if during filter process, if candidate distance to be within candidate LOS radius
Returns
Spring.GetFeaturesInRectangle (function) view source
Spring.GetFeaturesInRectangle(number, number, number, number) -> FeatureID[]Parameters
Returns
Spring.GetFeaturesInSphere (function) view source
Spring.GetFeaturesInSphere(number, number, number, number) -> FeatureID[]Parameters
Returns
Spring.GetFeaturesInCylinder (function) view source
Spring.GetFeaturesInCylinder(number, number, number, integer?) -> FeatureID[]Parameters
numberxnumberznumberradiusinteger?allegiance
Returns
Spring.GetAllProjectiles (function) view source
Spring.GetAllProjectiles(boolean?, boolean?) -> ProjectileID[]Parameters
boolean?excludeWeaponProjectiles- (Default:
false) boolean?excludePieceProjectiles- (Default:
false)
Returns
Spring.GetProjectilesInRectangle (function) view source
Spring.GetProjectilesInRectangle(number, number, number, number, boolean?, boolean?) -> ProjectileID[]Parameters
numberxminnumberzminnumberxmaxnumberzmaxboolean?excludeWeaponProjectiles- (Default:
false) boolean?excludePieceProjectiles- (Default:
false)
Returns
Spring.GetProjectilesInSphere (function) view source
Spring.GetProjectilesInSphere(number, number, number, number, boolean?, boolean?) -> ProjectileID[]Parameters
numberxnumberynumberznumberradiusboolean?excludeWeaponProjectiles- (Default: false)
boolean?excludePieceProjectiles- (Default: false)
Returns
Spring.ValidUnitID (function) view source
Get whether a unitID is valid
Dead units are not valid.
Spring.ValidUnitID(UnitID) -> booleanParameters
Returns
Spring.GetUnitStates (function) view source
Gets various states for the given unit.Spring.GetUnitStates(UnitID, false, true, true) -> number, number, number, boolean, boolean, boolean, boolean, boolean?, boolean?Parameters
UnitIDunitIDfalseretTable- Return a table instead of multiple values. Defaults to
true truebinState- Include binary state (activated, etc)? Defaults to
retTable trueamtState- Include Air/Hover MoveType state if available? Defaults to
retTable
Returns
numberfireStatenumbermoveStatenumberautorepairlevel-1if not setbooleanrepeatbooleancloakbooleanactivebooleantrajectoryboolean?autoLandboolean?loopbackAttack
Spring.GetUnitArmored (function) view source
Spring.GetUnitArmored(UnitID) -> boolean?, numberParameters
Returns
boolean?armorednumberarmorMultiple
Spring.GetUnitIsActive (function) view source
Spring.GetUnitIsActive(UnitID) -> boolean?Parameters
Returns
boolean?isActive
Spring.GetUnitIsCloaked (function) view source
Spring.GetUnitIsCloaked(UnitID) -> boolean?Parameters
Returns
boolean?isCloaked
Spring.GetUnitSeismicSignature (function) view source
Spring.GetUnitSeismicSignature(UnitID) -> number?Parameters
Returns
number?seismicSignature
Spring.GetUnitLeavesGhost (function) view source
Get whether unit leaves static radar ghosts.Spring.GetUnitLeavesGhost() -> number?Returns
Spring.GetUnitSelfDTime (function) view source
Spring.GetUnitSelfDTime(UnitID) -> integer?Parameters
Returns
integer?selfDTime
Spring.GetUnitStockpile (function) view source
Spring.GetUnitStockpile(UnitID) -> integer?, integer?, number?Parameters
Returns
integer?numStockpiledinteger?numStockpileQuednumber?buildPercent
Spring.GetUnitSensorRadius (function) view source
Spring.GetUnitSensorRadius(UnitID, string) -> integer?Parameters
Returns
integer?radius
Spring.GetUnitPosErrorParams (function) view source
Spring.GetUnitPosErrorParams(UnitID, AllyTeamID?) -> number?, number, number, number, number, number, integer, booleanParameters
Returns
number?posErrorVectorXnumberposErrorVectorYnumberposErrorVectorZnumberposErrorDeltaXnumberposErrorDeltaYnumberposErrorDeltaZintegernextPosErrorUpdatebooleanposErrorBit
Spring.GetUnitTooltip (function) view source
Spring.GetUnitTooltip(UnitID) -> string?Parameters
Returns
Spring.GetUnitDefID (function) view source
Spring.GetUnitDefID(UnitID) -> UnitDefID?Parameters
Returns
Spring.GetUnitMoveDefID (function) view source
Returns a numerical movedef ID and its name. For things that have no movedef, returnsfalse (to tell them apart from unreadable
units while keeping the if not x pattern usable). For now, the
numerical ID is not too useful so you can use the name, but this
may get deprecated at some point.Spring.GetUnitMoveDefID(UnitID) -> (integer|false)?, string?Parameters
Returns
(integer|false)?moveDefIDstring?moveDefName
Spring.GetUnitTeam (function) view source
Spring.GetUnitTeam(UnitID) -> TeamID?Parameters
Returns
Spring.GetUnitAllyTeam (function) view source
Spring.GetUnitAllyTeam(UnitID) -> AllyTeamID?Parameters
Returns
Spring.GetUnitNeutral (function) view source
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.
Spring.GetUnitNeutral(UnitID) -> boolean?Parameters
Returns
Spring.GetUnitHealth (function) view source
Spring.GetUnitHealth(UnitID) -> number?, number, number, number, numberParameters
Returns
number?healthnumbermaxHealthnumberparalyzeDamagenumbercaptureProgressnumberbuildProgress- between 0.0-1.0
Spring.GetUnitIsDead (function) view source
Spring.GetUnitIsDead(UnitID) -> boolean?Parameters
Returns
Spring.GetUnitIsStunned (function) view source
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.
Spring.GetUnitIsStunned(UnitID) -> boolean?, boolean, booleanParameters
Returns
boolean?stunnedOrBuilt- unit is disabled
booleanstunned- unit is either stunned via EMP or being transported by a non-fireplatform
booleanbeingBuilt- unit is under construction
Spring.GetUnitIsBeingBuilt (function) view source
Spring.GetUnitIsBeingBuilt(UnitID) -> boolean, numberParameters
Returns
booleanbeingBuiltnumberbuildProgress
Spring.GetUnitResources (function) view source
Spring.GetUnitResources(UnitID) -> number?, number, number, numberParameters
Returns
number?metalMakenumbermetalUsenumberenergyMakenumberenergyUse
Spring.GetUnitStorage (function) view source
Spring.GetUnitStorage(UnitID) -> number, numberParameters
Returns
numbermetalStorage- Unit’s metal storage
numberenergyStorage- Unit’s energy storage
Spring.GetUnitCosts (function) view source
Spring.GetUnitCosts(UnitID) -> number?, number, numberParameters
Returns
number?buildTimenumbermetalCostnumberenergyCost
Spring.GetUnitCostTable (function) view source
Spring.GetUnitCostTable(UnitID) -> ResourceCost?, number?Parameters
Returns
ResourceCost?cost- The cost of the unit, or
nilif invalid. number?buildTime- The build time the unit, or
nilif invalid.
Spring.GetUnitMetalExtraction (function) view source
Spring.GetUnitMetalExtraction(UnitID) -> number?Parameters
Returns
number?metalExtraction
Spring.GetUnitExperience (function) view source
Spring.GetUnitExperience(UnitID) -> number, numberParameters
Returns
Spring.GetUnitHeight (function) view source
Spring.GetUnitHeight(UnitID) -> number?Parameters
Returns
Spring.GetUnitRadius (function) view source
Spring.GetUnitRadius(UnitID) -> number?Parameters
Returns
Spring.GetUnitBuildeeRadius (function) view source
Gets the unit’s radius for when targeted by build, repair, reclaim-type commands.Spring.GetUnitBuildeeRadius(UnitID) -> number?Parameters
Returns
Spring.GetUnitMass (function) view source
Spring.GetUnitMass(UnitID) -> number?Parameters
Returns
Spring.GetUnitPosition (function) view source
Spring.GetUnitPosition(UnitID, boolean?, boolean?) -> number?, number, number, number?, number, number, number?, number, numberParameters
UnitIDunitIDboolean?midPos- (Default:
false) return midpoint as well boolean?aimPos- (Default:
false) return aimpoint as well
Returns
number?basePointXnumberbasePointYnumberbasePointZnumber?midPointXnumbermidPointYnumbermidPointZnumber?aimPointXnumberaimPointYnumberaimPointZ
Spring.GetUnitBasePosition (function) view source
The same as Spring.GetUnitPosition, but without the optional midpoint calculations.Spring.GetUnitBasePosition(UnitID) -> number?, number?, number?Parameters
Returns
Spring.GetUnitVectors (function) view source
Spring.GetUnitVectors(UnitID) -> float3?, float3, float3Parameters
Returns
Spring.GetUnitRotation (function) view source
Note: PYR orderSpring.GetUnitRotation(UnitID) -> number, number, numberParameters
Returns
Spring.GetUnitDirection (function) view source
Spring.GetUnitDirection(UnitID) -> number, number, number, number, number, number, number, number, numberParameters
Returns
numberfrontDirXnumberfrontDirYnumberfrontDirZnumberrightDirXnumberrightDirYnumberrightDirZnumberupDirXnumberupDirYnumberupDirZ
Spring.GetUnitHeading (function) view source
Spring.GetUnitHeading(UnitID, boolean?) -> numberParameters
UnitIDunitIDboolean?convertToRadians- (Default:
false)
Returns
numberheading
Spring.GetUnitVelocity (function) view source
Spring.GetUnitVelocity(UnitID) -> nilParameters
Spring.GetUnitBuildFacing (function) view source
Spring.GetUnitBuildFacing(UnitID) -> FacingInteger?Parameters
Returns
FacingInteger?buildFacing- facing of footprint,
0-3
Spring.GetUnitIsBuilding (function) view source
Checks whether a unit is currently building another (NOT for checking if it’s a structure)
Works for both mobile builders and factories.
Spring.GetUnitIsBuilding(UnitID) -> UnitID?Parameters
Returns
Spring.GetUnitWorkerTask (function) view source
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).
Spring.GetUnitWorkerTask(UnitID) -> integer, integerParameters
Returns
Spring.GetUnitEffectiveBuildRange (function) view source
Useful for setting move goals manually.Spring.GetUnitEffectiveBuildRange(UnitID, UnitDefID?) -> numberParameters
Returns
numbereffectiveBuildRange- counted to the center of prospective buildee; buildRange if buildee nil
Spring.GetUnitCurrentBuildPower (function) view source
Spring.GetUnitCurrentBuildPower(UnitID) -> number?Parameters
Returns
number?buildPowernilif the unit is neither a builder nor a factory.
Spring.GetUnitHarvestStorage (function) view source
Get a unit’s carried resources
Checks resources being carried internally by the unit.
Spring.GetUnitHarvestStorage(UnitID) -> number, number, number, numberParameters
Returns
numberstoredMetalnumbermaxStoredMetalnumberstoredEnergynumbermaxStoredEnergy
Spring.GetUnitBuildParams (function) view source
Get the build range of an allied builder unit.Spring.GetUnitBuildParams(UnitID, ("buildRange"|"buildDistance")) -> number?Parameters
Returns
number?buildDistance- The builder’s build range, or
nilifunitIDis not an allied builder unit.
Spring.GetUnitBuildParams (function overload 1) view source
Get whether an allied builder unit’s range tests are 3D.Spring.GetUnitBuildParams(UnitID, "buildRange3D") -> boolean?Parameters
Returns
boolean?buildRange3Dtrueif range tests use spheres,falseif they use infinite cylinders, ornilifunitIDis not an allied builder unit.
Spring.GetUnitInBuildStance (function) view source
Is builder in build stance
Checks if a builder is in build stance, i.e. can create nanoframes. Returns nil for non-builders.
Spring.GetUnitInBuildStance(UnitID) -> booleanParameters
Returns
booleaninBuildStance
Spring.GetUnitNanoPieces (function) view source
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.
Spring.GetUnitNanoPieces(UnitID) -> integer[]Parameters
Returns
integer[]pieceArray
Spring.GetUnitTransporter (function) view source
Get the transport carrying the unit
Returns the unit ID of the transport, if any. Returns nil if the unit is not being transported.
Spring.GetUnitTransporter(UnitID) -> UnitID?Parameters
Returns
Spring.GetUnitIsTransporting (function) view source
Get units being transportedSpring.GetUnitIsTransporting(UnitID) -> UnitID[]?Parameters
Returns
UnitID[]?transporteeArray- An array of unitIDs being transported by this unit, or
nilif not a transport.
Spring.GetUnitShieldState (function) view source
Spring.GetUnitShieldState(UnitID, integer?) -> integer, numberParameters
Returns
integerisEnabled- Warning, number not boolean. 0 or 1
numbercurrentPower
Spring.GetUnitFlanking (function) view source
When called without a key, returns every value. When called with one of“mode”, “moveFactor”, “minDamage” or “maxDamage” returns just that
single number, and with “dir” returns just dirX, dirY, dirZ.Spring.GetUnitFlanking(UnitID) -> number, number, number, number, number, number, number, numberParameters
Returns
numbermodenumbermoveFactornumberminDamagenumbermaxDamagenumberdirXnumberdirYnumberdirZnumbermobility- The amount of mobility the unit has collected up to now.
Spring.GetUnitMaxRange (function) view source
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.
Spring.GetUnitMaxRange(UnitID) -> numberParameters
Returns
numbermaxRange
Spring.GetUnitWeaponState (function) view source
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), “ttl” (number of seconds a projectile should live) “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.
Spring.GetUnitWeaponState(UnitID, integer, string?) -> numberParameters
Returns
numberstateValue
Spring.GetUnitWeaponDamages (function) view source
Spring.GetUnitWeaponDamages(UnitID) -> nilParameters
Spring.GetUnitWeaponVectors (function) view source
Spring.GetUnitWeaponVectors(UnitID, integer) -> number?, number, number, number, number, numberParameters
Returns
Spring.GetUnitWeaponTryTarget (function) view source
Spring.GetUnitWeaponTryTarget(UnitID, integer, UnitID) -> booleanParameters
Returns
booleancanTarget
Spring.GetUnitWeaponTryTarget (function overload 1) view source
Spring.GetUnitWeaponTryTarget(UnitID, integer, number, number, number) -> booleanParameters
Returns
booleancanTarget
Spring.GetUnitWeaponTestTarget (function) view source
Spring.GetUnitWeaponTestTarget(UnitID, integer, UnitID) -> booleanParameters
UnitIDunitIDintegerweaponID- weapon number (1-based Lua index)
UnitIDtargetUnitID- enemy unit to test (when fewer than five arguments)
Returns
booleanvalidTarget
Spring.GetUnitWeaponTestTarget (function overload 1) view source
Spring.GetUnitWeaponTestTarget(UnitID, integer, number, number, number) -> booleanParameters
UnitIDunitIDintegerweaponID- weapon number (1-based Lua index)
numbertargetX- world X to test (with
targetY,targetZ; used when at least five arguments are passed) numbertargetYnumbertargetZ
Returns
booleanvalidTarget
Spring.GetUnitWeaponTestRange (function) view source
Spring.GetUnitWeaponTestRange(UnitID, integer, UnitID) -> booleanParameters
Returns
booleaninRange
Spring.GetUnitWeaponTestRange (function overload 1) view source
Spring.GetUnitWeaponTestRange(UnitID, integer, number, number, number) -> booleanParameters
Returns
booleaninRange
Spring.GetUnitWeaponHaveFreeLineOfFire (function) view source
Spring.GetUnitWeaponHaveFreeLineOfFire(UnitID, integer, UnitID) -> booleanParameters
Returns
booleanhaveFreeLineOfFire
Spring.GetUnitWeaponHaveFreeLineOfFire (function overload 1) view source
Spring.GetUnitWeaponHaveFreeLineOfFire(UnitID, integer, number, number, number) -> booleanParameters
Returns
booleanhaveFreeLineOfFire
Spring.GetUnitWeaponHaveFreeLineOfFire (function overload 2) view source
Spring.GetUnitWeaponHaveFreeLineOfFire(UnitID, integer, number, number, number, UnitID) -> booleanParameters
Returns
booleanhaveFreeLineOfFire
Spring.GetUnitWeaponHaveFreeLineOfFire (function overload 3) view source
Spring.GetUnitWeaponHaveFreeLineOfFire(UnitID, integer, number, number, number, number, number, number) -> booleanParameters
UnitIDunitIDintegerweaponNumnumbersrcPosXnumbersrcPosYnumbersrcPosZnumbertgtPosXnumbertgtPosYnumbertgtPosZ
Returns
booleanhaveFreeLineOfFire
Spring.GetUnitWeaponCanFire (function) view source
Spring.GetUnitWeaponCanFire(UnitID, integer, boolean?, boolean?, boolean?) -> booleanParameters
UnitIDunitIDintegerweaponNumboolean?ignoreAngleGoodboolean?ignoreTargetTypeboolean?ignoreRequestedDir
Returns
booleancanFire
Spring.GetUnitWeaponTarget (function) view source
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.
Spring.GetUnitWeaponTarget(UnitID, integer) -> 0, booleanParameters
Returns
0TargetType- none
booleanisUserTarget
Spring.GetUnitWeaponTarget (function overload 1) view source
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.
Spring.GetUnitWeaponTarget(UnitID, integer) -> 1, boolean, UnitIDParameters
Returns
1TargetType- unit
booleanisUserTargetUnitIDtargetUnitID
Spring.GetUnitWeaponTarget (function overload 2) view source
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.
Spring.GetUnitWeaponTarget(UnitID, integer) -> 2, boolean, float3Parameters
Returns
2TargetType- position
booleanisUserTargetfloat3targetPosition
Spring.GetUnitWeaponTarget (function overload 3) view source
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.
Spring.GetUnitWeaponTarget(UnitID, integer) -> 3, boolean, ProjectileIDParameters
Returns
3TargetType- projectileID
booleanisUserTargetProjectileIDtargetProjectileId
Spring.GetUnitEstimatedPath (function) view source
Spring.GetUnitEstimatedPath(UnitID) -> nilParameters
Spring.GetUnitLastAttacker (function) view source
Spring.GetUnitLastAttacker(UnitID) -> UnitID?Parameters
Returns
UnitID?attackerUnitIDnilif the unit has no last attacker or the attacker is not visible.
Spring.GetUnitLastAttackedPiece (function) view source
Spring.GetUnitLastAttackedPiece(UnitID) -> nilParameters
Spring.GetUnitCollisionVolumeData (function) view source
Spring.GetUnitCollisionVolumeData(UnitID) -> nilParameters
Spring.GetUnitPieceCollisionVolumeData (function) view source
Spring.GetUnitPieceCollisionVolumeData(UnitID, integer) -> number?, number?, number?, number?, number?, number?, integer?, integer?, integer?, boolean?Parameters
UnitIDunitIDintegerpieceIndex- 1-based local-model piece index
Returns
number?scaleXnumber?scaleYnumber?scaleZnumber?offsetXnumber?offsetYnumber?offsetZinteger?volumeTypeinteger?testTypeinteger?primaryAxisboolean?disabled- Returns no values when
unitIDis invalid or not in line of sight, or whenpieceIndexis invalid.
Spring.GetUnitSeparation (function) view source
Spring.GetUnitSeparation(UnitID, UnitID, boolean?, boolean?) -> number?Parameters
UnitIDunitID1UnitIDunitID2boolean?direction- (Default:
false) to subtract from, default unitID1 - unitID2 boolean?subtractRadii- (Default:
false) whether units radii should be subtracted from the total
Returns
Spring.GetUnitFeatureSeparation (function) view source
Spring.GetUnitFeatureSeparation(UnitID, FeatureID, boolean?) -> numberParameters
UnitIDunitIDFeatureIDfeatureIDboolean?flat- (Default:
false) if true, XZ (2D) distance; otherwise 3D distance
Returns
numberdistance
Spring.GetUnitDefDimensions (function) view source
Spring.GetUnitDefDimensions(UnitDefID) -> UnitDefDimensions?Parameters
Returns
Spring.GetCEGID (function) view source
Spring.GetCEGID() -> integerReturns
integercegID
Spring.GetUnitBlocking (function) view source
Spring.GetUnitBlocking(UnitID) -> boolean?, boolean, boolean, boolean, boolean, boolean, booleanParameters
Returns
boolean?isBlockingbooleanisSolidObjectCollidablebooleanisProjectileCollidablebooleanisRaySegmentCollidablebooleancrushablebooleanblockEnemyPushingbooleanblockHeightChanges
Spring.GetUnitMoveTypeData (function) view source
Spring.GetUnitMoveTypeData(UnitID) -> nilParameters
Spring.GetUnitMaxWantedSpeed (function) view source
Spring.GetUnitMaxWantedSpeed(UnitID) -> number?Parameters
Returns
number?maxWantedSpeed- Same as
maxWantedSpeedin Spring.GetUnitMoveTypeData.
Spring.GetUnitCurrentCommand (function) view source
Get a command from a units command queue.
For factories, this function uses the command queue automatically assigned to new units.
See Spring.GetFactoryCommands for getting factory build queue commands
Spring.GetUnitCurrentCommand(UnitID, integer?) -> CMD?, (integer|CommandOptionBit)?, integer?, number? ...Parameters
UnitIDunitID- unitID when invalid this function returns nil.
integer?cmdIndex- (Default:
0) Command index to get. If negative will count from the end of the queue, e.g. -1 will be the last command.
Returns
Spring.GetUnitCommands (function) view source
Get the commands for a unit.
Same as Spring.GetCommandQueue
Spring.GetUnitCommands(UnitID, integer) -> Command[]Parameters
Returns
Spring.GetUnitCommands (function overload 1) view source
Get the count of commands for a unit.Deprecated: This overload is deprecated, use Spring.GetUnitCommandCount(unitId) instead.
Spring.GetUnitCommands(UnitID, 0) -> integerParameters
Returns
integercmdCount- The number of commands in the unit queue.
Spring.GetFactoryCommands (function) view source
Get the number or list of commands for a factorySee Spring.GetFactoryCommandCount to get the count of commands., Spring.GetFactoryCounts to get command counts grouped by cmdID.
Spring.GetFactoryCommands(UnitID, integer) -> Command[]Parameters
Returns
Spring.GetFactoryCommands (function overload 1) view source
Get the count of commands for a factory.Deprecated: This overload is deprecated, use Spring.GetFactoryCommandCount(unitId) instead.
See Spring.GetFactoryCommandCount for replacement function.
Spring.GetFactoryCommands(UnitID, 0) -> integerParameters
Returns
integercmdCount- The number of commands in the factory queue.
Spring.GetUnitCommandCount (function) view source
Get the number of commands in a unit’s queue.Spring.GetUnitCommandCount(UnitID) -> integerParameters
Returns
integercmdCount- The number of commands in the unit’s queue.
Spring.GetFactoryCommandCount (function) view source
Get the number of commands in a factory queue.See Spring.GetFactoryCommands to get the factory commands., Spring.GetFactoryCounts to get command counts grouped by cmdID.
Spring.GetFactoryCommandCount(UnitID) -> integerParameters
Returns
integercmdCount- The number of commands in the factory queue.
Spring.GetFactoryBuggerOff (function) view source
Spring.GetFactoryBuggerOff(UnitID) -> boolean?, number, number, number, boolean, booleanParameters
Returns
boolean?boPerformnilif the unit does not exist or is not a factory.numberboOffsetnumberboRadiusnumberboRelHeadingbooleanboShericalbooleanboForced
Spring.GetFactoryCounts (function) view source
Gets the build queue of a factorySpring.GetFactoryCounts(UnitID, integer?, boolean?) -> table<number,number>?Parameters
UnitIDunitIDinteger?count- (Default:
-1) Number of commands to retrieve,-1for all. boolean?addCmds- (Default:
false) Retrieve commands other than buildunit
Returns
table<number,number>?counts- Build queue count by
unitDefIDor-cmdID, ornilif unit is not found.
Spring.GetCommandQueue (function) view source
Get the commands for a unit.
Same as Spring.GetUnitCommands
Deprecated: Use Spring.GetUnitCommands instead.
Spring.GetCommandQueue(UnitID, integer) -> Command[]Parameters
UnitIDunitIDintegercount- Number of commands to return,
-1returns all commands,0returns command count.
Returns
Spring.GetCommandQueue (function overload 1) view source
Get the count of commands for a unit.
Same as Spring.GetUnitCommands
Deprecated: Use Spring.GetUnitCommandCount instead.
Spring.GetCommandQueue(UnitID, 0) -> integerParameters
Returns
integercmdCount- The number of commands in the unit queue.
Spring.GetFullBuildQueue (function) view source
Returns the build queueSpring.GetFullBuildQueue(UnitID) -> table<UnitDefID,integer>?Parameters
Returns
table<UnitDefID,integer>?buildqueue- indexed by unitDefID with count values
Spring.GetRealBuildQueue (function) view source
Returns the build queue cleaned of things the unit can’t build itselfSpring.GetRealBuildQueue(UnitID) -> table<UnitDefID,integer>?Parameters
Returns
table<UnitDefID,integer>?buildqueue- indexed by unitDefID with count values
Spring.GetUnitCmdDescs (function) view source
Spring.GetUnitCmdDescs(UnitID) -> nilParameters
Spring.FindUnitCmdDesc (function) view source
Spring.FindUnitCmdDesc(UnitID, integer) -> integer?Parameters
Returns
Spring.ValidFeatureID (function) view source
Spring.ValidFeatureID(FeatureID) -> booleanParameters
Returns
Spring.GetAllFeatures (function) view source
Spring.GetAllFeatures() -> FeatureID[]Returns
Spring.GetFeatureDefID (function) view source
Spring.GetFeatureDefID(FeatureID) -> FeatureDefID?Parameters
Returns
Spring.GetFeatureTeam (function) view source
Spring.GetFeatureTeam(FeatureID) -> TeamID?Parameters
Returns
Spring.GetFeatureAllyTeam (function) view source
Spring.GetFeatureAllyTeam(FeatureID) -> AllyTeamID?Parameters
Returns
Spring.GetFeatureHealth (function) view source
Spring.GetFeatureHealth(FeatureID) -> number?, number, numberParameters
Returns
number?healthnumberdefHealthnumberresurrectProgress
Spring.GetFeatureHeight (function) view source
Spring.GetFeatureHeight(FeatureID) -> number?Parameters
Returns
Spring.GetFeatureRadius (function) view source
Spring.GetFeatureRadius(FeatureID) -> number?Parameters
Returns
Spring.GetFeatureMass (function) view source
Spring.GetFeatureMass(FeatureID) -> number?Parameters
Returns
Spring.GetFeaturePosition (function) view source
Spring.GetFeaturePosition(FeatureID) -> number?, number?, number?Parameters
Returns
Spring.GetFeatureSeparation (function) view source
Spring.GetFeatureSeparation(FeatureID, FeatureID, boolean?) -> number?Parameters
FeatureIDfeatureID1FeatureIDfeatureID2boolean?direction- (Default:
false) to subtract from, default featureID1 - featureID2
Returns
Spring.GetFeatureRotation (function) view source
Note: PYR orderSpring.GetFeatureRotation(FeatureID) -> number?, number?, number?Parameters
Returns
Spring.GetFeatureDirection (function) view source
Spring.GetFeatureDirection(FeatureID) -> number?, number?, number?, number?, number?, number?, number?, number?, number?Parameters
Returns
number?frontDirXnumber?frontDirYnumber?frontDirZnumber?rightDirXnumber?rightDirYnumber?rightDirZnumber?upDirXnumber?upDirYnumber?upDirZ
Spring.GetFeatureVelocity (function) view source
Returns nil if no feature found with ID.Spring.GetFeatureVelocity(FeatureID) -> number?, number?, number?, number?Parameters
Returns
Spring.GetFeatureHeading (function) view source
Spring.GetFeatureHeading(FeatureID) -> number?Parameters
Returns
number?heading
Spring.GetFeatureResources (function) view source
Spring.GetFeatureResources(FeatureID) -> number?, number, number, number, number, numberParameters
Returns
number?metalnumberdefMetalnumberenergynumberdefEnergynumberreclaimLeftnumberreclaimTime
Spring.GetFeatureBlocking (function) view source
Spring.GetFeatureBlocking(FeatureID) -> boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?Parameters
Returns
boolean?isBlockingboolean?isSolidObjectCollidableboolean?isProjectileCollidableboolean?isRaySegmentCollidableboolean?crushableboolean?blockEnemyPushingboolean?blockHeightChanges
Spring.GetFeatureNoSelect (function) view source
Spring.GetFeatureNoSelect(FeatureID) -> boolean?Parameters
Returns
Spring.GetFeatureResurrect (function) view source
Returns nil if no feature found with ID.Spring.GetFeatureResurrect(FeatureID) -> (string|"")?, FacingIntegerParameters
Returns
(string|"")?featureDefNameFacingIntegerbuildFacing- facing of footprint, 0 - 3
Spring.GetFeatureLastAttackedPiece (function) view source
Spring.GetFeatureLastAttackedPiece(FeatureID) -> (string|"")?, integer?Parameters
Returns
(string|"")?pieceName- Last hit piece name
integer?frame- frame it was last hit on,
nilwhen featureID is not valid
Spring.GetFeatureCollisionVolumeData (function) view source
Spring.GetFeatureCollisionVolumeData(FeatureID) -> CollisionVolumeData?Parameters
Returns
Spring.GetFeaturePieceCollisionVolumeData (function) view source
Spring.GetFeaturePieceCollisionVolumeData(FeatureID) -> CollisionVolumeData?Parameters
Returns
Spring.GetFeatureFireTime (function) view source
Get the feature current fire timer.Spring.GetFeatureFireTime(FeatureID) -> number?Parameters
Returns
number?fireTime- in seconds, nil when featureID is invalid.
Spring.GetFeatureSmokeTime (function) view source
Get the feature current smoke timer.Spring.GetFeatureSmokeTime(FeatureID) -> number?Parameters
Returns
number?smokeTime- in seconds, nil when featureID is invalid.
Spring.GetProjectilePosition (function) view source
Spring.GetProjectilePosition(ProjectileID) -> number?, number?, number?Parameters
Returns
Spring.GetProjectileDirection (function) view source
Spring.GetProjectileDirection(ProjectileID) -> number?, number?, number?Parameters
Returns
Spring.GetProjectileVelocity (function) view source
Spring.GetProjectileVelocity(ProjectileID) -> number?, number?, number?, number?Parameters
Returns
Spring.GetProjectileGravity (function) view source
Spring.GetProjectileGravity(ProjectileID) -> number?Parameters
Returns
Spring.GetPieceProjectileParams (function) view source
Spring.GetPieceProjectileParams(ProjectileID) -> integer?, number, number, number, number, numberParameters
Returns
integer?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
numberspinAnglenumberspinSpeednumberspinVectorXnumberspinVectorYnumberspinVectorZ
Spring.GetProjectileTarget (function) view source
targetTypeInt is one of:
string.byte(‘g’)groundstring.byte(‘u’)unitstring.byte(‘f’)featurestring.byte(‘p’)projectile
Spring.GetProjectileTarget(ProjectileID) -> integer?, (UnitID|FeatureID|ProjectileID|float3)Parameters
Returns
integer?targetTypeInt- The type of target.
(UnitID|FeatureID|ProjectileID|float3)target- targetID or targetPos when targetTypeInt == string.byte(‘g’)
Spring.GetProjectileIsIntercepted (function) view source
Spring.GetProjectileIsIntercepted(ProjectileID) -> boolean?Parameters
Returns
Spring.GetProjectileTimeToLive (function) view source
Spring.GetProjectileTimeToLive(ProjectileID) -> integer?Parameters
Returns
Spring.GetProjectileOwnerID (function) view source
Spring.GetProjectileOwnerID(ProjectileID) -> UnitID?Parameters
Returns
Spring.GetProjectileTeamID (function) view source
Spring.GetProjectileTeamID(ProjectileID) -> TeamID?Parameters
Returns
Spring.GetProjectileAllyTeamID (function) view source
Spring.GetProjectileAllyTeamID(ProjectileID) -> AllyTeamID?Parameters
Returns
Spring.GetProjectileType (function) view source
Spring.GetProjectileType(ProjectileID) -> boolean?, booleanParameters
Returns
Spring.GetProjectileDefID (function) view source
Spring.GetProjectileDefID(ProjectileID) -> WeaponDefID?Parameters
Returns
Spring.GetPieceProjectileName (function) view source
Returns the name of the model piece from which a piece projectile was spawned. Returns nil for other projectiles including weaponsSpring.GetPieceProjectileName(ProjectileID) -> string?Parameters
Returns
string?pieceName
Spring.GetProjectileDamages (function) view source
tag is one of:
“paralyzeDamageTime”“impulseFactor”“impulseBoost”“craterMult”“craterBoost”“dynDamageExp”“dynDamageMin”“dynDamageRange”“dynDamageInverted”“craterAreaOfEffect”“damageAreaOfEffect”“edgeEffectiveness”“explosionSpeed”
It can also be an armor type index, to get the damage against it.
Spring.GetProjectileDamages(ProjectileID, string) -> number?Parameters
ProjectileIDprojectileIDstringtag- The damage property, or an armor type index.
Returns
Spring.IsPosInMap (function) view source
Spring.IsPosInMap(number, number) -> boolean, booleanParameters
Returns
booleaninPlayArea- whether the position is in the active play area
booleaninMap- whether the position is in the full map area (currently this is the same as above)
Spring.GetGroundHeight (function) view source
Get ground height
On sea, this returns the negative depth of the seafloor
Spring.GetGroundHeight(number, number) -> numberParameters
Returns
Spring.GetWaterPlaneLevel (function) view source
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.
Spring.GetWaterPlaneLevel() -> numberReturns
numberwaterPlaneLevel
Spring.GetWaterLevel (function) view source
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.
Spring.GetWaterLevel(number, number) -> numberParameters
Returns
numberwaterLevel
Spring.GetGroundOrigHeight (function) view source
Get ground height as it was at game start
Returns the original height before the ground got deformed
Spring.GetGroundOrigHeight(number, number) -> numberParameters
Returns
Spring.GetGroundNormal (function) view source
Spring.GetGroundNormal(number, number, boolean?) -> number, number, number, numberParameters
Returns
Spring.GetGroundInfo (function) view source
Spring.GetGroundInfo(number, number) -> integer, integer, integer, string, number, number, number, number, number, number, booleanParameters
Returns
integerixintegerizintegerterrainTypeIndexstringnamenumbermetalExtractionnumberhardnessnumbertankSpeednumberkbotSpeednumberhoverSpeednumbershipSpeedbooleanreceiveTracks
Spring.GetGroundBlocked (function) view source
Spring.GetGroundBlocked(number, number, number?, number?) -> string?, (UnitID|FeatureID)?Parameters
numberx- world x coordinate (or xMin when using 4-arg form)
numberz- world z coordinate (or zMin when using 4-arg form)
number?x2- world xMax (4-arg rectangle form)
number?z2- world zMax (4-arg rectangle form)
Returns
string?objectType“feature”or“unit”(UnitID|FeatureID)?objectID- the feature or unit ID
Spring.GetGroundExtremes (function) view source
Spring.GetGroundExtremes() -> number, number, number, numberReturns
numberinitMinHeightnumberinitMaxHeightnumbercurrMinHeightnumbercurrMaxHeight
Spring.GetTerrainTypeData (function) view source
Spring.GetTerrainTypeData(integer) -> integer, string, number, number, number, number, number, booleanParameters
integerterrainTypeInfo
Returns
integerindexstringnamenumberhardnessnumbertankSpeednumberkbotSpeednumberhoverSpeednumbershipSpeedbooleanreceiveTracks
Spring.GetGrass (function) view source
Spring.GetGrass(number, number) -> numberParameters
Returns
Spring.GetSmoothMeshHeight (function) view source
Spring.GetSmoothMeshHeight(number, number) -> numberParameters
Returns
numberheight
Spring.TestMoveOrder (function) view source
Spring.TestMoveOrder(UnitDefID, number, number, number, number?, number?, number?, boolean?, boolean?, boolean?) -> booleanParameters
UnitDefIDunitDefIDnumberposXnumberposYnumberposZnumber?dirX- (Default:
0.0) number?dirY- (Default:
0.0) number?dirZ- (Default:
0.0) boolean?testTerrain- (Default:
true) boolean?testObjects- (Default:
true) boolean?centerOnly- (Default:
false)
Returns
Spring.TestBuildOrder (function) view source
Spring.TestBuildOrder(UnitDefID, number, number, number, Facing) -> BuildOrderBlockedStatus, FeatureID?Parameters
Returns
BuildOrderBlockedStatusblockingFeatureID?featureID- A reclaimable feature in the way.
Spring.TestBuildOrderOverlap (function) view source
Spring.TestBuildOrderOverlap(BuildOrderSpec, BuildOrderSpec) -> boolean, booleanParameters
Returns
booleanoverlaps- Whether the builds conflict under the queued-build overlap rules.
booleancancels- Whether the proposed build would cancel the earlier queued build.
Spring.Pos2BuildPos (function) view source
Snaps a position to the building gridSpring.Pos2BuildPos(UnitDefID, number, number, number, number?) -> number, number, numberParameters
UnitDefIDunitDefIDnumberposXnumberposYnumberposZnumber?buildFacing- (Default:
0) one of SOUTH = 0, EAST = 1, NORTH = 2, WEST = 3
Returns
Spring.ClosestBuildPos (function) view source
Spring.ClosestBuildPos(TeamID, UnitDefID, number, number, number, number, number, number) -> number, number, numberParameters
TeamIDteamIDUnitDefIDunitDefIDnumberposXnumberposYnumberposZnumbersearchRadiusnumberminDistancenumberbuildFacing- one of SOUTH = 0, EAST = 1, NORTH = 2, WEST = 3
Returns
Spring.GetPositionLosState (function) view source
Spring.GetPositionLosState(number, number, number, AllyTeamID?) -> boolean, boolean, boolean, booleanParameters
numberposXnumberposYnumberposZAllyTeamID?allyTeamID
Returns
booleaninLosOrRadarbooleaninLosbooleaninRadarbooleaninJammer
Spring.IsPosInLos (function) view source
Spring.IsPosInLos(number, number, number, AllyTeamID?) -> booleanParameters
numberposXnumberposYnumberposZAllyTeamID?allyTeamID
Returns
Spring.IsPosInRadar (function) view source
Spring.IsPosInRadar(number, number, number, AllyTeamID?) -> booleanParameters
numberposXnumberposYnumberposZAllyTeamID?allyTeamID
Returns
Spring.IsPosInAirLos (function) view source
Spring.IsPosInAirLos(number, number, number, AllyTeamID?) -> booleanParameters
numberposXnumberposYnumberposZAllyTeamID?allyTeamID
Returns
Spring.GetUnitLosState (function) view source
Get unit los state (bitmask)Spring.GetUnitLosState(UnitID, AllyTeamID?, true) -> (LosMask|integer)?Parameters
UnitIDunitIDAllyTeamID?allyTeamIDtrueraw- Return a bitmask.
Returns
Spring.GetUnitLosState (function overload 1) view source
Get unit los state (table)Spring.GetUnitLosState(UnitID, AllyTeamID?, false?) -> table<("los"|"radar"...),boolean>?Parameters
UnitIDunitIDAllyTeamID?allyTeamIDfalse?raw- (Default:
false) Return a table.
Returns
table<("los"|"radar"...),boolean>?los- A table of LOS state names as keys and booleans as values, or
nilifunitIDis invalid.
Spring.IsUnitInLos (function) view source
Spring.IsUnitInLos(UnitID, AllyTeamID?) -> booleanParameters
UnitIDunitIDAllyTeamID?allyTeamID- defaults to the calling widget/gadget’s ally team
Returns
booleaninLos
Spring.IsUnitInAirLos (function) view source
Spring.IsUnitInAirLos(UnitID, AllyTeamID?) -> booleanParameters
UnitIDunitIDAllyTeamID?allyTeamID- defaults to the calling widget/gadget’s ally team
Returns
booleaninAirLos
Spring.IsUnitInRadar (function) view source
Spring.IsUnitInRadar(UnitID, AllyTeamID?) -> booleanParameters
UnitIDunitIDAllyTeamID?allyTeamID- defaults to the calling widget/gadget’s ally team
Returns
booleaninRadar
Spring.IsUnitInJammer (function) view source
Spring.IsUnitInJammer(UnitID, AllyTeamID) -> booleanParameters
Returns
booleaninJammer
Spring.GetModelRootPiece (function) view source
Spring.GetModelRootPiece(string) -> integerParameters
stringmodelName
Returns
integerindex- of the root piece
Spring.GetModelPieceMap (function) view source
Spring.GetModelPieceMap(string) -> table<string,integer>?Parameters
stringmodelName
Returns
table<string,integer>?pieceInfos- where keys are piece names and values are indices
Spring.GetModelPieceList (function) view source
Spring.GetModelPieceList(string) -> string[]?Parameters
stringmodelName
Returns
string[]?pieceNames
Spring.GetUnitRootPiece (function) view source
Spring.GetUnitRootPiece(UnitID) -> integerParameters
Returns
integerindex- of the root piece
Spring.GetUnitPieceMap (function) view source
Spring.GetUnitPieceMap(UnitID) -> table<string,integer>?Parameters
Returns
table<string,integer>?pieceInfos- where keys are piece names and values are indices
Spring.GetUnitPieceList (function) view source
Spring.GetUnitPieceList(UnitID) -> string[]Parameters
Returns
string[]pieceNames
Spring.GetUnitPieceInfo (function) view source
Spring.GetUnitPieceInfo(UnitID, integer) -> PieceInfo?Parameters
UnitIDunitIDintegerpieceIndex
Returns
Spring.GetUnitPiecePosDir (function) view source
Spring.GetUnitPiecePosDir(UnitID, integer) -> number?, number, number, number, number, numberParameters
UnitIDunitIDintegerpieceIndex
Returns
Spring.GetUnitPiecePosition (function) view source
Spring.GetUnitPiecePosition(UnitID, integer) -> number?, number, numberParameters
UnitIDunitIDintegerpieceIndex
Returns
Spring.GetUnitPieceDirection (function) view source
Spring.GetUnitPieceDirection(UnitID, integer) -> number?, number, numberParameters
UnitIDunitIDintegerpieceIndex
Returns
Spring.GetUnitPieceMatrix (function) view source
Spring.GetUnitPieceMatrix(UnitID, integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
UnitIDunitIDintegerpieceIndex
Returns
number?m11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.GetFeatureRootPiece (function) view source
Spring.GetFeatureRootPiece(FeatureID) -> integerParameters
Returns
integerindex- of the root piece
Spring.GetFeaturePieceMap (function) view source
Spring.GetFeaturePieceMap(FeatureID) -> table<string,integer>Parameters
Returns
table<string,integer>pieceInfos- where keys are piece names and values are indices
Spring.GetFeaturePieceList (function) view source
Spring.GetFeaturePieceList(FeatureID) -> string[]Parameters
Returns
string[]pieceNames
Spring.GetFeaturePieceInfo (function) view source
Spring.GetFeaturePieceInfo(FeatureID, integer) -> PieceInfo?Parameters
FeatureIDfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePiecePosDir (function) view source
Spring.GetFeaturePiecePosDir(FeatureID, integer) -> number?, number, number, number, number, numberParameters
FeatureIDfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePiecePosition (function) view source
Spring.GetFeaturePiecePosition(FeatureID, integer) -> number?, number, numberParameters
FeatureIDfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePieceDirection (function) view source
Spring.GetFeaturePieceDirection(FeatureID, integer) -> number?, number, numberParameters
FeatureIDfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePieceMatrix (function) view source
Spring.GetFeaturePieceMatrix(FeatureID, integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
FeatureIDfeatureIDintegerpieceIndex
Returns
number?m11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.GetUnitScriptPiece (function) view source
Spring.GetUnitScriptPiece(UnitID) -> integer[]Parameters
Returns
integer[]pieceIndices
Spring.GetUnitScriptPiece (function overload 1) view source
Spring.GetUnitScriptPiece(UnitID, integer) -> integerParameters
UnitIDunitIDintegerscriptPiece
Returns
integerpieceIndex
Spring.GetUnitScriptNames (function) view source
Spring.GetUnitScriptNames(UnitID) -> table<string,integer>Parameters
Returns
table<string,integer>pieceInfos- where keys are piece names and values are piece indices
Spring.TraceRayInDirection (function) view source
Traces a ray from a position in a direction
Returns all unit and/or feature hits along a ray, sorted by distance from the start position.
Spring.TraceRayInDirection(number, number, number, number, number, number, number, string) -> table[]Parameters
numberposXnumberposYnumberposZnumberdirXnumberdirYnumberdirZnumbermaxLengthstringtype- Object type to test:
“unit”,“feature”, or“both”
Returns
table[]hits- Array of
{hitLength, objectID, objectType}entries
Spring.TraceRayBetweenPositions (function) view source
Traces a ray between two positions
Checks for unit and/or feature collisions between two positions and returns all hits sorted by distance from the start position.
Spring.TraceRayBetweenPositions(number, number, number, number, number, number, string) -> table[]Parameters
numberstartXnumberstartYnumberstartZnumberendXnumberendYnumberendZstringtype- Object type to test:
“unit”,“feature”, or“both”
Returns
table[]hits- Array of
{hitLength, objectID, objectType}entries
Spring.TraceRayGroundInDirection (function) view source
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.
Spring.TraceRayGroundInDirection(number, number, number, number, number, number, number?, boolean?) -> number?, number?, number?, number?Parameters
numberposXnumberposYnumberposZnumberdirXnumberdirYnumberdirZnumber?maxLength- (Default:
999999) boolean?testWater- (Default:
true)
Returns
Spring.TraceRayGroundBetweenPositions (function) view source
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.
Spring.TraceRayGroundBetweenPositions(number, number, number, number, number, number, boolean?) -> number, number, number, numberParameters
Returns
Spring.GetRadarErrorParams (function) view source
Spring.GetRadarErrorParams(AllyTeamID) -> number?, number, numberParameters
Returns
number?radarErrorSize- actual radar error size (when allyTeamID is allied to current team) or base radar error size
numberbaseRadarErrorSizenumberbaseRadarErrorMult
Spring.GetMetalMapSize (function) view source
Spring.GetMetalMapSize() -> integer, integerReturns
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
Spring.GetMetalAmount (function) view source
Returns the amount of metal on a single square.Spring.GetMetalAmount(integer, integer) -> numberParameters
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
Returns
numberamount
Spring.SetMetalAmount (function) view source
Sets the amount of metal on a single square.Spring.SetMetalAmount(integer, integer, number) -> nilParameters
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
numbermetalAmount- must be between 0 and 255*maxMetal (with maxMetal from the .smd or mapinfo.lua).
Returns
Spring.GetMetalExtraction (function) view source
Spring.GetMetalExtraction(integer, integer) -> numberParameters
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
Returns
numberextraction
Fields
MoveCtrlMoveCtrlview sourceUnitScriptTableUnitScriptview sourceObjectRenderingTableUnitRenderingview sourceObjectRenderingTableFeatureRenderingview sourceintegerALL_UNITSview sourceintegerMY_UNITSview sourceintegerALLY_UNITSview sourceintegerENEMY_UNITSview source
Callins (class) view source
Functions called by the Engine.
To use these callins in a widget, prepend widget: and, for a gadget,
prepend gadget:. For example:
lua
function widget:UnitCreated(unitID, unitDefID, unitTeam, builderID)
– …
end
Some functions may differ between (synced) gadget and widgets. This is because all information should be available to synced (game logic controlling) gadgets, but restricted to unsynced gadget/widget. e.g. information about an enemy unit only detected via radar and not yet in LOS.
In such cases the full (synced) param list is documented.
Attention: Some callins will only work on the unsynced portion of the gadget. Due to the type-unsafe nature of lua parsing, those callins not firing up might be hard to trace.
See Gadget, Widget, Menu, Intro, SyncedCallins, UnsyncedCallins
Members
Callins:Initialize (function) view source
Called when the addon is (re)loaded.Callins:Initialize() -> nilCallins:LoadCode (function) view source
Called when the game is (re)loaded.Callins:LoadCode() -> nilCallins:Shutdown (function) view source
Called when the addon or the game is shutdown.Callins:Shutdown() -> nilReturns
Callins:GotChatMsg (function) view source
Called when a player issues a UI command e.g. types /foo or /luarules foo.Callins:GotChatMsg(string, PlayerID) -> nilParameters
Callins:Load (function) view source
Called afterGamePreload and before GameStart. See Lua_SaveLoad.Callins:Load(table) -> nilParameters
tablezipReader
Callins:GamePreload (function) view source
Called before the 0 gameframe.
Is not called when a saved game is loaded.
Callins:GamePreload() -> nilCallins:GameStart (function) view source
Called upon the start of the game.
Is not called when a saved game is loaded.
Callins:GameStart() -> nilCallins:GameOver (function) view source
Called when the game endsCallins:GameOver(AllyTeamID[]) -> nilParameters
AllyTeamID[]winningAllyTeams- list of winning allyTeams, if empty the game result was undecided (like when dropping from an host).
Callins:GamePaused (function) view source
Called when the game is paused.Callins:GamePaused(PlayerID, boolean) -> nilParameters
Callins:GameFrame (function) view source
Called for every game simulation frame (30 per second).Callins:GameFrame(integer) -> nilParameters
integerframe- Starts at frame 1
Callins:GameFramePost (function) view source
Called at the end of every game simulation frameCallins:GameFramePost(integer) -> nilParameters
integerframe- Starts at frame 1
Callins:GameID (function) view source
Called once to deliver the gameIDCallins:GameID(string) -> nilParameters
stringgameID- encoded in hex.
Callins:TeamDied (function) view source
Called when a team dies (see Spring.KillTeam).Callins:TeamDied(TeamID) -> nilParameters
Callins:TeamChanged (function) view source
Callins:TeamChanged(TeamID) -> nilParameters
Callins:PlayerChanged (function) view source
Called whenever a player’s status changes e.g. becoming a spectator.Callins:PlayerChanged(PlayerID) -> nilParameters
Callins:PlayerAdded (function) view source
Called whenever a new player joins the game.Callins:PlayerAdded(PlayerID) -> nilParameters
Callins:PlayerRemoved (function) view source
Called whenever a player is removed from the game.Callins:PlayerRemoved(PlayerID, integer) -> nilParameters
Callins:UnitCreated (function) view source
Called at the moment the unit is created.Callins:UnitCreated(UnitID, UnitDefID, TeamID, UnitID?) -> nilParameters
Callins:UnitFinished (function) view source
Called at the moment the unit is completed.Callins:UnitFinished(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitFromFactory (function) view source
Called when a factory finishes construction of a unit.Callins:UnitFromFactory(UnitID, UnitDefID, TeamID, UnitID, UnitDefID, boolean) -> nilParameters
Callins:UnitReverseBuilt (function) view source
Called when a living unit becomes a nanoframe again.Callins:UnitReverseBuilt(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitConstructionDecayed (function) view source
Called when a unit being built starts decaying.Callins:UnitConstructionDecayed(UnitID, UnitDefID, TeamID, number, number, number) -> nilParameters
Callins:UnitDestroyed (function) view source
Called when a unit is destroyed.Callins:UnitDestroyed(UnitID, UnitDefID, TeamID, UnitID?, UnitDefID?, TeamID?, WeaponDefID) -> nilParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamUnitID?attackerID- Subject to visibility rules
UnitDefID?attackerDefID- Subject to visibility rules
TeamID?attackerTeam- Subject to visibility rules
WeaponDefIDweaponDefID
Callins:UnitTaken (function) view source
Called when a unit is transferred between teams. This is called beforeUnitGiven and in that moment unit is still assigned to the oldTeam.Callins:UnitTaken(UnitID, UnitDefID, TeamID, TeamID) -> nilParameters
Callins:UnitGiven (function) view source
Called when a unit is transferred between teams. This is called afterUnitTaken and in that moment unit is assigned to the newTeam.Callins:UnitGiven(UnitID, UnitDefID, TeamID, TeamID) -> nilParameters
Callins:UnitIdle (function) view source
Called when a unit is idle (empty command queue).Callins:UnitIdle(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitCommand (function) view source
Called after when a unit accepts a command, afterAllowCommand returns true.Callins:UnitCommand(UnitID, UnitDefID, TeamID, integer, table, CommandOptions, integer) -> nilParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamintegercmdIDtablecmdParamsCommandOptionsoptionsintegercmdTag
Callins:UnitCmdDone (function) view source
Called when a unit completes a command.Callins:UnitCmdDone(UnitID, UnitDefID, TeamID, integer, table, CommandOptions, integer) -> nilParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamintegercmdIDtablecmdParamsCommandOptionsoptionsintegercmdTag
Callins:UnitDamaged (function) view source
Called when a unit is damaged (after UnitPreDamaged).Callins:UnitDamaged(UnitID, UnitDefID, TeamID, number, number, WeaponDefID, ProjectileID, UnitID, UnitDefID, TeamID) -> nilParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamnumberdamagenumberparalyzerWeaponDefIDweaponDefIDProjectileIDprojectileIDUnitIDattackerIDUnitDefIDattackerDefIDTeamIDattackerTeam
Callins:UnitStunned (function) view source
Called when a unit changes its stun status.Callins:UnitStunned(UnitID, UnitDefID, TeamID, boolean) -> nilParameters
Callins:UnitExperience (function) view source
Called when a unit gains experience greater or equal to the minimum limit set by calling Spring.SetExperienceGrade.
Should be called more reliably with small values of experience grade.
Callins:UnitExperience(UnitID, UnitDefID, TeamID, number, number) -> nilParameters
Callins:UnitHarvestStorageFull (function) view source
Called when a unit’s harvestStorage is full (according to its unitDef’s entry).Callins:UnitHarvestStorageFull(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitSeismicPing (function) view source
Called when a unit emits a seismic ping.
See seismicSignature.
Callins:UnitSeismicPing(number, number, number, number, AllyTeamID, UnitID, UnitDefID) -> nilParameters
Callins:UnitEnteredRadar (function) view source
Called when a unit enters radar of an allyteam.
Also called when a unit enters LOS without any radar coverage.
Callins:UnitEnteredRadar(UnitID, TeamID, AllyTeamID, UnitDefID) -> nilParameters
Callins:UnitEnteredLos (function) view source
Called when a unit enters LOS of an allyteam.
Its called after the unit is in LOS, so you can query that unit.
Callins:UnitEnteredLos(UnitID, TeamID, AllyTeamID, UnitDefID) -> nilParameters
Callins:UnitLeftRadar (function) view source
Called when a unit leaves radar of an allyteam.
Also called when a unit leaves LOS without any radar coverage. For widgets, this is called just after a unit leaves radar coverage, so widgets cannot get the position of units that left their radar.
Callins:UnitLeftRadar(UnitID, TeamID, AllyTeamID, UnitDefID) -> nilParameters
Callins:UnitLeftLos (function) view source
Called when a unit leaves LOS of an allyteam.
For widgets, this one is called just before the unit leaves los, so you can still get the position of a unit that left los.
Callins:UnitLeftLos(UnitID, TeamID, AllyTeamID, UnitDefID) -> nilParameters
Callins:UnitLoaded (function) view source
Called when a unit is loaded by a transport.Callins:UnitLoaded(UnitID, UnitDefID, TeamID, UnitID, TeamID) -> nilParameters
Callins:UnitUnloaded (function) view source
Called when a unit is unloaded by a transport.Callins:UnitUnloaded(UnitID, UnitDefID, TeamID, UnitID, TeamID) -> nilParameters
Callins:UnitEnteredUnderwater (function) view source
Callins:UnitEnteredUnderwater(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitEnteredWater (function) view source
Callins:UnitEnteredWater(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitLeftAir (function) view source
Callins:UnitLeftAir(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitLeftUnderwater (function) view source
Callins:UnitLeftUnderwater(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitLeftWater (function) view source
Callins:UnitLeftWater(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitEnteredAir (function) view source
Callins:UnitEnteredAir(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitCloaked (function) view source
Called when a unit cloaks.Callins:UnitCloaked(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitDecloaked (function) view source
Called when a unit decloaks.Callins:UnitDecloaked(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitUnitCollision (function) view source
Called when two units collide.
Both units must be registered with Script.SetWatchUnit.
Callins:UnitUnitCollision(UnitID, UnitID) -> nilParameters
Callins:UnitFeatureCollision (function) view source
Called when a unit collides with a feature.
The unit must be registered with Script.SetWatchUnit and the feature registered with Script.SetWatchFeature.
Callins:UnitFeatureCollision(UnitID, UnitID) -> nilParameters
Callins:UnitMoveFailed (function) view source
Callins:UnitMoveFailed(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:UnitArrivedAtGoal (function) view source
Callins:UnitArrivedAtGoal(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:RenderUnitDestroyed (function) view source
Called just before a unit is invalid, after it finishes its death animation.Callins:RenderUnitDestroyed(UnitID, UnitDefID, TeamID) -> nilParameters
Callins:FeatureCreated (function) view source
Called when a feature is created.Callins:FeatureCreated(FeatureID, AllyTeamID) -> nilParameters
Callins:FeatureDestroyed (function) view source
Called when a feature is destroyed.Callins:FeatureDestroyed(FeatureID, AllyTeamID) -> nilParameters
Callins:FeatureDamaged (function) view source
Called when a feature is damaged.Callins:FeatureDamaged(FeatureID, FeatureDefID, TeamID, number, WeaponDefID, ProjectileID, UnitID, UnitDefID, TeamID) -> nilParameters
FeatureIDfeatureIDFeatureDefIDfeatureDefIDTeamIDfeatureTeamnumberdamageWeaponDefIDweaponDefIDProjectileIDprojectileIDUnitIDattackerIDUnitDefIDattackerDefIDTeamIDattackerTeam
Callins:ProjectileCreated (function) view source
Called when the projectile is created.
Note that weaponDefID is missing if the projectile is spawned as part of a burst, but Spring.GetProjectileDefID and Spring.GetProjectileName still work in callin scope using proID.
See Script.SetWatchProjectile, Script.SetWatchWeapon
Callins:ProjectileCreated(ProjectileID, UnitID, WeaponDefID) -> nilParameters
Callins:ProjectileDestroyed (function) view source
Called when the projectile is destroyed.See Script.SetWatchProjectile, Script.SetWatchWeapon
Callins:ProjectileDestroyed(ProjectileID, UnitID, WeaponDefID) -> nilParameters
Callins:Explosion (function) view source
Called when an explosion occurs.
Only called for weaponDefIDs registered via Script.SetWatchExplosion or Script.SetWatchWeapon.
See Script.SetWatchExplosion, Script.SetWatchWeapon
Callins:Explosion(WeaponDefID, number, number, number, UnitID, ProjectileID) -> booleanParameters
WeaponDefIDweaponDefIDnumberpxnumberpynumberpzUnitIDattackerIDProjectileIDprojectileID
Returns
booleannoGfx- if then no graphical effects are drawn by the engine for this explosion.
Callins:StockpileChanged (function) view source
Called when a units stockpile of weapons increases or decreases.Callins:StockpileChanged(UnitID, UnitDefID, TeamID, integer, integer, integer) -> nilParameters
Callins:RecvLuaMsg (function) view source
Receives messages from unsynced sent via Spring.SendLuaRulesMsg or Spring.SendLuaUIMsg.Callins:RecvLuaMsg(string, PlayerID) -> nilParameters
Callins:Save (function) view source
Called when a chat command ‘/save’ or ‘/savegame’ is received.Callins:Save(table) -> nilParameters
tablezip- a userdatum representing the savegame zip file. See Lua_SaveLoad.
Callins:UnsyncedHeightMapUpdate (function) view source
Called when the unsynced copy of the height-map is altered.Callins:UnsyncedHeightMapUpdate() -> integer, integer, integer, integerReturns
Callins:Update (function) view source
Called for every draw frame (including when the game is paused) and at least once per sim frame except when catching up.Callins:Update(number) -> nilParameters
numberdt- the time since the last update.
Callins:ViewResize (function) view source
Called whenever the window is resized.Callins:ViewResize(integer, integer) -> nilParameters
Callins:FontsChanged (function) view source
Called whenever fonts are updated. Signals the game display lists and other caches should be discarded.
Gets called before other Update and Draw callins.
Callins:FontsChanged() -> nilCallins:SunChanged (function) view source
Callins:SunChanged() -> nilCallins:NanoParticleUpdate (function) view source
Batched nano particle lifecycle changes.
Only sent while the NanoParticlesGL4 and NanoParticlesUpdateLuaUI
springsettings are both on, and only for the sampled fraction of particles
set by NanoParticlesUpdateLuaUISampleRate - one event per particle per
frame would overwhelm any consumer. Intended for deferred-lighting widgets.
Events are passed as one flat numeric array to keep the marshalling cost
down. Each event occupies 13 consecutive entries:
{operation, lightID, px, py, pz, vx, vy, vz, remainingLife, r, g, b, builderBuildSpeed}.
Operations are 1 = spawn, 2 = update, 3 = remove, 4 = reset.
A particle’s lifetime is fixed when it spawns, so remainingLife is exact and
consumers are expected to expire their own state from it; operation 3 is
reserved and currently never sent. A reset means every previously reported
lightID is gone and any state keyed on them should be dropped; it is always
the first event of its batch.
Particles are not projectiles and have no projectile ID; lightID is unique,
negative, and only valid until the particle expires or a reset arrives.
Callins:NanoParticleUpdate(number[], integer, integer) -> nilParameters
number[]events- Flat event records.
integereventCount- Number of records in
events. integergameFrame- Current simulation frame.
Callins:DefaultCommand (function) view source
Used to set the default command when a unit is selected.Callins:DefaultCommand(("unit"|"feature"), ObjectID, integer) -> integerParameters
("unit"|"feature")type- The type of the object pointed at.
ObjectIDid- The
unitIDorfeatureID. integercmd- The current command ID.
Returns
integercmdID- The command ID to use as the default, or nil to keep the current ID.
Callins:DrawGenesis (function) view source
Use this callin to update textures, shaders, etc.
Doesn’t render to screen! Also available to LuaMenu.
Callins:DrawGenesis() -> nilCallins:DrawWorld (function) view source
Spring draws command queues, ‘map stuff’, and map marks.Callins:DrawWorld() -> nilCallins:DrawWorldPreUnit (function) view source
Spring draws units, features, some water types, cloaked units, and the sun.Callins:DrawWorldPreUnit() -> nilCallins:DrawPreDecals (function) view source
Called before decals are drawnCallins:DrawPreDecals() -> nilCallins:DrawWaterPost (function) view source
Callins:DrawWaterPost() -> nilCallins:DrawShadowPassTransparent (function) view source
Invoked after semi-transparent shadows pass is about to conclude
This callin has depth and color buffer of shadowmap bound via FBO as well as the FFP state to do “semi-transparent” shadows pass (traditionally only used to draw shadows of shadow casting semi-transparent particles). Can be used to draw nice colored shadows.
Callins:DrawShadowPassTransparent() -> nilCallins:DrawWorldShadow (function) view source
Callins:DrawWorldShadow() -> nilCallins:DrawWorldReflection (function) view source
Callins:DrawWorldReflection() -> nilCallins:DrawWorldRefraction (function) view source
Callins:DrawWorldRefraction() -> nilCallins:DrawGroundPreForward (function) view source
Runs at the start of the forward pass when a custom map shader has been assigned via Spring.SetMapShader (convenient for setting uniforms).Callins:DrawGroundPreForward() -> nilCallins:DrawGroundPostForward (function) view source
Callins:DrawGroundPostForward() -> nilCallins:DrawGroundPreDeferred (function) view source
Runs at the start of the deferred pass when a custom map shader has been assigned via Spring.SetMapShader (convenient for setting uniforms).Callins:DrawGroundPreDeferred() -> nilCallins:DrawGroundDeferred (function) view source
Callins:DrawGroundDeferred() -> nilCallins:DrawGroundPostDeferred (function) view source
This runs at the end of its respective deferred pass.
Allows proper frame compositing (with ground flashes/decals/foliage/etc, which are drawn between it and DrawWorldPreUnit) via gl.CopyToTexture.
Callins:DrawGroundPostDeferred() -> nilCallins:DrawUnitsPostDeferred (function) view source
Runs at the end of the unit deferred pass.
Informs Lua code it should make use of the $model_gbuffer_* textures before another pass overwrites them (and to allow proper blending with e.g. cloaked objects which are drawn between these events and DrawWorld via gl.CopyToTexture). N.B. The *PostDeferred events are only sent (and only have a real purpose) if forward drawing is disabled.
Callins:DrawUnitsPostDeferred() -> nilCallins:DrawFeaturesPostDeferred (function) view source
Runs at the end of the feature deferred pass to inform Lua code it should make use of the $model_gbuffer_* textures before another pass overwrites them (and to allow proper blending with e.g. cloaked objects which are drawn between these events and DrawWorld via gl.CopyToTexture). N.B. The *PostDeferred events are only sent (and only have a real purpose) if forward drawing is disabled.Callins:DrawFeaturesPostDeferred() -> nilCallins:DrawShadowUnitsLua (function) view source
Callins:DrawShadowUnitsLua() -> nilCallins:DrawShadowFeaturesLua (function) view source
Callins:DrawShadowFeaturesLua() -> nilCallins:DrawBuildSquare (function) view source
Called when build square data is computed, before engine rendering. Grid dimensions can be inferred from UnitDefs[unitDefID].xsize and UnitDefs[unitDefID].zsize. Grid origin in square coords: x - xsize/2, z - zsize/2 (accounting for facing).Callins:DrawBuildSquare(UnitDefID, integer, integer, number, table) -> nilParameters
UnitDefIDunitDefIDintegerx- build position x
integerz- build position z
numberfacing- build facing
tablestatuses- flat 1D row-major array of BuildSquareStatus values: BLOCKED=0, OCCUPIED=1, RECLAIMABLE=2, OPEN=3
Callins:DrawWorldPreParticles (function) view source
DrawWorldPreParticles is called multiples times per draw frame. Each call has a different permutation of values for drawAboveWater, drawBelowWater, drawReflection, and drawRefraction.Callins:DrawWorldPreParticles(boolean, boolean, boolean, boolean) -> nilParameters
booleandrawAboveWaterbooleandrawBelowWaterbooleandrawReflectionbooleandrawRefraction
Callins:DrawScreen (function) view source
Also available to LuaMenu.Callins:DrawScreen(integer, integer) -> nilParameters
Callins:DrawScreenEffects (function) view source
Callins:DrawScreenEffects(integer, integer) -> nilParameters
Callins:DrawScreenPost (function) view source
Similar to DrawScreenEffects, this can be used to alter the contents of a frame after it has been completely rendered (i.e. World, MiniMap, Menu, UI).
Note: This callin is invoked after the software rendered cursor (configuration variable HardwareCursor=0) is drawn.
Callins:DrawScreenPost(integer, integer) -> nilParameters
Callins:DrawInMiniMap (function) view source
Callins:DrawInMiniMap(integer, integer) -> nilParameters
integersx- relative to the minimap’s position and scale.
integersy- relative to the minimap’s position and scale.
Callins:DrawInMiniMapBackground (function) view source
Callins:DrawInMiniMapBackground(integer, integer) -> nilParameters
integersx- relative to the minimap’s position and scale.
integersy- relative to the minimap’s position and scale.
Callins:GameProgress (function) view source
Called every 60 frames, calculating delta between GameFrame and GameProgress.
Can give an ETA about catching up with simulation for mid-game join players.
Callins:GameProgress(integer) -> nilParameters
integerserverFrameNum
Callins:KeyBindingsChanged (function) view source
Called after a keybinding command runs.
Called when:
- A keybinding command runs, e.g.
bind k action. This may fire even when nothing actually changed (e.g. a redundant bind), so treat it as “a binding command ran”, not a guarantee that bindings differ. An operation covering multiple keybindings fires a single event at the end, e.g.keyreload. - Any operation that changes how actions are retrieved from input triggers happened, e.g.
fakemeta space.
Nothing is passed; call Spring.GetKeyBindings to read the current state.
Callins:KeyBindingsChanged() -> nilCallins:KeyMapChanged (function) view source
Called when the keymap changes
Can be caused due to a change in language or keyboard
Callins:KeyMapChanged() -> nilCallins:KeyPress (function) view source
Called repeatedly when a key is pressed down.
Return true if you don’t want other callins or the engine to also receive this keypress. A list of key codes can be seen at the SDL wiki.
Callins:KeyPress(integer, KeyModifiers, boolean, string, integer, integer, table?) -> booleanParameters
integerkeyCodeKeyModifiersmodsbooleanisRepeat- If you want an action to occur only once check for isRepeat == false.
stringlabel- the name of the key
integerutf32char- (deprecated) always 0
integerscanCodetable?actionList- the list of actions for this keypress, when available
Returns
booleanhalt- whether to halt the chain for consumers of the keypress
Callins:KeyRelease (function) view source
Called when the key is released.Callins:KeyRelease(integer, KeyModifiers, string, integer, integer, table?) -> booleanParameters
integerkeyCodeKeyModifiersmodsstringlabel- the name of the key
integerutf32char- (deprecated) always 0
integerscanCodetable?actionList- the list of actions for this keyrelease, when available
Returns
Callins:TextInput (function) view source
Called whenever a key press results in text input.Callins:TextInput(string) -> nilParameters
stringutf8char
Callins:TextEditing (function) view source
Callins:TextEditing(string, integer, integer) -> nilParameters
Callins:MousePress (function) view source
Called when a mouse button is pressed.
The button parameter supports up to 7 buttons. Must return true for MouseRelease and other functions to be called.
Callins:MousePress(integer, integer, integer) -> booleanParameters
Returns
booleanbecomeMouseOwner
Callins:MouseRelease (function) view source
Called when a mouse button is released.
Please note that in order to have Spring call Spring.MouseRelease, you need to have a Spring.MousePress call-in in the same addon that returns true.
Callins:MouseRelease(integer, integer, integer) -> booleanParameters
Returns
booleanbecomeMouseOwner
Callins:MouseMove (function) view source
Called when the mouse is moved.Callins:MouseMove(integer, integer, integer, integer, integer) -> nilParameters
integerx- final x position
integery- final y position
integerdx- distance travelled in x
integerdy- distance travelled in y
integerbutton
Callins:MouseWheel (function) view source
Called when the mouse wheel is moved.Callins:MouseWheel(boolean, number) -> nilParameters
Callins:IsAbove (function) view source
Called every Update.
Must return true for Mouse* events and Spring.GetToolTip to be called.
Callins:IsAbove(integer, integer) -> booleanParameters
Returns
booleanisAbove
Callins:GetTooltip (function) view source
Called whenSpring.IsAbove returns true.Callins:GetTooltip(integer, integer) -> stringParameters
Returns
stringtooltip
Callins:ActiveCommandChanged (function) view source
Called when a command is issued.Callins:ActiveCommandChanged(integer?, integer?) -> nilParameters
Callins:CameraRotationChanged (function) view source
Called whenever the camera rotation changesCallins:CameraRotationChanged(number, number, number) -> nilParameters
numberrotX- Camera rotation around the x axis in radians.
numberrotY- Camera rotation around the y axis in radians.
numberrotZ- Camera rotation around the z axis in radians.
Callins:CameraPositionChanged (function) view source
Called whenever the camera position changesCallins:CameraPositionChanged(number, number, number) -> nilParameters
numberposX- Camera position x in world coordinates
numberposY- Camera position y in world coordinates
numberposZ- Camera position z in world coordinates
Callins:MiniMapRotationChanged (function) view source
Called when the MiniMap rotation changesCallins:MiniMapRotationChanged(number, number) -> nilParameters
Callins:MiniMapStateChanged (function) view source
Called when the MiniMap minimizes or maximizes changesCallins:MiniMapStateChanged(boolean, boolean, boolean) -> nilParameters
booleanisMinimizedbooleanisMaximizedbooleanisSlaved
Callins:MiniMapGeometryChanged (function) view source
Called when the MiniMap Geometry changesCallins:MiniMapGeometryChanged(integer, integer, integer, integer, integer, integer, integer, integer) -> nilParameters
integernewPosX- New x position in pixels.
integernewPosY- New y position in pixels.
integernewDimX- New width in pixels.
integernewDimY- New height in pixels.
integeroldPosX- Old x position in pixels.
integeroldPosY- Old y position in pixels.
integeroldDimX- Old width in pixels.
integeroldDimY- Old height in pixels.
Callins:CommandNotify (function) view source
Called when a command is issued.Callins:CommandNotify(integer, table, CommandOptions) -> booleanParameters
integercmdIDtablecmdParamsCommandOptionsoptions
Returns
booleandelete- Returning true deletes the command and does not send it through the network.
Callins:AllowQuit (function) view source
Called when the window is about to be closed (close button, Alt+F4, or a quit request from the OS).
Every unsynced handle is asked and one false is enough to keep the game running. Spring.Quit and /quitforce do not ask, so a game that vetoed can still quit later and the user can always force an exit. One click can trigger this twice, once per SDL event. Not asked while the game is still loading, so LuaIntro never receives it.
Callins:AllowQuit() -> booleanReturns
booleanallow- false keeps the game running
Callins:AddConsoleLine (function) view source
Called when text is entered into the console (e.g. Spring.Echo).Callins:AddConsoleLine(string, integer) -> nilParameters
Callins:GroupChanged (function) view source
Called when a unit is added to or removed from a control group.Callins:GroupChanged(GroupID) -> nilParameters
Callins:WorldTooltip (function) view source
Callins:WorldTooltip("unit", UnitID) -> stringParameters
Returns
stringtooltip
Callins:WorldTooltip (function overload 1) view source
Callins:WorldTooltip("feature", FeatureID) -> stringParameters
Returns
stringtooltip
Callins:WorldTooltip (function overload 2) view source
Callins:WorldTooltip("ground", number, number, number) -> stringParameters
Returns
stringtooltip
Callins:WorldTooltip (function overload 3) view source
Callins:WorldTooltip("selection") -> stringParameters
"selection"type
Returns
stringtooltip
Callins:MapDrawCmd (function) view source
Callins:MapDrawCmd(PlayerID, "point", number, number, number, string) -> nilParameters
Callins:MapDrawCmd (function overload 1) view source
Callins:MapDrawCmd(PlayerID, "line", number, number, number, number, number, number) -> nilParameters
Callins:MapDrawCmd (function overload 2) view source
Callins:MapDrawCmd(PlayerID, "erase", number, number, number, number) -> nilParameters
Callins:GameSetup (function) view source
Fired when the pregame stage is reached
Pregame is the stage where player readiness is managed before a game starts. Game only starts once all players are ready.
Callins:GameSetup(READY_MESSAGE, boolean, table<PlayerID,READY_STATE>) -> boolean?, boolean?Parameters
READY_MESSAGEstate- the current message the engine would display to the player
booleanready- whether the player is currently ready or not
table<PlayerID,READY_STATE>playerStates- indexed by playerID
Returns
boolean?gameHandled- disables the engine ui when true
boolean?newReady- whether the player is ready (ignored unless
gameHandled = true)
Callins:RecvSkirmishAIMessage (function) view source
Callins:RecvSkirmishAIMessage(TeamID, string) -> nilParameters
Callins:DownloadQueued (function) view source
Called when a Pr-downloader download is queuedCallins:DownloadQueued(integer, string, string) -> nilParameters
Callins:DownloadStarted (function) view source
Called when a Pr-downloader download is started via VFS.DownloadArchive.Callins:DownloadStarted(integer) -> nilParameters
integerid
Callins:DownloadFinished (function) view source
Called when a Pr-downloader download finishes successfully.Callins:DownloadFinished(integer) -> nilParameters
integerid
Callins:DownloadFailed (function) view source
Called when a Pr-downloader download fails to complete.Callins:DownloadFailed(integer, integer) -> nilParameters
Callins:DownloadProgress (function) view source
Called incrementally during a Pr-downloader download.Callins:DownloadProgress(integer, integer, integer) -> nilParameters
integeridintegerdownloadedintegertotal
SyncedCallins (class) view source
Functions called by the Engine (Synced).Members
SyncedCallins:CommandFallback (function) view source
Called when the unit reaches an unknown command in its queue (i.e. one not handled by the engine).SyncedCallins:CommandFallback(UnitID, UnitDefID, TeamID, integer, number[], CommandOptions, integer) -> booleanParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamintegercmdIDnumber[]cmdParamsCommandOptionscmdOptionsintegercmdTag
Returns
booleanremoveCmd- whether to remove the command from the queue
SyncedCallins:AllowCommand (function) view source
Called when the command is given, before the unit’s queue is altered.
The queue remains untouched when a command is blocked, whether it would be queued or replace the queue.
SyncedCallins:AllowCommand(UnitID, UnitDefID, TeamID, integer, number[], CommandOptions, integer, boolean, boolean) -> booleanParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamintegercmdIDnumber[]cmdParamsCommandOptionscmdOptionsintegercmdTagbooleansyncedbooleanfromLua
Returns
booleanallowCmd- whether it should be let into the queue.
SyncedCallins:AllowUnitCreation (function) view source
Called just before unit is created.SyncedCallins:AllowUnitCreation(UnitDefID, UnitID, TeamID, number, number, number, FacingInteger) -> boolean, booleanParameters
Returns
SyncedCallins:AllowUnitTransfer (function) view source
Called just before a unit is transferred to a different team.SyncedCallins:AllowUnitTransfer(UnitID, UnitDefID, TeamID, TeamID, boolean) -> booleanParameters
Returns
booleanallow- whether or not the transfer is permitted.
SyncedCallins:AllowUnitBuildStep (function) view source
Called just before a unit progresses its build percentage.SyncedCallins:AllowUnitBuildStep(UnitID, TeamID, UnitID, UnitDefID, number) -> booleanParameters
Returns
booleanallow- whether or not the build makes progress.
SyncedCallins:AllowUnitCaptureStep (function) view source
SyncedCallins:AllowUnitCaptureStep(UnitID, TeamID, UnitID, UnitDefID, number) -> booleanParameters
Returns
booleanallow- whether or not the capture makes progress.
SyncedCallins:AllowUnitTransport (function) view source
SyncedCallins:AllowUnitTransport(UnitID, UnitDefID, TeamID, UnitID, UnitDefID, TeamID) -> booleanParameters
UnitIDtransporterIDUnitDefIDtransporterUnitDefIDTeamIDtransporterTeamUnitIDtransporteeIDUnitDefIDtransporteeUnitDefIDTeamIDtransporteeTeam
Returns
booleanallow- whether or not the transport is allowed
SyncedCallins:AllowUnitTransportLoad (function) view source
SyncedCallins:AllowUnitTransportLoad(UnitID, UnitDefID, TeamID, UnitID, UnitDefID, TeamID, number, number, number) -> booleanParameters
UnitIDtransporterIDUnitDefIDtransporterUnitDefIDTeamIDtransporterTeamUnitIDtransporteeIDUnitDefIDtransporteeUnitDefIDTeamIDtransporteeTeamnumberxnumberynumberz
Returns
booleanallow- whether or not the transport load is allowed
SyncedCallins:AllowUnitTransportUnload (function) view source
SyncedCallins:AllowUnitTransportUnload(UnitID, UnitDefID, TeamID, UnitID, UnitDefID, TeamID, number, number, number) -> booleanParameters
UnitIDtransporterIDUnitDefIDtransporterUnitDefIDTeamIDtransporterTeamUnitIDtransporteeIDUnitDefIDtransporteeUnitDefIDTeamIDtransporteeTeamnumberxnumberynumberz
Returns
booleanallow- whether or not the transport unload is allowed
SyncedCallins:AllowUnitCloak (function) view source
SyncedCallins:AllowUnitCloak(UnitID, UnitID?) -> booleanParameters
Returns
booleanallow- whether unit is allowed to cloak
SyncedCallins:AllowUnitDecloak (function) view source
SyncedCallins:AllowUnitDecloak(UnitID, ObjectID?, integer?) -> booleanParameters
Returns
booleanallow- whether unit is allowed to decloak
SyncedCallins:AllowUnitKamikaze (function) view source
SyncedCallins:AllowUnitKamikaze(UnitID, UnitID) -> booleanParameters
Returns
booleanallow- whether unit is allowed to selfd
SyncedCallins:AllowFeatureCreation (function) view source
Called just before feature is created.SyncedCallins:AllowFeatureCreation(FeatureDefID, TeamID, number, number, number) -> booleanParameters
FeatureDefIDfeatureDefIDTeamIDteamIDnumberxnumberynumberz
Returns
booleanallow- whether or not the creation is permitted
SyncedCallins:AllowFeatureBuildStep (function) view source
Called just before a feature changes its build percentage.
Note that this is also called for resurrecting features, and for refilling features with resources before resurrection. On reclaim the part values are negative, and on refill and resurrect they are positive. Part is the percentage the feature be built or reclaimed per frame. Eg. for a 30 workertime builder, that’s a build power of 1 per frame. For a 50 buildtime feature reclaimed by this builder, part will be 100/-50(/1) = -2%, or -0.02 numerically.
SyncedCallins:AllowFeatureBuildStep(UnitID, TeamID, FeatureID, FeatureDefID, number) -> booleanParameters
Returns
booleanallow- whether or not the change is permitted
SyncedCallins:AllowResourceLevel (function) view source
Called when a team sets the sharing level of a resource.SyncedCallins:AllowResourceLevel(TeamID, string, number) -> booleanParameters
Returns
booleanallow- whether or not the sharing level is permitted
SyncedCallins:AllowResourceTransfer (function) view source
Called just before resources are transferred between players.SyncedCallins:AllowResourceTransfer(TeamID, TeamID, string, number) -> booleanParameters
Returns
booleanallow- whether or not the transfer is permitted.
SyncedCallins:ResourceExcess (function) view source
Called when excess resources are added. Accumulates all excesses within a single gameframe.SyncedCallins:ResourceExcess(table) -> booleanParameters
tableexcesses
Returns
booleanhandled- whether or not Lua handled the event
SyncedCallins:AllowDirectUnitControl (function) view source
Determines if this unit can be controlled directly in FPS view.SyncedCallins:AllowDirectUnitControl(UnitID, UnitDefID, TeamID, PlayerID) -> booleanParameters
Returns
booleanallow
SyncedCallins:AllowBuilderHoldFire (function) view source
Called when a construction unit wants to “use his nano beams”.
action is one of the following:
-1build,- CMD.REPAIR repair,
- CMD.RECLAIM reclaim,
- CMD.RESTORE restore,
- CMD.RESURRECT resurrect, or
- CMD.CAPTURE capture.
SyncedCallins:AllowBuilderHoldFire(UnitID, UnitDefID, (-1|CMD)) -> booleanParameters
Returns
booleanactionAllowed
SyncedCallins:AllowStartPosition (function) view source
Whether a start position should be allowed
clamped{X,Y,Z} are the coordinates clamped into start-boxes, raw is where player tried to place their marker.
The readyState can be any one of:
0 - player picked a position,
1 - player clicked ready,
2 - player pressed ready OR the game was force-started (player did not click ready, but is now forcibly readied) or
3 - the player failed to load.
The default 'failed to choose' start-position is the north-west point of their startbox, or (0,0,0) if they do not have a startbox.
SyncedCallins:AllowStartPosition(PlayerID, TeamID, integer, number, number, number, number, number, number) -> booleanParameters
PlayerIDplayerIDTeamIDteamIDintegerreadyStatenumberclampedXnumberclampedYnumberclampedZnumberrawXnumberrawYnumberrawZ
Returns
booleanallow
SyncedCallins:MoveCtrlNotify (function) view source
Enable both Spring.MoveCtrl.SetCollideStop and Spring.MoveCtrl.SetTrackGround to enable this call-in.SyncedCallins:MoveCtrlNotify(UnitID, UnitDefID, TeamID, integer) -> booleanParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamintegerdata- was supposed to indicate the type of notification but currently never has a value other than 1 (“unit hit the ground”).
Returns
booleanengineControl- whether or not the unit should remain script-controlled (false) or return to engine controlled movement (true).
SyncedCallins:TerraformComplete (function) view source
Called when pre-building terrain levelling terraforms are completed (c.f. levelGround)SyncedCallins:TerraformComplete(UnitID, UnitDefID, TeamID, UnitID, UnitDefID, TeamID) -> booleanParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamUnitIDbuildUnitIDUnitDefIDbuildUnitDefIDTeamIDbuildUnitTeam
Returns
booleanstop- if true the current build order is terminated
SyncedCallins:UnitPreDamaged (function) view source
Called before damage is applied to the unit, allows fine control over how much damage and impulse is applied.
Called after every damage modification (even HitByWeaponId) but before the damage is applied
expects two numbers returned by lua code: 1st is stored under *newDamage if newDamage != NULL 2nd is stored under *impulseMult if impulseMult != NULL
SyncedCallins:UnitPreDamaged(UnitID, UnitDefID, TeamID, number, boolean, DamageWeaponDefID?, ProjectileID?, UnitID?, UnitDefID?, TeamID?) -> number, numberParameters
UnitIDunitIDUnitDefIDunitDefIDTeamIDunitTeamnumberdamagebooleanparalyzerDamageWeaponDefID?weaponDefID- Synced Only
ProjectileID?projectileID- Synced Only
UnitID?attackerID- Synced Only
UnitDefID?attackerDefID- Synced Only
TeamID?attackerTeam- Synced Only
Returns
numbernewDamagenumberimpulseMult
SyncedCallins:FeaturePreDamaged (function) view source
Called before damage is applied to the feature.
Allows fine control over how much damage and impulse is applied.
SyncedCallins:FeaturePreDamaged(FeatureID, FeatureDefID, TeamID, number, DamageWeaponDefID, ProjectileID, UnitID, UnitDefID, TeamID) -> number, numberParameters
FeatureIDfeatureIDFeatureDefIDfeatureDefIDTeamIDfeatureTeamnumberdamageDamageWeaponDefIDweaponDefIDProjectileIDprojectileIDUnitIDattackerIDUnitDefIDattackerDefIDTeamIDattackerTeam
Returns
numbernewDamagenumberimpulseMult
SyncedCallins:ShieldPreDamaged (function) view source
Called before any engine shield-vs-projectile logic executes.SyncedCallins:ShieldPreDamaged(ProjectileID, UnitID, integer, UnitID, boolean, integer?, UnitID?, number, number, number, number, number, number) -> booleanParameters
ProjectileIDprojectileID-1when the weapon type isBeamLaserorLightningCannonUnitIDprojectileOwnerID-1when the weapon type isBeamLaserorLightningCannonintegershieldWeaponNumUnitIDshieldCarrierIDbooleanbounceProjectileinteger?beamEmitterWeaponNum- present only when the weapon type is
BeamLaserorLightningCannon UnitID?beamEmitterUnitID- present only when the weapon type is
BeamLaserorLightningCannon numberstartXnumberstartYnumberstartZnumberhitXnumberhitYnumberhitZ
Returns
booleanhandle- if true the gadget handles the collision event and the engine does not remove the projectile
SyncedCallins:AllowWeaponTargetCheck (function) view source
Determines if this weapon can automatically generate targets itself. See also commandFire weaponDef tag.
Only called for weaponDefIDs registered via Script.SetWatchAllowTarget or Script.SetWatchWeapon.
See Script.SetWatchAllowTarget, Script.SetWatchWeapon
SyncedCallins:AllowWeaponTargetCheck(UnitID, integer, WeaponDefID) -> boolean, booleanParameters
Returns
booleanallowCheckbooleanignoreCheck
SyncedCallins:AllowWeaponTarget (function) view source
Controls blocking of a specific target from being considered during a weapon’s periodic auto-targeting sweep.
Only called for weaponDefIDs registered via Script.SetWatchAllowTarget or Script.SetWatchWeapon.
See Script.SetWatchAllowTarget, Script.SetWatchWeapon
SyncedCallins:AllowWeaponTarget(UnitID, UnitID, integer, WeaponDefID, number) -> boolean, numberParameters
UnitIDattackerIDUnitIDtargetIDintegerattackerWeaponNumWeaponDefIDattackerWeaponDefIDnumberdefPriority
Returns
booleanallowednumbernewPriority- The new priority for this target (if you don’t want to change it, return defPriority). Lower priority targets are targeted first.
SyncedCallins:AllowWeaponInterceptTarget (function) view source
Controls blocking of a specific intercept target from being considered during an interceptor weapon’s periodic auto-targeting sweep.
Only called for weaponDefIDs registered via Script.SetWatchAllowTarget or Script.SetWatchWeapon.
See Script.SetWatchAllowTarget, Script.SetWatchWeapon
SyncedCallins:AllowWeaponInterceptTarget(UnitID, integer, ProjectileID) -> booleanParameters
Returns
booleanallowed
SyncedCallins.SendToUnsynced (function) view source
Invoke UnsyncedCallins:RecvFromSynced callin with the given arguments.
Typically the first argument is the name of a function to call.
Argument tables will be recursively copied and stripped of unsupported types and metatables.
See UnsyncedCallins:RecvFromSynced
SyncedCallins.SendToUnsynced([(table|boolean|string|number)?, ]*) -> nilParameters
(table|boolean|string|number)?...- Arguments.
UnsyncedCallins (class) view source
Functions called by the Engine (Unsynced).Members
UnsyncedCallins:RecvFromSynced (function) view source
Receives data sent viaSendToUnsynced callout.UnsyncedCallins:RecvFromSynced([any, ]*) -> nilParameters
any...
UnsyncedCallins:DrawUnit (function) view source
For custom rendering of unitsDeprecated
UnsyncedCallins:DrawUnit(UnitID, integer) -> booleanParameters
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawFeature (function) view source
For custom rendering of featuresDeprecated
UnsyncedCallins:DrawFeature(FeatureID, integer) -> booleanParameters
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawShield (function) view source
For custom rendering of shields.Deprecated
UnsyncedCallins:DrawShield(UnitID, integer, integer) -> booleanParameters
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawProjectile (function) view source
For custom rendering of weapon (& other) projectilesDeprecated
UnsyncedCallins:DrawProjectile(ProjectileID, integer) -> booleanParameters
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawMaterial (function) view source
Deprecated
UnsyncedCallins:DrawMaterial(integer, integer) -> booleanParameters
Returns
booleansuppressEngineDraw
gl (table) view source
Callouts for OpenGL API
Only setters and getters for OpenGL usage in Recoil, see GL for constants.
See GL
Members
gl.GetShaderLog (function) view source
Returns the shader compilation error log. This is empty if the shader linking failed, in that case, check your in/out blocks and ensure they match.gl.GetShaderLog() -> stringReturns
stringinfoLog
gl.CreateShader (function) view source
Create a shader.gl.CreateShader(ShaderParams) -> integerParameters
Returns
integershaderID
gl.DeleteShader (function) view source
Deletes a shader identified by shaderIDgl.DeleteShader(integer) -> boolean?Parameters
integershaderID
Returns
boolean?deletednilifshaderIDisnil.
gl.UseShader (function) view source
Binds a shader program identified by shaderID. Pass 0 to disable the shader. Returns whether the shader was successfully bound.gl.UseShader(integer) -> booleanParameters
integershaderID
Returns
booleanlinked
gl.ActiveShader (function) view source
Binds a shader program identified by shaderID, and calls the Lua func with the specified arguments.
Can be used in NON-drawing events (to update uniforms etc.)!
gl.ActiveShader(integer, function, [any, ]*) -> nilParameters
gl.GetActiveUniforms (function) view source
Query the active (actually used) uniforms of a shader and identify their names, types (float, int, uint) and sizes (float, vec4, …).gl.GetActiveUniforms(integer) -> ActiveUniform[]Parameters
integershaderID
Returns
gl.GetUniformLocation (function) view source
Returns the locationID of a shaders uniform. Needed for changing uniform values with function gl.Uniform.gl.GetUniformLocation(integer, string) -> GLParameters
Returns
gl.GetSubroutineIndex (function) view source
Returns the subroutine index for a shader program.gl.GetSubroutineIndex(integer, integer, string) -> integer?Parameters
integershaderIDintegershaderTypestringname
Returns
integer?index- Returns no value when shader support is unavailable or
shaderIDis invalid.
gl.SetUnitBufferUniforms (function) view source
Writes user-defined model uniforms for a unit.gl.SetUnitBufferUniforms(UnitID, number[], integer?) -> integerParameters
Returns
integercount
gl.SetFeatureBufferUniforms (function) view source
Writes user-defined model uniforms for a feature.gl.SetFeatureBufferUniforms(FeatureID, number[], integer?) -> integerParameters
Returns
integercount
gl.Uniform (function) view source
Sets the uniform float value at the locationID for the currently active shader. Shader must be activated before setting uniforms.gl.Uniform((GL|string), number, number?, number?, number?) -> nilParameters
gl.UniformFloat (function) view source
Sets the uniform float value at the locationID for the currently active shader. Shader must be activated before setting uniforms.
Alias of Uniform
gl.UniformFloat((GL|string), number, number?, number?, number?) -> nilParameters
gl.UniformInt (function) view source
Sets the uniform int value at the locationID for the currently active shader. Shader must be activated before setting uniforms.gl.UniformInt((string|integer), integer, integer?, integer?, integer?) -> nilParameters
(string|integer)locationID- uniformName
integerint1integer?int2integer?int3integer?int4
gl.UniformArray (function) view source
Sets the an array of uniform values at the locationID for the currently active shader.
Shader must be activated before setting uniforms.
gl.UniformArray((string|integer), UniformArrayType, number[]) -> nilParameters
(string|integer)locationID- uniformName
UniformArrayTypetypenumber[]uniforms- Array up to 1024 elements
gl.UniformMatrix (function) view source
Sets the a uniform mat4 locationID for the currently active shader.
Shader must be activated before setting uniforms.
Can set one one common matrix like shadow, or by passing 16 additional numbers for the matrix.
gl.UniformMatrix((string|integer), MatrixName) -> nilParameters
(string|integer)locationID- uniformName
MatrixNamematrix- Name of common matrix.
gl.UniformMatrix (function overload 1) view source
Sets the a uniform mat4 locationID for the currently active shader.
Shader must be activated before setting uniforms.
Can set one one common matrix like shadow, or by passing 16 additional numbers for the matrix.
gl.UniformMatrix((string|integer), number[]) -> nilParameters
(string|integer)locationID- uniformName
number[]matrix- A 2x2, 3x3 or 4x4 matrix.
gl.UniformSubroutine (function) view source
Selects a subroutine for the active shader program.gl.UniformSubroutine(integer, integer) -> nilParameters
integershaderTypeintegerindex
gl.GetEngineUniformBufferDef (function) view source
Return the GLSL compliant definition of UniformMatricesBuffer(idx=0) or UniformParamsBuffer(idx=1) structure.gl.GetEngineUniformBufferDef(integer) -> stringParameters
integerindex
Returns
stringglslDefinition
gl.GetEngineModelUniformDataDef (function) view source
Return the GLSL compliant definition of ModelUniformData structure (per Unit/Feature buffer available on GPU)gl.GetEngineModelUniformDataDef(integer) -> stringParameters
integerindex
Returns
stringglslDefinition
gl.GetEngineModelUniformDataSize (function) view source
Return the current size values of ModelUniformData structure (per Unit/Feature buffer available on GPU)gl.GetEngineModelUniformDataSize(integer) -> integer, integerParameters
integerindex
Returns
integersizeInElementsintegersizeInBytesOnCPU
gl.SetGeometryShaderParameter (function) view source
Sets the Geometry shader parameters for shaderID. Needed by geometry shader programs (check the opengl GL_ARB_geometry_shader4 extension for glProgramParameteri)gl.SetGeometryShaderParameter(integer, GL, integer) -> nilParameters
Returns
gl.SetTesselationShaderParameter (function) view source
Sets the tesselation shader parameters for shaderID.
Needed by tesselation shader programs. (Check the opengl
GL_ARB_tessellation_shader extension for glProgramParameteri).
gl.SetTesselationShaderParameter(integer, integer) -> nilParameters
Returns
gl.LoadFont (function) view source
Load a font from a file.gl.LoadFont(string, integer?, integer?, number?) -> LuaFontParameters
stringfontFileinteger?sizeinteger?outlineWidthnumber?outlineWeight
Returns
gl.DeleteFont (function) view source
Delete a font object.gl.DeleteFont(LuaFont) -> nilParameters
gl.AddFallbackFont (function) view source
Adds a fallback font for the font rendering engine.
Fonts added first will have higher priority. When a glyph isn’t found when rendering a font, the fallback fonts will be searched first, otherwise os fonts will be used.
The application should listen for the unsynced ‘FontsChanged’ callin so modules can clear any already reserved display lists or other relevant caches.
Note the callin won’t be executed at the time of calling this method, but later, on the Update cycle (before other Update and Draw callins).
gl.AddFallbackFont(string) -> booleanParameters
stringfilePath- VFS path to the file, for example “fonts/myfont.ttf”. Uses VFS.RAW_FIRST access mode.
Returns
booleansuccess
gl.ClearFallbackFonts (function) view source
Clears all fallback fonts.
See the note at ‘AddFallbackFont’ about the ‘FontsChanged’ callin, it also applies when calling this method.
gl.ClearFallbackFonts() -> nilReturns
gl.GetVAO (function) view source
Example:
local myVAO = gl.GetVAO()
if myVAO == nil then Spring.Echo(“Failed to get VAO”) end
gl.GetVAO() -> VAO?Returns
gl.CreateRBO (function) view source
gl.CreateRBO(integer, integer, CreateRBOData) -> RBOParameters
integerxsizeintegerysizeCreateRBODatadata
Returns
gl.DeleteRBO (function) view source
gl.DeleteRBO(RBO) -> nilParameters
gl.HasExtension (function) view source
gl.HasExtension(string) -> booleanParameters
stringext
Returns
gl.GetNumber (function) view source
Get the value or values of a selected parameter.gl.GetNumber(GL, integer?) -> number ...Parameters
Returns
gl.GetString (function) view source
Get a string describing the current OpenGL connection.gl.GetString(GL) -> stringParameters
Returns
stringvalue"[NULL]"if the driver returns no string forpname.
gl.GetScreenViewTrans (function) view source
gl.GetScreenViewTrans() -> number, number, numberReturns
gl.GetViewSizes (function) view source
gl.GetViewSizes() -> integer, integerReturns
gl.GetViewRange (function) view source
gl.GetViewRange() -> number, number, number, numberReturns
numbernearPlaneDistnumberfarPlaneDistnumberminViewRangenumbermaxViewRange
gl.SlaveMiniMap (function) view source
gl.SlaveMiniMap(boolean) -> nilParameters
booleannewMode
gl.ConfigMiniMap (function) view source
gl.ConfigMiniMap(integer, integer, integer, integer) -> nilParameters
gl.DrawMiniMap (function) view source
gl.DrawMiniMap(boolean?) -> nilParameters
boolean?defaultTransform- (Default:
true)
gl.DrawMiniMapIcons (function) view source
Draws all unit icons visible to the given perspective (as on the minimap: team colors, radar dots, LOS rules, ghost dimming) for a map-space rectangle, without involving the actual minimap.
The rectangle is mapped onto the unit square under the current transform: (left,top) -> (0,0), (right,bottom) -> (1,1). Callers position, scale, rotate or flip the result via their own matrices, e.g. inside gl.RenderToTexture. Blending, scissor and viewport state are left to the caller.
gl.DrawMiniMapIcons(number, number, number, number, number, integer?, boolean?, boolean?) -> nilParameters
numberleft- map-space rectangle edges in elmos; left < right and top < bottom (top = smaller z) are required, mirror via your own transform instead
numbertopnumberrightnumberbottomnumbericonSize- base icon half-size in elmos, scaled per icon by its icontypes.lua size
integer?allyTeam- (Default: your allyTeam) perspective to render; other allyteams require a full-read handle
boolean?fullView- (Default: true when spectating in full view with a full-read handle) draw every unit at its true position; true requires a full-read handle, false is always allowed
boolean?highlightSelected- (Default: true) draw the local player’s selected units white. Other players’ selections are unknown to the engine — when rendering another perspective, pass false and overlay that viewer’s selection yourself
gl.BeginText (function) view source
Begin a block of text commands.
Text can be drawn without Start/End, but when doing several operations it’s more optimal if done inside a block.
Also allows disabling automatic setting of the blend mode. Otherwise the font will always print
with BlendFunc(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA).
See gl.BlendFunc, gl.BlendFuncSeparate
gl.BeginText(boolean?) -> nilParameters
boolean?userDefinedBlending- When
truedoesn’t set the gl.BlendFunc automatically. Defaults tofalse.
gl.EndText (function) view source
gl.EndText() -> nilgl.Text (function) view source
options is a concatenated string of option characters:
- horizontal alignment:
- ‘c’ = center
- ‘r’ = right
- vertical alignment:
- ‘a’ = ascender
- ’t’ = top
- ‘v’ = vertical center
- ‘x’ = baseline
- ‘b’ = bottom
- ’d’ = descender
- decorations:
- ‘o’ = black outline
- ‘O’ = white outline
- ’s’ = shadow
- other:
- ’n’ = don’t round vertex coords to nearest integer (font may get blurry)
gl.Text(string, number, number, number?, string?) -> nilParameters
Returns
gl.GetTextWidth (function) view source
gl.GetTextWidth(string) -> numberParameters
stringtext
Returns
numberwidth
gl.GetTextHeight (function) view source
gl.GetTextHeight(string) -> number, number, integerParameters
stringtext
Returns
gl.Unit (function) view source
Draw the unit, applying transform.gl.Unit(UnitID, boolean?, integer?, boolean?, boolean?) -> nilParameters
UnitIDunitIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
false) Skip theDrawUnitcallin. boolean?fullModel- (Default:
true)
gl.UnitRaw (function) view source
Draw the unit without applying transform.
Also skips the DrawUnit callin by default so any
recursion is blocked.
gl.UnitRaw(UnitID, boolean?, integer?, boolean?, boolean?) -> nilParameters
UnitIDunitIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
true) Skip theDrawUnitcallin. boolean?fullModel- (Default:
true)
gl.UnitTextures (function) view source
gl.UnitTextures(UnitID, boolean) -> nilParameters
gl.UnitShape (function) view source
gl.UnitShape(UnitDefID, TeamID, boolean?, boolean?, boolean?) -> nilParameters
UnitDefIDunitDefIDTeamIDteamIDboolean?rawState- (Default:
true) boolean?toScreen- (Default:
false) boolean?opaque- (Default:
true) Iftrue, draw opaque; iffalse, draw alpha.
gl.UnitShapeTextures (function) view source
gl.UnitShapeTextures(UnitDefID, boolean) -> nilParameters
gl.UnitMultMatrix (function) view source
gl.UnitMultMatrix(UnitID) -> nilParameters
gl.UnitPiece (function) view source
gl.UnitPiece(UnitID, integer) -> nilParameters
gl.UnitPieceMatrix (function) view source
gl.UnitPieceMatrix(UnitID, integer) -> nilParameters
gl.UnitPieceMultMatrix (function) view source
gl.UnitPieceMultMatrix(UnitID, integer) -> nilParameters
gl.Feature (function) view source
Draw the feature, applying transform.gl.Feature(FeatureID, boolean?, integer?, boolean?) -> nilParameters
FeatureIDfeatureIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
false) Skip theDrawFeaturecallin.
gl.FeatureRaw (function) view source
Draw the unit without applying transform.
Also skips the DrawFeature callin by default so any
recursion is blocked.
gl.FeatureRaw(FeatureID, boolean?, integer?, boolean?) -> nilParameters
FeatureIDfeatureIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
true) Skip theDrawFeaturecallin.
gl.FeatureTextures (function) view source
gl.FeatureTextures(FeatureID, boolean) -> nilParameters
gl.FeatureShape (function) view source
gl.FeatureShape(FeatureDefID, TeamID, boolean?, boolean?, boolean?) -> nilParameters
FeatureDefIDfeatureDefIDTeamIDteamIDboolean?rawState- (Default:
true) boolean?toScreen- (Default:
false) boolean?opaque- (Default:
true) Iftrue, draw opaque; iffalse, draw alpha.
gl.FeatureShapeTextures (function) view source
gl.FeatureShapeTextures(FeatureDefID, boolean) -> nilParameters
FeatureDefIDfeatureDefIDbooleanpush- If
true, push the render state; iffalse, pop it.
gl.FeatureMultMatrix (function) view source
gl.FeatureMultMatrix(FeatureID) -> nilParameters
gl.FeaturePiece (function) view source
gl.FeaturePiece(FeatureID, integer) -> nilParameters
gl.FeaturePieceMatrix (function) view source
gl.FeaturePieceMatrix(FeatureID, integer) -> nilParameters
gl.FeaturePieceMultMatrix (function) view source
gl.FeaturePieceMultMatrix(FeatureID, integer) -> nilParameters
gl.DrawListAtUnit (function) view source
gl.DrawListAtUnit(UnitID, integer, boolean?, number?, number?, number?, number?, number?, number?, number?) -> nilParameters
UnitIDunitIDintegerlistIndexboolean?useMidPos- (Default:
true) number?scaleX- (Default:
1.0) number?scaleY- (Default:
1.0) number?scaleZ- (Default:
1.0) number?degrees- (Default:
0.0) number?rotX- (Default:
0.0) number?rotY- (Default:
1.0) number?rotZ- (Default:
0.0)
gl.DrawFuncAtUnit (function) view source
gl.DrawFuncAtUnit(UnitID, boolean?, fun(...), [any, ]*) -> nilParameters
UnitIDunitIDboolean?useMidPos- (Default:
true) fun(...)func- Function to call.
any...- Arguments passed to function.
gl.DrawGroundCircle (function) view source
gl.DrawGroundCircle(number, number, number, number, integer) -> nilParameters
numberposXnumberposYnumberposZnumberradiusintegerresolution
gl.DrawGroundCircle (function overload 1) view source
gl.DrawGroundCircle(number, number, number, number, integer, number, number?, WeaponDefID?) -> nilParameters
numberposXnumberposYnumberposZnumberradiusintegerresolutionnumberslopenumber?gravityWeaponDefID?weaponDefID
gl.DrawGroundQuad (function) view source
gl.DrawGroundQuad(number, number, number, number, nil, boolean?) -> nilParameters
gl.DrawGroundQuad (function overload 1) view source
gl.DrawGroundQuad(number, number, number, number, nil, number, number, number, number) -> nilParameters
gl.Shape (function) view source
gl.Shape(GL, VertexData[]) -> nilParameters
gl.BeginEnd (function) view source
gl.BeginEnd(GL, fun(...), [any, ]*) -> nilParameters
gl.Vertex (function) view source
gl.Vertex(xy) -> nilParameters
gl.Vertex (function overload 1) view source
gl.Vertex(xyz) -> nilParameters
gl.Vertex (function overload 2) view source
gl.Vertex(xyzw) -> nilParameters
gl.Vertex (function overload 3) view source
gl.Vertex(number, number, number?, number?) -> nilParameters
gl.Normal (function) view source
gl.Normal(xyz) -> nilParameters
gl.Normal (function overload 1) view source
gl.Normal(number, number, number) -> nilParameters
gl.TexCoord (function) view source
gl.TexCoord((number)) -> nilParameters
(number)coord
gl.TexCoord (function overload 1) view source
gl.TexCoord(xy) -> nilParameters
gl.TexCoord (function overload 2) view source
gl.TexCoord(xyz) -> nilParameters
gl.TexCoord (function overload 3) view source
gl.TexCoord(xyzw) -> nilParameters
gl.TexCoord (function overload 4) view source
gl.TexCoord(number, number?, number?, number?) -> nilParameters
gl.MultiTexCoord (function) view source
gl.MultiTexCoord(integer, (number)) -> nilParameters
gl.MultiTexCoord (function overload 1) view source
gl.MultiTexCoord(integer, xy) -> nilParameters
gl.MultiTexCoord (function overload 2) view source
gl.MultiTexCoord(integer, xyz) -> nilParameters
gl.MultiTexCoord (function overload 3) view source
gl.MultiTexCoord(integer, xyzw) -> nilParameters
gl.MultiTexCoord (function overload 4) view source
gl.MultiTexCoord(integer, number, number?, number?, number?) -> nilParameters
gl.SecondaryColor (function) view source
gl.SecondaryColor(rgb) -> nilParameters
gl.SecondaryColor (function overload 1) view source
gl.SecondaryColor(number, number, number) -> nilParameters
gl.FogCoord (function) view source
gl.FogCoord(number) -> nilParameters
numbercoord
gl.EdgeFlag (function) view source
gl.EdgeFlag(boolean) -> nilParameters
booleanflag
gl.Rect (function) view source
gl.Rect(number, number, number, number) -> nilParameters
gl.TexRect (function) view source
gl.TexRect(number, number, number, number, boolean?, boolean?) -> nilParameters
numberx1numbery1numberx2numbery2boolean?flipSCoordsboolean?flipTCoords
gl.TexRect (function overload 1) view source
gl.TexRect(number, number, number, number, number, number, number, number) -> nilParameters
gl.DispatchCompute (function) view source
gl.DispatchCompute(integer?, integer, integer, integer?) -> nilParameters
gl.MemoryBarrier (function) view source
gl.MemoryBarrier(integer?) -> nilParameters
integer?barriers- (Default:
4)
gl.Color (function) view source
gl.Color(number, number, number, number?) -> nilParameters
gl.Color (function overload 1) view source
gl.Color(rgba) -> nilParameters
gl.Color (function overload 2) view source
gl.Color(rgb) -> nilParameters
gl.Material (function) view source
gl.Material(Material) -> nilParameters
gl.ResetState (function) view source
gl.ResetState() -> nilgl.ResetMatrices (function) view source
gl.ResetMatrices() -> nilgl.Lighting (function) view source
gl.Lighting(boolean) -> nilParameters
booleanenable
gl.ShadeModel (function) view source
gl.ShadeModel(GL) -> nilParameters
gl.Scissor (function) view source
gl.Scissor(boolean) -> nilParameters
booleanenable
gl.Scissor (function overload 1) view source
gl.Scissor(integer, integer, integer, integer) -> nilParameters
gl.Viewport (function) view source
gl.Viewport(integer, integer, integer, integer) -> nilParameters
gl.ColorMask (function) view source
Enable or disable writing of frame buffer color components.gl.ColorMask(boolean) -> nilParameters
booleanrgba
gl.ColorMask (function overload 1) view source
Enable or disable writing of frame buffer color components.gl.ColorMask(boolean, boolean, boolean, boolean) -> nilParameters
gl.DepthMask (function) view source
Enable or disable writing into the depth buffer.gl.DepthMask(boolean) -> nilParameters
booleanenable
gl.DepthTest (function) view source
Enable or disable depth test.gl.DepthTest(boolean) -> nilParameters
booleanenable
gl.DepthTest (function overload 1) view source
Enable depth test and specify the depth comparison function.
depthFunction accepts GL.NEVER, GL.LESS, GL.EQUAL, GL.LEQUAL,
GL.GREATER, GL.NOTEQUAL, GL.GEQUAL, and GL.ALWAYS.
gl.DepthTest(GL) -> nilParameters
GLdepthFunction- The depth comparison function.
gl.DepthClamp (function) view source
gl.DepthClamp(boolean) -> nilParameters
booleanenable
gl.Culling (function) view source
gl.Culling(boolean) -> nilParameters
booleanenable
gl.Culling (function overload 1) view source
Enable culling and set culling mode.
mode accepts GL.FRONT, GL.BACK, and GL.FRONT_AND_BACK.
gl.Culling(GL) -> nilParameters
gl.LogicOp (function) view source
gl.LogicOp(boolean) -> nilParameters
booleanenable
gl.LogicOp (function overload 1) view source
Specify a logical pixel operation for rendering.
opCode accepts GL.CLEAR, GL.SET, GL.COPY, GL.COPY_INVERTED,
GL.NOOP, GL.INVERT, GL.AND, GL.NAND, GL.OR, GL.NOR, GL.XOR,
GL.EQUIV, GL.AND_REVERSE, GL.AND_INVERTED, GL.OR_REVERSE, and
GL.OR_INVERTED.
gl.LogicOp(GL) -> nilParameters
gl.Fog (function) view source
gl.Fog(boolean) -> nilParameters
booleanenable
gl.Blending (function) view source
gl.Blending(boolean) -> nilParameters
booleanenable
gl.Blending (function overload 1) view source
gl.Blending(("add"|"alpha_add"|"alpha"|"reset"|"color"|"modulate"...)) -> nilParameters
("add"|"alpha_add"|"alpha"|"reset"|"color"|"modulate"...)mode
gl.Blending (function overload 2) view source
gl.Blending(GL, GL) -> nilParameters
gl.BlendEquation (function) view source
gl.BlendEquation(GL) -> nilParameters
gl.BlendFunc (function) view source
gl.BlendFunc(GL, GL) -> nilParameters
gl.BlendEquationSeparate (function) view source
gl.BlendEquationSeparate(GL, GL) -> nilParameters
gl.BlendFuncSeparate (function) view source
gl.BlendFuncSeparate(GL, GL, GL, GL) -> nilParameters
gl.AlphaTest (function) view source
gl.AlphaTest(boolean) -> nilParameters
booleanenable
gl.AlphaTest (function overload 1) view source
Specify the alpha test function.
func accepts GL.NEVER, GL.LESS, GL.EQUAL, GL.LEQUAL, GL.GREATER,
GL.NOTEQUAL, GL.GEQUAL, and GL.ALWAYS.
ref is clamped to the range [0, 1], where 0 represents the lowest
possible alpha value and 1 the highest possible value.
gl.AlphaTest(GL, number) -> nilParameters
GLfunc- The alpha comparison function.
numberref- The reference value that incoming alpha values are compared to.
gl.AlphaToCoverage (function) view source
gl.AlphaToCoverage(boolean) -> nilParameters
booleanenable
gl.PolygonMode (function) view source
Select polygon rasterization mode.
face must be GL.FRONT for front-facing polygons, GL.BACK for
back-facing polygons, or GL.FRONT_AND_BACK for front- and back-facing
polygons.
mode accepts GL.POINT, GL.LINE, and GL.FILL.
gl.PolygonMode(GL, GL) -> nilParameters
gl.PolygonOffset (function) view source
gl.PolygonOffset(boolean) -> nilParameters
booleanenable
gl.PolygonOffset (function overload 1) view source
gl.PolygonOffset(number, number) -> nilParameters
numberfactor- Scale factor for a variable depth offset for each polygon.
numberunits- Multiplied by an implementation-specific value to create a constant depth offset.
gl.StencilTest (function) view source
gl.StencilTest(boolean) -> nilParameters
booleanenable
gl.StencilMask (function) view source
Control the front and back writing of individual bits in the stencil planes.gl.StencilMask(integer) -> nilParameters
integermask- Bit mask to enable and disable writing of individual bits in the stencil planes.
gl.StencilFunc (function) view source
Set front and back function and reference value for stencil testing.
func accepts GL.NEVER, GL.LESS, GL.EQUAL, GL.LEQUAL, GL.GREATER,
GL.NOTEQUAL, GL.GEQUAL, and GL.ALWAYS.
ref is clamped to the range [0, 2^n - 1], where n is the number of
bitplanes in the stencil buffer.
gl.StencilFunc(GL, integer, integer) -> nilParameters
GLfunc- The test function.
integerref- The reference value for the stencil test.
integermask- ANDed with both the reference value and the stored stencil value when the test is done.
gl.StencilOp (function) view source
Set front and back stencil test actions.
fail, zfail and zpass accept GL.KEEP, GL.ZERO, GL.REPLACE,
GL.INCR, GL.INCR_WRAP, GL.DECR, GL.DECR_WRAP, and GL.INVERT.
zpass also applies when the stencil test passes and either there is no
depth buffer or depth testing is not enabled.
gl.StencilOp(GL, GL, GL) -> nilParameters
GLfail- The action to take when the stencil test fails.
GLzfail- The action when the stencil test passes, but the depth test fails.
GLzpass- The action when both the stencil test and the depth test pass.
gl.StencilMaskSeparate (function) view source
Control the front and back writing of individual bits in the stencil planes.
face accepts GL.FRONT, GL.BACK, and GL.FRONT_AND_BACK.
gl.StencilMaskSeparate(GL, integer) -> nilParameters
GLface- Whether the front and/or back stencil writemask is updated.
integermask- Bit mask to enable and disable writing of individual bits in the stencil planes.
gl.StencilFuncSeparate (function) view source
Set front and/or back function and reference value for stencil testing.
face accepts GL.FRONT, GL.BACK, and GL.FRONT_AND_BACK.
func accepts GL.NEVER, GL.LESS, GL.EQUAL, GL.LEQUAL, GL.GREATER,
GL.NOTEQUAL, GL.GEQUAL, and GL.ALWAYS.
ref is clamped to the range [0, 2^n - 1], where n is the number of
bitplanes in the stencil buffer.
gl.StencilFuncSeparate(GL, GL, integer, integer) -> nilParameters
GLface- Whether front and/or back stencil state is updated.
GLfunc- The test function.
integerref- The reference value for the stencil test.
integermask- ANDed with both the reference value and the stored stencil value when the test is done.
gl.StencilOpSeparate (function) view source
Set front and/or back stencil test actions.
face accepts GL.FRONT, GL.BACK, and GL.FRONT_AND_BACK.
fail, zfail and zpass accept GL.KEEP, GL.ZERO, GL.REPLACE,
GL.INCR, GL.INCR_WRAP, GL.DECR, GL.DECR_WRAP, and GL.INVERT.
zpass also applies when the stencil test passes and either there is no
depth buffer or depth testing is not enabled.
gl.StencilOpSeparate(GL, GL, GL, GL) -> nilParameters
GLface- Whether front and/or back stencil state is updated.
GLfail- The action to take when the stencil test fails.
GLzfail- The action when the stencil test passes, but the depth test fails.
GLzpass- The action when both the stencil test and the depth test pass.
gl.LineStipple (function) view source
gl.LineStipple(boolean) -> nilParameters
booleanenable
gl.LineStipple (function overload 1) view source
gl.LineStipple(string) -> nilParameters
stringignoredString- The value of this string is ignored, but it still does something.
gl.LineStipple (function overload 2) view source
gl.LineStipple(integer, integer, integer?) -> nilParameters
gl.LineWidth (function) view source
gl.LineWidth(number) -> nilParameters
numberwidth
gl.PointSize (function) view source
gl.PointSize(number) -> nilParameters
numbersize
gl.PointSprite (function) view source
gl.PointSprite(boolean, boolean?, boolean?) -> nilParameters
booleanenableboolean?enableCoordReplaceboolean?coordOrigintruefor upper left,falsefor lower left, otherwise no change.
gl.PointParameter (function) view source
gl.PointParameter(number, number, number, number?, number?, number?) -> nilParameters
gl.Texture (function) view source
gl.Texture(integer, boolean?) -> booleanParameters
Returns
gl.Texture (function overload 1) view source
gl.Texture(boolean) -> booleanParameters
booleanenable
Returns
gl.Texture (function overload 2) view source
gl.Texture(integer, string) -> booleanParameters
Returns
gl.Texture (function overload 3) view source
gl.Texture(string) -> booleanParameters
stringimage
Returns
gl.CreateTexture (function) view source
gl.CreateTexture(integer, integer, Texture) -> string?Parameters
Returns
string?texName
gl.CreateTexture (function overload 1) view source
gl.CreateTexture(integer, integer, integer, Texture) -> string?Parameters
Returns
string?texName
gl.ChangeTextureParams (function) view source
gl.ChangeTextureParams(string, Texture) -> nilParameters
gl.DeleteTexture (function) view source
gl.DeleteTexture(string) -> booleanParameters
stringtexName
Returns
gl.DeleteTextureFBO (function) view source
gl.DeleteTextureFBO(string) -> booleanParameters
stringtexName
Returns
gl.TextureInfo (function) view source
gl.TextureInfo(string) -> TextureInfoParameters
stringtexName
Returns
gl.CopyToTexture (function) view source
gl.CopyToTexture(string, integer, integer, integer, integer, integer, integer, GL?, GL?) -> nilParameters
gl.CopyImageSubData (function) view source
gl.CopyImageSubData(string, integer, integer, integer, integer, string, integer, integer, integer, integer, integer, integer, integer) -> nilParameters
stringsrcNameintegersrcLevelintegersrcXintegersrcYintegersrcZstringdstNameintegerdstLevelintegerdstXintegerdstYintegerdstZintegerwidthintegerheightintegerdepth
gl.RenderToTexture (function) view source
gl.RenderToTexture(string, fun(...), [any, ]*) -> nilParameters
gl.GenerateMipmap (function) view source
gl.GenerateMipmap(string) -> nilParameters
stringtexName
gl.ActiveTexture (function) view source
gl.ActiveTexture(integer, function, [any, ]*) -> nilParameters
gl.TexEnv (function) view source
gl.TexEnv(GL, GL, number) -> nilParameters
gl.TexEnv (function overload 1) view source
gl.TexEnv(GL, GL, number?, number?, number?, number?) -> nilParameters
GLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.MultiTexEnv (function) view source
gl.MultiTexEnv(integer, GL, GL, number?) -> nilParameters
gl.MultiTexEnv (function overload 1) view source
gl.MultiTexEnv(integer, GL, GL, number?, number?, number?, number?) -> nilParameters
integertexNumGLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.TexGen (function) view source
gl.TexGen(GL, boolean) -> nilParameters
gl.TexGen (function overload 1) view source
gl.TexGen(GL, GL, number?) -> nilParameters
gl.TexGen (function overload 2) view source
gl.TexGen(GL, GL, number?, number?, number?, number?) -> nilParameters
GLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.MultiTexGen (function) view source
gl.MultiTexGen(integer, GL, boolean) -> nilParameters
gl.MultiTexGen (function overload 1) view source
gl.MultiTexGen(integer, GL, GL, number?) -> nilParameters
gl.MultiTexGen (function overload 2) view source
gl.MultiTexGen(integer, GL, GL, number?, number?, number?, number?) -> nilParameters
integertexNumGLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.BindImageTexture (function) view source
For format parameters refer to https://registry.khronos.org/OpenGL-Refpages/gl4/html/glBindImageTexture.xhtml and https://recoilengine.org/docs/lua-api/#GL.RGBA32F and further
Example uses local my_texture_id = gl.CreateTexture(…)
– bind layer 1 of my_texture_id if it supports layered bindings to image unit 0 gl.BindImageTexture(0, my_texture_id, 0, 1, GL.READ_WRITE, GL.RGBA16F)
– bind all layers of my_texture_id if it supports layered bindings to image unit 0 gl.BindImageTexture(0, my_texture_id, 0, nil, GL.READ_WRITE, GL.RGBA16F)
– unbind any texture attached to image unit 0 gl.BindImageTexture(0, nil, nil, nil, nil, GL.RGBA16F)
gl.BindImageTexture(integer, string?, integer?, integer?, GL?, integer) -> nilParameters
integerunitstring?texID- (nil breaks any existing binding to the image unit)
integer?level- (Default: 0)
integer?layer- (nil binds the entire texture(array/cube), an integer binds a specific layer, ignored by gl if the texture does not support layered bindings)
GL?access- (Default: GL.READ_WRITE) Accepts GL.READ_ONLY, GL.WRITE_ONLY or GL.READ_WRITE.
integerformat- (Example: GL.RGBA16F)
gl.CreateTextureAtlas (function) view source
gl.CreateTextureAtlas(integer, integer, integer?) -> stringParameters
Returns
stringtexName
gl.FinalizeTextureAtlas (function) view source
gl.FinalizeTextureAtlas(string) -> booleanParameters
stringtexName
Returns
gl.DeleteTextureAtlas (function) view source
gl.DeleteTextureAtlas(string) -> booleanParameters
stringtexName
Returns
gl.AddAtlasTexture (function) view source
gl.AddAtlasTexture(string, string) -> nilParameters
stringtexNamestringsubAtlasTexName
gl.GetAtlasTexture (function) view source
gl.GetAtlasTexture(string, string) -> number, number, number, numberParameters
stringtexNamestringsubAtlasTexName
Returns
gl.GetEngineAtlasTextures (function) view source
gl.GetEngineAtlasTextures(("$explosions"|"$groundfx")) -> table<string,float4>Parameters
("$explosions"|"$groundfx")atlasName
Returns
table<string,float4>atlasTextures- Table of x1,x2,y1,y2 coordinates by texture name.
gl.Clear (function) view source
gl.Clear(GL) -> nilParameters
GLbits- any buffer bit mask (e.g. GL.STENCIL_BUFFER_BIT). Clears with current/default values.
gl.Clear (function overload 1) view source
gl.Clear(GL, number) -> nilParameters
gl.Clear (function overload 2) view source
gl.Clear(GL, number, number, number, number) -> nilParameters
GLbits- GL.COLOR_BUFFER_BIT or GL.ACCUM_BUFFER_BIT.
numberrnumbergnumberbnumbera
gl.SwapBuffers (function) view source
gl.SwapBuffers() -> nilgl.Translate (function) view source
gl.Translate(number, number, number) -> nilParameters
gl.Scale (function) view source
gl.Scale(number, number, number) -> nilParameters
gl.Rotate (function) view source
gl.Rotate(number, number, number, number) -> nilParameters
gl.Ortho (function) view source
gl.Ortho(number, number, number, number, number, number) -> nilParameters
gl.Frustum (function) view source
gl.Frustum(number, number, number, number, number, number) -> nilParameters
gl.Billboard (function) view source
gl.Billboard() -> nilgl.Light (function) view source
gl.Light(integer, boolean) -> nilParameters
gl.Light (function overload 1) view source
gl.Light(integer, GL, GL) -> nilParameters
gl.Light (function overload 2) view source
gl.Light(integer, GL, number, number, number, number?) -> nilParameters
gl.ClipPlane (function) view source
gl.ClipPlane(integer, boolean) -> nilParameters
gl.ClipPlane (function overload 1) view source
gl.ClipPlane(integer, number, number, number, number) -> nilParameters
gl.ClipDistance (function) view source
gl.ClipDistance(integer, boolean) -> nilParameters
gl.MatrixMode (function) view source
gl.MatrixMode(GL) -> nilParameters
gl.LoadIdentity (function) view source
gl.LoadIdentity() -> nilgl.LoadMatrix (function) view source
gl.LoadMatrix(string) -> nilParameters
stringmatrix
gl.LoadMatrix (function overload 1) view source
gl.LoadMatrix(Matrix4x4) -> nilParameters
gl.LoadMatrix (function overload 2) view source
gl.LoadMatrix() -> number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberReturns
numberm11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
gl.MultMatrix (function) view source
gl.MultMatrix(string) -> nilParameters
stringmatrixName
gl.MultMatrix (function overload 1) view source
gl.MultMatrix(Matrix4x4) -> nilParameters
gl.MultMatrix (function overload 2) view source
gl.MultMatrix(number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number) -> nilParameters
numberm11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
gl.PushMatrix (function) view source
gl.PushMatrix() -> nilgl.PopMatrix (function) view source
gl.PopMatrix() -> nilgl.PushPopMatrix (function) view source
gl.PushPopMatrix(GL, fun(), [any, ]*) -> nilParameters
gl.PushPopMatrix (function overload 1) view source
gl.PushPopMatrix(fun(), [any, ]*) -> nilParameters
gl.GetMatrixData (function) view source
Get value at index of matrix.gl.GetMatrixData(GL, integer) -> numberParameters
GLtype- Matrix type (GL.PROJECTION, GL.MODELVIEW, GL.TEXTURE).
integerindex- Matrix index in range
[1, 16].
Returns
numbervalue- The value at the given index.
gl.GetMatrixData (function overload 1) view source
gl.GetMatrixData(GL) -> Matrix4x4Parameters
GLtype- Matrix type (GL.PROJECTION, GL.MODELVIEW, GL.TEXTURE).
Returns
gl.GetMatrixData (function overload 2) view source
gl.GetMatrixData(integer) -> numberParameters
integerindex- Matrix index in range
[1, 16].
Returns
numbervalue- The value at the given index.
gl.GetMatrixData (function overload 3) view source
gl.GetMatrixData(MatrixName) -> Matrix4x4Parameters
Returns
gl.PushAttrib (function) view source
gl.PushAttrib(GL?) -> nilParameters
GL?mask- (Default: GL.ALL_ATTRIB_BITS)
gl.PopAttrib (function) view source
gl.PopAttrib() -> nilgl.UnsafeState (function) view source
gl.UnsafeState(GL, fun(), [any, ]*) -> nilParameters
gl.UnsafeState (function overload 1) view source
gl.UnsafeState(GL, boolean, fun(), [any, ]*) -> nilParameters
gl.GetFixedState (function) view source
gl.GetFixedState(string, boolean?) -> boolean, any ...Parameters
Returns
gl.CreateList (function) view source
gl.CreateList(fun(), [any, ]*) -> integerParameters
Returns
integerlistID0if the list could not be generated orfuncerrored.
gl.CallList (function) view source
gl.CallList(integer) -> nilParameters
integerlistIndex
gl.DeleteList (function) view source
gl.DeleteList(integer) -> nilParameters
integerlistIndex
gl.Flush (function) view source
gl.Flush() -> nilgl.Finish (function) view source
gl.Finish() -> nilgl.ReadPixels (function) view source
Get single pixel.
format is one of the GL pixel format constants. One value is returned
per component of the format, in the order the format names them, so
GL.BGRA returns blue, green, red and alpha:
- one component: GL.RED, GL.GREEN, GL.BLUE, GL.ALPHA, GL.LUMINANCE, GL.COLOR_INDEX, GL.STENCIL_INDEX, GL.DEPTH_COMPONENT
- two components: GL.RG, GL.LUMINANCE_ALPHA
- three components: GL.RGB, GL.BGR
- four components: GL.RGBA, GL.BGRA
GL.COLOR_INDEX, GL.ALPHA, GL.LUMINANCE and GL.LUMINANCE_ALPHA were
removed in the core profile, and are only accepted while running in the
compatibility profile, i.e. with the ForceCoreContext config unset.
GL.COLOR_INDEX additionally requires a color-index color buffer, which
Recoil never creates. GL.STENCIL_INDEX and GL.DEPTH_COMPONENT require
the read buffer to actually have the matching attachment.
gl.ReadPixels(integer, integer, 1, 1, GL?) -> number ...Parameters
Returns
number ...Color- value (color size based on format).
gl.ReadPixels (function overload 1) view source
Get column of pixels.gl.ReadPixels(integer, integer, 1, integer, GL?) -> (number|number[])[]Parameters
Returns
(number|number[])[]colors- Column of color values (color size based on format), indexed by row.
gl.ReadPixels (function overload 2) view source
Get row of pixels.gl.ReadPixels(integer, integer, integer, 1, GL?) -> (number|number[])[]Parameters
Returns
(number|number[])[]colors- Row of color values (color size based on format), indexed by column.
gl.ReadPixels (function overload 3) view source
Get rows of pixels.gl.ReadPixels(integer, integer, integer, integer, GL?) -> (number|number[])[][]Parameters
Returns
(number|number[])[][]colors- Array of rows of color values (color size based on format), bottom row first:
colors[y][x].
gl.SaveImage (function) view source
gl.SaveImage(integer, integer, integer, integer, string, SaveImageOptions?) -> boolean?Parameters
Returns
boolean?success
gl.CreateQuery (function) view source
Creates a GL query object.
Timer targets (GL.TIME_ELAPSED, GL.TIMESTAMP) need OpenGL 3.3 or ARB_timer_query; without it
nil is returned. A GL.TIMESTAMP query is written with gl.QueryCounter, the other
targets are measured over a function with gl.RunQuery.
gl.CreateQuery(integer?) -> anyParameters
integer?target- (Default: GL.SAMPLES_PASSED) One of GL.SAMPLES_PASSED, GL.ANY_SAMPLES_PASSED, GL.ANY_SAMPLES_PASSED_CONSERVATIVE, GL.PRIMITIVES_GENERATED, GL.TIME_ELAPSED, GL.TIMESTAMP.
Returns
anyquery
gl.DeleteQuery (function) view source
gl.DeleteQuery(any) -> nilParameters
anyquery
gl.RunQuery (function) view source
Runs the query over the GL calls made by func.
The query’s target decides what is counted: samples that passed the depth test
(GL.SAMPLES_PASSED, GL.ANY_SAMPLES_PASSED*), primitives emitted
(GL.PRIMITIVES_GENERATED) or GPU nanoseconds spent (GL.TIME_ELAPSED).
Queries of the same target cannot be nested, and GL.TIMESTAMP queries use
gl.QueryCounter instead.
gl.RunQuery(any, fun(...), [any, ]*) -> nilParameters
gl.QueryCounter (function) view source
Records the GPU timestamp (nanoseconds) into a GL.TIMESTAMP query once the GPU reaches this point of the command stream. The difference between two timestamps is the GPU time spent between them; unlike GL.TIME_ELAPSED ranges these nest freely.
May be unavailable and nil if the platform supports neither OpenGL 3.3 nor ARB_timer_query.
gl.QueryCounter(any) -> nilParameters
anyquery- A query created with
gl.CreateQuery(GL.TIMESTAMP).
gl.GetQuery (function) view source
Reads the result of a query.
Results become available only after the GPU has executed the queried commands,
usually a frame or two later. With blocking the call stalls until then; without
it nil is returned while the result is still pending, so queries from the previous
frame can be read without a GPU sync.
Note that a GL.TIMESTAMP value is a 64-bit nanosecond counter that Lua’s single precision numbers cannot hold exactly; use gl.GetQueryDelta to measure between two.
gl.GetQuery(any, boolean?) -> number?Parameters
Returns
number?result- Sample count, primitive count, or nanoseconds for timer queries;
nilif not yet available andblockingis false.
gl.GetQueryDelta (function) view source
Returns the GPU nanoseconds between two GL.TIMESTAMP queries recorded with gl.QueryCounter.
The subtraction happens on the 64-bit values, so the result stays exact where the raw timestamps would not survive the trip into Lua’s single precision numbers.
May be unavailable and nil if the platform supports neither OpenGL 3.3 nor ARB_timer_query.
gl.GetQueryDelta(any, any, boolean?) -> number?Parameters
anystartQueryanyendQueryboolean?blocking- (Default:
true) Wait for both results.
Returns
number?nanosecondsnilif a result is not yet available andblockingis false.
gl.GetGlobalTexNames (function) view source
gl.GetGlobalTexNames() -> string[]Returns
string[]texNames- List of texture names.
gl.GetGlobalTexCoords (function) view source
gl.GetGlobalTexCoords() -> number, number, number, numberReturns
gl.GetShadowMapParams (function) view source
gl.GetShadowMapParams() -> number, number, number, numberReturns
gl.GetAtmosphere (function) view source
gl.GetAtmosphere() -> number, number, numberReturns
gl.GetAtmosphere (function overload 1) view source
gl.GetAtmosphere(("fogStart"|"fogEnd"|"pos"|"fogColor"|"skyColor"|"sunColor"...)) -> any ...Parameters
("fogStart"|"fogEnd"|"pos"|"fogColor"|"skyColor"|"sunColor"...)param
Returns
gl.GetSun (function) view source
gl.GetSun() -> number, number, numberReturns
gl.GetSun (function overload 1) view source
gl.GetSun(("pos"|"dir"|"specularExponent"|"shadowDensity"|"diffuse"|"ambient"...), ("ground"|"unit")) -> number?, number?, number?Parameters
("pos"|"dir"|"specularExponent"|"shadowDensity"|"diffuse"|"ambient"...)param("ground"|"unit")mode- (Default:
“ground”)
Returns
gl.GetWaterRendering (function) view source
gl.GetWaterRendering(string) -> any ...Parameters
stringkey
Returns
any ...value
gl.GetMapRendering (function) view source
gl.GetMapRendering(string) -> any ...Parameters
stringkey
Returns
any ...value
gl.ObjectLabel (function) view source
Labels an object for use with debugging tools. May be unavailable andnil if the platform doesn’t support the feature.gl.ObjectLabel(GL, integer, string) -> nilParameters
GLobjectTypeIdentifier- Specifies the type of object being labeled.
integerobjectID- Specifies the name or ID of the object to label.
stringlabel- A string containing the label to be assigned to the object.
gl.PushDebugGroup (function) view source
Pushes a debug marker for debugging tools such as nVidia nSight 2024.04,
see https://registry.khronos.org/OpenGL-Refpages/gl4/html/glPushDebugGroup.xhtml .
May be unavailable and nil if the platform doesn’t support the feature.
Groups are basically named scopes similar to tracy’s, and are pushed/popped independently from GL attribute/matrix push/pop (though of course makes sense to put them together).
Tools are known to struggle to see the annotation for FBOs if they are raw bound.
gl.PushDebugGroup(integer, string, boolean?) -> nilParameters
integerid- A numeric identifier for the group, can be any unique number.
stringmessage- A human-readable string describing the debug group. Will be truncated if longer than driver-specific limit
boolean?sourceIsThirdParty- Set the source tag, true for GL_DEBUG_SOURCE_THIRD_PARTY, false for GL_DEBUG_SOURCE_APPLICATION. default false
Returns
gl.PopDebugGroup (function) view source
Pops the most recent GL debug group from the stack (does NOT take the numerical ID from push). May be unavailable andnil if the platform doesn’t support the feature.gl.PopDebugGroup() -> nilReturns
gl.CreateFBO (function) view source
gl.CreateFBO(FBODescription) -> FBOParameters
Returns
gl.DeleteFBO (function) view source
This doesn’t delete the attached objects!gl.DeleteFBO(FBO) -> nilParameters
gl.IsValidFBO (function) view source
gl.IsValidFBO(FBO, GL?) -> boolean, GL?Parameters
Returns
gl.ActiveFBO (function) view source
gl.ActiveFBO(FBO, fun(...), [any, ]*) -> nilParameters
gl.ActiveFBO (function overload 1) view source
gl.ActiveFBO(FBO, GL?, fun(...), [any, ]*) -> nilParameters
gl.RawBindFBO (function) view source
Bind default or specified via rawFboId numeric id of FBOgl.RawBindFBO(nil, GL?, integer?) -> nilParameters
Returns
gl.RawBindFBO (function overload 1) view source
gl.RawBindFBO(FBO, GL?) -> integerParameters
Returns
integerpreviouslyBoundRawFboId
gl.BlitFBO (function) view source
needsGLAD_GL_EXT_framebuffer_blitgl.BlitFBO(integer, integer, integer, integer, integer, integer, integer, integer, GL?, GL?) -> nilParameters
integerx0Srcintegery0Srcintegerx1Srcintegery1Srcintegerx0Dstintegery0Dstintegerx1Dstintegery1DstGL?mask- (Default: GL_COLOR_BUFFER_BIT)
GL?filter- (Default: GL_NEAREST)
gl.BlitFBO (function overload 1) view source
needsGLAD_GL_EXT_framebuffer_blitgl.BlitFBO(FBO, integer, integer, integer, integer, FBO, integer, integer, integer, integer, GL?, GL?) -> nilParameters
FBOfboSrcintegerx0Srcintegery0Srcintegerx1Srcintegery1SrcFBOfboDstintegerx0Dstintegery0Dstintegerx1Dstintegery1DstGL?mask- (Default: GL_COLOR_BUFFER_BIT)
GL?filter- (Default: GL_NEAREST)
gl.ClearAttachmentFBO (function) view source
needsPlatform.glVersionNum >= 30
Clears the “attachment” of the currently bound FBO type “target” with “clearValues”gl.ClearAttachmentFBO(GL?, (GL|Attachment), number?, number?, number?, number?) -> booleanParameters
GL?target- (Default: GL.FRAMEBUFFER)
(GL|Attachment)attachment- (e.g.
“color0”or GL.COLOR_ATTACHMENT0) number?clearValue0- (Default:
0) number?clearValue1- (Default:
0) number?clearValue2- (Default:
0) number?clearValue3- (Default:
0)
Returns
booleansuccess
gl.GetVBO (function) view source
Example:
lua
local myVBO = gl.GetVBO()
if myVBO == nil then Spring.Echo(“Failed to get VBO”) end
bufferType accepts the following:
- GL.ARRAY_BUFFER for vertex data.
- GL.ELEMENT_ARRAY_BUFFER for vertex indices.
- GL.UNIFORM_BUFFER
- GL.SHADER_STORAGE_BUFFER
See GL.OpenGL_Buffer_Types
gl.GetVBO(GL?, boolean?) -> VBO?Parameters
GL?bufferType- (Default: GL.ARRAY_BUFFER) The buffer type to use.
boolean?freqUpdated- (Default:
true)trueto update frequently,falseto update only once.
Returns
GL (field)
GL (enum) view source
Constants for OpenGL API
For callouts related to OpenGL usage in Recoil, see gl.
See gl
integerPOINTSview sourceintegerLINESview sourceintegerLINE_LOOPview sourceintegerLINE_STRIPview sourceintegerTRIANGLESview sourceintegerTRIANGLE_STRIPview sourceintegerTRIANGLE_FANview sourceintegerQUADSview sourceintegerQUAD_STRIPview sourceintegerPOLYGONview sourceintegerLINE_STRIP_ADJACENCYview sourceintegerLINES_ADJACENCYview sourceintegerTRIANGLE_STRIP_ADJACENCYview sourceintegerTRIANGLES_ADJACENCYview sourceintegerPATCHESview sourceintegerZEROview sourceintegerONEview sourceintegerSRC_COLORview sourceintegerONE_MINUS_SRC_COLORview sourceintegerSRC_ALPHAview sourceintegerONE_MINUS_SRC_ALPHAview sourceintegerDST_ALPHAview sourceintegerONE_MINUS_DST_ALPHAview sourceintegerDST_COLORview sourceintegerONE_MINUS_DST_COLORview sourceintegerSRC_ALPHA_SATURATEview sourceintegerFUNC_ADDview sourceintegerFUNC_SUBTRACTview sourceintegerFUNC_REVERSE_SUBTRACTview sourceintegerMINview sourceintegerMAXview sourceintegerNEVERview sourceintegerLESSview sourceintegerEQUALview sourceintegerLEQUALview sourceintegerGREATERview sourceintegerNOTEQUALview sourceintegerGEQUALview sourceintegerALWAYSview sourceintegerCLEARview sourceintegerANDview sourceintegerAND_REVERSEview sourceintegerCOPYview sourceintegerAND_INVERTEDview sourceintegerNOOPview sourceintegerXORview sourceintegerORview sourceintegerNORview sourceintegerEQUIVview sourceintegerINVERTview sourceintegerOR_REVERSEview sourceintegerCOPY_INVERTEDview sourceintegerOR_INVERTEDview sourceintegerNANDview sourceintegerSETview sourceintegerBACKview sourceintegerFRONTview sourceintegerFRONT_AND_BACKview sourceintegerPOINTview sourceintegerLINEview sourceintegerFILLview sourceintegerFLATview sourceintegerSMOOTHview sourceintegerMODELVIEWview sourceintegerPROJECTIONview sourceintegerTEXTUREview sourceintegerNEARESTview sourceintegerLINEARview sourceintegerNEAREST_MIPMAP_NEARESTview sourceintegerLINEAR_MIPMAP_NEARESTview sourceintegerNEAREST_MIPMAP_LINEARview sourceintegerLINEAR_MIPMAP_LINEARview sourceintegerREPEATview sourceintegerMIRRORED_REPEATview sourceintegerCLAMPview sourceintegerCLAMP_TO_EDGEview sourceintegerCLAMP_TO_BORDERview sourceintegerTEXTURE_ENVview sourceintegerTEXTURE_ENV_MODEview sourceintegerTEXTURE_ENV_COLORview sourceintegerMODULATEview sourceintegerDECALview sourceintegerBLENDview sourceintegerREPLACEview sourceintegerTEXTURE_FILTER_CONTROLview sourceintegerTEXTURE_LOD_BIASview sourceintegerTEXTURE_GEN_MODEview sourceintegerEYE_PLANEview sourceintegerOBJECT_PLANEview sourceintegerEYE_LINEARview sourceintegerOBJECT_LINEARview sourceintegerSPHERE_MAPview sourceintegerNORMAL_MAPview sourceintegerREFLECTION_MAPview sourceintegerSview sourceintegerTview sourceintegerRview sourceintegerQview sourceintegerCURRENT_BITview sourceintegerPOINT_BITview sourceintegerLINE_BITview sourceintegerPOLYGON_BITview sourceintegerPOLYGON_STIPPLE_BITview sourceintegerPIXEL_MODE_BITview sourceintegerLIGHTING_BITview sourceintegerFOG_BITview sourceintegerDEPTH_BUFFER_BITview sourceintegerACCUM_BUFFER_BITview sourceintegerSTENCIL_BUFFER_BITview sourceintegerVIEWPORT_BITview sourceintegerTRANSFORM_BITview sourceintegerENABLE_BITview sourceintegerCOLOR_BUFFER_BITview sourceintegerHINT_BITview sourceintegerEVAL_BITview sourceintegerLIST_BITview sourceintegerTEXTURE_BITview sourceintegerSCISSOR_BITview sourceintegerALL_ATTRIB_BITSview sourceintegerFOG_HINTview sourceintegerPERSPECTIVE_CORRECTION_HINTview sourceintegerDONT_CAREview sourceintegerFASTESTview sourceintegerNICESTview sourceintegerKEEPview sourceintegerINCRview sourceintegerDECRview sourceintegerINCR_WRAPview sourceintegerDECR_WRAPview sourceintegerAMBIENTview sourceintegerDIFFUSEview sourceintegerSPECULARview sourceintegerPOSITIONview sourceintegerSPOT_DIRECTIONview sourceintegerSPOT_EXPONENTview sourceintegerSPOT_CUTOFFview sourceintegerCONSTANT_ATTENUATIONview sourceintegerLINEAR_ATTENUATIONview sourceintegerQUADRATIC_ATTENUATIONview sourceintegerVERTEX_SHADERview sourceintegerTESS_CONTROL_SHADERview sourceintegerTESS_EVALUATION_SHADERview sourceintegerGEOMETRY_SHADER_EXTview sourceintegerFRAGMENT_SHADERview sourceintegerGEOMETRY_INPUT_TYPE_EXTview sourceintegerGEOMETRY_OUTPUT_TYPE_EXTview sourceintegerGEOMETRY_VERTICES_OUT_EXTview sourceintegerPATCH_VERTICESview sourceintegerPATCH_DEFAULT_OUTER_LEVELview sourceintegerPATCH_DEFAULT_INNER_LEVELview sourceintegerBYTEview sourceintegerUNSIGNED_BYTEview sourceintegerSHORTview sourceintegerUNSIGNED_SHORTview sourceintegerINTview sourceintegerUNSIGNED_INTview sourceintegerFLOATview sourceintegerFLOAT_VEC4view sourceintegerINT_VEC4view sourceintegerUNSIGNED_INT_VEC4view sourceintegerFLOAT_MAT4view sourceintegerELEMENT_ARRAY_BUFFERview sourceintegerARRAY_BUFFERview sourceintegerUNIFORM_BUFFERview sourceintegerSHADER_STORAGE_BUFFERview sourceintegerTEXTURE_1Dview sourceintegerTEXTURE_2Dview sourceintegerTEXTURE_2D_ARRAYview sourceintegerTEXTURE_3Dview sourceintegerTEXTURE_CUBE_MAPview sourceintegerTEXTURE_2D_MULTISAMPLEview sourceintegerRGBA32Fview sourceintegerRGBA16Fview sourceintegerRG32Fview sourceintegerRG16Fview sourceintegerR11F_G11F_B10Fview sourceintegerR32Fview sourceintegerR16Fview sourceintegerRGBA32UIview sourceintegerRGBA16UIview sourceintegerRGB10_A2UIview sourceintegerRGBA8UIview sourceintegerRG32UIview sourceintegerRG16UIview sourceintegerRG8UIview sourceintegerR32UIview sourceintegerR16UIview sourceintegerR8UIview sourceintegerRGBA32Iview sourceintegerRGBA16Iview sourceintegerRGBA8Iview sourceintegerRG32Iview sourceintegerRG16Iview sourceintegerRG8Iview sourceintegerR32Iview sourceintegerR16Iview sourceintegerR8Iview sourceintegerRGBA16view sourceintegerRGB10_A2view sourceintegerRGBA8view sourceintegerRG16view sourceintegerRG8view sourceintegerR16view sourceintegerR8view sourceintegerRGBA16_SNORMview sourceintegerRGBA8_SNORMview sourceintegerRG16_SNORMview sourceintegerRG8_SNORMview sourceintegerR16_SNORMview sourceintegerR8_SNORMview sourceintegerDEPTH_COMPONENT16view sourceintegerDEPTH_COMPONENT24view sourceintegerDEPTH_COMPONENT32view sourceintegerDEPTH_COMPONENT32Fview sourceintegerREAD_ONLYview sourceintegerWRITE_ONLYview sourceintegerREAD_WRITEview sourceintegerVERTEX_ATTRIB_ARRAY_BARRIER_BITview sourceintegerELEMENT_ARRAY_BARRIER_BITview sourceintegerUNIFORM_BARRIER_BITview sourceintegerTEXTURE_FETCH_BARRIER_BITview sourceintegerSHADER_IMAGE_ACCESS_BARRIER_BITview sourceintegerCOMMAND_BARRIER_BITview sourceintegerPIXEL_BUFFER_BARRIER_BITview sourceintegerTEXTURE_UPDATE_BARRIER_BITview sourceintegerBUFFER_UPDATE_BARRIER_BITview sourceintegerFRAMEBUFFER_BARRIER_BITview sourceintegerTRANSFORM_FEEDBACK_BARRIER_BITview sourceintegerATOMIC_COUNTER_BARRIER_BITview sourceintegerSHADER_STORAGE_BARRIER_BITview sourceintegerALL_BARRIER_BITSview sourceintegerCOLOR_ATTACHMENT0view sourceintegerCOLOR_ATTACHMENT1view sourceintegerCOLOR_ATTACHMENT2view sourceintegerCOLOR_ATTACHMENT3view sourceintegerCOLOR_ATTACHMENT4view sourceintegerCOLOR_ATTACHMENT5view sourceintegerCOLOR_ATTACHMENT6view sourceintegerCOLOR_ATTACHMENT7view sourceintegerCOLOR_ATTACHMENT8view sourceintegerCOLOR_ATTACHMENT9view sourceintegerCOLOR_ATTACHMENT10view sourceintegerCOLOR_ATTACHMENT11view sourceintegerCOLOR_ATTACHMENT12view sourceintegerCOLOR_ATTACHMENT13view sourceintegerCOLOR_ATTACHMENT14view sourceintegerCOLOR_ATTACHMENT15view sourceintegerDEPTH_ATTACHMENTview sourceintegerSTENCIL_ATTACHMENTview sourceintegerCOLOR_ATTACHMENT0_EXTview sourceintegerCOLOR_ATTACHMENT1_EXTview sourceintegerCOLOR_ATTACHMENT2_EXTview sourceintegerCOLOR_ATTACHMENT3_EXTview sourceintegerCOLOR_ATTACHMENT4_EXTview sourceintegerCOLOR_ATTACHMENT5_EXTview sourceintegerCOLOR_ATTACHMENT6_EXTview sourceintegerCOLOR_ATTACHMENT7_EXTview sourceintegerCOLOR_ATTACHMENT8_EXTview sourceintegerCOLOR_ATTACHMENT9_EXTview sourceintegerCOLOR_ATTACHMENT10_EXTview sourceintegerCOLOR_ATTACHMENT11_EXTview sourceintegerCOLOR_ATTACHMENT12_EXTview sourceintegerCOLOR_ATTACHMENT13_EXTview sourceintegerCOLOR_ATTACHMENT14_EXTview sourceintegerCOLOR_ATTACHMENT15_EXTview sourceintegerDEPTH_ATTACHMENT_EXTview sourceintegerSTENCIL_ATTACHMENT_EXTview sourceintegerBUFFERview sourceintegerSHADERview sourceintegerPROGRAMview sourceintegerVERTEX_ARRAYview sourceintegerQUERYview sourceintegerPROGRAM_PIPELINEview sourceintegerTRANSFORM_FEEDBACKview sourceintegerRENDERBUFFERview sourceintegerFRAMEBUFFERview sourceintegerCOLOR_INDEXview sourceintegerSTENCIL_INDEXview sourceintegerDEPTH_COMPONENTview sourceintegerREDview sourceintegerGREENview sourceintegerBLUEview sourceintegerALPHAview sourceintegerRGview sourceintegerRGBview sourceintegerRGBAview sourceintegerBGRview sourceintegerBGRAview sourceintegerLUMINANCEview source- Only accepted in the compatibility profile, i.e. with
ForceCoreContextunset. integerLUMINANCE_ALPHAview source- Only accepted in the compatibility profile, i.e. with
ForceCoreContextunset. integerSAMPLES_PASSEDview sourceintegerANY_SAMPLES_PASSEDview sourceintegerANY_SAMPLES_PASSED_CONSERVATIVEview sourceintegerPRIMITIVES_GENERATEDview sourceintegerTIME_ELAPSEDview sourceintegerTIMESTAMPview source
RmlUi (table) view source
Global functions for Recoil’s RmlUi implementation.Members
RmlUi.CreateContext (function) view source
Create a new context.RmlUi.CreateContext(string) -> RmlUi.Context?Parameters
stringname
Returns
RmlUi.Context?nil- if failed.
RmlUi.RemoveContext (function) view source
Remove a context.RmlUi.RemoveContext((string|RmlUi.Context)) -> nilParameters
(string|RmlUi.Context)context
RmlUi.LoadFontFace (function) view source
Load a font face.RmlUi.LoadFontFace(string, boolean?, RmlUi.font_weight?, number?) -> booleanParameters
stringfile_pathboolean?fallbackRmlUi.font_weight?weightnumber?face_index- The index of the font face within a font collection.
Returns
booleansuccess
RmlUi.GetContext (function) view source
Get a context by name.RmlUi.GetContext(string) -> RmlUi.Context?Parameters
stringname
Returns
RmlUi.Context?nil- if failed.
RmlUi.RegiserEventType (function) view source
Register a new event type.RmlUi.RegiserEventType(string, boolean?, boolean?, RmlUi.default_action_phase?) -> RmlUi.EventIDParameters
stringevent_typeboolean?interruptibleboolean?bubblesRmlUi.default_action_phase?default_phase
Returns
RmlUi.AddTranslationString (function) view source
Add a translation string.RmlUi.AddTranslationString(string, string) -> booleanParameters
stringkeystringtranslation
Returns
booleansuccess
RmlUi.ClearTranslations (function) view source
Clear registered translations.RmlUi.ClearTranslations() -> nilRmlUi.SetMouseCursorAlias (function) view source
Converts the css names for cursors to the Recoil Engine names for cursors likeRmlUi.SetMouseCursorAlias(“pointer”, ‘Move’).
Web devs tend to want to use specific words for pointer types.RmlUi.SetMouseCursorAlias(string, string) -> nilParameters
stringrml_name- name used in rml script
stringrecoil_name- name used in recoil
RmlUi.SetDebugContext (function) view source
Set which context the debug inspector is meant to inspect.RmlUi.SetDebugContext((string|RmlUi.Context)) -> nilParameters
(string|RmlUi.Context)context
RmlUi.ClearDocumentPathRequests (function) view source
Clear the list of paths requested for a document for the purpose of GetDocumentPathRequests. Does not clear anything else related to those requests themselves.RmlUi.ClearDocumentPathRequests(string) -> nilParameters
stringdocument_path- path of document
RmlUi.GetDocumentPathRequests (function) view source
Retrieve the list of paths requested by the loaded RML document since the most recent RmlUi.ClearDocumentPathRequests call.RmlUi.GetDocumentPathRequests(string) -> string[]Parameters
stringdocument_path- path of document
Returns
string[]array- of paths requested by the document
Fields
RmlUi.ElementTextElementTextRmlUi.ElementTabSetElementTabSetRmlUi.ElementProgressElementProgressRmlUi.Vector2iVector2iRmlUi.Vector2fVector2fRmlUi.ElementFormElementFormRmlUi.ElementFormControlElementFormControlRmlUi.ElementFormControlInputElementFormControlInputRmlUi.ElementFormControlSelectElementFormControlSelectRmlUi.ElementFormControlTextAreaElementFormControlTextAreaRmlUi.ElementPtrElementPtrRmlUi.Context[]contextsview sourcestringversionview source- RmlUi version
RmlUi.key_identifierkey_identifierRmlUi.key_modifierkey_modifierRmlUi.font_weightfont_weightRmlUi.default_action_phasedefault_action_phaseRmlUi.SolLuaDataModel<T>SolLuaDataModelRmlUi.EventListenerEventListenerRmlUi.ElementElementRmlUi.ContextContextRmlUi.RmlModalFlagRmlModalFlagRmlUi.RmlFocusFlagRmlFocusFlagRmlUi.DocumentDocumentRmlUi.RmlEventPhaseRmlEventPhaseRmlUi.EventParametersProxyEventParametersProxyRmlUi.EventEvent
CameraState (class)
Parameters for camera state.
Highly dependent on the type of the current camera controller.
Fields
CameraNamename- The camera name.
CameraModemode- The camera mode.
number?fovnumber?px- Position X of the ground point in screen center.
number?py- Position Y of the ground point in screen center.
number?pz- Position Z of the ground point in screen center.
number?dx- Camera direction vector X.
number?dy- Camera direction vector Y.
number?dz- Camera direction vector Z.
number?rx- Camera rotation angle on X axis. (spring)
number?ry- Camera rotation angle on Y axis. (spring)
number?rz- Camera rotation angle on Z axis. (spring)
number?angle- Camera rotation angle on X axis (aka tilt/pitch). (ta)
number?flipped-1for when south is down,1for when north is down. (ta)number?dist- Camera distance from the ground. (spring)
number?height- Camera distance from the ground. (ta)
number?oldHeight- Camera distance from the ground, cannot be changed. (rot)
FBO (class) view source
User Data FBOIconData (class) view source
Icon DataFields
stringnameview sourcestring?fileNameview sourcenumber?sizeview source- Relative size of the icon
number?distanceview source- When squared used as a icon length multiplier
number?drawOrderview source- Sort priority for icon drawing; icons with higher values are drawn on top of lower ones
boolean?radiusAdjustview source- Controls whether the unit radius affects the icon size
TexCoords?srcTexCoordsview sourceTexCoordsatlasTexCoordsview source- atlasIndex points to $icons0 or $icons1 texture
Intro (class) view source
Inherits Callins
See Callins
Members
Intro:DrawLoadScreen (function) view source
Draws custom load screens.Intro:DrawLoadScreen() -> nilIntro:LoadProgress (function) view source
Intro:LoadProgress(string, boolean) -> nilParameters
stringmessagebooleanreplaceLastLine
LuaFont (class) view source
Lua opengl font object.See gl.LoadFont
Members
LuaFont:Print (function) view source
Draws text in screen space at the given position.LuaFont:Print(string, number, number, number?, string?) -> nilParameters
stringtextnumberxnumberynumber?size- Defaults to the font’s point size.
string?options- Flag characters for alignment, outline, shadow, scaling, etc. (e.g.
“co”for center and outline).
LuaFont:PrintWorld (function) view source
Draws text in world space at the given position.LuaFont:PrintWorld(string, number, number, number, number?, string?) -> nilParameters
stringtextnumberxnumberynumberznumber?size- Defaults to the font’s point size.
string?options- Flag characters for alignment, outline, shadow, scaling, etc. (e.g.
“co”for center and outline).
LuaFont:Begin (function) view source
Begin a block of font commands.
Fonts can be printed without using Start/End, but when doing several operations it’s more optimal if done inside a block.
Also allows disabling automatic setting of the blend mode. Otherwise the font will always print
with BlendFunc(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA).
See gl.BlendFunc, gl.BlendFuncSeparate
LuaFont:Begin(boolean?) -> nilParameters
boolean?userDefinedBlending- When
truedoesn’t set the gl.BlendFunc automatically. Defaults tofalse.
LuaFont:End (function) view source
Ends a font command block started with LuaFont:Begin.LuaFont:End() -> nilLuaFont:SubmitBuffered (function) view source
Draws text printed with thebuffered option.See gl.BlendFunc, gl.BlendFuncSeparate
LuaFont:SubmitBuffered(boolean?, boolean?) -> nilParameters
boolean?noBillboarding- When
falsesets 3d billboard mode. Defaults totrue. boolean?userDefinedBlending- When
truedoesn’t set the gl.BlendFunc automatically. Defaults tofalse.
LuaFont:WrapText (function) view source
Wraps text to fit within a maximum width (and optional max height), in-place.LuaFont:WrapText(string, number, number?, number?) -> string, integerParameters
stringtextnumbermaxWidthnumber?maxHeight- Defaults to an engine-defined maximum height.
number?size- Defaults to the font’s point size.
Returns
stringwrappedTextintegerlineCount
LuaFont:GetTextWidth (function) view source
Returns the horizontal extent of a string for this font at its current size.LuaFont:GetTextWidth(string) -> numberParameters
stringtext
Returns
numberwidth
LuaFont:GetTextHeight (function) view source
Returns layout metrics for a string: total height, descender depth, and line count.LuaFont:GetTextHeight(string) -> number, number, integerParameters
stringtext
Returns
LuaFont:SetTextColor (function) view source
Sets the RGBA color used when drawing text (fill).LuaFont:SetTextColor(table) -> nilParameters
tablecolor- Four-component RGBA array (
{r, g, b, a}), or passr,g,b, and optionalaas separate numbers (requires at least three numeric components after the font).
LuaFont:SetOutlineColor (function) view source
Sets the RGBA color used for text outline when outline rendering is enabled.LuaFont:SetOutlineColor(table) -> nilParameters
tablecolor- Four-component RGBA array (
{r, g, b, a}), or passr,g,b, and optionalaas separate numbers (requires at least three numeric components after the font).
LuaFont:SetAutoOutlineColor (function) view source
When enabled, outline color is derived automatically instead of usingSetOutlineColor.LuaFont:SetAutoOutlineColor(boolean) -> nilParameters
booleanenabled
Menu (class) view source
Inherits Callins
See Callins
Members
Menu:ActivateMenu (function) view source
Called whenever LuaMenu is on with no game loaded.Menu:ActivateMenu() -> nilMenu:ActivateGame (function) view source
Called whenever LuaMenu is on with a game loaded.Menu:ActivateGame() -> nilMenu:AllowDraw (function) view source
Enables Draw{Genesis,Screen,ScreenPost} callins if true is returned, otherwise they are called once every 30 seconds. Only active when a game isn’t running.Menu:AllowDraw() -> booleanReturns
booleanallowDraw
MoveCtrl (class) view source
Accessed via Spring.MoveCtrl.Members
MoveCtrl.IsEnabled (function) view source
MoveCtrl.IsEnabled(UnitID) -> boolean?Parameters
Returns
boolean?isEnabled
MoveCtrl.Enable (function) view source
MoveCtrl.Enable(UnitID) -> nilParameters
MoveCtrl.Disable (function) view source
MoveCtrl.Disable(UnitID) -> nilParameters
MoveCtrl.SetTag (function) view source
MoveCtrl.SetTag(UnitID, integer) -> nilParameters
MoveCtrl.GetTag (function) view source
MoveCtrl.GetTag(integer?) -> integer?Parameters
integer?tag
Returns
integer?tagnilif the unit is not using a script move type.
MoveCtrl.SetProgressState (function) view source
MoveCtrl.SetProgressState(UnitID, (0|1|2|"done"|"active"|"failed")) -> nilParameters
MoveCtrl.SetExtrapolate (function) view source
MoveCtrl.SetExtrapolate(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleanextrapolate
MoveCtrl.SetPhysics (function) view source
MoveCtrl.SetPhysics(UnitID, number, number, number, number, number, number, number, number, number) -> nilParameters
UnitIDunitIDnumberposX- Position X component.
numberposY- Position Y component.
numberposZ- Position Z component.
numbervelX- Velocity X component.
numbervelY- Velocity Y component.
numbervelZ- Velocity Z component.
numberrotX- Rotation X component.
numberrotY- Rotation Y component.
numberrotZ- Rotation Z component.
MoveCtrl.SetPosition (function) view source
MoveCtrl.SetPosition(UnitID, number, number, number) -> nilParameters
UnitIDunitIDnumberposX- Position X component.
numberposY- Position Y component.
numberposZ- Position Z component.
MoveCtrl.SetVelocity (function) view source
MoveCtrl.SetVelocity(UnitID, number, number, number) -> nilParameters
UnitIDunitIDnumbervelX- Velocity X component.
numbervelY- Velocity Y component.
numbervelZ- Velocity Z component.
MoveCtrl.SetRelativeVelocity (function) view source
MoveCtrl.SetRelativeVelocity(UnitID, number, number, number) -> nilParameters
UnitIDunitIDnumberrelVelX- Relative velocity X component.
numberrelVelY- Relative velocity Y component.
numberrelVelZ- Relative velocity Z component.
MoveCtrl.SetRotation (function) view source
MoveCtrl.SetRotation(UnitID, number, number, number) -> nilParameters
UnitIDunitIDnumberrotX- Rotation X component.
numberrotY- Rotation Y component.
numberrotZ- Rotation Z component.
MoveCtrl.SetRotationOffset (function) view source
Deprecated
MoveCtrl.SetRotationOffset() -> nilMoveCtrl.SetRotationVelocity (function) view source
MoveCtrl.SetRotationVelocity(UnitID, number, number, number) -> nilParameters
UnitIDunitIDnumberrotVelX- Rotation velocity X component.
numberrotVelY- Rotation velocity Y component.
numberrotVelZ- Rotation velocity Z component.
MoveCtrl.SetHeading (function) view source
MoveCtrl.SetHeading(UnitID, Heading) -> nilParameters
MoveCtrl.SetTrackSlope (function) view source
MoveCtrl.SetTrackSlope(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleantrackSlope
MoveCtrl.SetTrackGround (function) view source
MoveCtrl.SetTrackGround(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleantrackGround
MoveCtrl.SetTrackLimits (function) view source
MoveCtrl.SetTrackLimits(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleantrackLimits
MoveCtrl.SetGroundOffset (function) view source
MoveCtrl.SetGroundOffset(UnitID, number) -> nilParameters
UnitIDunitIDnumbergroundOffset
MoveCtrl.SetGravity (function) view source
MoveCtrl.SetGravity(UnitID, number) -> nilParameters
MoveCtrl.SetDrag (function) view source
MoveCtrl.SetDrag(UnitID, number) -> nilParameters
MoveCtrl.SetWindFactor (function) view source
MoveCtrl.SetWindFactor(UnitID, number) -> nilParameters
UnitIDunitIDnumberwindFactor
MoveCtrl.SetLimits (function) view source
MoveCtrl.SetLimits(UnitID, number, number, number, number, number, number) -> nilParameters
UnitIDunitIDnumberminX- Minimum position X component.
numberminY- Minimum position Y component.
numberminZ- Minimum position Z component.
numbermaxX- Maximum position X component.
numbermaxY- Maximum position Y component.
numbermaxZ- Maximum position Z component.
MoveCtrl.SetNoBlocking (function) view source
MoveCtrl.SetNoBlocking(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleannoBlocking
MoveCtrl.SetCollideStop (function) view source
MoveCtrl.SetCollideStop(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleancollideStop
MoveCtrl.SetLimitsStop (function) view source
MoveCtrl.SetLimitsStop(UnitID, boolean) -> nilParameters
UnitIDunitIDbooleanlimitsStop
MoveCtrl.SetGunshipMoveTypeData (function) view source
MoveCtrl.SetGunshipMoveTypeData(UnitID, HoverAirMoveType) -> integerParameters
Returns
integernumAssignedValues
MoveCtrl.SetGunshipMoveTypeData (function overload 1) view source
MoveCtrl.SetGunshipMoveTypeData(UnitID, (GenericMoveTypeBooleanKey|"collide"|"dontLand"|"airStrafe"|"useSmoothMesh"|"bankingAllowed"), boolean) -> integerParameters
UnitIDunitID(GenericMoveTypeBooleanKey|"collide"|"dontLand"|"airStrafe"|"useSmoothMesh"|"bankingAllowed")keybooleanvalue
Returns
integernumAssignedValues
MoveCtrl.SetGunshipMoveTypeData (function overload 2) view source
MoveCtrl.SetGunshipMoveTypeData(UnitID, (GenericMoveTypeNumberKey|"wantedHeight"|"accRate"|"decRate"|"turnRate"|"altitudeRate"|"currentBank"|"currentPitch"...), number) -> integerParameters
UnitIDunitID(GenericMoveTypeNumberKey|"wantedHeight"|"accRate"|"decRate"|"turnRate"|"altitudeRate"|"currentBank"|"currentPitch"...)keynumbervalue
Returns
integernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function) view source
MoveCtrl.SetAirMoveTypeData(UnitID, StrafeAirMoveType) -> integerParameters
Returns
integernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 1) view source
MoveCtrl.SetAirMoveTypeData(UnitID, (GenericMoveTypeBooleanKey|"collide"|"useSmoothMesh"|"loopbackAttack"), boolean) -> integerParameters
UnitIDunitID(GenericMoveTypeBooleanKey|"collide"|"useSmoothMesh"|"loopbackAttack")keybooleanvalue
Returns
integernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 2) view source
MoveCtrl.SetAirMoveTypeData(UnitID, (GenericMoveTypeNumberKey|"wantedHeight"|"turnRadius"|"accRate"|"decRate"|"maxAcc"|"maxDec"|"maxBank"...), number) -> integerParameters
UnitIDunitID(GenericMoveTypeNumberKey|"wantedHeight"|"turnRadius"|"accRate"|"decRate"|"maxAcc"|"maxDec"|"maxBank"...)keynumbervalue
Returns
integernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 3) view source
MoveCtrl.SetAirMoveTypeData(UnitID, ("maneuverBlockTime"), integer) -> integerParameters
Returns
integernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function) view source
MoveCtrl.SetGroundMoveTypeData(UnitID, GroundMoveType) -> integerParameters
Returns
integernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 1) view source
MoveCtrl.SetGroundMoveTypeData(UnitID, (GenericMoveTypeBooleanKey|"atGoal"|"atEndOfPath"|"pushResistant"), boolean) -> integerParameters
UnitIDunitID(GenericMoveTypeBooleanKey|"atGoal"|"atEndOfPath"|"pushResistant")keybooleanvalue
Returns
integernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 2) view source
MoveCtrl.SetGroundMoveTypeData(UnitID, (GenericMoveTypeNumberKey|"turnRate"|"turnAccel"|"accRate"|"decRate"|"myGravity"|"maxReverseDist"|"minReverseAngle"...), number) -> integerParameters
UnitIDunitID(GenericMoveTypeNumberKey|"turnRate"|"turnAccel"|"accRate"|"decRate"|"myGravity"|"maxReverseDist"|"minReverseAngle"...)keynumbervalue
Returns
integernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 3) view source
MoveCtrl.SetGroundMoveTypeData(UnitID, ("minScriptChangeHeading"), integer) -> integerParameters
Returns
integernumAssignedValues
MoveCtrl.SetMoveDef (function) view source
MoveCtrl.SetMoveDef(UnitID, (string|integer)) -> booleanParameters
Returns
booleansuccesstrueif theMoveDefwas set,falseifunitIDormoveDefwere invalid, or if the unit does not support aMoveDef.
ObjectRenderingTable (class) view source
Members
ObjectRenderingTable.GetLODCount (function) view source
Get the number of LOD levels and the current LOD.ObjectRenderingTable.GetLODCount(ObjectID) -> integer, integerParameters
Returns
integerlodCountintegercurrentLOD
ObjectRenderingTable.SetLODCount (function) view source
Set the number of LOD levels.ObjectRenderingTable.SetLODCount(ObjectID, integer) -> nilParameters
Returns
ObjectRenderingTable.SetLODLength (function) view source
Set the LOD transition length for a given level.ObjectRenderingTable.SetLODLength(ObjectID, integer, number) -> nilParameters
Returns
ObjectRenderingTable.SetLODDistance (function) view source
Set the LOD transition distance for a given level (scaled for 45-degree FOV).ObjectRenderingTable.SetLODDistance(ObjectID, integer, number) -> nilParameters
ObjectIDobjectIDintegerlodLevelnumberlodDistance
Returns
ObjectRenderingTable.SetPieceList (function) view source
Set a display list for a piece at a given LOD and material.ObjectRenderingTable.SetPieceList(ObjectID, integer, integer, [any, ]*) -> nilParameters
Returns
ObjectRenderingTable.GetMaterial (function) view source
Get a material reference for a LOD level.ObjectRenderingTable.GetMaterial(ObjectID, integer, string) -> userdataParameters
ObjectIDobjectIDintegerlodLevelstringmaterialName
Returns
userdatamatRef
ObjectRenderingTable.SetMaterial (function) view source
Set a material for a LOD level.ObjectRenderingTable.SetMaterial(ObjectID, integer, string, table) -> nilParameters
ObjectIDobjectIDintegerlodLevelstringmaterialNametablematerialTable
Returns
ObjectRenderingTable.SetMaterialLastLOD (function) view source
Set the last LOD level that uses a given material.ObjectRenderingTable.SetMaterialLastLOD(ObjectID, string, integer) -> nilParameters
ObjectIDobjectIDstringmaterialNameintegerlastLOD
Returns
ObjectRenderingTable.SetMaterialDisplayLists (function) view source
Set display lists for a material.ObjectRenderingTable.SetMaterialDisplayLists(ObjectID, integer, string, table) -> nilParameters
ObjectIDobjectIDintegerlodLevelstringmaterialNametabledisplayListTable
Returns
ObjectRenderingTable.SetDeferredMaterialUniform (function) view source
ObjectRenderingTable.SetDeferredMaterialUniform(ObjectID, [any, ]*) -> nilParameters
Returns
ObjectRenderingTable.SetForwardMaterialUniform (function) view source
ObjectRenderingTable.SetForwardMaterialUniform(ObjectID, [any, ]*) -> nilParameters
Returns
ObjectRenderingTable.ClearDeferredMaterialUniform (function) view source
ObjectRenderingTable.ClearDeferredMaterialUniform(ObjectID, [any, ]*) -> nilParameters
Returns
ObjectRenderingTable.ClearForwardMaterialUniform (function) view source
ObjectRenderingTable.ClearForwardMaterialUniform(ObjectID, [any, ]*) -> nilParameters
Returns
ObjectRenderingTable.SetUnitLuaDraw (function) view source
Enable or disable custom Lua drawing for a unit.ObjectRenderingTable.SetUnitLuaDraw(UnitID, boolean) -> nilParameters
Returns
ObjectRenderingTable.SetFeatureLuaDraw (function) view source
Enable or disable custom Lua drawing for a feature.ObjectRenderingTable.SetFeatureLuaDraw(FeatureID, boolean) -> nilParameters
Returns
ObjectRenderingTable.SetProjectileLuaDraw (function) view source
Enable or disable custom Lua drawing for a projectile.ObjectRenderingTable.SetProjectileLuaDraw(ProjectileID, boolean) -> nilParameters
Returns
ObjectRenderingTable.Debug (function) view source
Print debug info about the object’s material data.ObjectRenderingTable.Debug(ObjectID) -> nilParameters
Returns
PlatformVideoMode (class) view source
Fields
integerdisplayview sourcestringdisplayNameview sourceintegerwview sourceintegerhview sourceintegerbppview sourceintegerhzview source
RBO (class) view source
User Data RBOFields
GLtargetGLformatintegerxsizeintegerysizebooleanvalidintegersamples- will return globalRendering->msaaLevel for multisampled RBO or 0 otherwise
RmlUi.Context (class) view source
Holds documents and a data model.
The Context class has no constructor; it must be instantiated through the CreateContext() function. It has the following functions and properties:
Members
RmlUi.Context:AddEventListener (function) view source
Adds the inline Lua script, script, as an event listener to the context. element_context is an optional Element; if it is not None, then the script will be executed as if it was bound to that element.RmlUi.Context:AddEventListener(string, RmlUi.Element, boolean, boolean) -> nilParameters
stringeventRmlUi.Elementscriptbooleanelement_contextbooleanin_capture_phase
RmlUi.Context:CreateDocument (function) view source
Creates a new document with the tag name of tag.RmlUi.Context:CreateDocument(string) -> RmlUi.DocumentParameters
stringtag
Returns
RmlUi.Context:LoadDocument (function) view source
Attempts to load a document from the RML file found at document_path. If successful, the document will be returned with a reference count of one.RmlUi.Context:LoadDocument(string) -> RmlUi.DocumentParameters
stringdocument_path
Returns
RmlUi.Context:GetDocument (function) view source
RmlUi.Context:GetDocument(string) -> nilParameters
stringname
RmlUi.Context:Render (function) view source
Renders the context.RmlUi.Context:Render() -> booleanReturns
RmlUi.Context:UnloadAllDocuments (function) view source
Closes all documents currently loaded with the context.RmlUi.Context:UnloadAllDocuments() -> nilRmlUi.Context:UnloadDocument (function) view source
Unloads a specific document within the context.RmlUi.Context:UnloadDocument(RmlUi.Document) -> nilParameters
RmlUi.Context:Update (function) view source
Updates the context.RmlUi.Context:Update() -> booleanReturns
RmlUi.Context:OpenDataModel (function) view source
Create a new data model from a base tablemodel and register to the context. The model table is copied.
Note that widget does not actually have to be a widget; it can be any table. This table can be accessed in widgets like <button class=“mode-button” onclick=“widget:SetCamMode()">Set Dolly Mode</button>. Also note that your data model is inaccessible in onx properties.RmlUi.Context:OpenDataModel(string, T, table) -> RmlUi.SolLuaDataModel<T>Parameters
Returns
RmlUi.Context:RemoveDataModel (function) view source
Removes a data model from the context.RmlUi.Context:RemoveDataModel(string) -> nilParameters
stringname
RmlUi.Context:ProcessMouseMove (function) view source
Processes a mouse move event.RmlUi.Context:ProcessMouseMove(RmlUi.Vector2f) -> booleanParameters
Returns
RmlUi.Context:ProcessMouseButtonDown (function) view source
Processes a mouse button down event.RmlUi.Context:ProcessMouseButtonDown(RmlUi.MouseButton, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessMouseButtonUp (function) view source
Processes a mouse button up event.RmlUi.Context:ProcessMouseButtonUp(RmlUi.MouseButton, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessMouseWheel (function) view source
Processes a mouse wheel event.RmlUi.Context:ProcessMouseWheel((RmlUi.Vector2f|number), integer) -> booleanParameters
(RmlUi.Vector2f|number)deltaintegerkey_modifier_state
Returns
RmlUi.Context:ProcessMouseLeave (function) view source
Processes a mouse leave event.RmlUi.Context:ProcessMouseLeave() -> booleanReturns
RmlUi.Context:IsMouseInteracting (function) view source
Returns true if the mouse is currently interacting with the context, false if not.RmlUi.Context:IsMouseInteracting() -> booleanReturns
RmlUi.Context:ProcessKeyDown (function) view source
Processes a key down event.RmlUi.Context:ProcessKeyDown(RmlUi.key_identifier, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessKeyUp (function) view source
Processes a key up event.RmlUi.Context:ProcessKeyUp(RmlUi.key_identifier, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessTextInput (function) view source
Processes a text input event.RmlUi.Context:ProcessTextInput(string) -> booleanParameters
stringtext
Returns
RmlUi.Context:EnableMouseCursor (function) view source
Enables or disables the mouse cursor for the context.RmlUi.Context:EnableMouseCursor(boolean) -> nilParameters
booleanenable
RmlUi.Context:ActivateTheme (function) view source
Activates a theme for the context.RmlUi.Context:ActivateTheme(string, boolean) -> nilParameters
stringtheme_namebooleanactivate
RmlUi.Context:IsThemeActive (function) view source
Returns true if the theme is active, false if not.RmlUi.Context:IsThemeActive(string) -> booleanParameters
stringtheme_name
Returns
RmlUi.Context:GetElementAtPoint (function) view source
Returns the element at the point specified by point.RmlUi.Context:GetElementAtPoint(RmlUi.Vector2f, RmlUi.Element?) -> RmlUi.ElementParameters
Returns
RmlUi.Context:PullDocumentToFront (function) view source
Pulls the document to the front of the context.RmlUi.Context:PullDocumentToFront(RmlUi.Document) -> nilParameters
RmlUi.Context:PushDocumentToBack (function) view source
Pushes the document to the back of the context.RmlUi.Context:PushDocumentToBack(RmlUi.Document) -> nilParameters
Fields
RmlUi.Vector2idimensionsview sourcenumberdp_ratioview sourceRmlUi.Document[]documentsview sourceRmlUi.Elementfocus_elementview sourceRmlUi.Elementhover_elementview sourcestringnameview sourceRmlUi.Elementroot_elementview source
RmlUi.Document (class) view source
Inherits RmlUi.Element
Document derives from Element.
Document has no constructor; it must be instantiated through a Context object instead, either by loading an external RML file or creating an empty document. It has the following functions and properties:
Members
RmlUi.Document:PullToFront (function) view source
Pulls the document in front of other documents within its context with a similar z-index.RmlUi.Document:PullToFront() -> nilRmlUi.Document:PushToBack (function) view source
Pushes the document behind other documents within its context with a similar z-index.RmlUi.Document:PushToBack() -> nilRmlUi.Document:Show (function) view source
Shows the document.RmlUi.Document:Show(RmlUi.RmlModalFlag?, RmlUi.RmlFocusFlag?) -> nilParameters
RmlUi.RmlModalFlag?modal- Defaults to Focus
RmlUi.RmlFocusFlag?focus
RmlUi.Document:Hide (function) view source
Hides the document.RmlUi.Document:Hide() -> nilRmlUi.Document:Close (function) view source
Hides and closes the document, destroying its contents.RmlUi.Document:Close() -> nilRmlUi.Document:CreateElement (function) view source
Instances an element with a tag of tag_name.RmlUi.Document:CreateElement(string) -> RmlUi.ElementPtrParameters
stringtag_name
Returns
RmlUi.Document:CreateTextNode (function) view source
Instances a text element containing the string text.RmlUi.Document:CreateTextNode(string) -> RmlUi.ElementPtrParameters
stringtext
Returns
RmlUi.Document:ReloadStyleSheet (function) view source
Reload the active style sheet.RmlUi.Document:ReloadStyleSheet(boolean?) -> nilParameters
boolean?load
RmlUi.Document:LoadInlineScript (function) view source
Load scripts as if it were in the script tag.RmlUi.Document:LoadInlineScript(string, string?, integer?) -> nilParameters
stringcontentstring?sourceinteger?source_line
RmlUi.Document:LoadExternalScript (function) view source
Load an external script.RmlUi.Document:LoadExternalScript(string) -> nilParameters
stringsource_path
RmlUi.Document:UpdateDocument (function) view source
Update the Document.RmlUi.Document:UpdateDocument() -> nilRmlUi.Document:AppendToStyleSheet (function) view source
Append text to style sheet.RmlUi.Document:AppendToStyleSheet(string) -> nilParameters
stringcontent
Fields
stringtitleview sourceRmlUi.Contextcontextview sourcestringurlview sourcebooleanmodalview source- Is it modal?
tablewidgetview source- A table of data that can be accessed in onevent attributes. It doesn’t have to be a widget.
RmlUi.Element (class) view source
Represents an element in the RmlUi document tree. This class cannot be constructed directly; use a Document object to instantiate elements. This is the foundational piece of the DOM.Members
RmlUi.Element:AddEventListener (function) view source
Adds an event listener to the element.RmlUi.Element:AddEventListener(string, (function|string), boolean) -> nilParameters
stringevent(function|string)listenerbooleanin_capture_phase
RmlUi.Element:AppendChild (function) view source
Appends element as a child to this element.RmlUi.Element:AppendChild(RmlUi.ElementPtr) -> RmlUi.ElementPtrParameters
Returns
RmlUi.Element:Blur (function) view source
Removes input focus from this element.RmlUi.Element:Blur() -> nilRmlUi.Element:Click (function) view source
Fakes a click on this element.RmlUi.Element:Click() -> nilRmlUi.Element:DispatchEvent (function) view source
Dispatches an event to this element.RmlUi.Element:DispatchEvent(string, table, string) -> booleanParameters
stringeventtableparametersstringinterruptible
Returns
RmlUi.Element:Focus (function) view source
Gives input focus to this element.RmlUi.Element:Focus() -> nilRmlUi.Element:GetAttribute (function) view source
Returns the value of the attribute named name. If no such attribute exists, the empty string will be returned.RmlUi.Element:GetAttribute(string) -> string?Parameters
stringname
Returns
RmlUi.Element:GetElementById (function) view source
Returns the descendant element with an id of id.RmlUi.Element:GetElementById(string) -> RmlUi.Element?Parameters
stringid
Returns
RmlUi.Element:GetElementsByTagName (function) view source
Returns a list of all descendant elements with the tag of tag_name.RmlUi.Element:GetElementsByTagName(string) -> RmlUi.ElementPtr[]Parameters
stringtag_name
Returns
RmlUi.Element:QuerySelector (function) view source
JQuery-like element selectorRmlUi.Element:QuerySelector(string) -> RmlUi.ElementPtr?Parameters
stringquery
Returns
RmlUi.Element:QuerySelectorAll (function) view source
JQuery-like element selectorRmlUi.Element:QuerySelectorAll(string) -> RmlUi.ElementPtr[]Parameters
stringselectors
Returns
RmlUi.Element:Matches (function) view source
Checks if the current element matches the given RCSS selector(s).RmlUi.Element:Matches(string) -> booleanParameters
stringselectors
Returns
RmlUi.Element:HasAttribute (function) view source
Returns True if the element has a value for the attribute named name, False if not.RmlUi.Element:HasAttribute(string) -> booleanParameters
stringname
Returns
RmlUi.Element:HasChildNodes (function) view source
Returns True if the element has at least one child node, false if not.RmlUi.Element:HasChildNodes() -> booleanReturns
RmlUi.Element:InsertBefore (function) view source
Inserts the element element as a child of this element, directly before adjacent_element in the list of children.RmlUi.Element:InsertBefore(RmlUi.ElementPtr, RmlUi.Element) -> RmlUi.Element?Parameters
Returns
RmlUi.Element:IsClassSet (function) view source
Returns true if the class name is set on the element, false if not.RmlUi.Element:IsClassSet(string) -> booleanParameters
stringname
Returns
RmlUi.Element:RemoveAttribute (function) view source
Removes the attribute named name from the element.RmlUi.Element:RemoveAttribute(string) -> nilParameters
stringname
RmlUi.Element:RemoveChild (function) view source
Removes the child element element from this element.RmlUi.Element:RemoveChild(RmlUi.Element) -> booleanParameters
Returns
RmlUi.Element:ReplaceChild (function) view source
Replaces the child element replaced_element with inserted_element in this element’s list of children. If replaced_element is not a child of this element, inserted_element will be appended onto the list instead.RmlUi.Element:ReplaceChild(RmlUi.ElementPtr, RmlUi.Element) -> booleanParameters
Returns
RmlUi.Element:ScrollIntoView (function) view source
Scrolls this element into view if its ancestors have hidden overflow.RmlUi.Element:ScrollIntoView(boolean) -> nilParameters
booleanalign_with_top
RmlUi.Element:SetAttribute (function) view source
Sets the value of the attribute named name to value.RmlUi.Element:SetAttribute(string, string) -> nilParameters
RmlUi.Element:SetClass (function) view source
Sets (if value is true) or clears (if value is false) the class name on the element.RmlUi.Element:SetClass(string, boolean) -> nilParameters
RmlUi.Element:GetElementsByClassName (function) view source
RmlUi.Element:GetElementsByClassName(string) -> RmlUi.Element[]Parameters
stringclass_name
Returns
RmlUi.Element:Clone (function) view source
RmlUi.Element:Clone() -> RmlUi.ElementPtrReturns
RmlUi.Element:Closest (function) view source
RmlUi.Element:Closest() -> RmlUi.Element?Returns
RmlUi.Element:SetPseudoClass (function) view source
RmlUi.Element:SetPseudoClass(string) -> nilParameters
stringclass_name
RmlUi.Element:IsPseudoClassSet (function) view source
RmlUi.Element:IsPseudoClassSet(string) -> booleanParameters
stringclass_name
Returns
RmlUi.Element:ArePseudoCLassesSet (function) view source
RmlUi.Element:ArePseudoCLassesSet(string[]) -> booleanParameters
string[]class_names
Returns
RmlUi.Element:GetActivePseudoCLasses (function) view source
RmlUi.Element:GetActivePseudoCLasses() -> string[]Returns
RmlUi.Element:IsPointWithinElement (function) view source
Is a screen-space point within this element?RmlUi.Element:IsPointWithinElement(RmlUi.Vector2f) -> booleanParameters
Returns
RmlUi.Element:ProcessDefaultAction (function) view source
RmlUi.Element:ProcessDefaultAction(RmlUi.Event) -> nilParameters
RmlUi.Element:IsVisible (function) view source
True if the element is visible, false otherwise.RmlUi.Element:IsVisible() -> booleanReturns
RmlUi.Element:GetValue (function) view source
Get the value of this element.RmlUi.Element:GetValue() -> (string|number|"")Returns
(string|number|"")value- Returns number if it has the tag “input”, a string if it has the tag “textarea”, else an empty string.
RmlUi.Element:GetChild (function) view source
RmlUi.Element:GetChild(integer) -> RmlUi.Element?Parameters
integerindex
Returns
Fields
stringclass_nameview source- Name of the class.
stringidview source- ID of this element, in the context of
<span id=“foo”>. stringinner_rmlview source- Gets or sets the inner RML (markup) content of the element.
integerscroll_leftview source- Gets or sets the number of pixels that the content of the element is scrolled from the left.
integerscroll_topview source- Gets or sets the number of pixels that the content of the element is scrolled from the top.
RmlUi.ElementAttributesProxyattributesview source- Read-only. Proxy for accessing element attributes.
RmlUi.ElementChildNodesProxychild_nodesview source- Read-only. Proxy for accessing child nodes of the element.
integerclient_leftview source- Read-only. The width of the left border of the element in pixels.
integerclient_heightview source- Read-only. The inner height of the element in pixels, including padding but not the horizontal scrollbar height, border, or margin.
integerclient_topview source- Read-only. The width of the top border of the element in pixels.
integerclient_widthview source- Read-only. The inner width of the element in pixels, including padding but not the vertical scrollbar width, border, or margin.
RmlUi.Element?first_childview source- Read-only. The first child element, or nil if there are no children.
RmlUi.Element?last_childview source- Read-only. The last child element, or nil if there are no children.
RmlUi.Element?next_siblingview source- Read-only. The next sibling element, or nil if there is none.
integeroffset_heightview source- Read-only. The height of the element including vertical padding and borders, in pixels.
integeroffset_leftview source- Read-only. The distance from the inner left edge of the offset parent, in pixels.
RmlUi.Elementoffset_parentview source- Read-only. The closest positioned ancestor element.
integeroffset_topview source- Read-only. The distance from the inner top edge of the offset parent, in pixels.
integeroffset_widthview source- Read-only. The width of the element including horizontal padding and borders, in pixels.
RmlUi.Documentowner_documentview source- Read-only. The document that owns this element.
RmlUi.Element?parent_nodeview source- Read-only. The parent node of this element, or nil if there is none.
RmlUi.Element?previous_siblingview source- Read-only. The previous sibling element, or nil if there is none.
integerscroll_heightview source- Read-only. The total height of the element’s content, including content not visible on the screen due to overflow.
integerscroll_widthview source- Read-only. The total width of the element’s content, including content not visible on the screen due to overflow.
RmlUi.ElementStyleProxystyleview source- Read-only. Proxy for accessing and modifying the element’s style properties.
stringtag_nameview source- Read-only. The tag name of the element.
stringaddressview source- Read-only. The address of the element in the document tree.
integerabsolute_leftview source- Read-only. The absolute left position of the element relative to the document.
integerabsolute_topview source- Read-only. The absolute top position of the element relative to the document.
integerbaselineview source- Read-only. The baseline position of the element.
integerline_heightview source- Read-only. The computed line height of the element.
booleanvisibleview source- Read-only. True if the element is visible, false otherwise.
integerz_indexview source- Read-only. The computed z-index of the element.
RmlUi.ElementForm (class) view source
Inherits RmlUi.Element
Members
RmlUi.ElementForm:Submit (function) view source
RmlUi.ElementForm:Submit(string?, string?) -> nilParameters
RmlUi.ElementFormControl (class) view source
Inherits RmlUi.Element
Fields
booleandisabledview sourcestringnameview sourcestringvalueview sourcebooleansubmittedview source
RmlUi.ElementFormControlInput (class) view source
Inherits RmlUi.Element RmlUi.ElementFormControl
Members
RmlUi.ElementFormControlInput:Select (function) view source
Selects all text.RmlUi.ElementFormControlInput:Select() -> nilRmlUi.ElementFormControlInput:SetSelection (function) view source
Selects the text in the given character range.RmlUi.ElementFormControlInput:SetSelection(integer, integer) -> nilParameters
integerselection_start- The first character to be selected.
integerselection_end- The first character after the selection.
RmlUi.ElementFormControlInput:GetSelection (function) view source
Retrieves the selection range and text.RmlUi.ElementFormControlInput:GetSelection() -> anyReturns
anyselection_start- The first character selected; selection_end The first character after the selection; selected_text The selected text.
Fields
booleancheckedview sourceintegermaxlengthview sourceintegersizeview sourceintegermaxview sourceintegerminview sourceintegerstepview source
RmlUi.ElementFormControlSelect (class) view source
Inherits RmlUi.Element RmlUi.ElementFormControl
Members
RmlUi.ElementFormControlSelect:Add (function) view source
RmlUi.ElementFormControlSelect:Add(RmlUi.Element, integer?) -> nilParameters
RmlUi.Elementelementinteger?before
RmlUi.ElementFormControlSelect:Remove (function) view source
RmlUi.ElementFormControlSelect:Remove(integer) -> nilParameters
integerindex
RmlUi.ElementFormControlSelect:RemoveAll (function) view source
RmlUi.ElementFormControlSelect:RemoveAll() -> nilRmlUi.ElementFormControlTextArea (class) view source
Inherits RmlUi.Element RmlUi.ElementFormControl
Members
RmlUi.ElementFormControlTextArea:Select (function) view source
Selects all text.RmlUi.ElementFormControlTextArea:Select() -> nilRmlUi.ElementFormControlTextArea:SetSelection (function) view source
Selects the text in the given character range.RmlUi.ElementFormControlTextArea:SetSelection(integer, integer) -> nilParameters
integerselection_start- The first character to be selected.
integerselection_end- The first character after the selection.
RmlUi.ElementFormControlTextArea:GetSelection (function) view source
Retrieves the selection range and text.RmlUi.ElementFormControlTextArea:GetSelection() -> anyReturns
anyselection_start- The first character selected; selection_end The first character after the selection; selected_text The selected text.
Fields
integercolsview sourceintegermaxlengthview sourceintegerrowsview sourcebooleanwordwrapview source
RmlUi.ElementProgress (class) view source
Inherits RmlUi.Element
Fields
numbervalueview sourcenumbermaxview source
RmlUi.ElementPtr (class) view source
Represents an owned element.
This type is mainly used to modify the DOM tree by passing the object into other elements. For example RmlUi.Element:AppendChild().
A current limitation in the Lua plugin is that Element member properties and functions cannot be used directly on this type.
RmlUi.ElementTabSet (class) view source
Inherits RmlUi.Element
Members
RmlUi.ElementTabSet:SetPanel (function) view source
Sets the contents of a panel to the RML content rml. If index is out-of-bounds, a new panel will be added at the end.RmlUi.ElementTabSet:SetPanel(integer, string) -> nilParameters
RmlUi.ElementTabSet:SetTab (function) view source
Sets the contents of a tab to the RML content rml. If index is out-of-bounds, a new tab will be added at the end.RmlUi.ElementTabSet:SetTab(integer, string) -> nilParameters
RmlUi.ElementTabSet:RemoveTab (function) view source
RmlUi.ElementTabSet:RemoveTab(integer) -> nilParameters
integerindex
Fields
integeractive_tabview sourceintegernum_tabsview source
RmlUi.ElementText (class) view source
Inherits RmlUi.Element
Fields
stringtextview source
RmlUi.Event (class) view source
An event that happens to an element.Members
RmlUi.Event:StopPropagation (function) view source
RmlUi.Event:StopPropagation() -> nilRmlUi.Event:StopImmediatePropagation (function) view source
RmlUi.Event:StopImmediatePropagation() -> nilFields
RmlUi.Elementcurrent_elementview sourcestringtypeview sourceRmlUi.Elementtarget_elementview source- What element it happened to
RmlUi.EventParametersProxyparametersview sourceRmlUi.RmlEventPhaseevent_phaseview sourcebooleaninterruptibleview sourcebooleanpropagatingview sourcebooleanimmediate_propagatingview source
RmlUi.EventListener (class) view source
Event listener interfaceMembers
RmlUi.EventListener.OnAttach (function) view source
RmlUi.EventListener.OnAttach(RmlUi.Element) -> nilParameters
RmlUi.EventListener.OnDetach (function) view source
RmlUi.EventListener.OnDetach(RmlUi.Element) -> nilParameters
RmlUi.EventListener.ProcessEvent (function) view source
RmlUi.EventListener.ProcessEvent(RmlUi.Event) -> nilParameters
RmlUi.SolLuaDataModel (class) view source
Handle for a data model.
It is a wrapper around the model table, marked as type T.
You can access fields by using normal indexing, but for the moment, the only keys that work are strings. Any index done this way will automatically trigger a rerender.
If you need to index any tables or subtables by anything not a string, you will need to use the underlying table, gotten with __GetTable. This will not trigger a rerender.
To trigger a rerender manually, use _SetDirty, passing in the name of the top-level entry in your model table that you edited.
Members
RmlUi.SolLuaDataModel:__SetDirty (function) view source
Set a table property dirty to trigger a rerenderRmlUi.SolLuaDataModel:__SetDirty(string) -> nilParameters
stringproperty
RmlUi.Vector2f (class) view source
Two-dimensional float vectorMembers
RmlUi.Vector2f.new (function) view source
RmlUi.Vector2f.new(number, number) -> RmlUi.Vector2fParameters
Returns
Fields
numberxview sourcenumberyview sourcenumbermagnitudeview source
RmlUi.Vector2i (class) view source
Two-dimensional integral vector.Members
RmlUi.Vector2i.new (function) view source
RmlUi.Vector2i.new(integer, integer) -> RmlUi.Vector2iParameters
Returns
Fields
integerxview sourceintegeryview sourcenumbermagnitudeview source
RulesParams (class) view source
Inherits table<string,integer>
RulesSyncedCallins (class)
Inherits Callins UnsyncedCallins SyncedCallins
LuaRules/main.luaRulesUnsyncedCallins (class)
Inherits Callins UnsyncedCallins
LuaRules/draw.luaSunLightingParams (class) view source
The parameter table for sun lighting.Fields
number?specularExponentnumber?groundShadowDensitynumber?modelShadowDensityrgba?groundAmbientColorrgba?groundDiffuseColorrgba?groundSpecularColorrgba?unitAmbientColorrgba?modelAmbientColorrgba?unitDiffuseColorrgba?modelDiffuseColorrgba?unitSpecularColorrgba?modelSpecularColor
TexCoords (class) view source
Fields
numberx0- left coordinate in the normalized range
numberx1- right coordinate in the normalized range
numbery0- top coordinate in the normalized range
numbery1- bottom coordinate in the normalized range
integer?atlasIndex- Means the atlas page number in case the texture is arrayed or points to another sequential texture in other rare cases
TextColorCode (class)
Indicator bytes representing color code operations during font renderingFields
stringColor- Indicates that the following bytes contain color code information
stringColorAndOutline- Indicates that the following bytes contain color code and outline information
stringReset- Indicates reset of the current color
UI (class) view source
Inherits Callins
See Callins
Members
UI:ConfigureLayout (function) view source
UI:ConfigureLayout() -> nilUnitScriptTable (class) view source
UnitScript API — controls unit animation, piece visibility, and COB values. Accessed via Spring.UnitScript (synced only).Members
UnitScriptTable.CreateScript (function) view source
Create a Lua unit script for the given unit, replacing any existing script.UnitScriptTable.CreateScript(UnitID, table<string,function>) -> nilParameters
Returns
UnitScriptTable.UpdateCallIn (function) view source
Update or remove a callIn on a unit script.UnitScriptTable.UpdateCallIn(UnitID, string, (function)?) -> nilParameters
Returns
UnitScriptTable.CallAsUnit (function) view source
Execute a function in the context of a unit’s script environment.UnitScriptTable.CallAsUnit(UnitID, function, [any, ]*) -> any ...Parameters
Returns
any ...values- returned by func
UnitScriptTable.GetUnitCOBValue (function) view source
Get a COB/script value for a unit (synced gadget API).UnitScriptTable.GetUnitCOBValue(UnitID, integer, [number, ]*) -> integerParameters
UnitIDunitIDintegerval- COB value ID (use COB constants)
number...- optional extra args for certain COB values
Returns
integervalue
UnitScriptTable.GetUnitValue (function) view source
Get a COB/script value. Must be called from within a UnitScript callin.UnitScriptTable.GetUnitValue(integer) -> integerParameters
integerval- COB value ID (use COB constants)
Returns
integervalue
UnitScriptTable.SetUnitCOBValue (function) view source
Set a COB/script value for a unit (synced gadget API).UnitScriptTable.SetUnitCOBValue(UnitID, integer, (boolean|integer)) -> nilParameters
Returns
UnitScriptTable.SetUnitValue (function) view source
Set a COB/script value. Must be called from within a UnitScript callin.UnitScriptTable.SetUnitValue(integer, (boolean|integer)) -> nilParameters
Returns
UnitScriptTable.SetPieceVisibility (function) view source
Set visibility of a piece. Must be called from within a UnitScript callin.UnitScriptTable.SetPieceVisibility(integer, boolean) -> nilParameters
Returns
UnitScriptTable.EmitSfx (function) view source
Emit a special effect at a piece. Must be called from within a UnitScript callin.UnitScriptTable.EmitSfx(integer, (string|integer)) -> nilParameters
Returns
UnitScriptTable.AttachUnit (function) view source
Attach a unit to a piece of another unit.UnitScriptTable.AttachUnit(integer, UnitID) -> nilParameters
integerpiece- 1-indexed piece number
UnitIDtransporteeID
Returns
UnitScriptTable.DropUnit (function) view source
Drop a transported unit.UnitScriptTable.DropUnit(UnitID) -> nilParameters
Returns
UnitScriptTable.Explode (function) view source
Explode a piece with the given flags.UnitScriptTable.Explode(integer, integer) -> nilParameters
Returns
UnitScriptTable.ShowFlare (function) view source
Show a flare at a piece.UnitScriptTable.ShowFlare(integer) -> nilParameters
integerpiece- 1-indexed piece number
Returns
UnitScriptTable.Spin (function) view source
Start spinning a piece around an axis.UnitScriptTable.Spin(integer, integer, number, number?) -> nilParameters
integerpiece- 1-indexed piece number
integeraxis- axis (1=x, 2=y, 3=z)
numberspeed- angular speed in radians/frame
number?accel- angular acceleration (Default:
0, instant)
Returns
UnitScriptTable.StopSpin (function) view source
Stop spinning a piece.UnitScriptTable.StopSpin(integer, integer, number?) -> nilParameters
integerpiece- 1-indexed piece number
integeraxis- axis (1=x, 2=y, 3=z)
number?decel- angular deceleration (Default:
0, instant)
Returns
UnitScriptTable.Turn (function) view source
Turn a piece to an angle. If speed is 0 or omitted, turns instantly.UnitScriptTable.Turn(integer, integer, number, number?) -> nilParameters
integerpiece- 1-indexed piece number
integeraxis- axis (1=x, 2=y, 3=z)
numberdestination- target angle in radians
number?speed- angular speed (Default:
0, instant)
Returns
UnitScriptTable.Move (function) view source
Move a piece along an axis. If speed is 0 or omitted, moves instantly.UnitScriptTable.Move(integer, integer, number, number?) -> nilParameters
integerpiece- 1-indexed piece number
integeraxis- axis (1=x, 2=y, 3=z)
numberdestination- target position
number?speed- movement speed (Default:
0, instant)
Returns
UnitScriptTable.Scale (function) view source
Scale a piece. If speed is 0 or omitted, scales instantly.UnitScriptTable.Scale(integer, number, number?) -> nilParameters
integerpiece- 1-indexed piece number
numberdestination- target scale factor
number?speed- scaling speed (Default:
0, instant)
Returns
UnitScriptTable.IsInTurn (function) view source
Check if a piece is currently turning.UnitScriptTable.IsInTurn(integer, integer) -> booleanParameters
Returns
UnitScriptTable.IsInMove (function) view source
Check if a piece is currently moving.UnitScriptTable.IsInMove(integer, integer) -> booleanParameters
Returns
UnitScriptTable.IsInSpin (function) view source
Check if a piece is currently spinning.UnitScriptTable.IsInSpin(integer, integer) -> booleanParameters
Returns
UnitScriptTable.IsInScale (function) view source
Check if a piece is currently scaling.UnitScriptTable.IsInScale(integer) -> booleanParameters
integerpiece- 1-indexed piece number
Returns
UnitScriptTable.WaitForTurn (function) view source
Check whether the calling thread needs to wait for a turn to finish.UnitScriptTable.WaitForTurn(integer, integer) -> booleanParameters
Returns
booleanneedsWait
UnitScriptTable.WaitForMove (function) view source
Check whether the calling thread needs to wait for a move to finish.UnitScriptTable.WaitForMove(integer, integer) -> booleanParameters
Returns
booleanneedsWait
UnitScriptTable.WaitForScale (function) view source
Check whether the calling thread needs to wait for a scale to finish.UnitScriptTable.WaitForScale(integer) -> booleanParameters
integerpiece- 1-indexed piece number
Returns
booleanneedsWait
UnitScriptTable.SetDeathScriptFinished (function) view source
Signal that the Killed callin has finished. Must be called from Killed.UnitScriptTable.SetDeathScriptFinished(integer?) -> nilParameters
integer?wreckLevel- (Default:
-1)
Returns
UnitScriptTable.GetPieceTranslation (function) view source
Get the local translation of a piece relative to its rest position.UnitScriptTable.GetPieceTranslation(integer) -> number, number, numberParameters
integerpiece- 1-indexed piece number
Returns
UnitScriptTable.GetPieceRotation (function) view source
Get the rotation of a piece in radians.UnitScriptTable.GetPieceRotation(integer) -> number, number, numberParameters
integerpiece- 1-indexed piece number
Returns
UnitScriptTable.GetPieceScale (function) view source
Get the scale factor of a piece.UnitScriptTable.GetPieceScale(integer) -> numberParameters
integerpiece- 1-indexed piece number
Returns
numberscale
UnitScriptTable.GetPiecePosDir (function) view source
Get the world-space emit position and direction of a piece.UnitScriptTable.GetPiecePosDir(integer) -> number, number, number, number, number, numberParameters
integerpiece- 1-indexed piece number
Returns
UnitScriptTable.GetActiveUnitID (function) view source
Get the unit ID of the currently executing unit script.UnitScriptTable.GetActiveUnitID() -> UnitID?Returns
VAO (class) view source
Vertex Array ObjectSee LuaVAO.GetVAO, rts/Lua/LuaVAOImpl.cpp
Members
VAO:Delete (function) view source
VAO:Delete() -> nilReturns
VAO:AttachVertexBuffer (function) view source
Attaches a VBO to be used as a vertex bufferVAO:AttachVertexBuffer(VBO) -> nilParameters
Returns
VAO:AttachInstanceBuffer (function) view source
Attaches a VBO to be used as an instance bufferVAO:AttachInstanceBuffer(VBO) -> nilParameters
Returns
VAO:AttachIndexBuffer (function) view source
Attaches a VBO to be used as an index bufferVAO:AttachIndexBuffer(VBO) -> nilParameters
Returns
VAO:DrawArrays (function) view source
VAO:DrawArrays(GL, integer?, integer?, integer?, integer?) -> nilParameters
GLglEnum- primitivesMode
integer?vertexCountinteger?vertexFirstinteger?instanceCountinteger?instanceFirst
Returns
VAO:DrawElements (function) view source
VAO:DrawElements(GL, integer?, integer?, integer?, integer?, integer?) -> nilParameters
GLglEnum- primitivesMode
integer?drawCountinteger?baseIndexinteger?instanceCountinteger?baseVertexinteger?baseInstance
Returns
VAO:AddUnitsToSubmission (function) view source
VAO:AddUnitsToSubmission((UnitID|UnitID[])) -> integerParameters
Returns
integersubmittedCount
VAO:AddFeaturesToSubmission (function) view source
VAO:AddFeaturesToSubmission((FeatureID|FeatureID[])) -> integerParameters
Returns
integersubmittedCount
VAO:AddUnitDefsToSubmission (function) view source
VAO:AddUnitDefsToSubmission((UnitDefID|UnitDefID[])) -> integerParameters
Returns
integersubmittedCount
VAO:AddFeatureDefsToSubmission (function) view source
VAO:AddFeatureDefsToSubmission((FeatureDefID|FeatureDefID[])) -> integerParameters
Returns
integersubmittedCount
VAO:RemoveFromSubmission (function) view source
VAO:RemoveFromSubmission(integer) -> nilParameters
integerindex
Returns
VAO:Submit (function) view source
VAO:Submit() -> nilReturns
VBO (class) view source
Vertex Buffer ObjectSee LuaVBO.GetVBO, rts/Lua/LuaVBOImpl.cpp
Members
VBO:Delete (function) view source
VBO:Delete() -> nilReturns
VBO:Define (function) view source
Specify the kind of VBO you will be using.
lua
terrainVertexVBO:Define(numPoints, {{ id = 0, name = “pos”, size = 2 }})
It is usually an array of vertex/color/uv data, but can also be an array of instance uniforms.
If you want to specify multiple instances of something to render, you will need to create another VBO, which also specifies the number of instances you wish to render, and the size of the data passed to each instance.
If you want say 5 elements, and each element is defined in the layout:
lua
{id = 0, name = “first”, size = 1},{id = 1, name = “second”, size = 2}}
Then the total size of your VBO will be 5 * (1 + 2).
They will be laid out consecutively: [1,2],[1,2],[1,2],[1,2],[1,2].
This is important for when you call VBO:Upload, you need to make sure you enter your data into the Lua array correctly.
See GL.OpenGL_Data_Types, VBO:Upload
VBO:Define(integer, (integer|VBOAttributeDef[])) -> nilParameters
integersize- The maximum number of elements this VBO can have.
(integer|VBOAttributeDef[])attribs- When integer, the maximum number of elements this VBO can have. Otherwise, an array of arrays specifying the layout.
Returns
VBO:GetBufferSize (function) view source
VBO:GetBufferSize() -> integer, integer, integerReturns
integerelementsCountintegerbufferSizeInBytesintegersize
VBO:Upload (function) view source
Uploads data into the VBO.
If attributeIndex is supplied with non-default value then the data from
vboData will only be used to upload the data to this particular attribute.
The whole vboData is expected to contain only attributeIndex data.
Otherwise all attributes get updated sequentially across attributes and elements.
See VBO:Define
VBO:Upload(number[], integer?, integer?, integer?, integer?) -> number[], integer, (integer|(integer,integer,integer,integer))Parameters
number[]vboData- Array of values to upload into the VBO.
integer?attributeIndex- (Default:
-1) The attribute to upload to, or all attributes. integer?elemOffset- (Default:
0) The index in destination VBO (on GPU) at which storing begins. integer?luaStartIndex- (Default:
1) The index ofvboDataat which copying begins. integer?luaFinishIndex- (Default:
#vboData) The index ofvboDataat which copying ends.
Returns
number[]indexDataintegerelemOffset(integer|(integer,integer,integer,integer))attrID
VBO:Download (function) view source
VBO:Download(integer?, integer?, integer?, boolean?) -> number[]Parameters
integer?attributeIndex- (Default:
-1) When supplied with non-default value: only data from specified attribute will be downloaded - otherwise all attributes are downloaded. integer?elementOffset- (Default:
0) download data starting from this element integer?elementCount- number of elements to download
boolean?forceGPURead- (Default:
false) Force downloading the data from GPU buffer as opposed to using shadow RAM buffer.
Returns
number[]vboData
VBO:ModelsVBO (function) view source
Binds engine side vertex or index VBO containing models (units, features) data.
Also fills in VBO definition data as they’re set for engine models (no need to do VBO:Define()).
VBO:ModelsVBO() -> integer?Returns
integer?size- buffer size in bytes
VBO:InstanceDataFromUnitDefIDs (function) view source
Fills in attribute data for each specified unitDefID
The instance data in that attribute will contain the offset to bind position matrix in global matrices SSBO and offset to uniform buffer structure in global per unit/feature uniform SSBO (unused for Unit/FeatureDefs), as well as some auxiliary data such as palette index and number of pieces.
Data Layout:
SInstanceData:
, traOffset{ matOffset_ } // updated during the following draw frames
, uniOffset{ uniOffset_ } // updated during the following draw frames
, info{ paletteIndex, numPieces } // not updated during the following draw frames
, aux1 { 0u }
VBO:InstanceDataFromUnitDefIDs((UnitDefID|UnitDefID[]), integer, integer?, integer?) -> (integer,integer,integer,integer), integer, integerParameters
(UnitDefID|UnitDefID[])unitDefIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
(integer,integer,integer,integer)instanceDataintegerelementOffsetintegerattrID
VBO:InstanceDataFromFeatureDefIDs (function) view source
Fills in attribute data for each specified featureDefID
The instance data in that attribute will contain the offset to bind position matrix in global matrices SSBO and offset to uniform buffer structure in global per unit/feature uniform SSBO (unused for Unit/FeatureDefs), as well as some auxiliary data such as palette index and number of pieces.
Data Layout
SInstanceData:
, traOffset{ matOffset_ } // updated during the following draw frames
, uniOffset{ uniOffset_ } // updated during the following draw frames
, info{ paletteIndex, numPieces } // not updated during the following draw frames
, aux1 { 0u }
VBO:InstanceDataFromFeatureDefIDs((FeatureDefID|FeatureDefID[]), integer, integer?, integer?) -> (integer,integer,integer,integer), integer, integerParameters
(FeatureDefID|FeatureDefID[])featureDefIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
(integer,integer,integer,integer)instanceDataintegerelementOffsetintegerattrID
VBO:InstanceDataFromUnitIDs (function) view source
Fills in attribute data for each specified unitID
The instance data in that attribute will contain the offset to bind position matrix in global matrices SSBO and offset to uniform buffer structure in global per unit/feature uniform SSBO (unused for Unit/FeatureDefs), as well as some auxiliary data such as palette index and number of pieces.
Data Layout
SInstanceData:
, traOffset{ matOffset_ } // updated during the following draw frames
, uniOffset{ uniOffset_ } // updated during the following draw frames
, info{ paletteIndex, numPieces } // not updated during the following draw frames
, aux1 { 0u }
VBO:InstanceDataFromUnitIDs((UnitID|UnitID[]), integer, integer?, integer?) -> (integer,integer,integer,integer), integer, integerParameters
Returns
(integer,integer,integer,integer)instanceDataintegerelementOffsetintegerattrID
VBO:InstanceDataFromFeatureIDs (function) view source
Fills in attribute data for each specified featureID
The instance data in that attribute will contain the offset to bind position matrix in global matrices SSBO and offset to uniform buffer structure in global per unit/feature uniform SSBO (unused for Unit/FeatureDefs), as well as some auxiliary data such as palette index and number of pieces.
VBO:InstanceDataFromFeatureIDs((FeatureID|FeatureID[]), integer, integer?, integer?) -> (integer,integer,integer,integer), integer, integerParameters
(FeatureID|FeatureID[])featureIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
(integer,integer,integer,integer)instanceDataintegerelementOffsetintegerattrID
VBO:MatrixDataFromProjectileIDs (function) view source
VBO:MatrixDataFromProjectileIDs((ProjectileID|ProjectileID[]), integer, integer?, integer?) -> number[], integer, (integer|(integer,integer,integer,integer))Parameters
(ProjectileID|ProjectileID[])projectileIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
number[]matDataVec- Flattened 4x4 matrix(es)
integerelemOffset(integer|(integer,integer,integer,integer))attrID
VBO:BindBufferRange (function) view source
Bind a range within a buffer object to an indexed buffer target
Generally mimics https://registry.khronos.org/OpenGL-Refpages/gl4/html/glBindBufferRange.xhtml except offset and size are specified in number of elements / element indices.
VBO:BindBufferRange(integer, integer?, integer?, GL?) -> integerParameters
integerindex- Should be in the range between
5 < index < GL_MAX_UNIFORM_BUFFER_BINDINGSvalue (usually 31). integer?elementOffsetinteger?elementCountGL?target- glEnum
Returns
integerbindingIndex- when successful, -1 otherwise
VBO:UnbindBufferRange (function) view source
VBO:UnbindBufferRange(integer, integer?, integer?, GL?) -> integerParameters
integerindexinteger?elementOffsetinteger?elementCountGL?target- glEnum
Returns
integerbindingIndex- when successful, -1 otherwise
VBO:DumpDefinition (function) view source
Logs the definition of the VBO to the consoleVBO:DumpDefinition() -> nilReturns
VBO:CopyTo (function) view source
Copy the contents of the VBO to another VBO.
Destination VBO is expected to have sufficient allocation size, otherwise the copying will gracefully fail.
VBO:CopyTo(VBO, integer) -> booleanParameters
VBOdestVBOintegercopySizeInBytes
Returns
booleansuccess
VBO:GetID (function) view source
Gets the OpenGL Buffer IDVBO:GetID() -> integerReturns
integerbufferID
rgb (class)
Color triple (RGB)Fields
rgba (class)
Color quadruple (RGBA)Fields
xy (class)
Cartesian double (XY)Fields
xyz (class)
Cartesian triple (XYZ)Fields
xyzw (class)
Cartesian quadruple (XYZW)Fields
CMD (enum) view source
Command constants.
Table defining Command related constants.
- Contains a mix of special constants like command options or move states, and the list of engine command IDs.
- Also supports integer keys, and those perform reverse mapping of command IDs.
See Spring.GiveOrderToUnit, Spring.GiveOrderArrayToUnitArray, Spring.GetUnitCurrentCommand, Callins:AllowCommand
128OPT_ALTview source64OPT_CTRLview source32OPT_SHIFTview source16OPT_RIGHTview source8OPT_INTERNALview source4OPT_METAview source-1MOVESTATE_NONEview source0MOVESTATE_HOLDPOSview source1MOVESTATE_MANEUVERview source2MOVESTATE_ROAMview source-1FIRESTATE_NONEview source0FIRESTATE_HOLDFIREview source1FIRESTATE_RETURNFIREview source2FIRESTATE_FIREATWILLview source3FIRESTATE_FIREATNEUTRALview source1WAITCODE_TIMEview source2WAITCODE_DEATHview source3WAITCODE_SQUADview source4WAITCODE_GATHERview source0STOPview sourceStop the current action and clear the unit’s command queue.
For factories, this will cancel the new unit orders queue. For units, this will cancel the current command and queue.
Accepts no parameters.
It won’t do anything if used with CMD.INSERT, or the
shiftoption.1INSERTview source2REMOVEview sourceRemove all commands from a unit’s queue matching specific cmdIDs or tags.
Modes of operation
Filter by tag
Removes any command with a tag matching those included in params.
params{tag1, tag2 …} an array of tags to look for.
This is the default mode of operation.
Filter by id
Removes any command with a
command idmatching those included in params.params{id1, id2 …} or {tag1, tag2, …} an array of ids tags to look for.
To use this mode you need to pass the
altoption.Command Options
altTag/Id switchctrlAlternative queue selection.- For factories alternative queue is the factory command queue, default queue is the rally queue.
- For other units no effect.
Examples
Delete all attack orders from unit, or factory rally queue if factory:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, CMD.ATTACK)Delete all attack and fight orders from unit, or factory rally queue if factory:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, {CMD.ATTACK, CMD.FIGHT}, CMD.OPT_ALT)Delete commands with specific tags:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, {tag1, tag2, tag3})Delete all commands to build units with UnitDef ids unitDefId1 and unitDefId2 from factory queue:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, {-unitDefId1, -unitDefId2}, CMD.OPT_ALT + CMD.OPT_CTRL)5WAITview sourceMakes the unit suspend processing its command queue until wait is removed.
Accepts no parameters.
6TIMEWAITview sourceMakes the unit suspend processing its command queue for a given duration.
params{duration} Time to wait in seconds.
7DEATHWAITview sourceMakes the unit suspend processing its commmand queue until the death of a given unit or units in an area.
Modes of operation
Wait for death of specific unit
params{unitID} unitID of the unit to wait for.
Wait for death of units in an area
params{x1, y1, z1, x2, y2, z2}: Wait for death of units in square {x1, z1, x2, z2}.
8SQUADWAITview sourceMakes selected units, or units coming out of a factory wait until squadSize peers are found to go with them.
If given to non factory units and the squadSize is smaller than the selected number of units the command will have no effect.
Each unit will find squadSize other units and resume wait, those remaining without peers will wait. For example if there are 30 selected units and a squadSize of 12 is sent, 6 units will stay waiting, as
30 - 12*2 = 6.If given at a waypoint for a factory queue for new units, units coming out of the factory will wait at the waypoint until squadSize units are available, and then they will proceed together.
Can also be given to a group of factories, and units from those factories will gather together.
params{squadSize} Squad size.
9GATHERWAITview sourceMakes the unit wait for all other selected units to reach the command.
Useful to make units wait until all other units have reached a waypoint.
Will only be given to movable (
unitDef.canMove == true) non-factory units.Accepts no parameters.
10MOVEview source15PATROLview source16FIGHTview source20ATTACKview sourceAttack command. Gives an order to attack some target(s).
The command has different modes of operation, depending on the number of parameters and options used.
Modes of operation
Attack single target
params{unitID}: Attack a unit
The command will end once the target is dead or not valid any more.
Area attack
Will create a number of
single targetactions by finding targets in a circle.Note: this is different than CMD.AREA_ATTACK, since this initially finds the targets but then doesn’t consider the area any more.
params{x,y,z,r} when radius is greater than 0.- r: radius
- x,y,z: map position
Ground attack
params{x,y,z,0} or {x,y,z}- x,y,z: map position
Command Options
altAlso target stunned targets. Without this stunned targets will be skipped.metaOverridemanualFire, andnoAutoTargetweapon behaviours.
Other modifiers
modInfo.targetableTransportedUnits: Controls whether transported units are targetable.
Callins
- UnitCmdDone: Run when the command is finished.
Examples
Attack unit with id
targetID.lua Spring.GiveOrderToUnit(unitID, CMD.ATTACK, targetID)Area attack of radius 50 at map position 1000,1000 with height 100:
lua Spring.GiveOrderToUnit(unitID, CMD.ATTACK, {1000,100,1000,50})Ground attack at map position 1000,1000 with height 100:
lua Spring.GiveOrderToUnit(unitID, CMD.ATTACK, {1000,100,1000})21AREA_ATTACKview source25GUARDview source35GROUPSELECTview source36GROUPADDview source37GROUPCLEARview source40REPAIRview source45FIRE_STATEview source50MOVE_STATEview source55SETBASEview source60INTERNALview source65SELFDview source75LOAD_UNITSview source76LOAD_ONTOview source80UNLOAD_UNITSview source81UNLOAD_UNITview source85ONOFFview source90RECLAIMview source95CLOAKview source100STOCKPILEview source105MANUALFIREview source105DGUNview source110RESTOREview source115REPEATview source120TRAJECTORYview source125RESURRECTview source130CAPTUREview source135AUTOREPAIRLEVELview source20LOOPBACKATTACKview source145IDLEMODEview source
CMDTYPE (enum) view source
Command type constants
Note, the CMDTYPE[] table is bidirectional. That means: CMDTYPE[CMDTYPE.ICON] := “CMDTYPE_ICON”
integerICONview source- Expect 0 parameters in return.
integerICON_MODEview source- Expect 1 parameter in return (number selected mode).
integerICON_MAPview source- Expect 3 parameters in return (mappos).
integerICON_AREAview source- Expect 4 parameters in return (mappos+radius).
integerICON_UNITview source- Expect 1 parameters in return (unitid).
integerICON_UNIT_OR_MAPview source- Expect 1 parameters in return (unitid) or 3 parameters in return (mappos).
integerICON_FRONTview source- Expect 3 or 6 parameters in return (middle and right side of front if a front was defined).
integerICON_UNIT_OR_AREAview source- Expect 1 parameter in return (unitid) or 4 parameters in return (mappos+radius).
integerNEXTview source- Expect command page used with
CMD_INTERNAL. integerPREVview source- Expect command page used with
CMD_INTERNAL. integerICON_UNIT_FEATURE_OR_AREAview source- Expect 1 parameter in return (unitid or Game.maxUnits+featureid) or 4 parameters in return (mappos+radius).
integerICON_BUILDINGview source- Expect 3 parameters in return (mappos).
integerCUSTOMview source- Expect with
CMD_INTERNAL. integerICON_UNIT_OR_RECTANGLEview source- Expect 1 parameter in return (unitid) or 3 parameters in return (mappos) or 6 parameters in return (startpos+endpos).
integerNUMBERview source- Expect 1 parameter in return (number).
COB (enum) view source
COB constantsintegerACTIVATIONview sourceintegerSTANDINGMOVEORDERSview sourceintegerSTANDINGFIREORDERSview sourceintegerHEALTHview sourceintegerINBUILDSTANCEview sourceintegerBUSYview sourceintegerPIECE_XZview sourceintegerPIECE_Yview sourceintegerUNIT_XZview sourceintegerUNIT_Yview sourceintegerUNIT_HEIGHTview sourceintegerXZ_ATANview sourceintegerXZ_HYPOTview sourceintegerATANview sourceintegerHYPOTview sourceintegerGROUND_HEIGHTview sourceintegerBUILD_PERCENT_LEFTview sourceintegerYARD_OPENview sourceintegerBUGGER_OFFview sourceintegerARMOREDview sourceintegerIN_WATERview sourceintegerCURRENT_SPEEDview sourceintegerVETERAN_LEVELview sourceintegerON_ROADview sourceintegerMAX_IDview sourceintegerMY_IDview sourceintegerUNIT_TEAMview sourceintegerUNIT_BUILD_PERCENT_LEFTview sourceintegerUNIT_ALLIEDview sourceintegerMAX_SPEEDview sourceintegerCLOAKEDview sourceintegerWANT_CLOAKview sourceintegerGROUND_WATER_HEIGHTview sourceintegerUPRIGHTview sourceintegerPOWview sourceintegerPRINTview sourceintegerHEADINGview sourceintegerTARGET_IDview sourceintegerLAST_ATTACKER_IDview sourceintegerLOS_RADIUSview sourceintegerAIR_LOS_RADIUSview sourceintegerRADAR_RADIUSview sourceintegerJAMMER_RADIUSview sourceintegerSONAR_RADIUSview sourceintegerSONAR_JAM_RADIUSview sourceintegerSEISMIC_RADIUSview sourceintegerDO_SEISMIC_PINGview sourceintegerCURRENT_FUELview sourceintegerTRANSPORT_IDview sourceintegerSHIELD_POWERview sourceintegerSTEALTHview sourceintegerCRASHINGview sourceintegerCHANGE_TARGETview sourceintegerCEG_DAMAGEview sourceintegerCOB_IDview sourceintegerPLAY_SOUNDview sourceintegerKILL_UNITview sourceintegerSET_WEAPON_UNIT_TARGETview sourceintegerSET_WEAPON_GROUND_TARGETview sourceintegerSONAR_STEALTHview sourceintegerREVERSINGview sourceintegerFLANK_B_MODEview sourceintegerFLANK_B_DIRview sourceintegerFLANK_B_MOBILITY_ADDview sourceintegerFLANK_B_MAX_DAMAGEview sourceintegerFLANK_B_MIN_DAMAGEview sourceintegerWEAPON_RELOADSTATEview sourceintegerWEAPON_RELOADTIMEview sourceintegerWEAPON_ACCURACYview sourceintegerWEAPON_SPRAYview sourceintegerWEAPON_RANGEview sourceintegerWEAPON_PROJECTILE_SPEEDview sourceintegerMINview sourceintegerMAXview sourceintegerABSview sourceintegerGAME_FRAMEview sourceintegerPIECE_HEADINGview sourceintegerPIECE_PITCHview source
LOG (enum) view source
See Spring.Log
20DEBUGview source30INFOview source35NOTICEview source- Engine default.
37DEPRECATEDview source40WARNINGview source50ERRORview source60FATALview source
READY_MESSAGE (enum) view source
"Waiting for players"WAITINGview source"Waiting for players, press key to force start"HOST_WAITINGview source- when waiting and currently the host, key is the first key bound to the action forcestart
"Choose start pos"CHOOSE_POSview source- when current player is not ready and is not a spectator
"Starting in n"STARTINGview source- where n is the number of seconds
READY_STATE (enum) view source
"missing"MISSINGview source- when the player hasn’t joined yet (NETMSG_PLAYERNAME wasn’t received)
"ready"READYview source"notready"NOT_READYview source
RmlUi.RmlEventPhase (enum) view source
integerNoneview sourceintegerCaptureview sourceintegerTargetview sourceintegerBubbleview source
RmlUi.RmlFocusFlag (enum) view source
integerNoneview sourceintegerDocumentview sourceintegerKeepview sourceintegerAutoview source
RmlUi.RmlModalFlag (enum) view source
integerNoneview sourceintegerModalview sourceintegerKeepview source
RmlUi.default_action_phase (enum) view source
integerAutoview sourceintegerTargetview sourceintegerTargetAndBubbleview source
RmlUi.font_weight (enum) view source
integerAutoview sourceintegerNormalview sourceintegerBoldview source
RmlUi.key_identifier (enum) view source
integer0view sourceinteger1view sourceinteger2view sourceinteger3view sourceinteger4view sourceinteger5view sourceinteger6view sourceinteger7view sourceinteger8view sourceinteger9view sourceintegerUNKNOWNview sourceintegerSPACEview sourceintegerAview sourceintegerBview sourceintegerCview sourceintegerDview sourceintegerEview sourceintegerFview sourceintegerGview sourceintegerHview sourceintegerIview sourceintegerJview sourceintegerKview sourceintegerLview sourceintegerMview sourceintegerNview sourceintegerOview sourceintegerPview sourceintegerQview sourceintegerRview sourceintegerSview sourceintegerTview sourceintegerUview sourceintegerVview sourceintegerWview sourceintegerXview sourceintegerYview sourceintegerZview sourceintegerOEM_1view sourceintegerOEM_PLUSview sourceintegerOEM_COMMAview sourceintegerOEM_MINUSview sourceintegerOEM_PERIODview sourceintegerOEM_2view sourceintegerOEM_3view sourceintegerOEM_4view sourceintegerOEM_5view sourceintegerOEM_6view sourceintegerOEM_7view sourceintegerOEM_8view sourceintegerOEM_102view sourceintegerNUMPAD0view sourceintegerNUMPAD1view sourceintegerNUMPAD2view sourceintegerNUMPAD3view sourceintegerNUMPAD4view sourceintegerNUMPAD5view sourceintegerNUMPAD6view sourceintegerNUMPAD7view sourceintegerNUMPAD8view sourceintegerNUMPAD9view sourceintegerNUMPADENTERview sourceintegerMULTIPLYview sourceintegerADDview sourceintegerSEPARATORview sourceintegerSUBTRACTview sourceintegerDECIMALview sourceintegerDIVIDEview sourceintegerOEM_NEC_EQUALview sourceintegerBACKview sourceintegerTABview sourceintegerCLEARview sourceintegerRETURNview sourceintegerPAUSEview sourceintegerCAPITALview sourceintegerKANAview sourceintegerHANGULview sourceintegerJUNJAview sourceintegerFINALview sourceintegerHANJAview sourceintegerKANJIview sourceintegerESCAPEview sourceintegerCONVERTview sourceintegerNONCONVERTview sourceintegerACCEPTview sourceintegerMODECHANGEview sourceintegerPRIORview sourceintegerNEXTview sourceintegerENDview sourceintegerHOMEview sourceintegerLEFTview sourceintegerUPview sourceintegerRIGHTview sourceintegerDOWNview sourceintegerSELECTview sourceintegerPRINTview sourceintegerEXECUTEview sourceintegerSNAPSHOTview sourceintegerINSERTview sourceintegerDELETEview sourceintegerHELPview sourceintegerLWINview sourceintegerRWINview sourceintegerAPPSview sourceintegerPOWERview sourceintegerSLEEPview sourceintegerWAKEview sourceintegerF1view sourceintegerF2view sourceintegerF3view sourceintegerF4view sourceintegerF5view sourceintegerF6view sourceintegerF7view sourceintegerF8view sourceintegerF9view sourceintegerF10view sourceintegerF11view sourceintegerF12view sourceintegerF13view sourceintegerF14view sourceintegerF15view sourceintegerF16view sourceintegerF17view sourceintegerF18view sourceintegerF19view sourceintegerF20view sourceintegerF21view sourceintegerF22view sourceintegerF23view sourceintegerF24view sourceintegerNUMLOCKview sourceintegerSCROLLview sourceintegerOEM_FJ_JISHOview sourceintegerOEM_FJ_MASSHOUview sourceintegerOEM_FJ_TOUROKUview sourceintegerOEM_FJ_LOYAview sourceintegerOEM_FJ_ROYAview sourceintegerLSHIFTview sourceintegerRSHIFTview sourceintegerLCONTROLview sourceintegerRCONTROLview sourceintegerLMENUview sourceintegerRMENUview sourceintegerBROWSER_BACKview sourceintegerBROWSER_FORWARDview sourceintegerBROWSER_REFRESHview sourceintegerBROWSER_STOPview sourceintegerBROWSER_SEARCHview sourceintegerBROWSER_FAVORITESview sourceintegerBROWSER_HOMEview sourceintegerVOLUME_MUTEview sourceintegerVOLUME_DOWNview sourceintegerVOLUME_UPview sourceintegerMEDIA_NEXT_TRACKview sourceintegerMEDIA_PREV_TRACKview sourceintegerMEDIA_STOPview sourceintegerMEDIA_PLAY_PAUSEview sourceintegerLAUNCH_MAILview sourceintegerLAUNCH_MEDIA_SELECTview sourceintegerLAUNCH_APP1view sourceintegerLAUNCH_APP2view sourceintegerOEM_AXview sourceintegerICO_HELPview sourceintegerICO_00view sourceintegerPROCESSKEYview sourceintegerICO_CLEARview sourceintegerATTNview sourceintegerCRSELview sourceintegerEXSELview sourceintegerEREOFview sourceintegerPLAYview sourceintegerZOOMview sourceintegerPA1view sourceintegerOEM_CLEARview source
RmlUi.key_modifier (enum) view source
integerCTRLview sourceintegerSHIFTview sourceintegerALTview sourceintegerMETAview sourceintegerCAPSLOCKview sourceintegerNUMLOCKview sourceintegerSCROLLLOCKview source
SFX (enum) view source
integerSHATTERview source- Piece flag for
Spring.UnitScript.Explode. integerEXPLODEview source- Piece flag for
Spring.UnitScript.Explode. integerEXPLODE_ON_HITview source- Piece flag for
Spring.UnitScript.Explode. integerFALLview source- Piece flag for
Spring.UnitScript.Explode. integerSMOKEview source- Piece flag for
Spring.UnitScript.Explode. integerFIREview source- Piece flag for
Spring.UnitScript.Explode. integerNONEview source- Piece flag for
Spring.UnitScript.Explode. integerNO_CEG_TRAILview source- Piece flag for
Spring.UnitScript.Explode. integerNO_HEATCLOUDview source- Piece flag for
Spring.UnitScript.Explode. integerRECURSIVEview source- Piece flag for
Spring.UnitScript.Explode. integerVTOLview source- Piece flag for
Spring.UnitScript.EmitSfx. integerWAKEview source- Piece flag for
Spring.UnitScript.EmitSfx. integerREVERSE_WAKEview source- Piece flag for
Spring.UnitScript.EmitSfx. integerWHITE_SMOKEview source- Piece flag for
Spring.UnitScript.EmitSfx. integerBLACK_SMOKEview source- Piece flag for
Spring.UnitScript.EmitSfx. integerBUBBLEview source- Piece flag for
Spring.UnitScript.EmitSfx. integerCEGview source- Piece flag for
Spring.UnitScript.EmitSfx. integerFIRE_WEAPONview source- Piece flag for
Spring.UnitScript.EmitSfx. integerDETONATE_WEAPONview source- Piece flag for
Spring.UnitScript.EmitSfx. integerGLOBALview source- Piece flag for
Spring.UnitScript.EmitSfx.
CMD (field)
CMDTYPE (field)
COB (field)
COBSCALE (field) view source
LOG (field)
LosMask (field)
LuaFont (field)
ProjectileTargetType (field)
READY_MESSAGE (field)
READY_STATE (field)
SFX (field)
SYNCED (field) view source
Proxy table for reading synced global state in unsynced code.
Generally not recommended. Instead, listen to the same events as synced and build the table in parallel
Unsynced code can read from the synced global table (_G) using the SYNCED
proxy table. e.g. _G.foo can be access from unsynced via SYNCED.foo.
This table makes a copy of the object on the other side, and only copies numbers, strings, bools and tables (recursively but with the type restriction), in particular this does not allow access to functions.
Note that this makes a copy on each access, so is very slow and will not reflect changes. Cache it, but remember to refresh.
VAO (field)
Encoding (table) view source
Lua Encoding APIMembers
Encoding.DecodeBase64 (function) view source
Decodes a base64 string
Decodes a base64 encoded string. If it encounters invalid data, it stops and returns whatever it parsed so far.
Encoding.DecodeBase64(string) -> stringParameters
stringtext- Text to decode
Returns
stringdecoded- Decoded text
Encoding.EncodeBase64 (function) view source
Encodes a base64 stringEncoding.EncodeBase64(string, boolean?) -> stringParameters
stringtext- Text to encode
boolean?stripPadding- Remove padding (
=characters) at the end when ’true’. Defaults totrue.
Returns
stringencoded- Encoded text
Encoding.IsValidBase64 (function) view source
Validates a base64 stringEncoding.IsValidBase64(string) -> booleanParameters
stringtext- Text to validate
Returns
booleanvalid- Whether the text is valid base64
Encoding.DecodeBase64Url (function) view source
Decodes a base64url string
Decodes a base64url encoded string. If it encounters invalid data, it stops and returns whatever it parsed so far.
Encoding.DecodeBase64Url(string) -> stringParameters
stringtext- Text to decode
Returns
stringdecoded- Decoded text
Encoding.EncodeBase64Url (function) view source
Encodes a base64url stringEncoding.EncodeBase64Url(string) -> stringParameters
stringtext- Text to encode
Returns
stringencoded- Encoded text
Encoding.IsValidBase64Url (function) view source
Validates a base64url stringEncoding.IsValidBase64Url(string) -> booleanParameters
stringtext- Text to validate
Returns
booleanvalid- Whether the text is valid base64url
Engine (table) view source
Engine specific information.Fields
stringversionview source- “Major.Minor.PatchSet” for releases, “Major.Minor.PatchSet-CommitNum-gHash branch” otherwise
stringversionFullview source- “Major.Minor.PatchSet” for releases, “Major.Minor.PatchSet-CommitNum-gHash branch” otherwise. Will also include (buildFlags), if there’re any.
stringversionMajorview source- Major part of the named release version
stringversionMinorview source- Minor part of the named release version
stringversionPatchSetview source- Build number of the named release version
stringcommitsNumberview source- Number of commits after the latest named release, non-zero indicates a “dev” build
stringbuildFlagsview source- Gets additional engine buildflags, e.g. “Debug” or “Sync-Debug”
FeatureSupportfeatureSupportview source- Table containing various engine features as keys; use for cross-version compat
integerwordSizeview source- Indicates the build type always 64 these days
integergameSpeedview source- Number of simulation gameframes per second
TextColorCodetextColorCodesview source- Table containing keys that represent the color code operations during font rendering
Game (table) view source
Game specific informationFields
integermaxTeamsview source- Maximum number of teams, including the Gaia team.
integermaxPlayersview source- Maximum number of players.
integergameSpeedview source- Number of simulation gameframes per second
integersquareSizeview source- Divide Game.mapSizeX or Game.mapSizeZ by this to get engine’s “mapDims” coordinates. The resolution of height, yard and type maps.
integermetalMapSquareSizeview source- The resolution of metalmap (for use in API such as Spring.GetMetalAmount etc.)
integerbuildSquareSizeview source- Size of a build grid square in elmos (
squareSize * buildGridResolution). integerbuildGridResolutionview source- Resolution of the native build placement grid, in heightmap squares.
integerfootprintScaleview source- Multiplier for unit, feature and move def footprint sizes, which are expressed in “TA units”.
(0|1|2|3)startPosTypeview source0fixed,1random,2choose in game,3choose before game.booleanghostedBuildingsview sourcestring?demoPlayNameview source- Base name of the demo being played, or
nilif not playing a demo. integermaxUnitsview sourcenumberwindMinview sourcenumberwindMaxview sourcebooleanmapDamageview source- Whether map damage (terrain deformation) is enabled.
integermapXview source- Map size along the x axis, in map units (512 elmos).
integermapYview source- Map size along the z axis, in map units (512 elmos).
integermapSizeXview source- Map size along the x axis in worldspace/opengl coords. Divide by Game.squareSize to get engine’s “mapDims” coordinates
integermapSizeZview source- Map size along the z axis in worldspace/opengl coords. Divide by Game.squareSize to get engine’s “mapDims” coordinates
stringmapNameview source- The map’s human readable name.
stringmapDescriptionview source- The map’s description.
numbermapHardnessview sourcenumberextractorRadiusview source- Extraction radius for mines.
numbertidalview sourcenumberwaterDamageview sourcenumbergravityview source- Gravity in elmos per second squared.
stringgameNameview source- The game’s human readable name, without version.
stringgameShortNameview source- The game’s short name, without version.
stringgameVersionview source- The game’s version.
stringgameMutatorview sourcestringgameDescview source- The game’s description.
stringmodNameview source- The game’s human readable name, including version.
stringmodShortNameview source- Same as Game.gameShortName.
stringmodVersionview source- Same as Game.gameVersion.
stringmodMutatorview source- Same as Game.gameMutator.
stringmodDescview source- Same as Game.gameDesc.
booleanconstructionDecayview source- Whether constructions without builders decay.
integerconstructionDecayTimeview source- How long until constructions without builders start decaying.
numberconstructionDecaySpeedview source- How fast constructions without builders decay.
booleanuseYardmapsForQueuedBuildOverlapview source- Whether queued build overlap uses yardmap cells instead of full footprints.
integermultiReclaimview source0= 1 reclaimer per feature max, otherwise unlimited.integerreclaimMethodview source0= gradual reclaim,1= all reclaimed at end, otherwise reclaim inreclaimMethodchunks.integerreclaimUnitMethodview source0= revert to wireframe and gradual reclaim,1= subtract HP and give full metal at end.numberreclaimUnitEnergyCostFactorview source- How much energy reclaiming a unit costs.
numberreclaimUnitEfficiencyview source- How much metal reclaiming a unit returns.
numberreclaimFeatureEnergyCostFactorview source- How much energy reclaiming a feature costs.
booleanreclaimUnitDrainHealthview source- Whether wireframe reclaim drains health.
booleanreclaimAllowEnemiesview source- Whether enemy units can be reclaimed.
booleanreclaimAllowAlliesview source- Whether allied units can be reclaimed.
numberrepairEnergyCostFactorview source- How much energy repair costs.
numberresurrectEnergyCostFactorview source- How much energy resurrection costs.
numbercaptureEnergyCostFactorview source- How much energy capture costs.
integertransportAirview source- If
0, every aircraft getscantBeTransported = truein its unit def. integertransportShipview source- If
0, every unit using a ship move def getscantBeTransported = truein its unit def. integertransportHoverview source- If
0, every unit using a hovercraft move def getscantBeTransported = truein its unit def. integertransportGroundview source- If
0, every unit using a tank or kbot move def getscantBeTransported = truein its unit def. integerfireAtKilledview source1if units fire at enemies running theirKilled()script, otherwise0.integerfireAtCrashingview source1if units fire at crashing aircraft, otherwise0.integerrequireSonarUnderWaterview source1if underwater units are not in LOS unless also in sonar, otherwise0.booleanparalyzeOnMaxHealthview source- Whether paralysis depends on max health rather than current health.
numberparalyzeDeclineRateview source- Time it takes for paralysis to decay by 100%, in seconds.
booleanallowEnginePlayerlistview sourcebooleannativeExcessSharingview source- whether the engine handles excess resources overflow
stringmapChecksumview source- SHA-512 checksum of the map archive, as hex.
stringmodChecksumview source- SHA-512 checksum of the game archive, as hex.
table<string,integer>springCategoriesview source- Example:
lua { [“vtol”] = 0, [“special”] = 1, [“noweapon”] = 2, [“notair”] = 3, [“notsub”] = 4, [“all”] = 5, [“weapon”] = 6, [“notship”] = 7, [“notland”] = 8, [“mobile”] = 9, [“kbot”] = 10, [“antigator”] = 11, [“tank”] = 12, [“plant”] = 13, [“ship”] = 14, [“antiemg”] = 15, [“antilaser”] = 16, [“antiflame”] = 17, [“underwater”] = 18, [“hover”] = 19, [“phib”] = 20, [“constr”] = 21, [“strategic”] = 22, [“commander”] = 23, [“paral”] = 24, [“jam”] = 25, [“mine”] = 26, [“kamikaze”] = 27, [“minelayer”] = 28, [“notstructure”] = 29, [“air”] = 30 } table<(string|integer),(string|integer)>armorTypesview source(bidirectional)
Example:
lua { [1] = amphibious, [2] = anniddm, [3] = antibomber, [4] = antifighter, [5] = antiraider, [6] = atl, [7] = blackhydra, [8] = bombers, [9] = commanders, [10] = crawlingbombs, …[“amphibious”] = 1, [“anniddm”] = 2, [“antibomber”] = 3 [“antifighter”] = 4, [“antiraider”] = 5, [“atl”] = 6 [“blackhydra”] = 7, [“bombers”] = 8, [“commanders”] = 9 [“crawlingbombs”]= 10, … }
TextColorCodetextColorCodesview source- Table containing keys that represent the color code operations during font rendering.
{ Debris = integer, GroundCollision = integer, ObjectCollision = integer, ... }envDamageTypesview source- Environmental damage types. {def}IDs of environmental-damage sources.
{ noEnemies = integer, noFriendlies = integer, noFeatures = integer, ... }collisionFlagsview source- Weapon avoidance and projectile collision flags.
{ Tank = integer, KBot = integer, Hover = integer, Boat = integer, ... }speedModClassesview source- Move def speed-modifier types.
{ HitNothing = integer, HitGround = integer, HitLimit = integer, ... }scriptNotifyTypesview source- MoveCtrl script-notify types.
Platform (table) view source
Platform specific informationFields
stringgpuview source- Full GPU device name
("Nvidia"|"Intel"|"ATI"|"Mesa"|"Unknown")gpuVendorview sourceintegergpuMemorySizeview source- Size of total GPU memory in MBs; only available for “Nvidia”, (rest are 0)
stringglVersionShortview sourcemajor.minor.buildNumberintegerglVersionNumview sourcestringglslVersionShortview sourcemajor.minorstringglslVersionNumview sourcestringglVersionview source- Full version
stringglVendorview sourcestringglRendererview sourcestringglslVersionview source- Full version
stringgladVersionview sourcestringglewVersionview sourceintegersdlVersionCompiledMajorview sourceintegersdlVersionCompiledMinorview sourceintegersdlVersionCompiledPatchview sourceintegersdlVersionLinkedMajorview sourceintegersdlVersionLinkedMinorview sourceintegersdlVersionLinkedPatchview sourcePlatformVideoMode[]availableVideoModesview sourceintegernumDisplaysview sourcebooleanglSupportNonPowerOfTwoTexview sourcebooleanglSupportTextureQueryLODview sourcebooleanglSupportMSAAFrameBufferview sourcebooleanglHaveAMDview sourcebooleanglHaveNVidiaview sourcebooleanglHaveIntelview sourcebooleanglHaveGLSLview sourcebooleanglHaveGL4view sourceintegerglSupportDepthBufferBitDepthview sourcebooleanglSupportRestartPrimitiveview sourcebooleanglSupportClipSpaceControlview sourcebooleanglSupportFragDepthLayoutview sourcebooleanglSupportSeamlessCubeMapsview sourcestringosNameview source- full name of the OS
stringosVersionview source("Windows"|"Linux"|"MacOSX"|"FreeBSD"|"Unknown")osFamilyview sourcestringarchitectureview source- CPU architecture (e.g., “x86_64”, “arm64”)
stringhwConfigview sourceintegercpuLogicalCoresview sourceintegercpuPhysicalCoresview sourcestringcpuBrandview sourcenumbertotalRAMview source- Total physical system RAM in MBs.
stringsysInfoHashview sourcestringmacAddrHashview sourcebooleanisHeadlessview source- Is this a headless build which only simulates and doesnt offer interactive IO?
booleanhasSyncChecksumsview source- Whether the engine was built with sync-check support (i.e. Spring.GetPrevFrameSyncChecksum() returns a meaningful value).
Script (table)
Members
Script.GetWatchUnit (function) view source
Query whether any callins are registered for a unitDefID.Script.GetWatchUnit(UnitDefID) -> booleanParameters
Returns
booleanwatched- Watch status.
Script.GetWatchFeature (function) view source
Query whether any callins are registered for a featureDefID.Script.GetWatchFeature(FeatureDefID) -> booleanParameters
Returns
booleanwatchedtrueif callins are registered, otherwisefalse.
Script.GetWatchWeapon (function) view source
Query whether any callins are registered for a weaponDefID.
Same as calling:
lua
Script.GetWatchExplosion(weaponDefID) or Script.GetWatchProjectile(weaponDefID) or Script.GetWatchAllowTarget(weaponDefID)
Script.GetWatchWeapon(WeaponDefID) -> booleanParameters
Returns
booleanwatchedtrueif watch is enabled for any weaponDefID callins.
Script.GetWatchExplosion (function) view source
Query whether explosion callins are registered for a weaponDefID.Script.GetWatchExplosion(WeaponDefID) -> booleanParameters
Returns
booleanwatchedtrueif callins are registered, otherwisefalse.
Script.GetWatchProjectile (function) view source
Query whether projectile callins are registered for a weaponDefID.Script.GetWatchProjectile(WeaponDefID) -> booleanParameters
Returns
booleanwatchedtrueif callins are registered, otherwisefalse.
Script.GetWatchAllowTarget (function) view source
Query whether weapon targeting callins are registered for a weaponDefID.See Script.SetWatchAllowTarget
Script.GetWatchAllowTarget(WeaponDefID) -> booleanParameters
Returns
booleanwatchedtrueif callins are registered, otherwisefalse.
Script.SetWatchUnit (function) view source
Register or deregister unitDefID for expensive callins.See Script.GetWatchUnit, Callins:UnitFeatureCollision, Callins:UnitUnitCollision, Callins:UnitMoveFailed
Script.SetWatchUnit(UnitDefID, boolean) -> nilParameters
Script.SetWatchFeature (function) view source
Register or deregister featureDefID for expensive callins.See Script.GetWatchFeature, Callins:UnitFeatureCollision
Script.SetWatchFeature(FeatureDefID, boolean) -> nilParameters
FeatureDefIDfeatureDefIDbooleanwatch- Whether to register or deregister.
Script.SetWatchWeapon (function) view source
Register or deregister weaponDefID for all expensive callins.
Equivalent to calling:
lua
Script.SetWatchExplosion(weaponDefID)
Script.SetWatchProjectile(weaponDefID)
Script.SetWatchAllowTarget(weaponDefID)
Generally it’s better to use those methods to avoid registering uneeded callins.
See Script.GetWatchWeapon, Script.SetWatchExplosion, Script.SetWatchProjectile, Script.SetWatchAllowTarget
Script.SetWatchWeapon(WeaponDefID, boolean) -> nilParameters
WeaponDefIDweaponDefIDbooleanwatch- Whether to register or deregister.
Script.SetWatchExplosion (function) view source
Register or deregister weaponDefID for explosion callins.See Script.GetWatchExplosion, Callins:Explosion
Script.SetWatchExplosion(WeaponDefID, boolean) -> nilParameters
WeaponDefIDweaponDefIDbooleanwatch- Whether to register or deregister.
Script.SetWatchProjectile (function) view source
Register or deregister weaponDefID for expensive projectile callins.See Script.GetWatchProjectile, Callins:ProjectileCreated, Callins:ProjectileDestroyed
Script.SetWatchProjectile(WeaponDefID, boolean) -> nilParameters
WeaponDefIDweaponDefID- weaponDefID for weapons or -1 to watch for debris.
booleanwatch- Whether to register or deregister.
Script.SetWatchAllowTarget (function) view source
Register or deregister weaponDefID for weapon targeting callins.See Script.GetWatchAllowTarget, SyncedCallins:AllowWeaponTargetCheck, SyncedCallins:AllowWeaponTarget, SyncedCallins:AllowWeaponInterceptTarget
Script.SetWatchAllowTarget(WeaponDefID, boolean) -> nilParameters
WeaponDefIDweaponDefIDbooleanwatch- Whether to register or deregister.
Script.IsEngineMinVersion (function) view source
Script.IsEngineMinVersion(integer, integer?, integer?) -> booleanParameters
integerminMajorVerinteger?minMinorVer- (Default:
0) integer?minCommits- (Default:
0)
Returns
booleansatisfiesMintrueif the engine version is greater or equal to the specified version, otherwisefalse.
Script.PermitHelperAIs (function) view source
Script.PermitHelperAIs(boolean) -> nilParameters
booleanpermit
Script.Kill (function) view source
Script.Kill(string?) -> nilParameters
string?killMessage- Kill message.
Script.GetName (function) view source
Script.GetName() -> stringReturns
stringname
Script.GetSynced (function) view source
Script.GetSynced() -> booleanReturns
booleansynced
Script.GetFullCtrl (function) view source
Script.GetFullCtrl() -> booleanReturns
booleanfullCtrl
Script.GetFullRead (function) view source
Script.GetFullRead() -> booleanReturns
booleanfullRead
Script.GetCtrlTeam (function) view source
Script.GetCtrlTeam() -> TeamIDReturns
Script.GetReadTeam (function) view source
Script.GetReadTeam() -> TeamIDReturns
Script.GetReadAllyTeam (function) view source
Script.GetReadAllyTeam() -> AllyTeamIDReturns
Script.GetSelectTeam (function) view source
Script.GetSelectTeam() -> TeamIDReturns
Script.GetGlobal (function) view source
Script.GetGlobal() -> integer?Returns
integer?global
Script.GetRegistry (function) view source
Script.GetRegistry() -> integer?Returns
integer?registry
Script.DelayByFrames (function) view source
Script.DelayByFrames(integer, fun(...)) -> nilParameters
integerframeDelayfun(...)func
Script.UpdateCallIn (function) view source
Script.UpdateCallIn(string) -> nilParameters
stringname
Returns
Fields
VFS (table) view source
Unified IO for archive and filesystem
The Virtual File System is a unified layer to access (read-only) the different archives used at runtime. So you can access map, game & config files via the same interface.
Overview
Although Spring can access the filesystem directly (via os module) it is
more common that you would want to access files included with your game or
Spring. Trouble is, most of these files are compressed into archives
(.sdz/.sd7) so random access would generally be a difficult procedure.
Fortunately, the Spring Lua system automatically provides access to mod and
base files via the VFS module.
As an additional caveat, synced Lua cannot use the os and io modules,
so using VFS is mandatory there to have any file access at all.
The VFS module doesn’t simply open archives though. What it does is map your game files, game dependencies and Spring content onto a virtual file tree. All archives start from the ‘roots’ of the tree and share the same virtual space, meaning that if two or more archives contain the same resource file name the resources overlap and only one of the files will be retrieved. Overlapping directories on the other hand are merged so the resulting virtual directory contains the contents of both. Here is an example of how this works:
Archive 1 (games/mygame.sd7)
textures
└── texture1.png
models
└── model1.mdl
Archive 2 (base/springcontent.sdz)
textures
├── texture1.png
├── texture2.png
└── texture3.png
VFS
textures
├── texture1.png
├── texture2.png
└── texture3.png
models
└── model1.mdl
This raises the question: If both archives have a texture1.png then which
texture1.png is retreived via the VFS? The answer depends on the order the
archives are loaded and the VFS mode (more on modes below). Generally
however, each archive loaded overrides any archives loaded before it. The
standard order of loading (from first to last) is:
- The automatic dependencies
springcontent.sdzandmaphelper.sdz. - Dependencies listed in your
modinfo.lua(ormodinfo.tdf), in the order listed. Note that they are loaded fully and recursively, i.e. all the deeper dependencies of the 1st base-level dependency are loaded before the 2nd base-level dependency. This breaks the usual “loaded later overrides loaded earlier” priority if a dependency comes from multiple places, since only the first time an archive is loaded counts. - Your mod archive.
Loose files (not within any archive) in the engine dir are also visible
as if under the VFS root if loading under the VFS.RAW mode, though you
can also use full FS path (i.e. C:/…/Spring/foo/bar.txt is visible
both as that and as just foo/bar.txt). Note that VFS.RAW is only
accessible to unsynced Lua, all synced states are limited to loaded archives.
Paths
Spring’s VFS is lowercase only. Also it is strongly recommended to
use linux style path separators, e.g. “foo/bar.txt” and not “foobar.txt”.
Engine read files
The engine access a few files directly, most of them are lua files which
access other files themselves. Here the list of files that must exist in the
VFS (some of them don’t have to be in the game/map archive cause there are
fallback solutions in springcontent.sdz & maphelper.sdz):
./- anims/
cursornormal.bmp/png
- gamedata/
defs.luaexplosions.luaexplosion_alias.luaicontypes.luamessages.luamodrules.luaresources.luaresources_map.luasidedata.luasounds.lua
luagaia/main.luadraw.lua
luarules/main.luadraw.lua
luaui/main.lua
shaders/?
luaai.luamapinfo.luamapoptions.luamodinfo.luamodoptions.luavalidmaps.lua
- anims/
Members
VFS.Include (function) view source
Loads and runs lua code from a file in the VFS.
The path is relative to the main Spring directory, e.g.
lua
VFS.Include(‘LuaUI/includes/filename.lua’, nil, vfsmode)
The environment arg sets the global environment (see generic lua refs). In
almost all cases, this should be left nil to preserve the current env.
If the provided, any non-local variables and functions defined in
filename.lua are then accessable via env. Vise-versa, any variables
defined in env prior to passing to VFS.Include are available to code in the
included file. Code running in filename.lua will see the contents of env in
place of the normal global environment.
VFS.Include(string, table?, string?) -> anyParameters
stringfilename- Path to file, lowercase only. Use linux style path separators, e.g.
“foo/bar.txt”. table?environment- (Default: the current function environment) The global environment for the included file.
string?mode- VFS modes are single char strings and can be concatenated; doing specifies an order of preference for the mode (i.e. location) from which to include files.
Returns
anymodule- The return value of the included file.
VFS.LoadFile (function) view source
Load raw text data from the VFS.
Returns file contents as a string. Unlike VFS.Include the file will not be
executed. This lets you pre-process the code. Use loadstring afterwards.
VFS.LoadFile(string, string?) -> string?Parameters
stringfilename- Path to file, lowercase only. Use linux style path separators, e.g.
“foo/bar.txt”. string?mode- VFS modes are single char strings and can be concatenated; doing specifies an order of preference for the mode (i.e. location) from which to include files.
Returns
string?data- The contents of the file.
VFS.FileExists (function) view source
Check if file exists in VFS.
Example usage:
lua
if VFS.FileExists(“mapconfig/custom_lava_config.lua”, VFS.MAP) then
…
end
VFS.FileExists(string, string?) -> booleanParameters
stringfilename- Path to file, lowercase only. Use linux style path separators, e.g.
“foo/bar.txt”. string?mode- VFS modes are single char strings and can be concatenated; doing specifies an order of preference for the mode (i.e. location) from which to include files.
Returns
booleanexiststrueif the file exists, otherwisefalse.
VFS.DirList (function) view source
List files in a directory.
Example usage:
lua
local luaFiles = VFS.DirList(‘units/’, ‘*.lua’, nil, true)
VFS.DirList(string, string?, string?, boolean?) -> string[]Parameters
stringdirectory- Path to directory, lowercase only. Use linux style path separators, e.g.
“foo/bar/". string?pattern- (Default:
"*") string?mode- VFS modes are single char strings and can be concatenated; doing specifies an order of preference for the mode (i.e. location) from which to include files.
boolean?recursive- (Default:
false)
Returns
string[]filenames
VFS.SubDirs (function) view source
List sub-directories in a directory.
Example usage:
lua
local files = VFS.SubDirs(‘sounds/voice/’ .. language, ‘*’)
for _, file in ipairs(files) do
# …
end
VFS.SubDirs(string, string?, string?, boolean?) -> string[]Parameters
stringdirectory- Path to directory, lowercase only. Use linux style path separators, e.g.
“foo/bar/". string?pattern- (Default:
"*") string?mode- VFS modes are single char strings and can be concatenated; doing specifies an order of preference for the mode (i.e. location) from which to include files.
boolean?recursive- (Default:
false)
Returns
string[]dirnames
VFS.GetFileAbsolutePath (function) view source
VFS.GetFileAbsolutePath(string, string?) -> string?Parameters
stringfilename- Path to file, lowercase only. Use linux style path separators, e.g.
“foo/bar.txt”. string?mode- VFS modes are single char strings and can be concatenated; doing specifies an order of preference for the mode (i.e. location) from which to include files.
Returns
string?absolutePath
VFS.GetArchiveContainingFile (function) view source
VFS.GetArchiveContainingFile(string, string?) -> string?Parameters
stringfilename- Path to file, lowercase only. Use linux style path separators, e.g.
“foo/bar.txt”. string?mode- VFS modes are single char strings and can be concatenated; doing specifies an order of preference for the mode (i.e. location) from which to include files.
Returns
string?archiveName
VFS.UseArchive (function) view source
Temporarily load an archive from the VFS and run the given function, which can make usage of the files in the archive.VFS.UseArchive(string, fun(...)) -> any ...Parameters
stringarchiveNamefun(...)func
Returns
any ...Results- of the given function
VFS.CompressFolder (function) view source
Compresses the specified folder.VFS.CompressFolder(string, string?, string?, boolean?, string?) -> nilParameters
stringfolderPathstring?archiveType- (Default:
“zip”) The compression type (can currently be only“zip”). string?compressedFilePath- (Default:
folderPath .. “.sdz”) boolean?includeFolder- (Default:
false) Whether the archive should have the specified folder as root. string?mode
VFS.ZlibCompress (function) view source
VFS.ZlibCompress(string) -> string?Parameters
stringuncompressed- Data to compress.
Returns
string?compressed- Compressed data, or
nilon error.
VFS.ZlibDecompress (function) view source
VFS.ZlibDecompress(string) -> string?Parameters
stringcompressed- Data to decompress.
Returns
string?uncompressed- Uncompressed data, or
nilon error.
VFS.CalculateHash (function) view source
Calculates hash of a given string.
- MD5 gets base64 encoded.
- SHA512 gets hex encoded.
VFS.CalculateHash(string, HashType) -> string?Parameters
Returns
string?hash
VFS.VerifyEd25519 (function) view source
Verifies an Ed25519 signature.
All arguments are binary strings. The signature must be 64 bytes and the public key must be 32 bytes.
VFS.VerifyEd25519(string, string, string) -> booleanParameters
Returns
booleanvalid
VFS.PackU8 (function) view source
Convert unsigned 8-bit integer(s) to binary string.VFS.PackU8([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackU8 (function overload 1) view source
Convert unsigned 8-bit integer(s) to binary string.VFS.PackU8(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackU16 (function) view source
Convert unsigned 16-bit integer(s) to binary string.VFS.PackU16([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackU16 (function overload 1) view source
Convert unsigned 16-bit integer(s) to binary string.VFS.PackU16(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackU32 (function) view source
Convert unsigned 32-bit integer(s) to binary string.VFS.PackU32([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackU32 (function overload 1) view source
Convert unsigned 32-bit integer(s) to binary string.VFS.PackU32(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackS8 (function) view source
Convert signed 8-bit integer(s) to binary string.VFS.PackS8([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackS8 (function overload 1) view source
Convert signed 8-bit integer(s) to binary string.VFS.PackS8(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackS16 (function) view source
Convert signed 16-bit integer(s) to binary string.VFS.PackS16([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackS16 (function overload 1) view source
Convert signed 16-bit integer(s) to binary string.VFS.PackS16(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackS32 (function) view source
Convert signed 32-bit integer(s) to binary string.VFS.PackS32([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackS32 (function overload 1) view source
Convert signed 32-bit integer(s) to binary string.VFS.PackS32(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackF32 (function) view source
Convert signed 32-bit float(s) to binary string.VFS.PackF32([number, ]*) -> string?Parameters
number...- Numbers to pack.
Returns
VFS.PackF32 (function overload 1) view source
Convert signed 32-bit float(s) to binary string.VFS.PackF32(number[]) -> string?Parameters
number[]numbers- Numbers to pack.
Returns
VFS.UnpackU8 (function) view source
Convert a binary string to an unsigned 8-bit integer.VFS.UnpackU8(string, integer?) -> integerParameters
Returns
VFS.UnpackU16 (function) view source
Convert a binary string to an unsigned 16-bit integer.VFS.UnpackU16(string, integer?) -> integerParameters
Returns
VFS.UnpackU32 (function) view source
Convert a binary string to an unsigned 32-bit integer.VFS.UnpackU32(string, integer?) -> integerParameters
Returns
VFS.UnpackS8 (function) view source
Convert a binary string to a signed 8-bit integer.VFS.UnpackS8(string, integer?) -> integerParameters
Returns
VFS.UnpackS16 (function) view source
Convert a binary string to a signed 16-bit integer.VFS.UnpackS16(string, integer?) -> integerParameters
Returns
VFS.UnpackS32 (function) view source
Convert a binary string to a signed 32-bit integer.VFS.UnpackS32(string, integer?) -> integerParameters
Returns
VFS.UnpackF32 (function) view source
Convert a binary string to a signed 32-bit float.VFS.UnpackF32(string, integer?) -> integerParameters
Returns
VFS.GetMaps (function) view source
VFS.GetMaps() -> string[]Returns
string[]mapNames
VFS.GetGames (function) view source
VFS.GetGames() -> string[]Returns
string[]gameNames
VFS.GetAllArchives (function) view source
VFS.GetAllArchives() -> string[]Returns
string[]archiveNames
VFS.HasArchive (function) view source
VFS.HasArchive() -> booleanReturns
booleanhasArchive
VFS.GetLoadedArchives (function) view source
VFS.GetLoadedArchives() -> string[]Returns
string[]archiveNames
VFS.GetArchivePath (function) view source
VFS.GetArchivePath(string) -> string?Parameters
stringarchiveName
Returns
string?archivePath
VFS.GetArchiveInfo (function) view source
VFS.GetArchiveInfo(string) -> ArchiveInfo?Parameters
stringarchiveName
Returns
VFS.GetArchiveDependencies (function) view source
VFS.GetArchiveDependencies(string) -> string[]Parameters
stringarchiveName
Returns
string[]archiveNames
VFS.GetArchiveReplaces (function) view source
VFS.GetArchiveReplaces(string) -> string[]Parameters
stringarchiveName
Returns
string[]archiveNames
VFS.GetArchiveChecksum (function) view source
VFS.GetArchiveChecksum(string) -> string, stringParameters
stringarchiveName
Returns
stringsingleArchiveChecksumstringcompleteArchiveChecksum
VFS.GetNameFromRapidTag (function) view source
VFS.GetNameFromRapidTag(string) -> stringParameters
stringrapidTag
Returns
stringarchiveName
VFS.GetAvailableAIs (function) view source
Get a list of all Spring AIs.
The optional gameName and mapName parameters can be used to include game/map specific LuaAIs in the list.
VFS.GetAvailableAIs(string?, string?) -> AIInfo[]Parameters
string?gameArchiveNamestring?mapArichiveName
Returns
VFS.DownloadArchive (function) view source
Queue an archive download through pr-downloader.VFS.DownloadArchive(string, string) -> nilParameters
VFS.AbortDownload (function) view source
Abort a queued or active archive download.VFS.AbortDownload(integer) -> booleanParameters
integerid- Download queue identifier.
Returns
booleanremoved- Whether a matching queued or active download was removed.
VFS.ScanAllDirs (function) view source
Rescan all data directories for newly added archives.VFS.ScanAllDirs() -> nilFields
"r"RAWview source- Only select uncompressed files.
"M"GAMEview source"m"MAPview source"b"BASEview source"e"MENUview source"Mmeb"ZIPview source- Only select compressed files (
.sdz,.sd7). "rMmeb"RAW_FIRSTview source- Try uncompressed files first, then compressed.
"Mmebr"ZIP_FIRSTview source- Try compressed files first, then uncompressed.
"M"MODview source- Older spelling for VFS.GAME
"r"RAW_ONLYview source"Mmeb"ZIP_ONLYview source
tracy (table)
Members
tracy.LuaTracyPlotConfig (function) view source
Configure custom appearance for a Tracy plot for use in debugging or profilingtracy.LuaTracyPlotConfig(string, ("Number"|"Percentage"|"Memory")?, boolean?, boolean?, integer?) -> nilParameters
stringplotName- name of the plot to customize
("Number"|"Percentage"|"Memory")?plotFormatType- (Default:
“Number”) boolean?stepwise- (Default:
true) stepwise chart boolean?fill- (Default:
false) whether to fill color integer?color- (Default:
0xFFFFFF) uint32 number as BGR color
tracy.LuaTracyPlot (function) view source
Update a Tracy plot with a valuetracy.LuaTracyPlot(string, number) -> nilParameters
tracy.ZoneBegin (function)
tracy.ZoneBegin(string) -> nilParameters
stringname
tracy.ZoneBeginN (function)
tracy.ZoneBeginN(string) -> nilParameters
stringname
tracy.ZoneBeginS (function)
tracy.ZoneBeginS(string) -> nilParameters
stringname
tracy.ZoneBeginNS (function)
tracy.ZoneBeginNS(string) -> nilParameters
stringname
tracy.ZoneEnd (function)
tracy.ZoneEnd() -> niltracy.ZoneText (function)
tracy.ZoneText(string) -> nilParameters
stringtext
tracy.ZoneName (function)
tracy.ZoneName(string) -> nilParameters
stringname
tracy.Message (function)
tracy.Message(string) -> nilParameters
stringtext
Command (class) view source
Fields
integeridnumber[]?paramsCommandOptions?options
CollisionVolumeData (class) view source
Parameters related to a collision volume.Fields
("ellipsoid"|"cylinder"|"box"|"sphere")type- type
numberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumberboundingRadiusbooleandefaultToSpherebooleandefaultToFootPrintbooleandefaultToPieceTree
ArchiveInfo (class) view source
Fields
stringnamestringshortnamestringversionstringmutatorstringgamestringshortgamestringdescriptionstringmapfileModTypemodtype
CreateCommand (class) view source
Used when assigning multiple commands at once.Fields
(CMD|integer)[1]- Command ID.
CreateCommandParams?[2]- Parameters for the given command.
CreateCommandOptions?[3]- Command options.
integer?[4]- Timeout.
xz (class) view source
Fields
ResourceCost (class) view source
Fields
ProjectileTargetType (enum) view source
102featureview source- ASCII number for the character
f 112projectileview source- ASCII number for the character
p 117unitview source- ASCII number for the character
u
VertexData (class) view source
Fields
xyz?vertxyz?v- Short for
vert. float3?normfloat3?n- Short for
norm. float2?texcoordfloat2?t- Short for
texcoord. float4?colorfloat4?c- Short for
color.
SideSpec (class) view source
Side specFields
stringsideNameReturned when getting arrays of side specifications.
Lowercase side name.
stringcaseName- Original case side name.
stringstartUnit
CreateRBOData (class) view source
Fields
UnitState (class) view source
Fields
integerfirestateintegermovestateboolean?repeatboolean?cloakboolean?activeboolean?trajectoryboolean?autolandnumber?autorepairlevelboolean?loopbackattack
CameraVectors (class) view source
Fields
xyzforwardxyzupxyzrightxyztopFrustumPlanexyzbotFrustumPlanexyzlftFrustumPlanexyzrgtFrustumPlane
Configuration (class) view source
Contains data about a configuration, only name and type are guaranteedFields
stringnamestringtypestringdescriptionstringdefaultValuestringminimumValuestringmaximumValuestringsafemodeValuestringdeclarationFilestringdeclarationLinebooleanreadOnly
CallAsTeamOptions (class) view source
Fields
VBOAttributeDef (class) view source
Fields
integer?idstring?nameThe location in the vertex shader layout e.g.: layout (location = 0) in vec2 aPos. optional attrib, specifies location in the vertex shader. If not specified the implementation will increment the counter starting from 0. There can be maximum 16 attributes (so id of 15 is max).
(Default:
attr#where#isid)The name for this VBO, only used for debugging.
integer?sizeGL?typeDefaults to to 4 for VBO. The number of floats that constitute 1 element in this buffer. e.g. for the previous layout (location = 0) in vec2 aPos, it would be size = 2.
(Default: GL.FLOAT) The datatype of this element.
Accepts the following:
boolean?normalized(Defaults:
false)It’s possible to submit normals without normalizing them first, normalized will make sure data is normalized.
MapRenderingParams (class) view source
Map rendering paramsFields
rgba?splatTexMultsrgba?splatTexScalesboolean?voidWaterboolean?voidGroundboolean?splatDetailNormalDiffuseAlpha
KeyModifiers (class) view source
Key Modifier ParamsFields
booleanalt- Alt key pressed
booleanctrl- Ctrl key pressed
booleanmeta- Meta/GUI key pressed
booleanshift- Shift key pressed
RmlUi.EventParametersProxy (class) view source
Keyboard and mouse input data associated with an event.Fields
RmlUi.EventParametersProxy.MouseButtonbuttonintegermouse_xintegermouse_yRmlUi.EventParametersProxy.TrueFalsescroll_lock_keyRmlUi.EventParametersProxy.TrueFalsemeta_keyRmlUi.EventParametersProxy.TrueFalsectrl_keyRmlUi.EventParametersProxy.TrueFalseshift_keyRmlUi.EventParametersProxy.TrueFalsecaps_lock_keyRmlUi.EventParametersProxy.TrueFalsealt_key
CommandOptions (class) view source
Full command options object for reading from a Command.
Note that this has extra fields internal and coded that are not supported
when creating a command from Lua.
Fields
(CommandOptionBit|integer)coded- Bitmask of command options.
booleanalt- Alt key pressed.
booleanctrl- Ctrl key pressed.
booleanshift- Shift key pressed.
booleanright- Right mouse key pressed.
booleanmeta- Meta key (space) pressed.
booleaninternal
ShaderParams (class) view source
Fields
string?vertex- The “Vertex” or vertex-shader is your GLSL-Code as string, its written in a C-Dialect. This shader is busy deforming the geometry of a unit but it can not create new polygons. Use it for waves, wobbling surfaces etc.
string?tcs- The “TCS” or Tesselation Control Shader controls how much tessellation a particular patch gets; it also defines the size of a patch, thus allowing it to augment data. It can also filter vertex data taken from the vertex shader. The main purpose of the TCS is to feed the tessellation levels to the Tessellation primitive generator stage, as well as to feed patch data (as its output values) to the Tessellation Evaluation Shader stage.
string?tes- The “TES” or Tesselation Evaluation Shader takes the abstract patch generated by the tessellation primitive generation stage, as well as the actual vertex data for the entire patch, and generates a particular vertex from it. Each TES invocation generates a single vertex. It can also take per-patch data provided by the Tessellation Control Shader.
string?geometry- The “Geometry” or Geometry-shader can create new vertices and vertice-stripes from points.
string?fragmentThe “Fragment” or Fragment-shader (sometimes called pixel-Shader) is post processing the already rendered picture (for example drawing stars on the sky).
Remember textures are not always 2 dimensional pictures. They can contain information about the depth, or the third value marks areas and the strength at which these are processed.
UniformParam<number>?uniformUniformParam<integer>?uniformIntUniformParam<number>?uniformFloatUniformParam<number>?uniformMatrixinteger?geoInputType- inType
integer?geoOutputType- outType
integer?geoOutputVerts- maxVerts
string?definitions- string of shader #defines"
SoundDeviceSpec (class) view source
Contains data about a sound device.Fields
stringname
AIInfo (class) view source
Fields
ControlPoint (class) view source
NURBS control point.Fields
losAccess (class) view source
Parameters for los access
If one condition is fulfilled all beneath it are too (e.g. if an unit is in
LOS it can read params with inradar=true even if the param has
inlos=false) All GameRulesParam are public, TeamRulesParams can just be
private,allied and/or public You can read RulesParams from any Lua
environments! With those losAccess policies you can limit their access.
All GameRulesParam are public, TeamRulesParams can just be private,allied and/or public
You can read RulesParams from any Lua environments! With those losAccess policies you can limit their access.
Fields
boolean?private- only readable by the ally (default)
boolean?allied- readable by ally + ingame allied
boolean?inlos- readable if the unit is in LOS
boolean?inradar- readable if the unit is in AirLOS
boolean?public- readable by all
GroundMoveType (class) view source
Inherits GenericMoveType
Fields
boolean?atGoalboolean?atEndOfPathboolean?pushResistantinteger?minScriptChangeHeadingnumber?turnRatenumber?turnAccelnumber?accRatenumber?decRatenumber?myGravitynumber?maxReverseDistnumber?minReverseAnglenumber?maxReverseSpeednumber?sqSkidSpeedMult
LosMask (enum) view source
1INLOSview source- the unit is currently in the los of the allyteam
2INRADARview source- the unit is currently in radar from the allyteam
4PREVLOSview source- the unit has previously been in los from the allyteam
8CONTRADARview source- the unit has continuously been in radar since it was last inlos by the allyteam
CommandDescription (class) view source
Contains data about a command.Fields
(CMD|integer)?idCMDTYPE?typestring?namestring?actionstring?tooltipstring?texturestring?cursorboolean?queueingboolean?hiddenboolean?disabledboolean?showUniqueboolean?onlyTexturestring[]?params
StrafeAirMoveType (class) view source
Inherits GenericMoveType
Fields
boolean?collideboolean?useSmoothMeshboolean?loopbackAttackinteger?maneuverBlockTimenumber?wantedHeightnumber?turnRadiusnumber?accRatenumber?decRatenumber?maxAcc- Synonym for
accRate. number?maxDec- Synonym for
decRate. number?maxBanknumber?maxPitchnumber?maxAileronnumber?maxElevatornumber?maxRuddernumber?attackSafetyDistancenumber?myGravity
FBODescription (class) view source
Fields
string?depthstring?stencilstring?color0string?color1string?color2string?color3string?color4string?color5string?color6string?color7string?color8string?color9string?color10string?color11string?color12string?color13string?color14string?color15(integer|GL)[]?drawbuffers- e.g.
{ GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT3_EXT, ..} (integer|GL)?readbuffer- e.g.
GL_COLOR_ATTACHMENT0_EXT
Texture (class) view source
Fields
GL?targetinteger?formatGL?min_filterGL?mag_filterGL?wrap_sGL?wrap_tGL?wrap_rnumber?compareFuncnumber?lodBiasnumber?aniso
AtmosphereParams (class) view source
Fields
number?fogStartnumber?fogEndrgba?sunColorrgba?skyColorrgba?cloudColorxyzw?skyAxisAngle- rotation axis and angle in radians of skybox orientation
FeatureSupport (class) view source
Fields
booleanNegativeGetUnitCurrentCommand- Whether Spring.GetUnitCurrentCommand allows negative indices to look from the end
booleanhasExitOnlyYardmaps- Whether yardmaps accept ’e’ (exit only) and ‘u’ (unbuildable, walkable)
integerrmlUiApiVersion- Version of Recoil’s rmlUI API
booleannoAutoShowMetal- Whether the engine switches to the metal view when selecting a “build metal extractor” command (yes if false)
integermaxPiecesPerModel- How many pieces supported for 3d models?
numbergunshipCruiseAltitudeMultiplier- For gunships, the cruiseAltitude from the unit def is multiplied by this much
booleannoRefundForConstructionDecay- Whether there is no refund for construction decay (100% metal back if false)
booleannoRefundForFactoryCancel- Whether there is no refund for factory cancel (100% metal back if false)
booleannoOffsetForFeatureID- Whether featureID from various interfaces (targetID for Reclaim commands, ownerID from SpringGetGroundDecalOwner, etc) needs to be offset by Game.maxUnits
booleannoHandicapForReclaim- Whether handicap is applied to income from reclaim
booleangroupAddDoesntSelect- Whether ‘group add’ also selects the group (does both if false)
booleandeadTeamsKeepUnitLimit- Whether engine redistributes dead team unitlimit to allies (false) or keeps it as-is (true)
booleanreliableLuaMapShaders- Whether forward-only Lua map shaders activate without a deferred draw and Spring.SetMapShader program swaps refresh cached uniform locations
booleannanoParticleUpdateCallin- Whether LuaUI receives batched
NanoParticleUpdatelifecycle events booleannanoParticlesGL4- Whether the engine has the standalone shader-based nano particle effect (the
NanoParticles*springsettings) booleanmodelVertexColor- Whether glTF
COLOR_0is loaded into the models VBO (color, attribute 15; opaque white when absent) integerliveConfigChanges- Version of the set of springsettings that apply without a restart, bumped when more are added (1: those listed in the 2026.09 changelog)
KeyBinding (class) view source
Contains data about a keybindingFields
Matrix4x4 (class) view source
Fields
number[1]- Element at [1,1]
number[2]- Element at [1,2]
number[3]- Element at [1,3]
number[4]- Element at [1,4]
number[5]- Element at [2,1]
number[6]- Element at [2,2]
number[7]- Element at [2,3]
number[8]- Element at [2,4]
number[9]- Element at [3,1]
number[10]- Element at [3,2]
number[11]- Element at [3,3]
number[12]- Element at [3,4]
number[13]- Element at [4,1]
number[14]- Element at [4,2]
number[15]- Element at [4,3]
number[16]- Element at [4,4]
WaterParams (class) view source
Water paramsFields
rgb?absorbrgb?baseColorrgb?minColorrgb?surfaceColorrgb?diffuseColorrgb?specularColorrgb?planeColorstring?texture- file
string?foamTexture- file
string?normalTexture- file
number?damagenumber?repeatXnumber?repeatYnumber?surfaceAlphanumber?ambientFactornumber?diffuseFactornumber?specularFactornumber?specularPowernumber?fresnelMinnumber?fresnelMaxnumber?fresnelPowernumber?reflectionDistortionnumber?blurBasenumber?blurExponentnumber?perlinStartFreqnumber?perlinLacunaritynumber?perlinAmplitudenumber?windSpeednumber?waveOffsetFactornumber?waveLengthnumber?waveFoamDistortionnumber?waveFoamIntensitynumber?causticsResolutionnumber?causticsStrengthinteger?numTilesboolean?shoreWavesboolean?forceRenderingboolean?hasWaterPlane
HoverAirMoveType (class) view source
Inherits GenericMoveType
Fields
boolean?collideboolean?dontLandboolean?airStrafeboolean?useSmoothMeshboolean?bankingAllowednumber?wantedHeightnumber?accRatenumber?decRatenumber?turnRatenumber?altitudeRatenumber?currentBanknumber?currentPitchnumber?maxDrift
TeamStats (class) view source
Fields
integertimeintegerframenumbermetalUsednumbermetalProducednumbermetalExcessnumbermetalReceivednumbermetalSentnumberenergyUsednumberenergyProducednumberenergyExcessnumberenergyReceivednumberenergySentnumberdamageDealtnumberdamageReceivedintegerunitsProducedintegerunitsDiedintegerunitsReceivedintegerunitsSentintegerunitsCapturedintegerunitsOutCaptured
WeaponDamages (class) view source
Parameters for damageFields
integerparalyzeDamageTimenumberimpulseFactornumberimpulseBoostnumbercraterMultnumbercraterBoostnumberdynDamageExpnumberdynDamageMinnumberdynDamageRangenumberdynDamageInverted- Set to
trueif a non-zero value is passed,falseis zero is passed. numbercraterAreaOfEffectnumberdamageAreaOfEffectnumberedgeEffectivenessnumberexplosionSpeed
ExplosionParams (class) view source
Parameters for explosion.
Please note the explosion defaults to 1 damage regardless of what it’s defined in the weaponDef. The weapondefID is only used for visuals and for passing into callins like UnitDamaged.
Fields
WeaponDefID?weaponDefUnitID?ownerUnitID?hitUnitFeatureID?hitFeaturenumber?craterAreaOfEffectnumber?damageAreaOfEffectnumber?edgeEffectivenessnumber?explosionSpeednumber?gfxModboolean?impactOnlyboolean?ignoreOwnerboolean?damageGround
GenericMoveType (class) view source
Fields
number?maxSpeednumber?maxWantedSpeednumber?maneuverLeashnumber?waterlineboolean?useWantedSpeed[0]- Use wanted speed for individual orders.
boolean?useWantedSpeed[1]- Use wanted speed for formation orders.
UnitDefDimensions (class) view source
Fields
numberheightnumberradiusnumbermidxnumberminxnumbermaxxnumbermidynumberminynumbermaxynumbermidznumberminznumbermaxz
WeaponState (class) view source
Parameter for weapon statesFields
integer?reloadStateinteger?reloadFrame- Alias for
reloadState. number?reloadTimeinteger?reaimTimenumber?accuracynumber?sprayAnglenumber?range- If you change the range of a weapon with dynamic damage make sure you use
SetUnitWeaponDamagesto change dynDamageRange as well. number?projectileSpeedinteger?burstnumber?burstRateinteger?projectilesinteger?salvoLeftinteger?nextSalvonumber?aimReady- Set to
trueif a non-zero value is passed,falseis zero is passed. integer?forceAiminteger?avoidFlagsinteger?collisionFlagsnumber?ttl- How many seconds the projectile should live
UniformParam (class) view source
Inherits { [string]: (T|T[]) }
A table of uniform name to value.
The Uniforms are the values you send along with the shader-program. To use
them in the shader-program declare them like this: uniform float frame;
Specify a Lua array to initialize GLSL arrays.
The engine will automatically fill in an appropriately named uniform for team colour if it is declared;
glsl
uniform vec4 teamColor;
LightParams (class) view source
Parameters for lightingFields
{ px: number, py: number, pz: number }position{ dx: number, dy: number, dz: number }direction{ blue: number, green: number, red: number }ambientColor{ blue: number, green: number, red: number }diffuseColor{ blue: number, green: number, red: number }specularColor{ ambientWeight: number, diffuseWeight: number, specularWeight: number }intensityWeight{ ambientBlueDecay: number, ambientGreenDecay: number, ambientRedDecay: number }ambientDecayRate- Per-frame decay of
ambientColor(spread over TTL frames). { diffuseBlueDecay: number, diffuseGreenDecay: number, diffuseRedDecay: number }diffuseDecayRate- Per-frame decay of
diffuseColor(spread over TTL frames). { specularBlueDecay: number, specularGreenDecay: number, specularRedDecay: number }specularDecayRate- Per-frame decay of
specularColor(spread over TTL frames). { ambientDecayType: number, diffuseDecayType: number, specularDecayType: number }decayFunctionType- If value is
0.0then the*DecayRatevalues will be interpreted as linear, otherwise exponential. numberradiusnumberfovnumberttlnumberprioritybooleanignoreLOS
TextureInfo (class) view source
Fields
Roster (class) view source
Contains data about a playerFields
stringnamePlayerIDplayerIDTeamIDteamIDAllyTeamIDallyTeamIDbooleanspectatornumbercpuUsage- CPU usage. To find the progress, use: cpuUsage&0x1 if it’s PC or BO, cpuUsage& 0xFE to get path res, (cpuUsage»8)*1000 for the progress
numberpingTime- if -1, the player is pathfinding
Material (class) view source
Fields
numbershininess(rgb|rgba)ambidiff(rgb|rgba)ambient(rgb|rgba)diffuse(rgb|rgba)specular(rgb|rgba)emission
ActiveUniform (class) view source
Fields
stringnamestringtype- String name of
GL_*constant. integerlength- The character length of
name. integersizeGLlocation
SaveImageOptions (class) view source
Fields
boolean?alpha- (Default:
false) boolean?yflip- (Default:
true) boolean?grayscale16bit- (Default:
false) GL?readbuffer- (Default: current read buffer)
BuildOrderSpec (class) view source
Fields
SetUnitHealthAmounts (class) view source
Fields
number?health- Set the unit’s health.
number?capture- Set the unit’s capture progress.
number?paralyze- Set the unit’s paralyze damage.
number?build- Set the unit’s build progress.
Plane (class) view source
Fields
numbernormalVecXnumbernormalVecYnumbernormalVecZnumberd
PieceInfo (class) view source
Fields
stringnamestringparentstring[]children- names
booleanempty(number,number,number)min- (x,y,z)
(number,number,number)max- (x,y,z)
(number,number,number)offset- (x,y,z)
ProjectileParams (class) view source
Fields
xyz?posxyz?speedxyz?spreadxyz?errorxyz?endUnitID?ownerTeamID?teamnumber?ttlnumber?gravitynumber?trackingnumber?maxRangenumber?startAlphanumber?endAlphastring?modelstring?cegTag
Aliases
- StorageName
("metalStorage"|"energyStorage"|"ms"|"es")- ProjectileID
integer- ObjectID
(UnitID|FeatureID)- ResourceUsage
table<ResourceName,number>- RmlUi.ElementStyleProxyview source
{ [string]: string }- DecalID
integer- float4
xyzw { [1] = number, [2] = number, [3] = number, [4] = number, }- PlayerID
integer- GenericMoveTypeNumberKeyview source
("maxSpeed"|"maxWantedSpeed"|"maneuverLeash"|"waterline")- CameraMode
(0|1|2|3|4|5|6)- ModTypeview source
(0|1|3|4)- Headingview source
integer- Attachmentview source
("depth"|"stencil"|"color0"|"color1"|"color2"|"color3"|"color4"|"color5"|"color6"|"color7"|"color8"|"color9"|"color10"|"color11"|"color12"|"color13"|"color14"|"color15")- CommandOptionNameview source
("right"|"alt"|"ctrl"|"shift"|"meta")- UnitID
integer- CreateCommandParamsview source
(number[]|number)- FacingIntegerview source
(0|1|2|3)- CameraName
("ta"|"spring"|"rot"|"ov"|"free"|"fps"|"dummy")- TeamID
integer- RmlUi.EventParametersProxy.TrueFalseview source
(0|1)- CreateCommandOptionsview source
(CommandOptionName[]|table<CommandOptionName,boolean>|CommandOptionBit|integer)- DrawFlagview source
(0|1|2|4|8|16|32|128)- RmlUi.ElementAttributesProxyview source
{ [string]: (boolean|string|number) }- UnitDefID
integer- WeaponDefID
integer- HashTypeview source
(0|1)- RmlUi.SelectOptionsProxyNodeview source
{ element: RmlUi.Element, value: string }- DrawMaskview source
integer- float2
xy { [1] = number, [2] = number, }- AllyTeamID
integer- RmlUi.EventIDview source
(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|integer)- RmlUi.StyleProxyview source
{ [string]: string }- RmlUi.SelectOptionsProxyview source
RmlUi.SelectOptionsProxyNode[]- MatrixNameview source
("view"|"projection"|"viewprojection"|"viewinverse"|"projectioninverse"|"viewprojectioninverse"|"billboard"|"shadow"|"camera"|"camprj"|"caminv"|"camprjinv")- LogLevelview source
(integer|"debug"|"info"|"notice"|"warning"|"deprecated"|"error"|"fatal")- RmlUi.MouseButtonview source
(0|1|2)- ResourceName
("metal"|"energy"|"m"|"e")- LosTableview source
table<("los"|"radar"|"prevLos"|"contRadar"),boolean>- RmlUi.EventParametersProxy.MouseButtonview source
(0|1|2)- GenericMoveTypeBooleanKeyview source
("useWantedSpeed[0]"|"useWantedSpeed[1]")- UniformArrayTypeview source
(1|2|3)- DamageWeaponDefIDview source
(WeaponDefID|-1|-2|-3|-4|-5|-6|-7)- FeatureDefID
integer- RmlUi.ElementChildNodesProxyview source
RmlUi.Element[]- BuildOrderBlockedStatusview source
(0|1|2|3)- FeatureID
integer- CommandOptionBitview source
(4|8|16|32|64|128)- SoundChannelview source
("general"|"battle"|"sfx"|"unitreply"|"voice"|"userinterface"|"ui"|0|1|2|3)- Facingview source
(0|1|2|3|"s"|"e"|"n"|"w"|"south"|"east"|"north"|"west")- float3
xyz { [1] = number, [2] = number, [3] = number, }- GroupID
integer- TargetTypeview source
(0|1|2|3)