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.CallAsTeam (function)
Calls a function from given team’s PoV. In particular this makes callouts obey that team’s visibility rules.
[source]
Spring.CallAsTeam(integer, fun(...), [any, ]*) -> any ...
Parameters
Returns
any ...
The- return values of the function.
Spring.CallAsTeam (function overload 1)
[source]Spring.CallAsTeam(CallAsTeamOptions, fun(...), [any, ]*) -> any ...
Parameters
CallAsTeamOptions
options- 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)
Prints values in the spring chat console. Useful for debugging.
Hint: the default print() writes to STDOUT.
[source]
Spring.Echo(any, [any, ]*) -> nil
Parameters
Returns
Spring.Log (function)
Logs a message to the logfile/console.
[source]
Spring.Log(string, (LogLevel|LOG)?, [string, ]*) -> nil
Parameters
string
section- Sets an arbitrary section. Level filtering can be applied per-section
(LogLevel|LOG)?
logLevel- (Default:
“notice”
) string
...- messages
Spring.Ping (function)
Send a ping request to the server
[source]
Spring.Ping(number) -> nil
Parameters
number
pingTag
Returns
Spring.SendCommands (function)
[source]Spring.SendCommands(string[]) -> nil
Parameters
string[]
commands
Spring.SendCommands (function overload 1)
[source]Spring.SendCommands(string, [string, ]*) -> nil
Parameters
Returns
Spring.SendPublicChat (function)
Sends a chat message to everyone (players and spectators).
[source]
Spring.SendPublicChat(string) -> nil
Parameters
string
message
Returns
Spring.SendAllyChat (function)
Sends a chat message to the sender’s ally team (if a spectator, to other spectators).
[source]
Spring.SendAllyChat(string) -> nil
Parameters
string
message
Returns
Spring.SendSpectatorChat (function)
Sends a chat message to spectators. Works even if you’re a player.
[source]
Spring.SendSpectatorChat(string) -> nil
Parameters
string
message
Returns
Spring.SendPrivateChat (function)
Sends a private chat message to a specific player ID.
[source]
Spring.SendPrivateChat(string, integer) -> nil
Parameters
Returns
Spring.SendMessage (function)
[source]Spring.SendMessage(string) -> nil
Parameters
string
message
Returns
Spring.SendMessageToSpectators (function)
[source]Spring.SendMessageToSpectators(string) -> nil
Parameters
string
message"
<PLAYER#>
"where
#
is a player ID.This will be replaced with the player’s name. e.g.
lua Spring.SendMessage("
did something") – “ProRusher did something”
Returns
Spring.SendMessageToPlayer (function)
[source]Spring.SendMessageToPlayer(integer, string) -> nil
Parameters
Returns
Spring.SendMessageToTeam (function)
[source]Spring.SendMessageToTeam(integer, string) -> nil
Parameters
Returns
Spring.SendMessageToAllyTeam (function)
[source]Spring.SendMessageToAllyTeam(integer, string) -> nil
Parameters
Returns
Spring.LoadSoundDef (function)
Loads a SoundDefs file, the format is the same as in gamedata/sounds.lua
.
[source]
Spring.LoadSoundDef(string) -> boolean
Parameters
string
soundfile
Returns
boolean
success
Spring.PlaySoundFile (function)
[source]Spring.PlaySoundFile(string, number?, number?, number?, number?, number?, number?, number?, SoundChannel?) -> boolean
Parameters
string
soundfilenumber?
volume- (Default: 1.0)
number?
posxnumber?
posynumber?
posznumber?
speedxnumber?
speedynumber?
speedzSoundChannel?
channel- (Default:
0|“general”
)
Returns
boolean
playSound
Spring.PlaySoundStream (function)
Allows to play an Ogg Vorbis (.OGG) and mp3 compressed sound file.
[source]
Multiple sound streams may be played at once.
Spring.PlaySoundStream(string, number?, boolean?) -> boolean
Parameters
Returns
boolean
success
Spring.StopSoundStream (function)
Terminates any SoundStream currently running.
[source]
Spring.StopSoundStream() -> nil
Returns
Spring.PauseSoundStream (function)
Pause any SoundStream currently running.
[source]
Spring.PauseSoundStream() -> nil
Returns
Spring.SetSoundStreamVolume (function)
Set volume for SoundStream
[source]
Spring.SetSoundStreamVolume(number) -> nil
Parameters
number
volume
Returns
Spring.SetSoundEffectParams (function)
[source]Spring.SetSoundEffectParams() -> nil
Spring.AddWorldIcon (function)
[source]Spring.AddWorldIcon(integer, number, number, number) -> nil
Parameters
Returns
Spring.AddWorldText (function)
[source]Spring.AddWorldText(string, number, number, number) -> nil
Parameters
Returns
Spring.AddWorldUnit (function)
[source]Spring.AddWorldUnit(integer, number, number, number, integer, FacingInteger) -> nil
Parameters
Returns
Spring.DrawUnitCommands (function)
[source]Spring.DrawUnitCommands(integer) -> nil
Parameters
integer
unitID
Spring.DrawUnitCommands (function overload 1)
[source]Spring.DrawUnitCommands(integer[], false?) -> nil
Parameters
integer[]
unitIDs- Unit ids.
false?
tableOrArray- Set to
true
if the unit IDs should be read from the keys ofunitIDs
.
Spring.DrawUnitCommands (function overload 2)
[source]Spring.DrawUnitCommands(table<integer,any>, true) -> nil
Parameters
table<integer,any>
unitIDs- Table with unit IDs as keys.
true
tableOrArray- Set to
false
if the unit IDs should be read from the values ofunitIDs
.
Returns
Spring.SetCameraTarget (function)
For Spring Engine XZ represents horizontal, from north west corner of map and Y vertical, from water level and rising.
[source]
Spring.SetCameraTarget(number, number, number, number?) -> nil
Parameters
Returns
Spring.SetCameraOffset (function)
[source]Spring.SetCameraOffset(number?, number?, number?, number?, number?, number?) -> nil
Parameters
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)
Set camera state.
[source]
Spring.SetCameraState(CameraState, number?, number?, number?) -> boolean
Parameters
CameraState
cameraState- The fields must be consistent with the name/mode and current/new camera mode.
number?
transitionTime- (Default:
0
) in nanoseconds number?
transitionTimeFactornumber?
transitionTimeExponent
Returns
boolean
settrue
when applied without errors, otherwisefalse
.
Spring.RunDollyCamera (function)
Runs Dolly Camera
[source]
Spring.RunDollyCamera(number) -> nil
Parameters
number
runtime- Runtime in milliseconds.
Returns
Spring.PauseDollyCamera (function)
Pause Dolly Camera
[source]
Spring.PauseDollyCamera(number) -> nil
Parameters
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)
Resume Dolly Camera
[source]
Spring.ResumeDollyCamera() -> nil
Returns
Spring.SetDollyCameraPosition (function)
Sets Dolly Camera Position
[source]
Spring.SetDollyCameraPosition(number, number, number) -> nil
Parameters
Returns
Spring.SetDollyCameraCurve (function)
Sets Dolly Camera movement Curve
[source]
Spring.SetDollyCameraCurve(number, ControlPoint[], table) -> nil
Parameters
number
degreeControlPoint[]
cpoints- NURBS control point positions.
table
knots
Returns
Spring.SetDollyCameraMode (function)
Sets Dolly Camera movement mode
[source]
Spring.SetDollyCameraMode((1|2)) -> nil
Parameters
(1|2)
mode1
static position,2
nurbs curve
Returns
Spring.SetDollyCameraRelativeMode (function)
Sets Dolly Camera movement curve to world relative or look target relative
[source]
Spring.SetDollyCameraRelativeMode(number) -> nil
Parameters
number
relativeMode1
world,2
look target
Returns
Spring.SetDollyCameraLookCurve (function)
Sets Dolly Camera Look Curve
[source]
Spring.SetDollyCameraLookCurve(number, ControlPoint[], table) -> nil
Parameters
number
degreeControlPoint[]
cpoints- NURBS control point positions.
table
knots
Returns
Spring.SetDollyCameraLookPosition (function)
Sets Dolly Camera Look Position
[source]
Spring.SetDollyCameraLookPosition(number, number, number) -> nil
Parameters
Returns
Spring.SetDollyCameraLookUnit (function)
Sets target unit for Dolly Camera to look towards
[source]
Spring.SetDollyCameraLookUnit(integer) -> nil
Parameters
integer
unitID- The unit to look at.
Returns
Spring.SelectUnit (function)
Selects a single unit
[source]
Spring.SelectUnit(integer?, boolean?) -> nil
Parameters
Returns
Spring.DeselectUnit (function)
[source]Spring.DeselectUnit(integer) -> nil
Parameters
integer
unitID
Returns
Spring.DeselectUnitArray (function)
Deselects multiple units.
[source]
Spring.DeselectUnitArray(integer[]) -> nil
Parameters
integer[]
unitIDs- Table with unit IDs as values.
Returns
Spring.DeselectUnitMap (function)
Deselects multiple units.
[source]
Spring.DeselectUnitMap(table<integer,any>) -> nil
Parameters
table<integer,any>
unitMap- Table with unit IDs as keys.
Returns
Spring.SelectUnitArray (function)
Selects multiple units, or appends to selection. Accepts a table with unitIDs as values
[source]
Spring.SelectUnitArray(integer[], boolean?) -> nil
Parameters
integer[]
unitIDs- Table with unit IDs as values.
boolean?
append- (Default:
false
) append to current selection
Returns
Spring.SelectUnitMap (function)
Selects multiple units, or appends to selection. Accepts a table with unitIDs as keys
[source]
Spring.SelectUnitMap(table<integer,any>, boolean?) -> nil
Parameters
table<integer,any>
unitMap- Table with unit IDs as keys.
boolean?
append- (Default:
false
) append to current selection
Returns
Spring.AddMapLight (function)
[source]
requires MaxDynamicMapLights > 0
Spring.AddMapLight(LightParams) -> integer
Parameters
Returns
integer
lightHandle
Spring.AddModelLight (function)
[source]
requires MaxDynamicMapLights > 0
Spring.AddModelLight(LightParams) -> number
Parameters
Returns
number
lightHandle
Spring.UpdateMapLight (function)
[source]Spring.UpdateMapLight(number, LightParams) -> boolean
Parameters
Returns
boolean
success
Spring.UpdateModelLight (function)
[source]Spring.UpdateModelLight(number, LightParams) -> boolean
Parameters
Returns
boolean
success
Spring.AddLightTrackingTarget (function)
[source]Spring.AddLightTrackingTarget() -> nil
Spring.SetMapLightTrackingState (function)
Set a map-illuminating light to start/stop tracking the position of a moving object (unit or projectile)
[source]
Spring.SetMapLightTrackingState(number, integer, boolean, boolean) -> boolean
Parameters
number
lightHandleinteger
unitOrProjectileIDboolean
enableTrackingboolean
unitOrProjectile
Returns
boolean
success
Spring.SetModelLightTrackingState (function)
Set a model-illuminating light to start/stop tracking the position of a moving object (unit or projectile)
[source]
Spring.SetModelLightTrackingState(number, integer, boolean, boolean) -> boolean
Parameters
number
lightHandleinteger
unitOrProjectileIDboolean
enableTrackingboolean
unitOrProjectile
Returns
boolean
success
Spring.SetMapShader (function)
[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) -> nil
Parameters
integer
standardShaderIDinteger
deferredShaderID
Returns
Spring.SetMapSquareTexture (function)
[source]Spring.SetMapSquareTexture(number, number, string) -> boolean
Parameters
number
texSqrXnumber
texSqrYstring
luaTexName
Returns
boolean
success
Spring.SetMapShadingTexture (function)
[source]Spring.SetMapShadingTexture(string, string) -> boolean
Parameters
Returns
boolean
success
Spring.SetSkyBoxTexture (function)
[source]Spring.SetSkyBoxTexture(string) -> nil
Parameters
string
texName
Returns
Spring.SetUnitNoDraw (function)
[source]Spring.SetUnitNoDraw(integer, boolean) -> nil
Parameters
Returns
Spring.SetUnitEngineDrawMask (function)
[source]Spring.SetUnitEngineDrawMask(integer, number) -> nil
Parameters
Returns
Spring.SetUnitAlwaysUpdateMatrix (function)
[source]Spring.SetUnitAlwaysUpdateMatrix(integer, boolean) -> nil
Parameters
integer
unitIDboolean
alwaysUpdateMatrix
Returns
Spring.SetUnitNoMinimap (function)
[source]Spring.SetUnitNoMinimap(integer, boolean) -> nil
Parameters
integer
unitIDboolean
unitNoMinimap
Returns
Spring.SetMiniMapRotation (function)
[source]Spring.SetMiniMapRotation(number) -> nil
Parameters
number
rotation- amount in radians
Returns
Spring.SetUnitNoGroup (function)
[source]Spring.SetUnitNoGroup(integer, boolean) -> nil
Parameters
integer
unitIDboolean
unitNoGroup- Whether unit can be added to selection groups
Spring.SetUnitNoSelect (function)
[source]Spring.SetUnitNoSelect(integer, boolean) -> nil
Parameters
integer
unitIDboolean
unitNoSelect- whether unit can be selected or not
Returns
Spring.SetUnitLeaveTracks (function)
[source]Spring.SetUnitLeaveTracks(integer, boolean) -> nil
Parameters
integer
unitIDboolean
unitLeaveTracks- whether unit leaves tracks on movement
Returns
Spring.SetUnitSelectionVolumeData (function)
[source]Spring.SetUnitSelectionVolumeData(integer, integer, number, number, number, number, number, number, number, number, number) -> nil
Parameters
integer
unitIDinteger
featureIDnumber
scaleXnumber
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
vTypenumber
tTypenumber
Axis
Returns
Spring.SetFeatureNoDraw (function)
[source]Spring.SetFeatureNoDraw(integer, boolean) -> nil
Parameters
Returns
Spring.SetFeatureEngineDrawMask (function)
[source]Spring.SetFeatureEngineDrawMask(integer, number) -> nil
Parameters
integer
featureIDnumber
engineDrawMask
Returns
Spring.SetFeatureAlwaysUpdateMatrix (function)
[source]Spring.SetFeatureAlwaysUpdateMatrix(integer, number) -> nil
Parameters
integer
featureIDnumber
alwaysUpdateMat
Returns
Spring.SetFeatureFade (function)
Control whether a feature will fade or not when zoomed out.
[source]
Spring.SetFeatureFade(integer, boolean) -> nil
Parameters
Returns
Spring.SetFeatureSelectionVolumeData (function)
[source]Spring.SetFeatureSelectionVolumeData(integer, number, number, number, number, number, number, number, number, number) -> nil
Parameters
integer
featureIDnumber
scaleXnumber
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
vTypenumber
tTypenumber
Axis
Returns
Spring.AddUnitIcon (function)
[source]Spring.AddUnitIcon(string, string, number?, number?, number?) -> boolean
Parameters
Returns
boolean
added
Spring.FreeUnitIcon (function)
[source]Spring.FreeUnitIcon(string) -> boolean?
Parameters
string
iconName
Returns
boolean?
freed
Spring.UnitIconSetDraw (function)
[source]
Use Spring.SetUnitIconDraw instead.
Deprecated
Spring.UnitIconSetDraw(integer, boolean) -> nil
Parameters
Returns
Spring.SetUnitIconDraw (function)
[source]Spring.SetUnitIconDraw(integer, boolean) -> nil
Parameters
Returns
Spring.SetUnitDefIcon (function)
[source]Spring.SetUnitDefIcon(integer, string) -> nil
Parameters
Returns
Spring.SetUnitDefImage (function)
[source]Spring.SetUnitDefImage(integer, string) -> nil
Parameters
Returns
Spring.ExtractModArchiveFile (function)
[source]Spring.ExtractModArchiveFile(string) -> boolean
Parameters
string
modfile
Returns
boolean
extracted
Spring.CreateDir (function)
[source]Spring.CreateDir(string) -> boolean?
Parameters
string
path
Returns
boolean?
dirCreated
Spring.SetActiveCommand (function)
[source]Spring.SetActiveCommand(string, string?) -> boolean?
Parameters
string
actionstring?
actionExtra
Returns
boolean?
commandSet
Spring.SetActiveCommand (function overload 1)
[source]Spring.SetActiveCommand(number, number?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> boolean?
Parameters
number
cmdIndexnumber?
button- (Default:
1
) boolean?
leftClickboolean?
rightClickboolean?
altboolean?
ctrlboolean?
metaboolean?
shift
Returns
boolean?
commandSet
Spring.LoadCmdColorsConfig (function)
[source]Spring.LoadCmdColorsConfig(string) -> nil
Parameters
string
config
Returns
Spring.LoadCtrlPanelConfig (function)
[source]Spring.LoadCtrlPanelConfig(string) -> nil
Parameters
string
config
Returns
Spring.ForceLayoutUpdate (function)
[source]Spring.ForceLayoutUpdate() -> nil
Returns
Spring.SetDrawSelectionInfo (function)
Disables the “Selected Units x” box in the GUI.
[source]
Spring.SetDrawSelectionInfo(boolean) -> nil
Parameters
boolean
enable
Returns
Spring.SetBoxSelectionByEngine (function)
[source]Spring.SetBoxSelectionByEngine(boolean) -> nil
Parameters
boolean
state
Returns
Spring.SetTeamColor (function)
[source]Spring.SetTeamColor(integer, number, number, number) -> nil
Parameters
Returns
Spring.AssignMouseCursor (function)
Changes/creates the cursor of a single CursorCmd.
[source]
Spring.AssignMouseCursor(string, string, boolean?, boolean?) -> boolean?
Parameters
string
cmdNamestring
iconFileName- not the full filename, instead it is like this: Wanted filename: Anims/cursorattack_0.bmp => iconFileName: cursorattack
boolean?
overwrite- (Default:
true
) boolean?
hotSpotTopLeft- (Default:
false
)
Returns
boolean?
assigned
Spring.ReplaceMouseCursor (function)
Mass replace all occurrences of the cursor in all CursorCmds.
[source]
Spring.ReplaceMouseCursor(string, string, boolean?) -> boolean?
Parameters
string
oldFileNamestring
newFileNameboolean?
hotSpotTopLeft- (Default:
false
)
Returns
boolean?
assigned
Spring.SetCustomCommandDrawData (function)
Register your custom cmd so it gets visible in the unit’s cmd queue
[source]
Spring.SetCustomCommandDrawData(integer, (string|integer)?, rgba?, boolean?) -> nil
Parameters
integer
cmdID(string|integer)?
cmdReference- The name or ID of an icon for command. Pass
nil
to clear draw data for command. rgba?
color- (Default: white)
boolean?
showArea- (Default:
false
)
Returns
Spring.WarpMouse (function)
[source]Spring.WarpMouse(number, number) -> nil
Parameters
Returns
Spring.SetMouseCursor (function)
[source]Spring.SetMouseCursor(string, number?) -> nil
Parameters
string
cursorNamenumber?
cursorScale- (Default:
1.0
)
Returns
Spring.SetLosViewColors (function)
[source]Spring.SetLosViewColors(rgb, rgb, rgb, rgb, rgb) -> nil
Parameters
Returns
Spring.SetNanoProjectileParams (function)
[source]Spring.SetNanoProjectileParams(number?, number?, number?, number?, number?, number?) -> nil
Parameters
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.SetConfigInt (function)
[source]Spring.SetConfigInt(string, integer, boolean?) -> nil
Parameters
string
nameinteger
valueboolean?
useOverlay- (Default:
false
) Iftrue
, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.SetConfigFloat (function)
[source]Spring.SetConfigFloat(string, number, boolean?) -> nil
Parameters
string
namenumber
valueboolean?
useOverlay- (Default:
false
) Iftrue
, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.SetConfigString (function)
[source]Spring.SetConfigString(string, string, boolean?) -> nil
Parameters
string
namestring
valueboolean?
useOverlay- (Default:
false
) Iftrue
, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.Quit (function)
Closes the application
[source]
Spring.Quit() -> nil
Returns
Spring.SetUnitGroup (function)
[source]Spring.SetUnitGroup(integer, integer) -> nil
Parameters
Returns
Spring.GiveOrder (function)
Give order to selected units.
[source]
Spring.GiveOrder((CMD|integer), CreateCommandParams, CreateCommandOptions?, integer?) -> boolean
Parameters
(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)
Give order to specific unit.
[source]
Spring.GiveOrderToUnit(integer, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> boolean
Parameters
integer
unitID(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)
[source]Spring.GiveOrderToUnit(integer, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> boolean
Parameters
integer
unitID(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
boolean
unitOrdered
Spring.GiveOrderToUnitMap (function)
Give order to multiple units, specified by table keys.
[source]
Spring.GiveOrderToUnitMap(table<integer,any>, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> boolean
Parameters
table<integer,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
boolean
orderGiven
Spring.GiveOrderToUnitMap (function overload 1)
Give order to multiple units, specified by table keys.
[source]
Spring.GiveOrderToUnitMap(table<integer,any>, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> integer
Parameters
table<integer,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
integer
unitsOrdered- The number of units ordered.
Spring.GiveOrderToUnitArray (function)
Give order to an array of units.
[source]
Spring.GiveOrderToUnitArray(integer[], (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> boolean
Parameters
integer[]
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
boolean
ordersGiventrue
if any orders were sent, otherwisefalse
.
Spring.GiveOrderToUnitArray (function overload 1)
[source]Spring.GiveOrderToUnitArray(integer[], (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> integer
Parameters
integer[]
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
integer
unitsOrdered- The number of units ordered.
Spring.GiveOrderArrayToUnit (function)
[source]Spring.GiveOrderArrayToUnit(integer, CreateCommand[]) -> boolean
Parameters
integer
unitID- Unit ID.
CreateCommand[]
commands
Returns
boolean
ordersGiventrue
if any orders were sent, otherwisefalse
.
Spring.GiveOrderArrayToUnit (function overload 1)
[source]Spring.GiveOrderArrayToUnit(integer, CreateCommand[]) -> boolean
Parameters
integer
unitIDCreateCommand[]
commands
Returns
boolean
ordersGiven
Spring.GiveOrderArrayToUnitMap (function)
[source]Spring.GiveOrderArrayToUnitMap(table<integer,any>, CreateCommand[]) -> boolean
Parameters
table<integer,any>
unitMap- A table with unit IDs as keys.
CreateCommand[]
commands
Returns
boolean
ordersGiventrue
if any orders were sent, otherwisefalse
.
Spring.GiveOrderArrayToUnitMap (function overload 1)
[source]Spring.GiveOrderArrayToUnitMap(table<integer,any>, CreateCommand[]) -> integer
Parameters
table<integer,any>
unitMap- A table with unit IDs as keys.
CreateCommand[]
commands
Returns
integer
unitsOrdered- The number of units ordered.
Spring.GiveOrderArrayToUnitArray (function)
[source]Spring.GiveOrderArrayToUnitArray(integer[], CreateCommand[], boolean?) -> boolean
Parameters
integer[]
unitIDs- Array of unit IDs.
CreateCommand[]
commandsboolean?
pairwise(Default:
false
) Whenfalse
, 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 firstlen(unitArray)
commands will be assigned, and vice-versa.
Returns
boolean
ordersGiventrue
if any orders were sent, otherwisefalse
.
Spring.GiveOrderArrayToUnitArray (function overload 1)
[source]Spring.GiveOrderArrayToUnitArray(integer[], CreateCommand[], boolean?) -> integer
Parameters
integer[]
unitIDs- Array of unit IDs.
CreateCommand[]
commandsboolean?
pairwise(Default:
false
) Whenfalse
, 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 firstlen(unitArray)
commands will be assigned, and vice-versa.
Returns
integer
unitsOrdered- The number of units ordered.
Spring.SetBuildSpacing (function)
[source]Spring.SetBuildSpacing(number) -> nil
Parameters
number
spacing
Returns
Spring.SetBuildFacing (function)
[source]Spring.SetBuildFacing(FacingInteger) -> nil
Parameters
Returns
Spring.SendLuaUIMsg (function)
[source]Spring.SendLuaUIMsg(string, string) -> nil
Parameters
Returns
Spring.SendLuaGaiaMsg (function)
[source]Spring.SendLuaGaiaMsg(string) -> nil
Parameters
string
message
Returns
Spring.SendLuaRulesMsg (function)
[source]Spring.SendLuaRulesMsg(string) -> nil
Parameters
string
message
Returns
Spring.SendLuaMenuMsg (function)
[source]Spring.SendLuaMenuMsg(string) -> nil
Parameters
string
msg
Spring.SetShareLevel (function)
[source]Spring.SetShareLevel(string, number) -> nil
Parameters
string
resource- metal | energy
number
shareLevel
Returns
Spring.ShareResources (function)
[source]Spring.ShareResources(integer, string) -> nil
Parameters
Returns
Spring.ShareResources (function overload 1)
[source]Spring.ShareResources(integer, string, number) -> nil
Parameters
Returns
Spring.SetLastMessagePosition (function)
[source]Spring.SetLastMessagePosition(number, number, number) -> nil
Parameters
Returns
Spring.MarkerAddPoint (function)
[source]Spring.MarkerAddPoint(number, number, number, string?, boolean?) -> nil
Parameters
Returns
Spring.MarkerAddLine (function)
[source]Spring.MarkerAddLine(number, number, number, number, number, number, boolean?, number?) -> nil
Parameters
Returns
Spring.MarkerErasePosition (function)
[source]
Issue an erase command for markers on the map.
Spring.MarkerErasePosition(number, number, number, nil, boolean?, number?, boolean?) -> nil
Parameters
number
xnumber
ynumber
znil
unused- This argument is ignored.
boolean?
localOnly- (Default:
false
) do not issue a network message, erase only for the current player number?
playerId- when not specified it uses the issuer playerId
boolean?
alwaysErase- (Default:
false
) erase any marker whenlocalOnly
and current player is spectating. Allows spectators to erase players markers locally
Returns
Spring.SetAtmosphere (function)
Set atmosphere parameters
[source]
Spring.SetAtmosphere(AtmosphereParams) -> nil
Parameters
Spring.SetSunDirection (function)
[source]Spring.SetSunDirection(number, number, number, number?) -> nil
Parameters
Returns
Spring.SetSunLighting (function)
Modify sun lighting parameters.
lua
Spring.SetSunLighting({groundAmbientColor = {1, 0.1, 1}, groundDiffuseColor = {1, 0.1, 1} })
[source]
Spring.SetSunLighting({ groundAmbientColor: rgb, groundDiffuseColor: rgb }) -> nil
Parameters
Spring.SetMapRenderingParams (function)
Allows to change map rendering params at runtime.
[source]
Spring.SetMapRenderingParams(MapRenderingParams) -> nil
Parameters
Returns
Spring.ForceTesselationUpdate (function)
[source]Spring.ForceTesselationUpdate(boolean?, boolean?) -> boolean
Parameters
Returns
boolean
updated
Spring.SendSkirmishAIMessage (function)
[source]Spring.SendSkirmishAIMessage(number, string) -> boolean?
Parameters
Returns
boolean?
ai_processed
Spring.SetLogSectionFilterLevel (function)
[source]Spring.SetLogSectionFilterLevel(string, (string|number)?) -> nil
Parameters
string
sectionName(string|number)?
logLevel
Returns
Spring.GarbageCollectCtrl (function)
[source]Spring.GarbageCollectCtrl(integer?, integer?, integer?, integer?, number?, number?, number?, number?) -> nil
Parameters
integer?
itersPerBatchinteger?
numStepsPerIterinteger?
minStepsPerIterinteger?
maxStepsPerIternumber?
minLoopRunTimenumber?
maxLoopRunTimenumber?
baseRunTimeMultnumber?
baseMemLoadMult
Returns
Spring.SetAutoShowMetal (function)
[source]Spring.SetAutoShowMetal(boolean) -> nil
Parameters
boolean
autoShow
Returns
Spring.SetDrawSky (function)
[source]Spring.SetDrawSky(boolean) -> nil
Parameters
boolean
drawSky
Returns
Spring.SetDrawWater (function)
[source]Spring.SetDrawWater(boolean) -> nil
Parameters
boolean
drawWater
Returns
Spring.SetDrawGround (function)
[source]Spring.SetDrawGround(boolean) -> nil
Parameters
boolean
drawGround
Returns
Spring.SetDrawGroundDeferred (function)
[source]Spring.SetDrawGroundDeferred(boolean, boolean?) -> nil
Parameters
boolean
drawGroundDeferredboolean?
drawGroundForward- allows disabling of the forward pass
Returns
Spring.SetDrawModelsDeferred (function)
[source]Spring.SetDrawModelsDeferred(boolean, boolean, boolean?, boolean?) -> nil
Parameters
boolean
drawUnitsDeferredboolean
drawFeaturesDeferredboolean?
drawUnitsForward- allows disabling of the respective forward passes
boolean?
drawFeaturesForward- allows disabling of the respective forward passes
Returns
Spring.SetVideoCapturingMode (function)
This doesn’t actually record the game in any way, it just regulates the framerate and interpolations.
[source]
Spring.SetVideoCapturingMode(boolean) -> nil
Parameters
boolean
allowCaptureMode
Returns
Spring.SetVideoCapturingTimeOffset (function)
[source]Spring.SetVideoCapturingTimeOffset(boolean) -> nil
Parameters
boolean
timeOffset
Returns
Spring.SetWaterParams (function)
Does not need cheating enabled.
Allows to change water params (mostly BumpWater
ones) at runtime. You may
want to set BumpWaterUseUniforms
in your springrc
to 1, then you don’t even
need to restart BumpWater
via /water 4
.
[source]
Spring.SetWaterParams(WaterParams) -> nil
Parameters
Returns
Spring.PreloadUnitDefModel (function)
[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(integer) -> nil
Parameters
integer
unitDefID
Returns
Spring.PreloadFeatureDefModel (function)
[source]Spring.PreloadFeatureDefModel(integer) -> nil
Parameters
integer
featureDefID
Returns
Spring.PreloadSoundItem (function)
[source]Spring.PreloadSoundItem(string) -> nil
Parameters
string
name
Returns
Spring.LoadModelTextures (function)
[source]Spring.LoadModelTextures(string) -> boolean?
Parameters
string
modelName
Returns
boolean?
success
Spring.CreateGroundDecal (function)
[source]Spring.CreateGroundDecal() -> number?
Returns
number?
decalID
Spring.DestroyGroundDecal (function)
[source]Spring.DestroyGroundDecal(integer) -> boolean
Parameters
integer
decalID
Returns
boolean
delSuccess
Spring.SetGroundDecalPosAndDims (function)
[source]Spring.SetGroundDecalPosAndDims(integer, number?, number?, number?, number?, number?) -> boolean
Parameters
integer
decalIDnumber?
midPosX- (Default: currMidPosX)
number?
midPosZ- (Default: currMidPosZ)
number?
sizeX- (Default: currSizeX)
number?
sizeZ- (Default: currSizeZ)
number?
projCubeHeight- (Default: calculateProjCubeHeight)
Returns
boolean
decalSet
Spring.SetGroundDecalQuadPosAndHeight (function)
[source]
Use for non-rectangular decals
Spring.SetGroundDecalQuadPosAndHeight(integer, xz?, xz?, xz?, xz?, number?) -> boolean
Parameters
integer
decalIDxz?
posTL- (Default: currPosTL)
xz?
posTR- (Default: currPosTR)
xz?
posBR- (Default: currPosBR)
xz?
posBL- (Default: currPosBL)
number?
projCubeHeight- (Default: calculateProjCubeHeight)
Returns
boolean
decalSet
Spring.SetGroundDecalRotation (function)
[source]Spring.SetGroundDecalRotation(integer, number?) -> boolean
Parameters
Returns
boolean
decalSet
Spring.SetGroundDecalTexture (function)
[source]Spring.SetGroundDecalTexture(integer, string, boolean?) -> boolean?
Parameters
integer
decalIDstring
textureName- The texture has to be on the atlas which seems to mean it’s defined as an explosion, unit tracks, or building plate decal on some unit already (no arbitrary textures)
boolean?
isMainTex- (Default:
true
) If false, it sets the normals/glow map
Returns
boolean?
decalSet
Spring.SetGroundDecalTextureParams (function)
[source]Spring.SetGroundDecalTextureParams(integer, number?, number?) -> boolean?
Parameters
integer
decalIDnumber?
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.SetGroundDecalTextureParams (function overload 1)
[source]Spring.SetGroundDecalTextureParams(integer) -> number?, number
Parameters
integer
decalID
Returns
number?
texWrapDistance- If non-zero, sets the mode to repeat the texture along the left-right direction of the decal every texWrapFactor elmos.
number
texTraveledDistance- 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.SetGroundDecalAlpha (function)
[source]Spring.SetGroundDecalAlpha(integer, number?, number?) -> boolean
Parameters
integer
decalIDnumber?
alpha- (Default: currAlpha) Between 0 and 1
number?
alphaFalloff- (Default: currAlphaFalloff) Between 0 and 1, per second
Returns
boolean
decalSet
Spring.SetGroundDecalNormal (function)
[source]
Sets projection cube normal to orient in 3D space. In case the normal (0,0,0) then normal is picked from the terrain
Spring.SetGroundDecalNormal(integer, number?, number?, number?) -> boolean
Parameters
Returns
boolean
decalSet
Spring.SetGroundDecalTint (function)
[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 tint
Spring.SetGroundDecalTint(integer, number?, number?, number?, number?) -> boolean
Parameters
integer
decalIDnumber?
tintColR- (Default: curTintColR)
number?
tintColG- (Default: curTintColG)
number?
tintColB- (Default: curTintColB)
number?
tintColA- (Default: curTintColA)
Returns
boolean
decalSet
Spring.SetGroundDecalMisc (function)
[source]
Sets varios secondary parameters of a decal
Spring.SetGroundDecalMisc(integer, number?, number?, number?, number?, number?) -> boolean
Parameters
integer
decalIDnumber?
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
boolean
decalSet
Spring.SetGroundDecalCreationFrame (function)
[source]
Use separate min and max for “gradient” style decals such as tank tracks
Spring.SetGroundDecalCreationFrame(integer, number?, number?) -> boolean
Parameters
integer
decalIDnumber?
creationFrameMin- (Default: currCreationFrameMin)
number?
creationFrameMax- (Default: currCreationFrameMax)
Returns
boolean
decalSet
Spring.SDLSetTextInputRect (function)
[source]Spring.SDLSetTextInputRect(number, number, number, number) -> nil
Parameters
Returns
Spring.SDLStartTextInput (function)
[source]Spring.SDLStartTextInput() -> nil
Returns
Spring.SDLStopTextInput (function)
[source]Spring.SDLStopTextInput() -> nil
Returns
Spring.SetWindowGeometry (function)
[source]Spring.SetWindowGeometry(number, number, number, number, number, boolean, boolean) -> nil
Parameters
number
displayIndexnumber
winRelPosXnumber
winRelPosYnumber
winSizeXnumber
winSizeYboolean
fullScreenboolean
borderless
Returns
Spring.SetWindowMinimized (function)
[source]Spring.SetWindowMinimized() -> boolean
Returns
boolean
minimized
Spring.SetWindowMaximized (function)
[source]Spring.SetWindowMaximized() -> boolean
Returns
boolean
maximized
Spring.Reload (function)
[source]Spring.Reload(string) -> nil
Parameters
string
startScript- the CONTENT of the script.txt spring should use to start.
Returns
Spring.Restart (function)
[source]
If this call returns, something went wrong
Spring.Restart(string, string) -> nil
Parameters
string
commandline_args- commandline arguments passed to spring executable.
string
startScript
Returns
Spring.Start (function)
Launches a new Spring instance without terminating the existing one.
[source]
If this call returns, something went wrong
Spring.Start(string, string) -> nil
Parameters
string
commandline_args- commandline arguments passed to spring executable.
string
startScript- the CONTENT of the script.txt spring should use to start (if empty, no start-script is added, you can still point spring to your custom script.txt when you add the file-path to commandline_args.
Returns
Spring.SetWMIcon (function)
Sets the icon for the process which is seen in the OS task-bar and other places (default: spring-logo).
[source]
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) -> nil
Parameters
string
iconFileName
Returns
Spring.SetWMCaption (function)
Set the window title for the process
[source]
Spring.SetWMCaption(string, string?) -> nil
Parameters
string
title- (Default:
“Spring <version>"
) string?
titleShort(Default:
“Spring <version>"
) displayed in the OS task-bar .Note
shortTitle is only ever possibly used under X11 (Linux & OS X), but not with QT (KDE) and never under Windows.
Returns
Spring.ClearWatchDogTimer (function)
[source]Spring.ClearWatchDogTimer(string?) -> nil
Parameters
string?
threadName- (Default: main)
Returns
Spring.SetClipboard (function)
[source]Spring.SetClipboard(string) -> nil
Parameters
string
text
Returns
Spring.Yield (function)
Relinquish control of the game loading thread and OpenGL context back to the UI (LuaIntro).
[source]
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() -> boolean
Returns
boolean
when- true caller should continue calling Spring.Yield during the widgets/gadgets load, when false it shouldn’t call it any longer.
Spring.SetAlly (function)
Changes the value of the (one-sided) alliance between: firstAllyTeamID -> secondAllyTeamID.
[source]
Spring.SetAlly(integer, integer, boolean) -> nil
Parameters
integer
firstAllyTeamIDinteger
secondAllyTeamIDboolean
ally
Returns
Spring.SetAllyTeamStartBox (function)
Changes the start box position of an allyTeam.
[source]
Spring.SetAllyTeamStartBox(integer, number, number, number, number) -> nil
Parameters
integer
allyTeamIDnumber
xMin- left start box boundary (elmos)
number
zMin- top start box boundary (elmos)
number
xMax- right start box boundary (elmos)
number
zMax- bottom start box boundary (elmos)
Returns
Spring.AssignPlayerToTeam (function)
Assigns a player to a team.
[source]
Spring.AssignPlayerToTeam(integer, integer) -> nil
Parameters
Returns
Spring.SetGlobalLos (function)
Changes access to global line of sight for a team and its allies.
[source]
Spring.SetGlobalLos(integer, boolean) -> nil
Parameters
integer
allyTeamIDboolean
globallos
Returns
Spring.KillTeam (function)
Will declare a team to be dead (no further orders can be assigned to such teams units).
[source]
Gaia team cannot be killed.
Spring.KillTeam(integer) -> nil
Parameters
integer
teamID
Returns
Spring.GameOver (function)
Declare game over.
[source]
Spring.GameOver(integer[]) -> integer
Parameters
integer[]
winningAllyTeamIDsA list of winning ally team IDs.
Pass multiple winners to declare a draw. Pass no arguments if undecided (e.g. when dropped from the host).
Returns
integer
Number- of accepted (valid) ally teams.
Spring.SetTidal (function)
Set tidal strength
[source]
Spring.SetTidal(number) -> nil
Parameters
number
strength
Returns
Spring.SetWind (function)
Set wind strength
[source]
Spring.SetWind(number, number) -> nil
Parameters
number
minStrengthnumber
maxStrength
Returns
Spring.AddTeamResource (function)
Adds metal or energy resources to the specified team.
[source]
Spring.AddTeamResource(integer, ResourceName, number) -> nil
Parameters
integer
teamIDResourceName
typenumber
amount
Returns
Spring.UseTeamResource (function)
Consumes metal or energy resources of the specified team.
[source]
Spring.UseTeamResource(integer, ResourceName, number) -> boolean
Parameters
integer
teamIDResourceName
type- Resource type.
number
amount- Amount of resource to use.
Returns
boolean
hadEnough
Spring.UseTeamResource (function overload 1)
Consumes metal and/or energy resources of the specified team.
[source]
Spring.UseTeamResource(integer, ResourceUsage) -> boolean
Parameters
integer
teamIDResourceUsage
amount
Returns
boolean
hadEnough
Spring.SetTeamResource (function)
[source]Spring.SetTeamResource(integer, (ResourceName|StorageName), number) -> nil
Parameters
integer
teamID(ResourceName|StorageName)
resourcenumber
amount
Returns
Spring.SetTeamShareLevel (function)
Changes the resource amount for a team beyond which resources aren’t stored but transferred to other allied teams if possible.
[source]
Spring.SetTeamShareLevel(integer, ResourceName, number) -> nil
Parameters
integer
teamIDResourceName
typenumber
amount
Returns
Spring.ShareTeamResource (function)
Transfers resources between two teams.
[source]
Spring.ShareTeamResource(integer, integer, ResourceName, number) -> nil
Parameters
integer
teamID_srcinteger
teamID_recvResourceName
typenumber
amount
Returns
Spring.SetGameRulesParam (function)
[source]Spring.SetGameRulesParam(string, (number|string)?, losAccess?) -> nil
Parameters
string
paramName(number|string)?
paramValue- numeric paramValues in quotes will be converted to number.
losAccess?
losAccess
Returns
Spring.SetTeamRulesParam (function)
[source]Spring.SetTeamRulesParam(integer, string, (number|string)?, losAccess?) -> nil
Parameters
integer
teamIDstring
paramName(number|string)?
paramValue- numeric paramValues in quotes will be converted to number.
losAccess?
losAccess
Returns
Spring.SetPlayerRulesParam (function)
[source]Spring.SetPlayerRulesParam(integer, string, (number|string)?, losAccess?) -> nil
Parameters
integer
playerIDstring
paramName(number|string)?
paramValue- numeric paramValues in quotes will be converted to number.
losAccess?
losAccess
Returns
Spring.SetUnitRulesParam (function)
[source]Spring.SetUnitRulesParam(integer, string, (number|string)?, losAccess?) -> nil
Parameters
integer
unitIDstring
paramName(number|string)?
paramValue- numeric paramValues in quotes will be converted to number.
losAccess?
losAccess
Returns
Spring.SetFeatureRulesParam (function)
[source]Spring.SetFeatureRulesParam(integer, string, (number|string)?, losAccess?) -> nil
Parameters
integer
featureIDstring
paramName(number|string)?
paramValue- numeric paramValues in quotes will be converted to number.
losAccess?
losAccess
Returns
Spring.CallCOBScript (function)
[source]Spring.CallCOBScript(integer, (integer|string)?, integer, [any, ]*) -> number ...
Parameters
integer
unitID(integer|string)?
funcName- Function ID or name.
integer
retArgs- Number of values to return.
any
...- Arguments
Returns
Spring.GetCOBScriptID (function)
[source]Spring.GetCOBScriptID(integer, string) -> integer?
Parameters
Returns
integer?
funcID
Spring.CreateUnit (function)
[source]Spring.CreateUnit((string|integer), number, number, number, Facing, integer, boolean?, boolean?, integer?, integer?) -> integer?
Parameters
(string|integer)
unitDef- UnitDef name or ID.
number
posXnumber
posYnumber
posZFacing
facinginteger
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. integer?
unitID- Request a specific unitID.
integer?
builderID
Returns
integer?
unitID- The ID of the created unit, or
nil
if the unit could not be created.
Spring.DestroyUnit (function)
[source]Spring.DestroyUnit(integer, boolean?, boolean?, integer?, boolean?) -> nil
Parameters
integer
unitIDboolean?
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! integer?
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)
[source]Spring.TransferUnit(integer, integer, boolean?) -> nil
Parameters
Returns
Spring.SetUnitCosts (function)
[source]Spring.SetUnitCosts(integer, table<number,number>) -> nil
Parameters
integer
unitIDtable<number,number>
where- keys and values are, respectively and in this order: buildTime=amount, metalCost=amount, energyCost=amount
Returns
Spring.SetUnitResourcing (function)
[source]Spring.SetUnitResourcing(integer, string, number) -> nil
Parameters
Returns
Spring.SetUnitResourcing (function overload 1)
[source]Spring.SetUnitResourcing(integer, table<string,number>) -> nil
Parameters
integer
unitIDtable<string,number>
res- keys are: “[u|c][u|m][m|e]” unconditional | conditional, use | make, metal | energy. Values are amounts
Returns
Spring.SetUnitStorage (function)
[source]Spring.SetUnitStorage(integer, string, number) -> nil
Parameters
Spring.SetUnitStorage (function overload 1)
[source]Spring.SetUnitStorage(integer, ResourceUsage) -> nil
Parameters
integer
unitIDResourceUsage
res- keys are: “[m|e]” metal | energy. Values are amounts
Spring.SetUnitTooltip (function)
[source]Spring.SetUnitTooltip(integer, string) -> nil
Parameters
Returns
Spring.SetUnitHealth (function)
[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(integer, (number|SetUnitHealthAmounts)) -> nil
Parameters
integer
unitID(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)
[source]Spring.SetUnitMaxHealth(integer, number) -> nil
Parameters
Returns
Spring.SetUnitStockpile (function)
[source]Spring.SetUnitStockpile(integer, number?, number?) -> nil
Parameters
integer
unitIDnumber?
stockpilenumber?
buildPercent
Returns
Spring.SetUnitUseWeapons (function)
[source]Spring.SetUnitUseWeapons(integer, number?, number?) -> nil
Parameters
integer
unitIDnumber?
forceUseWeaponsnumber?
allowUseWeapons
Returns
Spring.SetUnitWeaponState (function)
[source]Spring.SetUnitWeaponState(integer, number, WeaponState) -> nil
Parameters
integer
unitIDnumber
weaponNumWeaponState
states
Returns
Spring.SetUnitWeaponState (function overload 1)
[source]Spring.SetUnitWeaponState(integer, number, string, number) -> nil
Parameters
Returns
Spring.SetUnitWeaponDamages (function)
[source]Spring.SetUnitWeaponDamages(integer, (number|"selfDestruct"|"explode"), WeaponDamages) -> nil
Parameters
integer
unitID(number|"selfDestruct"|"explode")
weaponNumWeaponDamages
damages
Returns
Spring.SetUnitWeaponDamages (function overload 1)
[source]Spring.SetUnitWeaponDamages(integer, (number|"selfDestruct"|"explode"), string, number) -> nil
Parameters
Returns
Spring.SetUnitMaxRange (function)
[source]Spring.SetUnitMaxRange(integer, number) -> nil
Parameters
Returns
Spring.SetUnitExperience (function)
[source]Spring.SetUnitExperience(integer, number) -> nil
Parameters
integer
unitIDnumber
experience
Returns
Spring.AddUnitExperience (function)
[source]Spring.AddUnitExperience(integer, number) -> nil
Parameters
integer
unitIDnumber
deltaExperience- Can be negative to subtract, but the unit will never have negative total afterwards
Returns
Spring.SetUnitArmored (function)
[source]Spring.SetUnitArmored(integer, boolean?, number?) -> nil
Parameters
integer
unitIDboolean?
armorednumber?
armorMultiple
Returns
Spring.SetUnitLosMask (function)
[source]
The 3rd argument is either the bit-and combination of the following numbers:
LOS_INLOS = 1 LOS_INRADAR = 2 LOS_PREVLOS = 4 LOS_CONTRADAR = 8
or a table of the following form:
losTypes = { [los = boolean,] [radar = boolean,] [prevLos = boolean,] [contRadar = boolean] }
Spring.SetUnitLosMask(integer, number, (number|table)) -> nil
Parameters
Returns
Spring.SetUnitLosState (function)
[source]Spring.SetUnitLosState(integer, number, (number|table)) -> nil
Parameters
Returns
Spring.SetUnitCloak (function)
[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(integer, (boolean|number), (boolean|number)) -> nil
Parameters
Returns
Spring.SetUnitStealth (function)
[source]Spring.SetUnitStealth(integer, boolean) -> nil
Parameters
Returns
Spring.SetUnitSonarStealth (function)
[source]Spring.SetUnitSonarStealth(integer, boolean) -> nil
Parameters
integer
unitIDboolean
sonarStealth
Returns
Spring.SetUnitSeismicSignature (function)
[source]Spring.SetUnitSeismicSignature(integer, number) -> nil
Parameters
integer
unitIDnumber
seismicSignature
Returns
Spring.SetUnitLeavesGhost (function)
Set whether unit leaves static radar ghosts.
[source]
Spring.SetUnitLeavesGhost(boolean, boolean?) -> nil
Parameters
boolean
leavesGhostboolean?
leaveDeadGhost- (Default:
false
) leave a dead ghost behind if disabling and the unit had a live static ghost.
Spring.SetUnitAlwaysVisible (function)
[source]Spring.SetUnitAlwaysVisible(integer, boolean) -> nil
Parameters
integer
unitIDboolean
alwaysVisible
Returns
Spring.SetUnitUseAirLos (function)
[source]Spring.SetUnitUseAirLos(integer, boolean) -> nil
Parameters
Returns
Spring.SetUnitMetalExtraction (function)
[source]Spring.SetUnitMetalExtraction(integer, number, number?) -> nil
Parameters
integer
unitIDnumber
depth- corresponds to metal extraction rate
number?
range- similar to “extractsMetal” in unitDefs.
Returns
Spring.SetUnitHarvestStorage (function)
See also harvestStorage UnitDef tag.
[source]
Spring.SetUnitHarvestStorage(integer, number) -> nil
Parameters
Returns
Spring.SetUnitBuildParams (function)
[source]Spring.SetUnitBuildParams(integer, string, (number|boolean)) -> nil
Parameters
integer
unitIDstring
paramName- one of
buildRange
|buildDistance
|buildRange3D
(number|boolean)
value- boolean when
paramName
isbuildRange3D
, otherwise number.
Returns
Spring.SetUnitBuildSpeed (function)
[source]Spring.SetUnitBuildSpeed(integer, number, number?, number?, number?, number?) -> nil
Parameters
integer
builderIDnumber
buildSpeednumber?
repairSpeednumber?
reclaimSpeednumber?
captureSpeednumber?
terraformSpeed
Returns
Spring.SetUnitNanoPieces (function)
[source]
This saves a lot of engine calls, by replacing: function script.QueryNanoPiece() return currentpiece end Use it!
Spring.SetUnitNanoPieces(integer, table) -> nil
Parameters
Returns
Spring.SetUnitBlocking (function)
[source]Spring.SetUnitBlocking(integer, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> boolean
Parameters
integer
unitIDboolean?
isBlocking- If
true
add this unit to theGroundBlockingMap
, but only if it collides with solid objects (or is being set to collide with theisSolidObjectCollidable
argument). 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
boolean
isBlocking
Spring.SetUnitCrashing (function)
[source]Spring.SetUnitCrashing(integer, boolean) -> boolean
Parameters
Returns
boolean
success
Spring.SetUnitShieldState (function)
[source]Spring.SetUnitShieldState(integer, integer?, boolean?, number?) -> nil
Parameters
Returns
Spring.SetUnitShieldRechargeDelay (function)
[source]Spring.SetUnitShieldRechargeDelay(integer, integer?, number?) -> nil
Parameters
integer
unitIDinteger?
weaponID- (optional if the unit only has one shield)
number?
rechargeTime- (in seconds; emulates a regular hit if nil)
Returns
Spring.SetUnitFlanking (function)
[source]Spring.SetUnitFlanking(integer, string, number, number?, number?) -> nil
Parameters
integer
unitIDstring
type- “dir”|“minDamage”|“maxDamage”|“moveFactor”|“mode”
number
arg1- x|minDamage|maxDamage|moveFactor|mode
number?
y- only when type is “dir”
number?
z- only when type is “dir”
Returns
Spring.SetUnitPhysicalStateBit (function)
[source]Spring.SetUnitPhysicalStateBit(integer, ) -> nil
Parameters
Returns
Spring.GetUnitPhysicalState (function)
[source]Spring.GetUnitPhysicalState(integer) -> number
Parameters
integer
unitID
Returns
number
Unit- ’s PhysicalState bitmask
Spring.SetUnitNeutral (function)
[source]Spring.SetUnitNeutral(integer, boolean) -> boolean?
Parameters
Returns
boolean?
setNeutral
Spring.SetUnitTarget (function)
Defines a unit’s target.
[source]
Spring.SetUnitTarget(integer, integer?, boolean?, boolean?, number?) -> boolean
Parameters
integer
unitIDinteger?
enemyUnitID- when nil drops the units current target.
boolean?
dgun- (Default:
false
) boolean?
userTarget- (Default:
false
) number?
weaponNum- (Default:
-1
)
Returns
boolean
success
Spring.SetUnitTarget (function overload 1)
[source]Spring.SetUnitTarget(integer, number?, number?, number?, boolean?, boolean?, number?) -> boolean
Parameters
integer
unitIDnumber?
x- when nil or not passed it will drop target and ignore other parameters
number?
ynumber?
zboolean?
dgun- (Default:
false
) boolean?
userTarget- (Default:
false
) number?
weaponNum- (Default:
-1
)
Returns
boolean
success
Spring.SetUnitMidAndAimPos (function)
[source]Spring.SetUnitMidAndAimPos(integer, number, number, number, number, number, number, boolean?) -> boolean
Parameters
integer
unitIDnumber
mpX- new middle positionX of unit
number
mpY- new middle positionY of unit
number
mpZ- new middle positionZ of unit
number
apX- new positionX that enemies aim at on this unit
number
apY- new positionY that enemies aim at on this unit
number
apZ- 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
boolean
success
Spring.SetUnitRadiusAndHeight (function)
[source]Spring.SetUnitRadiusAndHeight(integer, number, number) -> boolean
Parameters
Returns
boolean
success
Spring.SetUnitBuildeeRadius (function)
[source]
Sets the unit’s radius for when targeted by build, repair, reclaim-type commands.
Spring.SetUnitBuildeeRadius(integer, number) -> nil
Parameters
Returns
Spring.SetUnitPieceParent (function)
Changes the pieces hierarchy of a unit by attaching a piece to a new parent.
[source]
Spring.SetUnitPieceParent(integer, number, number) -> nil
Parameters
integer
unitIDnumber
AlteredPiecenumber
ParentPiece
Returns
Spring.SetUnitPieceMatrix (function)
Sets the local (i.e. parent-relative) matrix of the given piece.
[source]
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(integer, number, number[]) -> nil
Parameters
Returns
Spring.SetUnitCollisionVolumeData (function)
[source]Spring.SetUnitCollisionVolumeData(integer, number, number, number, number, number, number, number, number, number) -> nil
Parameters
integer
unitIDnumber
scaleXnumber
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
vTypenumber
tTypenumber
Axis
Returns
nil
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.SetUnitPieceCollisionVolumeData (function)
[source]Spring.SetUnitPieceCollisionVolumeData(integer, number, boolean, number, number, number, number, number, number, number?, number?) -> nil
Parameters
integer
unitIDnumber
pieceIndexboolean
enablenumber
scaleXnumber
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber?
volumeTypenumber?
primaryAxis
Returns
Spring.SetUnitPieceVisible (function)
[source]Spring.SetUnitPieceVisible(integer, number, boolean) -> nil
Parameters
integer
unitIDnumber
pieceIndexboolean
visible
Returns
Spring.SetUnitSensorRadius (function)
[source]Spring.SetUnitSensorRadius(integer, ("los"|"airLos"|"radar"|"sonar"|"seismic"|"radarJammer"...), number) -> number?
Parameters
Returns
number?
New- radius, or
nil
if unit is invalid.
Spring.SetUnitPosErrorParams (function)
Sets a unit’s radar wobble
Controls how much a unit’s radar dot will wobble. Note that setting this above the allyTeam’s default wobble may result in the edgemost dot positions failing to register in ray traces, i.e. things like native “is under cursor” checks and some Lua interfaces.
[source]
Spring.SetUnitPosErrorParams(integer, number, number, number, number, number, number, number?) -> nil
Parameters
integer
unitIDnumber
posErrorVectorXnumber
posErrorVectorYnumber
posErrorVectorZnumber
posErrorDeltaXnumber
posErrorDeltaYnumber
posErrorDeltaZnumber?
nextPosErrorUpdate
Returns
Spring.SetUnitMoveGoal (function)
Used by default commands to get in build-, attackrange etc.
[source]
Spring.SetUnitMoveGoal(integer, number, number, number, number?, number?, boolean?) -> nil
Parameters
Returns
Spring.SetUnitLandGoal (function)
Used in conjunction with Spring.UnitAttach et al. to re-implement old airbase & fuel system in Lua.
[source]
Spring.SetUnitLandGoal(integer, number, number, number, number?) -> nil
Parameters
integer
unitIDnumber
goalXnumber
goalYnumber
goalZnumber?
goalRadius
Returns
Spring.ClearUnitGoal (function)
[source]Spring.ClearUnitGoal(integer) -> nil
Parameters
integer
unitID
Returns
Spring.SetUnitPhysics (function)
[source]Spring.SetUnitPhysics(integer, number, number, number, number, number, number, number, number, number, number, number, number) -> nil
Parameters
integer
unitIDnumber
posXnumber
posYnumber
posZnumber
velXnumber
velYnumber
velZnumber
rotXnumber
rotYnumber
rotZnumber
dragXnumber
dragYnumber
dragZ
Returns
Spring.SetUnitMass (function)
[source]Spring.SetUnitMass(integer, number) -> nil
Parameters
Returns
Spring.SetUnitPosition (function)
Set unit position (2D)
[source]
Sets a unit’s position in 2D, at terrain height.
Spring.SetUnitPosition(integer, number, number, boolean?) -> nil
Parameters
integer
unitIDnumber
xnumber
zboolean?
floating- (Default:
false
) If true, over water the position is on surface. If false, on seafloor.
Returns
Spring.SetUnitPosition (function overload 1)
Set unit position (3D)
[source]
Sets a unit’s position in 3D, at an arbitrary height.
Spring.SetUnitPosition(integer, number, number, number) -> nil
Parameters
Returns
Spring.SetUnitRotation (function)
[source]
Note: PYR order
Spring.SetUnitRotation(integer, number, number, number) -> nil
Parameters
Returns
Spring.SetUnitDirection (function)
[source]
Set unit front direction vector. The vector is normalized in the engine.
Deprecated: It’s strongly that you use the overload that accepts
a right direction as frontDir
alone doesn’t define object orientation.
Spring.SetUnitDirection(integer, number, number, number) -> nil
Parameters
Returns
Spring.SetUnitDirection (function overload 1)
[source]
Set unit front and right direction vectors.
Both vectors will be normalized in the engine.
Spring.SetUnitDirection(integer, number, number, number, number, number, number) -> nil
Parameters
Returns
Spring.SetUnitHeadingAndUpDir (function)
[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(integer, Heading, number, number, number) -> nil
Parameters
Returns
Spring.SetUnitVelocity (function)
Set the velocity of a Unit
[source]
See Spring.SetUnitMoveCtrl for disabling/enabling this control
Spring.SetUnitVelocity(integer, number, number, number) -> nil
Parameters
Spring.SetFactoryBuggerOff (function)
[source]Spring.SetFactoryBuggerOff(integer, boolean?, number?, number?, Heading?, boolean?, boolean?) -> number?
Parameters
integer
unitIDboolean?
buggerOffnumber?
offsetnumber?
radiusHeading?
relHeadingboolean?
sphericalboolean?
forced
Returns
number?
buggerOff
Spring.BuggerOff (function)
[source]Spring.BuggerOff(number, number, number?, number, integer, boolean?, boolean?, integer?, number[]?) -> nil
Parameters
number
xnumber
ynumber?
z- uses ground height when unspecified
number
radiusinteger
teamIDboolean?
spherical- (Default:
true
) boolean?
forced- (Default:
true
) integer?
excludeUnitIDnumber[]?
excludeUnitDefIDs
Returns
Spring.AddUnitDamage (function)
[source]Spring.AddUnitDamage(integer, number, number?, integer?, integer?, number?, number?, number?) -> nil
Parameters
integer
unitIDnumber
damagenumber?
paralyze- (Default:
0
) equals to the paralyzetime in the WeaponDef. integer?
attackerID- (Default:
-1
) integer?
weaponID- (Default:
-1
) number?
impulseXnumber?
impulseYnumber?
impulseZ
Returns
Spring.AddUnitImpulse (function)
[source]Spring.AddUnitImpulse(integer, number, number, number, number?) -> nil
Parameters
Returns
Spring.AddUnitSeismicPing (function)
[source]Spring.AddUnitSeismicPing(integer, number) -> nil
Parameters
Returns
Spring.AddUnitResource (function)
[source]Spring.AddUnitResource(integer, string, number) -> nil
Parameters
Returns
Spring.UseUnitResource (function)
[source]Spring.UseUnitResource(integer, ResourceName, number) -> boolean?
Parameters
integer
unitIDResourceName
resourcenumber
amount
Returns
boolean?
okay
Spring.UseUnitResource (function overload 1)
[source]Spring.UseUnitResource(integer, ResourceUsage) -> boolean?
Parameters
integer
unitIDResourceUsage
resources
Returns
boolean?
okay
Spring.AddObjectDecal (function)
[source]Spring.AddObjectDecal(integer) -> nil
Parameters
integer
unitID
Returns
Spring.RemoveObjectDecal (function)
[source]Spring.RemoveObjectDecal(integer) -> nil
Parameters
integer
unitID
Returns
Spring.AddGrass (function)
[source]Spring.AddGrass(number, number) -> nil
Parameters
Returns
Spring.RemoveGrass (function)
[source]Spring.RemoveGrass(number, number) -> nil
Parameters
Returns
Spring.CreateFeature (function)
[source]Spring.CreateFeature((string|integer), number, number, number, Heading?, integer?, integer?) -> integer
Parameters
(string|integer)
featureDef- name or id
number
xnumber
ynumber
zHeading?
headinginteger?
AllyTeamIDinteger?
featureID
Returns
integer
featureID
Spring.DestroyFeature (function)
[source]Spring.DestroyFeature(integer) -> nil
Parameters
integer
featureID
Returns
Spring.TransferFeature (function)
Feature Control
[source]
Spring.TransferFeature(integer, integer) -> nil
Parameters
Returns
Spring.SetFeatureAlwaysVisible (function)
[source]Spring.SetFeatureAlwaysVisible(integer, boolean) -> nil
Parameters
Returns
Spring.SetFeatureUseAirLos (function)
[source]Spring.SetFeatureUseAirLos(integer, boolean) -> nil
Parameters
Returns
Spring.SetFeatureHealth (function)
[source]Spring.SetFeatureHealth(integer, number) -> nil
Parameters
Returns
Spring.SetFeatureMaxHealth (function)
[source]Spring.SetFeatureMaxHealth(integer, number) -> nil
Parameters
Returns
Spring.SetFeatureReclaim (function)
[source]Spring.SetFeatureReclaim(integer, number) -> nil
Parameters
integer
featureIDnumber
reclaimLeft
Returns
Spring.SetFeatureResources (function)
[source]Spring.SetFeatureResources(integer, number, number, number?, number?, number?, number?) -> nil
Parameters
integer
featureIDnumber
metalnumber
energynumber?
reclaimTimenumber?
reclaimLeftnumber?
featureDefMetalnumber?
featureDefEnergy
Returns
Spring.SetFeatureResurrect (function)
[source]Spring.SetFeatureResurrect(integer, (string|integer), Facing?, number?) -> nil
Parameters
integer
featureID(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)
Enable feature movement control.
[source]
Spring.SetFeatureMoveCtrl(integer, true, number?, number?, number?, number?, number?, number?) -> nil
Parameters
integer
featureIDtrue
enabled- Enable feature movement.
number?
initialVelocityX- Initial velocity on X axis, or
nil
for no change. number?
initialVelocityY- Initial velocity on Y axis, or
nil
for no change. number?
initialVelocityZ- Initial velocity on Z axis, or
nil
for no change. number?
accelerationX- Acceleration per frame on X axis, or
nil
for no change. number?
accelerationY- Acceleration per frame on Y axis, or
nil
for no change. number?
accelerationZ- Acceleration per frame on Z axis, or
nil
for no change.
Spring.SetFeatureMoveCtrl (function overload 1)
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)
[source]
Spring.SetFeatureMoveCtrl(integer, false, number?, number?, number?, number?, number?, number?, number?, number?, number?) -> nil
Parameters
integer
featureIDfalse
enabled- Disable feature movement.
number?
velocityMaskX- Lock velocity change in X dimension when not using MoveCtrl.
0
to lock, non-zero to allow, ornil
to for no change. number?
velocityMaskY- Lock velocity change in Y dimension when not using MoveCtrl.
0
to lock, non-zero to allow, ornil
to for no change. number?
velocityMaskZ- Lock velocity change in Z dimension when not using MoveCtrl.
0
to lock, non-zero to allow, ornil
to for no change. number?
impulseMaskX- Lock impulse in X dimension when not using MoveCtrl.
0
to lock, non-zero to allow, ornil
to for no change. number?
impulseMaskY- Lock impulse in Y dimension when not using MoveCtrl.
0
to lock, non-zero to allow, ornil
to for no change. number?
impulseMaskZ- Lock impulse in Z dimension when not using MoveCtrl.
0
to lock, non-zero to allow, ornil
to for no change. number?
movementMaskX- Lock move in X dimension when not using MoveCtrl.
0
to lock the axis, non-zero to allow, ornil
for no change. number?
movementMaskY- Lock move in Y dimension when not using MoveCtrl.
0
to lock the axis, non-zero to allow, ornil
for no change. number?
movementMaskZ- Lock move in Z dimension when not using MoveCtrl.
0
to lock the axis, non-zero to allow, ornil
for no change.
Spring.SetFeaturePhysics (function)
[source]Spring.SetFeaturePhysics(integer, number, number, number, number, number, number, number, number, number, number, number, number) -> nil
Parameters
integer
featureIDnumber
posXnumber
posYnumber
posZnumber
velXnumber
velYnumber
velZnumber
rotXnumber
rotYnumber
rotZnumber
dragXnumber
dragYnumber
dragZ
Returns
Spring.SetFeatureMass (function)
[source]Spring.SetFeatureMass(integer, number) -> nil
Parameters
Returns
Spring.SetFeaturePosition (function)
[source]Spring.SetFeaturePosition(integer, number, number, number, boolean?) -> nil
Parameters
integer
featureIDnumber
xnumber
ynumber
zboolean?
snapToGround
Returns
Spring.SetFeatureRotation (function)
[source]
Note: PYR order
Spring.SetFeatureRotation(integer, number, number, number) -> nil
Parameters
integer
featureIDnumber
pitch- Rotation in X axis
number
yaw- Rotation in Y axis
number
roll- Rotation in Z axis
Returns
Spring.SetFeatureDirection (function)
[source]
Set feature front direction vector. The vector is normalized in the engine.
Deprecated: It’s strongly that you use the overload that accepts
a right direction as frontDir
alone doesn’t define object orientation.
Spring.SetFeatureDirection(integer, number, number, number) -> nil
Parameters
Returns
Spring.SetFeatureDirection (function overload 1)
[source]
Set feature front and right direction vectors.
Both vectors will be normalized in the engine.
Spring.SetFeatureDirection(integer, number, number, number, number, number, number) -> nil
Parameters
Returns
Spring.SetFeatureHeadingAndUpDir (function)
[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(integer, Heading, number, number, number) -> nil
Parameters
Returns
Spring.SetFeatureVelocity (function)
Set the velocity of a Feature
[source]
See Spring.SetFeatureMoveCtrl for disabling/enabling this control
Spring.SetFeatureVelocity(integer, number, number, number) -> nil
Parameters
Spring.SetFeatureBlocking (function)
[source]Spring.SetFeatureBlocking(integer, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> boolean
Parameters
integer
featureIDboolean?
isBlocking- If
true
add this feature to theGroundBlockingMap
, but only if it collides with solid objects (or is being set to collide with theisSolidObjectCollidable
argument). 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
boolean
isBlocking
Spring.SetFeatureNoSelect (function)
[source]Spring.SetFeatureNoSelect(integer, boolean) -> nil
Parameters
Returns
Spring.SetFeatureMidAndAimPos (function)
[source]
Check Spring.SetUnitMidAndAimPos for further explanation of the arguments.
Spring.SetFeatureMidAndAimPos(integer, number, number, number, number, number, number, boolean?) -> boolean
Parameters
Returns
boolean
success
Spring.SetFeatureRadiusAndHeight (function)
[source]Spring.SetFeatureRadiusAndHeight(integer, number, number) -> boolean
Parameters
Returns
boolean
success
Spring.SetFeatureCollisionVolumeData (function)
[source]
Check Spring.SetUnitCollisionVolumeData for further explanation of the arguments.
Spring.SetFeatureCollisionVolumeData(integer, number, number, number, number, number, number, number, number, number) -> nil
Parameters
integer
featureIDnumber
scaleXnumber
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
vTypenumber
tTypenumber
Axis
Returns
Spring.SetFeaturePieceCollisionVolumeData (function)
[source]Spring.SetFeaturePieceCollisionVolumeData(integer, number, boolean, number, number, number, number, number, number, number, number, number?) -> nil
Parameters
integer
featureIDnumber
pieceIndexboolean
enablenumber
scaleXnumber
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
Axisnumber
volumeTypenumber?
primaryAxis
Returns
Spring.SetFeaturePieceVisible (function)
[source]Spring.SetFeaturePieceVisible(integer, number, boolean) -> nil
Parameters
integer
featureIDnumber
pieceIndexboolean
visible
Returns
Spring.SetProjectileAlwaysVisible (function)
[source]Spring.SetProjectileAlwaysVisible(integer, boolean) -> nil
Parameters
integer
projectileIDboolean
alwaysVisible
Returns
Spring.SetProjectileUseAirLos (function)
[source]Spring.SetProjectileUseAirLos(integer, boolean) -> nil
Parameters
integer
projectileIDboolean
useAirLos
Returns
Spring.SetProjectileMoveControl (function)
Disables engine movecontrol, so lua can fully control the physics.
[source]
Spring.SetProjectileMoveControl(integer, boolean) -> nil
Parameters
integer
projectileIDboolean
enable
Returns
Spring.SetProjectilePosition (function)
[source]Spring.SetProjectilePosition(integer, number?, number?, number?) -> nil
Parameters
integer
projectileIDnumber?
posX- (Default:
0
) number?
posY- (Default:
0
) number?
posZ- (Default:
0
)
Returns
Spring.SetProjectileVelocity (function)
Set the velocity of a Projectile
[source]
See Spring.SetProjectileMoveCtrl for disabling/enabling this control
Spring.SetProjectileVelocity(integer, number, number, number) -> nil
Parameters
integer
projectileIDnumber
velX- in elmos/frame
number
velY- in elmos/frame
number
velZ- in elmos/frame
Spring.SetProjectileCollision (function)
[source]Spring.SetProjectileCollision(integer) -> nil
Parameters
integer
projectileID
Returns
Spring.SetProjectileTarget (function)
[source]
targetTypeStr can be one of: ‘u’ - unit ‘f’ - feature ‘p’ - projectile while targetTypeInt is one of: string.byte(‘g’) := GROUND string.byte(‘u’) := UNIT string.byte(‘f’) := FEATURE string.byte(‘p’) := PROJECTILE
Spring.SetProjectileTarget(integer, number?, number?, number?) -> boolean?
Parameters
integer
projectileIDnumber?
arg1- (Default:
0
) targetID or posX number?
arg2- (Default:
0
) targetType or posY number?
posZ- (Default:
0
)
Returns
boolean?
validTarget
Spring.SetProjectileTimeToLive (function)
[source]Spring.SetProjectileTimeToLive(integer, number) -> nil
Parameters
integer
projectileIDnumber
ttl- Remaining time to live in frames
Returns
Spring.SetProjectileIsIntercepted (function)
[source]Spring.SetProjectileIsIntercepted(integer) -> nil
Parameters
integer
projectileID
Returns
Spring.SetProjectileDamages (function)
[source]Spring.SetProjectileDamages(integer, number, string, number) -> nil
Parameters
Returns
Spring.SetProjectileIgnoreTrackingError (function)
[source]Spring.SetProjectileIgnoreTrackingError(integer, boolean) -> nil
Parameters
integer
projectileIDboolean
ignore
Returns
Spring.SetProjectileGravity (function)
[source]Spring.SetProjectileGravity(integer, number?) -> nil
Parameters
integer
projectileIDnumber?
grav- (Default:
0
)
Returns
Spring.SetPieceProjectileParams (function)
Set piece projectile params
Non passed or nil args don’t set params.
[source]
Spring.SetPieceProjectileParams(integer, number?, number?, number?, number?, number?, number?) -> nil
Parameters
integer
projectileIDnumber?
explosionFlagsnumber?
spinAnglenumber?
spinSpeednumber?
spinVectorXnumber?
spinVectorYnumber?
spinVectorZ
Spring.SetProjectileCEG (function)
[source]Spring.SetProjectileCEG(integer, string) -> nil
Parameters
integer
projectileIDstring
ceg_name
Returns
Spring.UnitFinishCommand (function)
[source]Spring.UnitFinishCommand(integer) -> nil
Parameters
integer
unitID
Spring.LevelHeightMap (function)
Set the height of a point in the world.
[source]
Spring.LevelHeightMap(number, number, number) -> nil
Parameters
Spring.LevelHeightMap (function overload 1)
Set the height of a rectangle area in the world.
[source]
Spring.LevelHeightMap(number, number, number, number, number?) -> nil
Parameters
Returns
Spring.AdjustHeightMap (function)
Add height to a point in the world.
[source]
Spring.AdjustHeightMap(number, number, number) -> nil
Parameters
Spring.AdjustHeightMap (function overload 1)
Add height to a rectangle in the world.
[source]
Spring.AdjustHeightMap(number, number, number, number, number?) -> nil
Parameters
Returns
Spring.RevertHeightMap (function)
Restore map height at a point in the world.
[source]
Spring.RevertHeightMap(number, number, number) -> nil
Parameters
Spring.RevertHeightMap (function overload 1)
Restore map height of a rectangle area in the world.
[source]
Spring.RevertHeightMap(number, number, number, number, number?) -> nil
Parameters
Returns
Spring.AddHeightMap (function)
Can only be called in Spring.SetHeightMapFunc
[source]
Spring.AddHeightMap(number, number, number) -> integer?
Parameters
Returns
integer?
newHeight
Spring.SetHeightMap (function)
[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), if1
the terraform will be finished.
Spring.SetHeightMapFunc (function)
[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, [number, ]*) -> integer?
Parameters
function
luaFunctionnumber
argnumber
...
Returns
integer?
absTotalHeightMapAmountChanged
Spring.LevelOriginalHeightMap (function)
Set the height of a point in the original map height cache.
[source]
Spring.LevelOriginalHeightMap(number, number, number) -> nil
Parameters
Spring.LevelOriginalHeightMap (function overload 1)
Set the height of a rectangle area in the original map height cache.
[source]
Spring.LevelOriginalHeightMap(number, number, number, number, number) -> nil
Parameters
Spring.AdjustOriginalHeightMap (function)
Add height to a point in the original map height cache.
[source]
Spring.AdjustOriginalHeightMap(number, number, number) -> nil
Parameters
Spring.AdjustOriginalHeightMap (function overload 1)
Add height to a rectangle area in the original map height cache.
[source]
Spring.AdjustOriginalHeightMap(number, number, number, number, number) -> nil
Parameters
Spring.RevertOriginalHeightMap (function)
Restore original map height at a point in the world.
[source]
Spring.RevertOriginalHeightMap(number, number, number) -> nil
Parameters
Spring.RevertOriginalHeightMap (function overload 1)
Restore original map height over a rectangle in the world.
[source]
Spring.RevertOriginalHeightMap(number, number, number, number, number?) -> nil
Parameters
Returns
Spring.AddOriginalHeightMap (function)
[source]
Can only be called in Spring.SetOriginalHeightMapFunc
Spring.AddOriginalHeightMap(number, number, number) -> nil
Parameters
Returns
Spring.SetOriginalHeightMap (function)
[source]
Can only be called in Spring.SetOriginalHeightMapFunc
Spring.SetOriginalHeightMap(number, number, number, number?) -> nil
Parameters
Returns
Spring.SetOriginalHeightMapFunc (function)
[source]
Cannot recurse on itself
Spring.SetOriginalHeightMapFunc(function) -> nil
Parameters
function
heightMapFunc
Returns
Spring.RebuildSmoothMesh (function)
[source]
Heightmap changes normally take up to 25s to propagate to the smooth mesh. Use to force a mapwide update immediately.
Spring.RebuildSmoothMesh() -> nil
Returns
Spring.LevelSmoothMesh (function)
[source]Spring.LevelSmoothMesh(number, number, number) -> nil
Parameters
Spring.LevelSmoothMesh (function overload 1)
[source]Spring.LevelSmoothMesh(number, number, number, number, number) -> nil
Parameters
Spring.AdjustSmoothMesh (function)
[source]Spring.AdjustSmoothMesh(number, number, number) -> nil
Parameters
Spring.AdjustSmoothMesh (function overload 1)
[source]Spring.AdjustSmoothMesh(number, number, number, number, number) -> nil
Parameters
Spring.RevertSmoothMesh (function)
[source]Spring.RevertSmoothMesh(number, number, number) -> nil
Parameters
number
xnumber
znumber
origFactor
Spring.RevertSmoothMesh (function overload 1)
[source]Spring.RevertSmoothMesh(number, number, number, number, number) -> nil
Parameters
number
x1number
z1number
x2number
z2number
origFactor
Spring.AddSmoothMesh (function)
Can only be called in Spring.SetSmoothMeshFunc.
[source]
Spring.AddSmoothMesh(number, number, number) -> number?
Parameters
Returns
number?
height- The new height, or
nil
if coordinates are invalid.
Spring.SetSmoothMesh (function)
Can only be called in Spring.SetSmoothMeshFunc.
[source]
Spring.SetSmoothMesh(number, number, number, number?) -> number?
Parameters
Returns
number?
The- absolute height difference, or
nil
if coordinates are invalid.
Spring.SetSmoothMeshFunc (function)
[source]Spring.SetSmoothMeshFunc(function, any, [any, ]*) -> number?
Parameters
function
luaFunctionany
argany
...
Returns
Spring.SetMapSquareTerrainType (function)
[source]Spring.SetMapSquareTerrainType(number, number, number) -> integer?
Parameters
Returns
integer?
oldType
Spring.SetTerrainTypeData (function)
[source]Spring.SetTerrainTypeData(number, number?, number?, number?, number?) -> boolean?
Parameters
number
typeIndexnumber?
speedTanks- (Default: nil)
number?
speedKBOts- (Default: nil)
number?
speedHovers- (Default: nil)
number?
speedShips- (Default: nil)
Returns
Spring.SetSquareBuildingMask (function)
[source]Spring.SetSquareBuildingMask(number, number, number) -> nil
Parameters
Returns
nil
See- also buildingMask unitdef tag.
Spring.UnitWeaponFire (function)
[source]Spring.UnitWeaponFire(integer, integer) -> nil
Parameters
Returns
Spring.UnitWeaponHoldFire (function)
[source]Spring.UnitWeaponHoldFire(integer, integer) -> nil
Parameters
Returns
Spring.ForceUnitCollisionUpdate (function)
Prevent collision checks from working on outdated data
There’s a rare edge case that requires units to be in specific positions
and being shot by specific weapons but which can result in shots ghosting
through the unit. This is because the unit’s collision volume is stale.
The movement.unitQuadPositionUpdateRate
modrule controls this behaviour
and can guarantee 100% correctness if set to 1, but the default value is 3
and large-scale games generally don’t want to set it so low. This function
lets you guarantee success for important weapons regardless of how high
the normal update rate is set.
[source]
Spring.ForceUnitCollisionUpdate(integer) -> nil
Parameters
integer
unitID
Returns
Spring.UnitAttach (function)
[source]Spring.UnitAttach(integer, integer, number) -> nil
Parameters
integer
transporterIDinteger
passengerIDnumber
pieceNum
Returns
Spring.UnitDetach (function)
[source]Spring.UnitDetach(integer) -> nil
Parameters
integer
passengerID
Returns
Spring.UnitDetachFromAir (function)
[source]Spring.UnitDetachFromAir(integer) -> nil
Parameters
integer
passengerID
Returns
Spring.SetUnitLoadingTransport (function)
Disables collisions between the two units to allow colvol intersection during the approach.
[source]
Spring.SetUnitLoadingTransport(integer, integer) -> nil
Parameters
integer
passengerIDinteger
transportID
Returns
Spring.SpawnProjectile (function)
[source]Spring.SpawnProjectile(integer, ProjectileParams) -> integer?
Parameters
Returns
integer?
projectileID
Spring.DeleteProjectile (function)
Silently removes projectiles (no explosion).
[source]
Spring.DeleteProjectile(integer) -> nil
Parameters
integer
projectileID
Returns
Spring.SpawnExplosion (function)
[source]Spring.SpawnExplosion(number?, number?, number?, number?, number?, number?, ExplosionParams) -> nil
Parameters
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)
[source]Spring.SpawnCEG(string, number?, number?, number?, number?, number?, number?, number?, number?) -> boolean?, integer
Parameters
string
cegnamenumber?
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)
Equal to the UnitScript versions of EmitSFX, but takes position and direction arguments (in either unit- or piece-space) instead of a piece index.
[source]
Spring.SpawnSFX(integer?, integer?, number?, number?, number?, number?, number?, number?, number?, number?, boolean?) -> boolean?
Parameters
integer?
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)
[source]Spring.SetNoPause(boolean) -> nil
Parameters
boolean
noPause
Returns
Spring.SetExperienceGrade (function)
Defines how often Callins.UnitExperience
will be called.
[source]
Spring.SetExperienceGrade(number, number?, number?, number?) -> nil
Parameters
number
expGradenumber?
ExpPowerScalenumber?
ExpHealthScalenumber?
ExpReloadScale
Returns
Spring.SetRadarErrorParams (function)
[source]Spring.SetRadarErrorParams(integer, number, number?, number?) -> nil
Parameters
integer
allyTeamIDnumber
allyteamErrorSizenumber?
baseErrorSizenumber?
baseErrorMult
Returns
Spring.EditUnitCmdDesc (function)
[source]Spring.EditUnitCmdDesc(integer, integer, CommandDescription) -> nil
Parameters
integer
unitIDinteger
cmdDescIDCommandDescription
cmdArray
Spring.InsertUnitCmdDesc (function)
Insert a command description at a specific index.
[source]
Spring.InsertUnitCmdDesc(integer, integer, CommandDescription) -> nil
Parameters
integer
unitIDinteger
indexCommandDescription
cmdDesc
Spring.InsertUnitCmdDesc (function overload 1)
Insert a command description at the last position.
[source]
Spring.InsertUnitCmdDesc(integer, CommandDescription) -> nil
Parameters
Spring.RemoveUnitCmdDesc (function)
[source]Spring.RemoveUnitCmdDesc(integer, integer?) -> nil
Parameters
Spring.IsReplay (function)
[source]Spring.IsReplay() -> boolean?
Returns
boolean?
isReplay
Spring.GetReplayLength (function)
[source]Spring.GetReplayLength() -> number?
Returns
number?
timeInSeconds
Spring.GetGameName (function)
[source]Spring.GetGameName() -> string
Returns
string
name
Spring.GetMenuName (function)
[source]Spring.GetMenuName() -> string
Returns
string
name- name .. version from Modinfo.lua. E.g. “Spring: 1944 test-5640-ac2d15b”.
Spring.GetProfilerTimeRecord (function)
[source]Spring.GetProfilerTimeRecord(string, boolean?) -> number, number, number, number, number, table<number,number>?
Parameters
string
profilerNameboolean?
frameData- (Default:
false
)
Returns
number
total- in ms
number
current- in ms
number
max_dtnumber
time_pctnumber
peak_pcttable<number,number>?
frameData- Table where key is the frame index and value is duration.
Spring.GetProfilerRecordNames (function)
[source]Spring.GetProfilerRecordNames() -> string[]
Returns
string[]
profilerNames
Spring.GetLuaMemUsage (function)
[source]Spring.GetLuaMemUsage() -> number, number, number, number, number, number, number, number
Returns
number
luaHandleAllocedMem- in kilobytes
number
luaHandleNumAllocs- divided by 1000
number
luaGlobalAllocedMem- in kilobytes
number
luaGlobalNumAllocs- divided by 1000
number
luaUnsyncedGlobalAllocedMem- in kilobytes
number
luaUnsyncedGlobalNumAllocs- divided by 1000
number
luaSyncedGlobalAllocedMem- in kilobytes
number
luaSyncedGlobalNumAllocs- divided by 1000
Spring.GetVidMemUsage (function)
[source]Spring.GetVidMemUsage() -> number, number
Returns
number
usedMem- in MB
number
availableMem- in MB
Spring.GetTimer (function)
Get a timer with millisecond resolution
[source]
Spring.GetTimer() -> integer
Returns
Spring.GetTimerMicros (function)
Get a timer with microsecond resolution
[source]
Spring.GetTimerMicros() -> integer
Returns
Spring.GetFrameTimer (function)
Get a timer for the start of the frame
[source]
This should give better results for camera interpolations
Spring.GetFrameTimer(boolean?) -> integer
Parameters
boolean?
lastFrameTime- (Default:
false
) whether to use last frame time instead of last frame start
Returns
Spring.DiffTimers (function)
[source]Spring.DiffTimers(integer, integer, boolean?, boolean?) -> number
Parameters
integer
endTimerinteger
startTimerboolean?
returnMs- (Default:
false
) whether to returntimeAmount
in milliseconds as opposed to seconds boolean?
fromMicroSecs- (Default:
false
) whether timers are in microseconds instead of milliseconds
Returns
number
timeAmount
Spring.GetNumDisplays (function)
[source]Spring.GetNumDisplays() -> number
Returns
number
numDisplays- as returned by
SDL_GetNumVideoDisplays
Spring.GetViewGeometry (function)
Get main view geometry (map and game rendering)
[source]
Spring.GetViewGeometry() -> number, number, number, number
Returns
number
viewSizeX- in px
number
viewSizeY- in px
number
viewPosX- offset from leftmost screen left border in px
number
viewPosY- offset from bottommost screen bottom border in px
Spring.GetDualViewGeometry (function)
Get dual view geometry (minimap when enabled)
[source]
Spring.GetDualViewGeometry() -> number, number, number, number
Returns
number
dualViewSizeX- in px
number
dualViewSizeY- in px
number
dualViewPosX- offset from leftmost screen left border in px
number
dualViewPosY- offset from bottommost screen bottom border in px
Spring.GetWindowGeometry (function)
Get main window geometry
[source]
Spring.GetWindowGeometry() -> number, number, number, number, number, number, number, number
Returns
number
winSizeX- in px
number
winSizeY- in px
number
winPosX- in px
number
winPosY- in px
number
windowBorderTop- in px
number
windowBorderLeft- in px
number
windowBorderBottom- in px
number
windowBorderRight- in px
Spring.GetWindowDisplayMode (function)
Get main window display mode
[source]
Spring.GetWindowDisplayMode() -> number, number, number, number
Returns
Spring.GetScreenGeometry (function)
Get screen geometry
[source]
Spring.GetScreenGeometry(number?, boolean?) -> number, number, number, number, number, number, number, number, number?, number?, number?, number?
Parameters
number?
displayIndex- (Default:
-1
) boolean?
queryUsable- (Default:
false
)
Returns
number
screenSizeX- in px
number
screenSizeY- in px
number
screenPosX- in px
number
screenPosY- in px
number
windowBorderTop- in px
number
windowBorderLeft- in px
number
windowBorderBottom- in px
number
windowBorderRight- in px
number?
screenUsableSizeX- in px
number?
screenUsableSizeY- in px
number?
screenUsablePosX- in px
number?
screenUsablePosY- in px
Spring.GetMiniMapGeometry (function)
Get minimap geometry
[source]
Spring.GetMiniMapGeometry() -> number, number, number, number, boolean, boolean
Returns
number
minimapPosX- in px
number
minimapPosY- in px
number
minimapSizeX- in px
number
minimapSizeY- in px
boolean
minimizedboolean
maximized
Spring.GetMiniMapRotation (function)
Get minimap rotation
[source]
Spring.GetMiniMapRotation() -> number
Returns
number
amount- in radians
Spring.GetMiniMapDualScreen (function)
[source]Spring.GetMiniMapDualScreen() -> ("left"|"right"|false)
Returns
("left"|"right"|false)
position“left”
or“right”
when dual screen is enabled, otherwisefalse
.
Spring.GetSelectionBox (function)
Get vertices from currently active selection box
[source]
Returns nil when selection box is inactive
See Spring.GetUnitsInScreenRectangle
Spring.GetSelectionBox() -> number?, number?, number?, number?
Returns
Spring.GetDrawSelectionInfo (function)
[source]Spring.GetDrawSelectionInfo() -> boolean
Returns
Spring.IsAboveMiniMap (function)
[source]Spring.IsAboveMiniMap(number, number) -> boolean
Parameters
Returns
boolean
isAbove
Spring.GetDrawFrame (function)
[source]Spring.GetDrawFrame() -> number, number
Returns
number
low_16bitnumber
high_16bit
Spring.GetFrameTimeOffset (function)
[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.GetLastUpdateSeconds (function)
[source]Spring.GetLastUpdateSeconds() -> number?
Returns
number?
lastUpdateSeconds
Spring.GetVideoCapturingMode (function)
[source]Spring.GetVideoCapturingMode() -> boolean
Returns
boolean
allowRecord
Spring.IsUnitAllied (function)
[source]Spring.IsUnitAllied(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
isAllied- nil with unitID cannot be parsed
Spring.IsUnitSelected (function)
[source]Spring.IsUnitSelected(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
isSelected- nil when unitID cannot be parsed
Spring.GetUnitLuaDraw (function)
[source]Spring.GetUnitLuaDraw(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
draw- nil when unitID cannot be parsed
Spring.GetUnitNoDraw (function)
[source]Spring.GetUnitNoDraw(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
nil- when unitID cannot be parsed
Spring.GetUnitEngineDrawMask (function)
[source]Spring.GetUnitEngineDrawMask(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
nil- when unitID cannot be parsed
Spring.GetUnitAlwaysUpdateMatrix (function)
[source]Spring.GetUnitAlwaysUpdateMatrix(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
nil- when unitID cannot be parsed
Spring.GetUnitDrawFlag (function)
[source]Spring.GetUnitDrawFlag(integer) -> number?
Parameters
integer
unitID
Returns
number?
nil- when unitID cannot be parsed
Spring.GetUnitNoMinimap (function)
[source]Spring.GetUnitNoMinimap(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
nil- when unitID cannot be parsed
Spring.GetUnitNoGroup (function)
Check if a unit is not allowed to be added to a group by a player.
[source]
Spring.GetUnitNoGroup(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
noGrouptrue
if the unit is not allowed to be added to a group,false
if it is allowed to be added to a group, ornil
whenunitID
is not valid.
Spring.GetUnitNoSelect (function)
[source]Spring.GetUnitNoSelect(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
noSelectnil
whenunitID
cannot be parsed.
Spring.UnitIconGetDraw (function)
[source]Spring.UnitIconGetDraw(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
drawIcon
Spring.GetUnitSelectionVolumeData (function)
[source]Spring.GetUnitSelectionVolumeData(integer) -> number?, number, number, number, number, number, number, number, number, boolean
Parameters
integer
unitID
Returns
number?
scaleX- nil when unitID cannot be parsed
number
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
volumeTypenumber
useContHitTestnumber
getPrimaryAxisboolean
ignoreHits
Spring.GetFeatureLuaDraw (function)
[source]Spring.GetFeatureLuaDraw(integer) -> boolean?
Parameters
integer
featureID
Returns
boolean?
nil- when featureID cannot be parsed
Spring.GetFeatureNoDraw (function)
[source]Spring.GetFeatureNoDraw(integer) -> boolean?
Parameters
integer
featureID
Returns
boolean?
nil- when featureID cannot be parsed
Spring.GetFeatureEngineDrawMask (function)
[source]Spring.GetFeatureEngineDrawMask(integer) -> boolean?
Parameters
integer
featureID
Returns
boolean?
nil- when featureID cannot be parsed
Spring.GetFeatureAlwaysUpdateMatrix (function)
[source]Spring.GetFeatureAlwaysUpdateMatrix(integer) -> boolean?
Parameters
integer
featureID
Returns
boolean?
nil- when featureID cannot be parsed
Spring.GetFeatureDrawFlag (function)
[source]Spring.GetFeatureDrawFlag(integer) -> number?
Parameters
integer
featureID
Returns
number?
nil- when featureID cannot be parsed
Spring.GetFeatureSelectionVolumeData (function)
[source]Spring.GetFeatureSelectionVolumeData(integer) -> number?, number, number, number, number, number, number, number, number, boolean
Parameters
integer
featureID
Returns
number?
scaleX- nil when unitID cannot be parsed
number
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
volumeTypenumber
useContHitTestnumber
getPrimaryAxisboolean
ignoreHits
Spring.GetUnitTransformMatrix (function)
[source]Spring.GetUnitTransformMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number
Parameters
integer
unitID
Returns
number?
m11- nil when unitID cannot be parsed
number
m12number
m13number
m14number
m21number
m22number
m23number
m24number
m31number
m32number
m33number
m34number
m41number
m42number
m43number
m44
Spring.GetFeatureTransformMatrix (function)
[source]Spring.GetFeatureTransformMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number
Parameters
integer
featureID
Returns
number?
m11- nil when featureID cannot be parsed
number
m12number
m13number
m14number
m21number
m22number
m23number
m24number
m31number
m32number
m33number
m34number
m41number
m42number
m43number
m44
Spring.IsUnitInView (function)
[source]Spring.IsUnitInView(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
inView- nil when unitID cannot be parsed
Spring.IsUnitVisible (function)
[source]Spring.IsUnitVisible(integer, number?, boolean) -> boolean?
Parameters
Returns
boolean?
isVisible- nil when unitID cannot be parsed
Spring.IsUnitIcon (function)
[source]Spring.IsUnitIcon(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
isUnitIcon- nil when unitID cannot be parsed
Spring.IsAABBInView (function)
[source]Spring.IsAABBInView(number, number, number, number, number, number) -> boolean
Parameters
Returns
boolean
inView
Spring.IsSphereInView (function)
[source]Spring.IsSphereInView(number, number, number, number?) -> boolean
Parameters
Returns
boolean
inView
Spring.GetUnitViewPosition (function)
[source]Spring.GetUnitViewPosition(integer, boolean?) -> number?, number, number
Parameters
Returns
Spring.GetVisibleUnits (function)
[source]Spring.GetVisibleUnits(integer?, number?, boolean?) -> number[]?
Parameters
Returns
number[]?
unitIDs
Spring.GetVisibleFeatures (function)
[source]Spring.GetVisibleFeatures(integer?, number?, boolean?, boolean?) -> number[]?
Parameters
integer?
teamID- (Default:
-1
) number?
radius- (Default:
30
) boolean?
icons- (Default:
true
) boolean?
geos- (Default:
true
)
Returns
number[]?
featureIDs
Spring.GetVisibleProjectiles (function)
[source]Spring.GetVisibleProjectiles(integer?, boolean?, boolean?, boolean?) -> number[]?
Parameters
integer?
allyTeamID- (Default:
-1
) boolean?
addSyncedProjectiles- (Default:
true
) boolean?
addWeaponProjectiles- (Default:
true
) boolean?
addPieceProjectiles- (Default:
true
)
Returns
number[]?
projectileIDs
Spring.GetRenderUnits (function)
[source]Spring.GetRenderUnits(DrawMask, true) -> integer[], DrawFlag[]
Parameters
DrawMask
drawMask- (Default:
0
) Filter objects by their draw flags. true
sendMask- Whether to send objects draw flags as second return
Returns
integer[]
featureIDsDrawFlag[]
drawFlags
Spring.GetRenderUnits (function overload 1)
[source]Spring.GetRenderUnits(DrawMask, false?) -> integer[]
Parameters
DrawMask
drawMask- (Default:
0
) Filter objects by their draw flags. false?
sendMask- Whether to send objects draw flags as second return
Returns
integer[]
featureIDs
Spring.GetRenderUnitsDrawFlagChanged (function)
[source]
Gets a list of IDs of units that have had their draw flags changed, and the corresponding flags.
Spring.GetRenderUnitsDrawFlagChanged(true) -> integer[], DrawFlag[]
Parameters
true
sendMask- Whether to send objects draw flags as second return.
Returns
integer[]
idsDrawFlag[]
unitDrawFlags
Spring.GetRenderUnitsDrawFlagChanged (function overload 1)
[source]
Gets a list of IDs of units that have had their draw flags changed, and the corresponding flags.
Spring.GetRenderUnitsDrawFlagChanged(false?) -> integer[]
Parameters
false?
sendMask- Whether to send objects draw flags as second return.
Returns
integer[]
ids
Spring.GetRenderFeatures (function)
[source]Spring.GetRenderFeatures(DrawMask, true) -> integer[], DrawFlag[]
Parameters
DrawMask
drawMask- (Default:
0
) Filter objects by their draw flags. true
sendMask- Whether to send objects draw flags as second return
Returns
integer[]
featureIDsDrawFlag[]
drawFlags
Spring.GetRenderFeatures (function overload 1)
[source]Spring.GetRenderFeatures(DrawMask, false?) -> integer[]
Parameters
DrawMask
drawMask- (Default:
0
) Filter objects by their draw flags. false?
sendMask- Whether to send objects draw flags as second return
Returns
integer[]
featureIDs
Spring.GetRenderFeaturesDrawFlagChanged (function)
[source]
Gets a list of IDs of features that have had their draw flags changed, and the corresponding flags.
Spring.GetRenderFeaturesDrawFlagChanged(true) -> integer[], DrawFlag[]
Parameters
true
sendMask- Whether to send objects draw flags as second return.
Returns
integer[]
idsDrawFlag[]
unitDrawFlags
Spring.GetRenderFeaturesDrawFlagChanged (function overload 1)
[source]
Gets a list of IDs of features that have had their draw flags changed, and the corresponding flags.
Spring.GetRenderFeaturesDrawFlagChanged(false?) -> integer[]
Parameters
false?
sendMask- Whether to send objects draw flags as second return.
Returns
integer[]
ids
Spring.ClearUnitsPreviousDrawFlag (function)
[source]Spring.ClearUnitsPreviousDrawFlag() -> nil
Spring.ClearFeaturesPreviousDrawFlag (function)
[source]Spring.ClearFeaturesPreviousDrawFlag() -> nil
Spring.GetUnitsInScreenRectangle (function)
Get units inside a rectangle area on the map
[source]
Spring.GetUnitsInScreenRectangle(number, number, number, number, number?) -> number[]?
Parameters
number
leftnumber
topnumber
rightnumber
bottomnumber?
allegiance- (Default:
-1
) teamID when > 0, when < 0 one of AllUnits = -1, MyUnits = -2, AllyUnits = -3, EnemyUnits = -4
Returns
number[]?
unitIDs
Spring.GetFeaturesInScreenRectangle (function)
Get features inside a rectangle area on the map
[source]
Spring.GetFeaturesInScreenRectangle(number, number, number, number) -> number[]?
Parameters
Returns
number[]?
featureIDs
Spring.GetLocalPlayerID (function)
[source]Spring.GetLocalPlayerID() -> integer
Returns
integer
playerID
Spring.GetLocalTeamID (function)
[source]Spring.GetLocalTeamID() -> integer
Returns
integer
teamID
Spring.GetLocalAllyTeamID (function)
[source]Spring.GetLocalAllyTeamID() -> integer
Returns
integer
allyTeamID
Spring.GetSpectatingState (function)
[source]Spring.GetSpectatingState() -> boolean, boolean, boolean
Returns
boolean
spectatingboolean
spectatingFullViewboolean
spectatingFullSelect
Spring.GetSelectedUnits (function)
[source]Spring.GetSelectedUnits() -> number[]
Returns
number[]
unitIDs
Spring.GetSelectedUnitsSorted (function)
Get selected units aggregated by unitDefID
[source]
Spring.GetSelectedUnitsSorted() -> table<number,number[]>, integer
Returns
Spring.GetSelectedUnitsCounts (function)
Get an aggregate count of selected units per unitDefID
[source]
Spring.GetSelectedUnitsCounts() -> table<number,number>, integer
Returns
table<number,number>
unitsCounts- where keys are unitDefIDs and values are counts
integer
the- number of unitDefIDs
Spring.GetSelectedUnitsCount (function)
Returns the amount of selected units
[source]
Spring.GetSelectedUnitsCount() -> number
Returns
number
selectedUnitsCount
Spring.GetBoxSelectionByEngine (function)
Get if selection box is handled by engine.
[source]
See Spring.SetBoxSelectionByEngine
Spring.GetBoxSelectionByEngine() -> boolean
Returns
boolean
isHandledByEnginetrue
if the engine will select units inside selection box on release, otherwisefalse
.
Spring.IsGUIHidden (function)
[source]Spring.IsGUIHidden() -> boolean
Returns
Spring.HaveShadows (function)
[source]Spring.HaveShadows() -> boolean
Returns
boolean
shadowsLoaded
Spring.HaveAdvShading (function)
[source]Spring.HaveAdvShading() -> boolean, boolean
Returns
boolean
useAdvShadingboolean
groundUseAdvShading
Spring.GetWaterMode (function)
[source]See rts/Rendering/Env/IWater.h
Spring.GetWaterMode() -> integer, string
Returns
integer
waterRendererIDstring
waterRendererName
Spring.GetMapDrawMode (function)
[source]Spring.GetMapDrawMode() -> ("normal"|"height"|"metal"|"pathTraversability"|"los")
Returns
Spring.GetMapSquareTexture (function)
[source]Spring.GetMapSquareTexture(number, number, number, string, number?) -> boolean?
Parameters
number
texSquareXnumber
texSquareYnumber
lodMinstring
luaTexNamenumber?
lodMax- (Default: lodMin)
Returns
boolean?
success
Spring.GetLosViewColors (function)
[source]Spring.GetLosViewColors() -> rgb, rgb, rgb, rgb, rgb
Returns
Spring.GetNanoProjectileParams (function)
[source]Spring.GetNanoProjectileParams() -> number, number, number, number, number, number
Returns
number
rotVal- in degrees
number
rotVel- in degrees
number
rotAcc- in degrees
number
rotValRng- in degrees
number
rotVelRng- in degrees
number
rotAccRng- in degrees
Spring.GetCameraNames (function)
Get available cameras.
[source]
Spring.GetCameraNames() -> table<string,integer>
Returns
table<string,integer>
indexByName- Table where where keys are names and values are indices.
Spring.GetCameraState (function)
[source]Spring.GetCameraState(false) -> CameraState
Parameters
false
useReturns
Returns
Spring.GetCameraState (function overload 1)
[source]Spring.GetCameraState(true?) -> CameraName, any ...
Parameters
true?
useReturns- (Default:
true
) Return multiple values instead of a table.
Returns
CameraName
nameany ...
depend- on current controller mode.
Spring.GetCameraPosition (function)
[source]Spring.GetCameraPosition() -> number, number, number
Returns
Spring.GetCameraDirection (function)
[source]Spring.GetCameraDirection() -> number, number, number
Returns
Spring.GetCameraRotation (function)
Get camera rotation in radians.
[source]
Spring.GetCameraRotation() -> number, number, number
Returns
number
rotX- Rotation around X axis in radians.
number
rotY- Rotation around Y axis in radians.
number
rotZ- Rotation around Z axis in radians.
Spring.GetCameraFOV (function)
[source]Spring.GetCameraFOV() -> number, number
Returns
Spring.GetCameraVectors (function)
[source]Spring.GetCameraVectors() -> CameraVectors
Returns
Spring.WorldToScreenCoords (function)
[source]Spring.WorldToScreenCoords(number, number, number) -> number, number, number
Parameters
Returns
Spring.TraceScreenRay (function)
Get information about a ray traced from screen to world position
[source]
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(number, number, boolean?, boolean?, boolean?, boolean?, number?) -> string?, (number|string|xyz)?, (number|string)?, xyz?
Parameters
number
screenX- position on x axis in mouse coordinates (origin on left border of view)
number
screenY- 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
(number|string|xyz)?
unitID- or feature, position triple when onlyCoords=true
(number|string)?
featureID- or ground
xyz?
coords
Spring.GetPixelDir (function)
[source]Spring.GetPixelDir(number, number) -> number, number, number
Parameters
Returns
Spring.GetTeamColor (function)
[source]Spring.GetTeamColor(integer) -> number?, number?, number?, number?
Parameters
integer
teamID
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)
[source]Spring.GetTeamOrigColor(integer) -> number?, number?, number?, number?
Parameters
integer
teamID
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.GetDrawSeconds (function)
[source]Spring.GetDrawSeconds() -> integer
Returns
integer
time- Time in seconds.
Spring.GetSoundDevices (function)
[source]Spring.GetSoundDevices() -> SoundDeviceSpec[]
Returns
SoundDeviceSpec[]
devices- Sound devices.
Spring.GetSoundStreamTime (function)
[source]Spring.GetSoundStreamTime() -> number, number
Returns
Spring.GetSoundEffectParams (function)
[source]Spring.GetSoundEffectParams() -> nil
Spring.GetFPS (function)
[source]Spring.GetFPS() -> number
Returns
number
fps
Spring.GetGameSpeed (function)
[source]Spring.GetGameSpeed() -> number, number, boolean
Returns
number
wantedSpeedFactornumber
speedFactorboolean
paused
Spring.GetGameState (function)
[source]Spring.GetGameState(number?) -> boolean, boolean, boolean, boolean
Parameters
number?
maxLatency- (Default:
500
) used forisSimLagging
return parameter
Returns
boolean
doneLoadingboolean
isSavedGameboolean
isClientPausedboolean
isSimLagging
Spring.GetActiveCommand (function)
[source]Spring.GetActiveCommand() -> number?, integer?, number?, string?
Returns
Spring.GetDefaultCommand (function)
[source]Spring.GetDefaultCommand() -> integer?, integer?, integer?, string?
Returns
Spring.GetActiveCmdDescs (function)
[source]Spring.GetActiveCmdDescs() -> CommandDescription[]
Returns
Spring.GetActiveCmdDesc (function)
[source]Spring.GetActiveCmdDesc(integer) -> CommandDescription?
Parameters
integer
cmdIndex
Returns
Spring.GetCmdDescIndex (function)
[source]Spring.GetCmdDescIndex(integer) -> integer?
Parameters
integer
cmdID
Returns
integer?
cmdDescIndex
Spring.GetBuildFacing (function)
[source]Spring.GetBuildFacing() -> FacingInteger
Returns
Spring.GetBuildSpacing (function)
[source]Spring.GetBuildSpacing() -> number
Returns
number
buildSpacing
Spring.GetGatherMode (function)
[source]Spring.GetGatherMode() -> number
Returns
number
gatherMode
Spring.GetActivePage (function)
[source]Spring.GetActivePage() -> number, number
Returns
number
activePagenumber
maxPage
Spring.GetMouseState (function)
[source]Spring.GetMouseState() -> number, number, number, number, number, boolean, boolean
Returns
number
xnumber
ynumber
lmbPressed- left mouse button pressed
number
mmbPressed- middle mouse button pressed
number
rmbPressed- right mouse button pressed
boolean
offscreenboolean
mmbScroll
Spring.GetMouseCursor (function)
[source]Spring.GetMouseCursor() -> string, number
Returns
string
cursorNamenumber
cursorScale
Spring.GetMouseStartPosition (function)
[source]Spring.GetMouseStartPosition(number) -> number, number, number, number, number, number, number, number
Parameters
number
button
Returns
Spring.GetMouseButtonsPressed (function)
[source]
Get pressed status for specific buttons.
Spring.GetMouseButtonsPressed(integer, [integer, ]*) -> boolean ...
Parameters
Returns
boolean ...
Pressed- status for the buttons.
Spring.GetClipboard (function)
[source]Spring.GetClipboard() -> string
Returns
string
text
Spring.IsUserWriting (function)
[source]Spring.IsUserWriting() -> boolean
Returns
Spring.GetLastMessagePositions (function)
[source]Spring.GetLastMessagePositions() -> xyz[]
Returns
Spring.GetConsoleBuffer (function)
[source]Spring.GetConsoleBuffer(number) -> { priority: integer, text: string }[]
Parameters
number
maxLines
Returns
{ priority: integer, text: string }[]
buffer
Spring.GetCurrentTooltip (function)
[source]Spring.GetCurrentTooltip() -> string
Returns
string
tooltip
Spring.GetKeyFromScanSymbol (function)
[source]Spring.GetKeyFromScanSymbol(string) -> string
Parameters
string
scanSymbol
Returns
string
keyName
Spring.GetKeyState (function)
[source]Spring.GetKeyState(number) -> boolean
Parameters
number
keyCode
Returns
boolean
pressed
Spring.GetModKeyState (function)
[source]Spring.GetModKeyState() -> boolean, boolean, boolean, boolean
Returns
Spring.GetPressedKeys (function)
[source]Spring.GetPressedKeys() -> table<(number|string),true>
Returns
table<(number|string),true>
where- keys are keyCodes or key names
Spring.GetPressedScans (function)
[source]Spring.GetPressedScans() -> table<(number|string),true>
Returns
table<(number|string),true>
where- keys are scanCodes or scan names
Spring.GetInvertQueueKey (function)
[source]Spring.GetInvertQueueKey() -> number?
Returns
number?
queueKey
Spring.GetKeyCode (function)
[source]Spring.GetKeyCode(string) -> number
Parameters
string
keySym
Returns
number
keyCode
Spring.GetKeySymbol (function)
[source]Spring.GetKeySymbol(number) -> string, string
Parameters
number
keyCode
Returns
string
keyCodeNamestring
keyCodeDefaultName- name when there are not aliases
Spring.GetScanSymbol (function)
[source]Spring.GetScanSymbol(number) -> string, string
Parameters
number
scanCode
Returns
string
scanCodeNamestring
scanCodeDefaultName- name when there are not aliases
Spring.GetKeyBindings (function)
[source]Spring.GetKeyBindings(string?, string?) -> KeyBinding[]
Parameters
Returns
Spring.GetActionHotKeys (function)
[source]Spring.GetActionHotKeys(string) -> string[]?
Parameters
string
actionName
Returns
string[]?
hotkeys
Spring.GetGroupList (function)
[source]Spring.GetGroupList() -> table<number,number>?
Returns
table<number,number>?
where- keys are groupIDs and values are counts
Spring.GetSelectedGroup (function)
[source]Spring.GetSelectedGroup() -> integer
Returns
integer
groupID
Spring.GetUnitGroup (function)
[source]Spring.GetUnitGroup(integer) -> integer?
Parameters
integer
unitID
Returns
integer?
groupID
Spring.GetGroupUnits (function)
[source]Spring.GetGroupUnits(integer) -> number[]?
Parameters
integer
groupID
Returns
number[]?
unitIDs
Spring.GetGroupUnitsSorted (function)
[source]Spring.GetGroupUnitsSorted(integer) -> table<number,number[]>?
Parameters
integer
groupID
Returns
table<number,number[]>?
where- keys are unitDefIDs and values are unitIDs
Spring.GetGroupUnitsCounts (function)
[source]Spring.GetGroupUnitsCounts(integer) -> table<number,number>?
Parameters
integer
groupID
Returns
table<number,number>?
where- keys are unitDefIDs and values are counts
Spring.GetGroupUnitsCount (function)
[source]Spring.GetGroupUnitsCount(integer) -> number?
Parameters
integer
groupID
Returns
number?
groupSize
Spring.GetPlayerRoster (function)
[source]Spring.GetPlayerRoster(number?, boolean?) -> Roster[]?
Parameters
number?
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)
[source]Spring.GetPlayerTraffic(integer, integer?) -> number
Parameters
Returns
number
traffic
Spring.GetPlayerStatistics (function)
[source]Spring.GetPlayerStatistics(integer) -> number?, number, number, number, number
Parameters
integer
playerID
Returns
number?
mousePixels- nil when invalid playerID
number
mouseClicksnumber
keyPressesnumber
numCommandsnumber
unitCommands
Spring.GetConfigParams (function)
[source]Spring.GetConfigParams() -> Configuration[]
Returns
Spring.GetConfigInt (function)
[source]Spring.GetConfigInt(string, number?) -> number?
Parameters
Returns
number?
configInt
Spring.GetConfigFloat (function)
[source]Spring.GetConfigFloat(string, number?) -> number?
Parameters
Returns
number?
configFloat
Spring.GetConfigString (function)
[source]Spring.GetConfigString(string, string?) -> number?
Parameters
Returns
number?
configString
Spring.GetLogSections (function)
[source]Spring.GetLogSections() -> table<string,number>
Returns
table<string,number>
sections- where keys are names and loglevel are values. E.g.
{ “KeyBindings” = LOG.INFO, “Font” = LOG.INFO, “Sound” = LOG.WARNING, … }
Spring.GetAllGroundDecals (function)
[source]Spring.GetAllGroundDecals() -> number[]
Returns
number[]
decalIDs
Spring.GetGroundDecalMiddlePos (function)
[source]Spring.GetGroundDecalMiddlePos(integer) -> number?, number
Parameters
integer
decalID
Returns
Spring.GetGroundDecalQuadPos (function)
[source]Spring.GetGroundDecalQuadPos(integer) -> number?, number, number, number, number, number, number, number
Parameters
integer
decalID
Returns
number?
posTL.xnumber
posTL.znumber
posTR.xnumber
posTR.znumber
posBR.xnumber
posBR.znumber
posBL.xnumber
posBL.z
Spring.GetGroundDecalSizeAndHeight (function)
[source]Spring.GetGroundDecalSizeAndHeight(integer) -> number?, number, number
Parameters
integer
decalID
Returns
number?
sizeXnumber
sizeYnumber
projCubeHeight
Spring.GetGroundDecalRotation (function)
[source]Spring.GetGroundDecalRotation(integer) -> number?
Parameters
integer
decalID
Returns
number?
rotation- Rotation in radians.
Spring.GetGroundDecalTexture (function)
[source]Spring.GetGroundDecalTexture(integer, boolean?) -> string?
Parameters
Returns
string?
texture
Spring.GetGroundDecalTextures (function)
[source]See Spring.GetGroundDecalTexture
Spring.GetGroundDecalTextures(boolean?) -> string[]
Parameters
boolean?
isMainTex- (Default:
true
) Iffalse
, return the texture for normal/glow maps.
Returns
string[]
textureNames- All textures on the atlas and available for use in
SetGroundDecalTexture
.
Spring.GetGroundDecalAlpha (function)
[source]Spring.GetGroundDecalAlpha(integer) -> number?, number
Parameters
integer
decalID
Returns
number?
alpha- Between 0 and 1
number
alphaFalloff- Between 0 and 1, per second
Spring.GetGroundDecalNormal (function)
[source]
If all three equal 0, the decal follows the normals of ground at midpoint
Spring.GetGroundDecalNormal(integer) -> number?, number, number
Parameters
integer
decalID
Returns
Spring.GetGroundDecalTint (function)
[source]
Gets the tint of the ground decal. A color of (0.5, 0.5, 0.5, 0.5) is effectively no tint
Spring.GetGroundDecalTint(integer) -> number?, number, number, number
Parameters
integer
decalID
Returns
Spring.GetGroundDecalMisc (function)
[source]
Returns less important parameters of a ground decal
Spring.GetGroundDecalMisc(integer) -> number?, number, number, number, number
Parameters
integer
decalID
Returns
number?
dotElimExpnumber
refHeightnumber
minHeightnumber
maxHeightnumber
forceHeightMode
Spring.GetGroundDecalCreationFrame (function)
[source]
Min can be not equal to max for “gradient” style decals, e.g. unit tracks
Spring.GetGroundDecalCreationFrame(integer) -> number?, number
Parameters
integer
decalID
Returns
number?
creationFrameMinnumber
creationFrameMax
Spring.GetGroundDecalOwner (function)
[source]Spring.GetGroundDecalOwner(integer) -> integer?
Parameters
integer
decalID
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.GetGroundDecalType (function)
[source]Spring.GetGroundDecalType(integer) -> ("explosion"|"plate"|"lua"|"track"|"unknown")?
Parameters
integer
decalID
Returns
("explosion"|"plate"|"lua"|"track"|"unknown")?
type
Spring.GetSyncedGCInfo (function)
[source]Spring.GetSyncedGCInfo(boolean?) -> number?
Parameters
boolean?
collectGC- (Default:
false
) collect before returning metric
Returns
number?
GC- values are expressed in Kbytes: #bytes/2^10
Spring.SolveNURBSCurve (function)
[source]Spring.SolveNURBSCurve(integer) -> number[]?
Parameters
integer
groupID
Returns
number[]?
unitIDs
Spring.IsCheatingEnabled (function)
[source]Spring.IsCheatingEnabled() -> boolean
Returns
boolean
enabled
Spring.IsGodModeEnabled (function)
[source]Spring.IsGodModeEnabled() -> boolean
Returns
boolean
enabled
Spring.IsDevLuaEnabled (function)
[source]Spring.IsDevLuaEnabled() -> boolean
Returns
boolean
enabled
Spring.IsEditDefsEnabled (function)
[source]Spring.IsEditDefsEnabled() -> boolean
Returns
boolean
enabled
Spring.IsNoCostEnabled (function)
[source]Spring.IsNoCostEnabled() -> boolean
Returns
boolean
enabled
Spring.GetGlobalLos (function)
[source]Spring.GetGlobalLos(integer?) -> boolean
Parameters
integer?
teamID
Returns
boolean
enabled
Spring.AreHelperAIsEnabled (function)
[source]Spring.AreHelperAIsEnabled() -> boolean
Returns
boolean
enabled
Spring.FixedAllies (function)
[source]Spring.FixedAllies() -> boolean?
Returns
boolean?
enabled
Spring.IsGameOver (function)
[source]Spring.IsGameOver() -> boolean
Returns
boolean
isGameOver
Spring.GetGameFrame (function)
[source]Spring.GetGameFrame() -> number, number
Returns
Spring.GetGameSeconds (function)
[source]Spring.GetGameSeconds() -> number
Returns
number
seconds
Spring.GetTidal (function)
[source]Spring.GetTidal() -> number
Returns
number
tidalStrength
Spring.GetWind (function)
[source]Spring.GetWind() -> number, number, number, number, number, number, number
Returns
number
windSpeedXnumber
windSpeedY- (Always 0)
number
windSpeedZnumber
windStrength- (Length of windSpeed)
number
windDirX- (Normalized windSpeed)
number
windDirY- (Always 0)
number
windDirZ
Spring.GetGameRulesParams (function)
[source]Spring.GetGameRulesParams() -> RulesParams
Returns
RulesParams
rulesParams- map with rules names as key and values as values
Spring.GetTeamRulesParams (function)
[source]Spring.GetTeamRulesParams(integer) -> RulesParams
Parameters
integer
teamID
Returns
RulesParams
rulesParams- map with rules names as key and values as values
Spring.GetPlayerRulesParams (function)
[source]Spring.GetPlayerRulesParams(integer) -> RulesParams
Parameters
integer
playerID
Returns
RulesParams
rulesParams- map with rules names as key and values as values
Spring.GetUnitRulesParams (function)
[source]Spring.GetUnitRulesParams(integer) -> RulesParams
Parameters
integer
unitID
Returns
RulesParams
rulesParams- map with rules names as key and values as values
Spring.GetFeatureRulesParams (function)
[source]Spring.GetFeatureRulesParams(integer) -> RulesParams
Parameters
integer
featureID
Returns
RulesParams
rulesParams- map with rules names as key and values as values
Spring.GetGameRulesParam (function)
[source]Spring.GetGameRulesParam((number|string)) -> number?
Parameters
(number|string)
ruleRef- the rule index or name
Returns
Spring.GetTeamRulesParam (function)
[source]Spring.GetTeamRulesParam(integer, (number|string)) -> (number|string)?
Parameters
Returns
(number|string)?
value
Spring.GetPlayerRulesParam (function)
[source]Spring.GetPlayerRulesParam(integer, (number|string)) -> (number|string)?
Parameters
Returns
(number|string)?
value
Spring.GetUnitRulesParam (function)
[source]Spring.GetUnitRulesParam(integer, (number|string)) -> (number|string)?
Parameters
Returns
(number|string)?
value
Spring.GetFeatureRulesParam (function)
[source]Spring.GetFeatureRulesParam(integer, (number|string)) -> (number|string)?
Parameters
Returns
(number|string)?
value
Spring.GetMapOption (function)
[source]Spring.GetMapOption(string) -> string
Parameters
string
mapOption
Returns
string
value- Value of
modOption
.
Spring.GetMapOptions (function)
[source]Spring.GetMapOptions() -> table<string,string>
Returns
table<string,string>
mapOptions- Table with options names as keys and values as values.
Spring.GetModOption (function)
[source]Spring.GetModOption(string) -> string
Parameters
string
modOption
Returns
string
value- Value of
modOption
.
Spring.GetModOptions (function)
[source]Spring.GetModOptions() -> table<string,string>
Returns
table<string,string>
modOptions- Table with options names as keys and values as values.
Spring.GetHeadingFromVector (function)
[source]Spring.GetHeadingFromVector(number, number) -> number
Parameters
Returns
number
heading
Spring.GetVectorFromHeading (function)
[source]Spring.GetVectorFromHeading(number) -> number, number
Parameters
number
heading
Returns
Spring.GetFacingFromHeading (function)
[source]Spring.GetFacingFromHeading(number) -> FacingInteger
Parameters
number
heading
Returns
Spring.GetHeadingFromFacing (function)
[source]Spring.GetHeadingFromFacing(FacingInteger) -> number
Parameters
Returns
number
heading
Spring.GetSideData (function)
[source]Spring.GetSideData(string) -> string?, string?
Parameters
string
sideName- Case-insensitive side name.
Returns
Spring.GetSideData (function overload 1)
[source]Spring.GetSideData(integer) -> string?, string?, string?
Parameters
integer
sideID
Returns
Spring.GetSideData (function overload 2)
[source]Spring.GetSideData() -> SideSpec[]
Returns
Spring.GetGaiaTeamID (function)
[source]Spring.GetGaiaTeamID() -> integer
Returns
integer
teamID
Spring.GetAllyTeamStartBox (function)
[source]Spring.GetAllyTeamStartBox(integer) -> number?, number?, number?, number?
Parameters
integer
allyID
Returns
Spring.GetTeamStartPosition (function)
[source]Spring.GetTeamStartPosition(integer) -> number?, number?, number?
Parameters
integer
teamID
Returns
Spring.GetMapStartPositions (function)
[source]Spring.GetMapStartPositions() -> float3[]
Returns
Spring.GetAllyTeamList (function)
[source]Spring.GetAllyTeamList() -> integer[]
Returns
integer[]
allyTeamIDs
Spring.GetTeamList (function)
Get all team IDs.
[source]
Spring.GetTeamList(unknown) -> number[]
Parameters
unknown
allyTeamID- (Default:
-1
)
Returns
number[]
teamIDs- List of team IDs.
Spring.GetTeamList (function overload 1)
Get team IDs in a specific ally team.
[source]
Spring.GetTeamList(integer) -> number[]?
Parameters
integer
allyTeamID- The ally team ID to filter teams by. A value less than 0 will return all teams.
Returns
number[]?
teamIDs- List of team IDs or
nil
ifallyTeamID
is invalid.
Spring.GetPlayerList (function)
[source]Spring.GetPlayerList(integer?, boolean?) -> number[]?
Parameters
integer?
teamID- (Default:
-1
) to filter by when >= 0 boolean?
active- (Default:
false
) whether to filter only active teams
Returns
number[]?
list- of playerIDs
Spring.GetTeamInfo (function)
[source]Spring.GetTeamInfo(integer, boolean?) -> integer?, number, number, number, string, number, number, table<string,string>
Parameters
integer
teamIDboolean?
getTeamKeys- (Default:
true
) whether to return the customTeamKeys table
Returns
integer?
teamIDnumber
leadernumber
isDeadnumber
hasAIstring
sidenumber
allyTeamnumber
incomeMultipliertable<string,string>
customTeamKeys- when getTeamKeys is true, otherwise nil
Spring.GetTeamAllyTeamID (function)
[source]Spring.GetTeamAllyTeamID(integer) -> integer?
Parameters
integer
teamID
Returns
integer?
allyTeamID
Spring.GetTeamResources (function)
[source]Spring.GetTeamResources(integer, ResourceName) -> number?, number, number, number, number, number, number, number, number
Parameters
integer
teamIDResourceName
resource
Returns
number?
currentLevelnumber
storagenumber
pullnumber
incomenumber
expensenumber
sharenumber
sentnumber
receivednumber
excess
Spring.GetTeamUnitStats (function)
[source]Spring.GetTeamUnitStats(integer) -> number?, number, number, number, number, number
Parameters
integer
teamID
Returns
number?
killednumber
diednumber
capturedBynumber
capturedFromnumber
receivednumber
sent
Spring.GetTeamResourceStats (function)
[source]Spring.GetTeamResourceStats(integer, ResourceName) -> number?, number, number, number, number
Parameters
integer
teamIDResourceName
resource
Returns
Spring.GetTeamDamageStats (function)
Gets team damage dealt/received totals
[source]
Returns a team’s damage stats. Note that all damage is counted, including self-inflicted and unconfirmed out-of-sight.
Spring.GetTeamDamageStats(integer) -> number, number
Parameters
integer
teamID
Returns
number
damageDealtnumber
damageReceived
Spring.GetTeamStatsHistory (function)
Get the number of history entries.
[source]
Spring.GetTeamStatsHistory(integer) -> integer?
Parameters
integer
teamID
Returns
integer?
historyCount- The number of history entries, or
nil
if unable to resolve team.
Spring.GetTeamStatsHistory (function overload 1)
Get team stats history.
[source]
Spring.GetTeamStatsHistory(integer, integer, integer?) -> TeamStats[]
Parameters
integer
teamIDinteger
startIndexinteger?
endIndex- (Default: startIndex)
Returns
Spring.GetTeamLuaAI (function)
[source]Spring.GetTeamLuaAI(integer) -> string
Parameters
integer
teamID
Returns
Spring.GetTeamMaxUnits (function)
Returns a team’s unit cap.
Also returns the current unit count for readable teams as the 2nd value.
[source]
Spring.GetTeamMaxUnits(integer) -> number, number?
Parameters
integer
teamID
Returns
number
maxUnitsnumber?
currentUnits
Spring.GetPlayerInfo (function)
[source]Spring.GetPlayerInfo(integer, boolean?) -> string, boolean, boolean, integer, integer, number, number, string, number, boolean, { [string]: string }, boolean
Parameters
integer
playerIDboolean?
getPlayerOpts- (Default:
true
) whether to return custom player options
Returns
string
nameboolean
activeboolean
spectatorinteger
teamIDinteger
allyTeamIDnumber
pingTimenumber
cpuUsagestring
countrynumber
rankboolean
hasSkirmishAIsInTeam{ [string]: string }
playerOpts- when playerOpts is true
boolean
desynced
Spring.GetPlayerControlledUnit (function)
Returns unit controlled by player on FPS mode
[source]
Spring.GetPlayerControlledUnit(integer) -> number?
Parameters
integer
playerID
Returns
Spring.GetAIInfo (function)
[source]Spring.GetAIInfo(integer) -> integer, string, integer, string, string, table<string,string>
Parameters
integer
teamID
Returns
integer
skirmishAIIDstring
nameinteger
hostingPlayerIDstring
shortName- When synced
“SYNCED_NOSHORTNAME”
, otherwise the AI shortname or“UNKNOWN”
. string
version- When synced
“SYNCED_NOVERSION”
, otherwise the AI version or“UNKNOWN”
. table<string,string>
options
Spring.GetAllyTeamInfo (function)
[source]Spring.GetAllyTeamInfo(integer) -> table<string,string>?
Parameters
integer
allyTeamID
Returns
Spring.AreTeamsAllied (function)
[source]Spring.AreTeamsAllied(number, number) -> boolean?
Parameters
Returns
Spring.ArePlayersAllied (function)
[source]Spring.ArePlayersAllied(number, number) -> boolean?
Parameters
Returns
Spring.GetAllUnits (function)
Get a list of all unitIDs
[source]
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() -> number[]
Returns
number[]
unitIDs
Spring.GetTeamUnits (function)
[source]Spring.GetTeamUnits(integer) -> number[]?
Parameters
integer
teamID
Returns
number[]?
unitIDs
Spring.GetTeamUnitsSorted (function)
[source]Spring.GetTeamUnitsSorted(integer) -> table<integer,integer>
Parameters
integer
teamID
Returns
table<integer,integer>
unitsByDef- A table where keys are unitDefIDs and values are unitIDs
Spring.GetTeamUnitsCounts (function)
[source]Spring.GetTeamUnitsCounts(integer) -> table<number,number>?
Parameters
integer
teamID
Returns
table<number,number>?
countByUnit- A table where keys are unitDefIDs and values are counts.
Spring.GetTeamUnitsByDefs (function)
[source]Spring.GetTeamUnitsByDefs(integer, (number|number[])) -> number[]?
Parameters
integer
teamID(number|number[])
unitDefIDs
Returns
number[]?
unitIDs
Spring.GetTeamUnitDefCount (function)
[source]Spring.GetTeamUnitDefCount(integer, integer) -> number?
Parameters
Returns
number?
count
Spring.GetTeamUnitCount (function)
[source]Spring.GetTeamUnitCount(integer) -> number?
Parameters
integer
teamID
Returns
number?
count
Spring.GetUnitsInRectangle (function)
[source]Spring.GetUnitsInRectangle(number, number, number, number, number?) -> number[]
Parameters
number
xminnumber
zminnumber
xmaxnumber
zmaxnumber?
allegiance
Returns
number[]
unitIDs
Spring.GetUnitsInBox (function)
[source]Spring.GetUnitsInBox(number, number, number, number, number, number, number?) -> number[]
Parameters
Returns
number[]
unitIDs
Spring.GetUnitsInCylinder (function)
[source]Spring.GetUnitsInCylinder(number, number, number) -> number[]
Parameters
Returns
number[]
unitIDs
Spring.GetUnitsInSphere (function)
[source]Spring.GetUnitsInSphere(number, number, number, number) -> number[]
Parameters
Returns
number[]
unitIDs
Spring.GetUnitsInPlanes (function)
[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?) -> integer[]
Parameters
Plane[]
planesinteger?
allegiance
Returns
integer[]
unitIDs
Spring.GetUnitArrayCentroid (function)
Returns the centroid of an array of units
Returns nil for an empty array
[source]
Spring.GetUnitArrayCentroid(table) -> number, number, number
Parameters
table
units- { unitID, unitID, … }
Returns
Spring.GetUnitMapCentroid (function)
Returns the centroid of a map of units
Returns nil for an empty map
[source]
Spring.GetUnitMapCentroid(table) -> number, number, number
Parameters
table
units- { [unitID] = true, [unitID] = true, … }
Returns
Spring.GetUnitNearestAlly (function)
[source]Spring.GetUnitNearestAlly(integer, number?) -> integer?
Parameters
Returns
integer?
unitID
Spring.GetUnitNearestEnemy (function)
[source]Spring.GetUnitNearestEnemy(integer, number?, boolean?) -> integer?
Parameters
Returns
integer?
unitID
Spring.GetFeaturesInRectangle (function)
[source]Spring.GetFeaturesInRectangle(number, number, number, number) -> number[]
Parameters
Returns
number[]
featureIDs
Spring.GetFeaturesInSphere (function)
[source]Spring.GetFeaturesInSphere(number, number, number, number) -> number[]
Parameters
Returns
number[]
featureIDs
Spring.GetFeaturesInCylinder (function)
[source]Spring.GetFeaturesInCylinder(number, number, number, number?) -> number[]
Parameters
number
xnumber
znumber
radiusnumber?
allegiance
Returns
number[]
featureIDs
Spring.GetProjectilesInRectangle (function)
[source]Spring.GetProjectilesInRectangle(number, number, number, number, boolean?, boolean?) -> number[]
Parameters
number
xminnumber
zminnumber
xmaxnumber
zmaxboolean?
excludeWeaponProjectiles- (Default:
false
) boolean?
excludePieceProjectiles- (Default:
false
)
Returns
number[]
projectileIDs
Spring.GetProjectilesInSphere (function)
[source]Spring.GetProjectilesInSphere(number, number, number, number, boolean?, boolean?) -> number[]
Parameters
number
xnumber
ynumber
znumber
radiusboolean?
excludeWeaponProjectiles- (Default: false)
boolean?
excludePieceProjectiles- (Default: false)
Returns
number[]
projectileIDs
Spring.ValidUnitID (function)
Get whether a unitID is valid
Dead units are not valid.
[source]
Spring.ValidUnitID(integer) -> boolean
Parameters
integer
unitID
Returns
Spring.GetUnitStates (function)
[source]Spring.GetUnitStates(integer) -> UnitState
Parameters
integer
unitID
Returns
Spring.GetUnitArmored (function)
[source]Spring.GetUnitArmored(integer) -> boolean?, number
Parameters
integer
unitID
Returns
boolean?
armorednumber
armorMultiple
Spring.GetUnitIsActive (function)
[source]Spring.GetUnitIsActive(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
isActive
Spring.GetUnitIsCloaked (function)
[source]Spring.GetUnitIsCloaked(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
isCloaked
Spring.GetUnitSeismicSignature (function)
[source]Spring.GetUnitSeismicSignature(integer) -> number?
Parameters
integer
unitID
Returns
number?
seismicSignature
Spring.GetUnitLeavesGhost (function)
Get whether unit leaves static radar ghosts.
[source]
Spring.GetUnitLeavesGhost() -> number?
Returns
Spring.GetUnitSelfDTime (function)
[source]Spring.GetUnitSelfDTime(integer) -> integer?
Parameters
integer
unitID
Returns
integer?
selfDTime
Spring.GetUnitStockpile (function)
[source]Spring.GetUnitStockpile(integer) -> integer?, integer?, number?
Parameters
integer
unitID
Returns
integer?
numStockpiledinteger?
numStockpileQuednumber?
buildPercent
Spring.GetUnitSensorRadius (function)
[source]Spring.GetUnitSensorRadius(integer, string) -> number?
Parameters
Returns
number?
radius
Spring.GetUnitPosErrorParams (function)
[source]Spring.GetUnitPosErrorParams(integer, integer?) -> number?, number, number, number, number, number, number, boolean
Parameters
integer
unitIDinteger?
allyTeamID
Returns
number?
posErrorVectorXnumber
posErrorVectorYnumber
posErrorVectorZnumber
posErrorDeltaXnumber
posErrorDeltaYnumber
posErrorDeltaZnumber
nextPosErrorUpdatebaseErrorMultboolean
posErrorBit
Spring.GetUnitTooltip (function)
[source]Spring.GetUnitTooltip(integer) -> string?
Parameters
integer
unitID
Returns
Spring.GetUnitDefID (function)
[source]Spring.GetUnitDefID(integer) -> number?
Parameters
integer
unitID
Returns
Spring.GetUnitTeam (function)
[source]Spring.GetUnitTeam(integer) -> number?
Parameters
integer
unitID
Returns
Spring.GetUnitAllyTeam (function)
[source]Spring.GetUnitAllyTeam(integer) -> number?
Parameters
integer
unitID
Returns
Spring.GetUnitNeutral (function)
Checks if a unit is neutral (NOT Gaia!)
[source]
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(integer) -> boolean?
Parameters
integer
unitID
Returns
Spring.GetUnitHealth (function)
[source]Spring.GetUnitHealth(integer) -> number?, number, number, number, number
Parameters
integer
unitID
Returns
number?
healthnumber
maxHealthnumber
paralyzeDamagenumber
captureProgressnumber
buildProgress- between 0.0-1.0
Spring.GetUnitIsDead (function)
[source]Spring.GetUnitIsDead(integer) -> boolean?
Parameters
integer
unitID
Returns
Spring.GetUnitIsStunned (function)
Checks whether a unit is disabled and can’t act
The first return value is a simple OR of the following ones, any of those conditions is sufficient to disable the unit.
Note that EMP and being transported are mechanically the same and thus lumped together. Use other callouts to differentiate them if you need to.
[source]
Spring.GetUnitIsStunned(integer) -> boolean?, boolean, boolean
Parameters
integer
unitID
Returns
boolean?
stunnedOrBuilt- unit is disabled
boolean
stunned- unit is either stunned via EMP or being transported by a non-fireplatform
boolean
beingBuilt- unit is under construction
Spring.GetUnitIsBeingBuilt (function)
[source]Spring.GetUnitIsBeingBuilt(integer) -> boolean, number
Parameters
integer
unitID
Returns
boolean
beingBuiltnumber
buildProgress
Spring.GetUnitResources (function)
[source]Spring.GetUnitResources(integer) -> number?, number, number, number
Parameters
integer
unitID
Returns
number?
metalMakenumber
metalUsenumber
energyMakenumber
energyUse
Spring.GetUnitStorage (function)
[source]Spring.GetUnitStorage(integer) -> number, number
Parameters
integer
unitID
Returns
Spring.GetUnitCosts (function)
[source]Spring.GetUnitCosts(integer) -> number?, number, number
Parameters
integer
unitID
Returns
number?
buildTimenumber
metalCostnumber
energyCost
Spring.GetUnitCostTable (function)
[source]Spring.GetUnitCostTable(integer) -> ResourceCost?, number?
Parameters
integer
unitID
Returns
ResourceCost?
cost- The cost of the unit, or
nil
if invalid. number?
buildTime- The build time the unit, or
nil
if invalid.
Spring.GetUnitMetalExtraction (function)
[source]Spring.GetUnitMetalExtraction(integer) -> number?
Parameters
integer
unitID
Returns
number?
metalExtraction
Spring.GetUnitExperience (function)
[source]Spring.GetUnitExperience(integer) -> number, number
Parameters
integer
unitID
Returns
Spring.GetUnitHeight (function)
[source]Spring.GetUnitHeight(integer) -> number?
Parameters
integer
unitID
Returns
Spring.GetUnitRadius (function)
[source]Spring.GetUnitRadius(integer) -> number?
Parameters
integer
unitID
Returns
Spring.GetUnitBuildeeRadius (function)
[source]
Gets the unit’s radius for when targeted by build, repair, reclaim-type commands.
Spring.GetUnitBuildeeRadius(integer) -> number?
Parameters
integer
unitID
Returns
Spring.GetUnitMass (function)
[source]Spring.GetUnitMass(integer) -> number?
Parameters
integer
unitID
Returns
Spring.GetUnitPosition (function)
[source]Spring.GetUnitPosition(integer, boolean?, boolean?) -> number?, number, number, number?, number, number, number?, number, number
Parameters
integer
unitIDboolean?
midPos- (Default:
false
) return midpoint as well boolean?
aimPos- (Default:
false
) return aimpoint as well
Returns
number?
basePointXnumber
basePointYnumber
basePointZnumber?
midPointXnumber
midPointYnumber
midPointZnumber?
aimPointXnumber
aimPointYnumber
aimPointZ
Spring.GetUnitBasePosition (function)
[source]
The same as Spring.GetUnitPosition, but without the optional midpoint calculations.
Spring.GetUnitBasePosition(integer) -> number?, number?, number?
Parameters
integer
unitID
Returns
Spring.GetUnitVectors (function)
[source]Spring.GetUnitVectors(integer) -> float3?, float3, float3
Parameters
integer
unitID
Returns
Spring.GetUnitRotation (function)
[source]
Note: PYR order
Spring.GetUnitRotation(integer) -> number, number, number
Parameters
integer
unitID
Returns
Spring.GetUnitDirection (function)
[source]Spring.GetUnitDirection(integer) -> number, number, number, number, number, number, number, number, number
Parameters
integer
unitID
Returns
number
frontDirXnumber
frontDirYnumber
frontDirZnumber
rightDirXnumber
rightDirYnumber
rightDirZnumber
upDirXnumber
upDirYnumber
upDirZ
Spring.GetUnitHeading (function)
[source]Spring.GetUnitHeading(integer, boolean?) -> number
Parameters
integer
unitIDboolean?
convertToRadians- (Default:
false
)
Returns
number
heading
Spring.GetUnitVelocity (function)
[source]Spring.GetUnitVelocity(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitBuildFacing (function)
[source]Spring.GetUnitBuildFacing(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitIsBuilding (function)
Checks whether a unit is currently building another (NOT for checking if it’s a structure)
[source]
Works for both mobile builders and factories.
Spring.GetUnitIsBuilding(integer) -> integer
Parameters
integer
unitID
Returns
integer
buildeeUnitID- or nil
Spring.GetUnitWorkerTask (function)
Checks a builder’s current task
[source]
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(integer) -> integer, integer
Parameters
integer
unitID
Returns
Spring.GetUnitEffectiveBuildRange (function)
[source]
Useful for setting move goals manually.
Spring.GetUnitEffectiveBuildRange(integer, integer) -> number
Parameters
integer
unitIDinteger
buildeeDefID- or nil
Returns
number
effectiveBuildRange- counted to the center of prospective buildee; buildRange if buildee nil
Spring.GetUnitCurrentBuildPower (function)
[source]Spring.GetUnitCurrentBuildPower(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitHarvestStorage (function)
Get a unit’s carried resources
[source]
Checks resources being carried internally by the unit.
Spring.GetUnitHarvestStorage(integer) -> number, number, number, number
Parameters
integer
unitID
Returns
number
storedMetalnumber
maxStoredMetalnumber
storedEnergynumber
maxStoredEnergy
Spring.GetUnitBuildParams (function)
[source]Spring.GetUnitBuildParams(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitInBuildStance (function)
Is builder in build stance
[source]
Checks if a builder is in build stance, i.e. can create nanoframes. Returns nil for non-builders.
Spring.GetUnitInBuildStance(integer) -> boolean
Parameters
integer
unitID
Returns
boolean
inBuildStance
Spring.GetUnitNanoPieces (function)
Get construction FX attachment points
[source]
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(integer) -> integer[]
Parameters
integer
unitID
Returns
integer[]
pieceArray
Spring.GetUnitTransporter (function)
Get the transport carrying the unit
[source]
Returns the unit ID of the transport, if any. Returns nil if the unit is not being transported.
Spring.GetUnitTransporter(integer) -> integer?
Parameters
integer
unitID
Returns
integer?
transportUnitID
Spring.GetUnitIsTransporting (function)
Get units being transported
[source]
Spring.GetUnitIsTransporting(integer) -> integer[]?
Parameters
integer
unitID
Returns
integer[]?
transporteeArray
Spring.GetUnitShieldState (function)
[source]Spring.GetUnitShieldState(integer, number?) -> number, number
Parameters
Returns
number
isEnabled- Warning, number not boolean. 0 or 1
number
currentPower
Spring.GetUnitFlanking (function)
[source]Spring.GetUnitFlanking(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitMaxRange (function)
Get a unit’s engagement range
[source]
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(integer) -> number
Parameters
integer
unitID
Returns
number
maxRange
Spring.GetUnitWeaponState (function)
Check the state of a unit’s weapon
[source]
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(integer, number, string) -> number
Parameters
Returns
number
stateValue
Spring.GetUnitWeaponDamages (function)
[source]Spring.GetUnitWeaponDamages(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitWeaponVectors (function)
[source]Spring.GetUnitWeaponVectors(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitWeaponTryTarget (function)
[source]Spring.GetUnitWeaponTryTarget(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitWeaponTestTarget (function)
[source]Spring.GetUnitWeaponTestTarget(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitWeaponTestRange (function)
[source]Spring.GetUnitWeaponTestRange(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitWeaponHaveFreeLineOfFire (function)
[source]Spring.GetUnitWeaponHaveFreeLineOfFire(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitWeaponCanFire (function)
[source]Spring.GetUnitWeaponCanFire(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitWeaponTarget (function)
Checks a weapon’s target
Note that this doesn’t need to reflect the unit’s Attack orders or such, and that weapons can aim individually unless slaved.
[source]
Spring.GetUnitWeaponTarget(integer, integer) -> 0, boolean
Parameters
Returns
0
TargetType- none
boolean
isUserTarget
Spring.GetUnitWeaponTarget (function overload 1)
Checks a weapon’s target
Note that this doesn’t need to reflect the unit’s Attack orders or such, and that weapons can aim individually unless slaved.
[source]
Spring.GetUnitWeaponTarget(integer, integer) -> 1, boolean, integer
Parameters
Returns
1
TargetType- unit
boolean
isUserTargetinteger
targetUnitID
Spring.GetUnitWeaponTarget (function overload 2)
Checks a weapon’s target
Note that this doesn’t need to reflect the unit’s Attack orders or such, and that weapons can aim individually unless slaved.
[source]
Spring.GetUnitWeaponTarget(integer, integer) -> 2, boolean, float3
Parameters
Returns
2
TargetType- position
boolean
isUserTargetfloat3
targetPosition
Spring.GetUnitWeaponTarget (function overload 3)
Checks a weapon’s target
Note that this doesn’t need to reflect the unit’s Attack orders or such, and that weapons can aim individually unless slaved.
[source]
Spring.GetUnitWeaponTarget(integer, integer) -> 3, boolean, integer
Parameters
Returns
3
TargetType- projectileID
boolean
isUserTargetinteger
targetProjectileId
Spring.GetUnitEstimatedPath (function)
[source]Spring.GetUnitEstimatedPath(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitLastAttacker (function)
[source]Spring.GetUnitLastAttacker(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitLastAttackedPiece (function)
[source]Spring.GetUnitLastAttackedPiece(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitCollisionVolumeData (function)
[source]Spring.GetUnitCollisionVolumeData(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitSeparation (function)
[source]Spring.GetUnitSeparation(number, number, boolean?, boolean?) -> number?
Parameters
number
unitID1number
unitID2boolean?
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)
[source]Spring.GetUnitFeatureSeparation(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitDefDimensions (function)
[source]Spring.GetUnitDefDimensions(integer) -> UnitDefDimensions?
Parameters
integer
unitDefID
Returns
Spring.GetCEGID (function)
[source]Spring.GetCEGID() -> nil
Spring.GetUnitBlocking (function)
[source]Spring.GetUnitBlocking(integer) -> boolean?, boolean, boolean, boolean, boolean, boolean, boolean
Parameters
integer
unitID
Returns
boolean?
isBlockingboolean
isSolidObjectCollidableboolean
isProjectileCollidableboolean
isRaySegmentCollidableboolean
crushableboolean
blockEnemyPushingboolean
blockHeightChanges
Spring.GetUnitMoveTypeData (function)
[source]Spring.GetUnitMoveTypeData(integer) -> nil
Parameters
integer
unitID
Spring.GetUnitCurrentCommand (function)
Get a command from a units command queue.
For factories, this function uses the command queue automatically assigned to new units.
[source]
See Spring.GetFactoryCommands for getting factory build queue commands
Spring.GetUnitCurrentCommand(integer, integer?) -> CMD?, (integer|CommandOptionBit)?, integer?, number? ...
Parameters
integer
unitID- 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)
Get the commands for a unit.
[source]
Same as Spring.GetCommandQueue
Spring.GetUnitCommands(integer, integer) -> Command[]
Parameters
Returns
Spring.GetUnitCommands (function overload 1)
Get the count of commands for a unit.
[source]
Deprecated: This overload is deprecated, use Spring.GetUnitCommandCount(unitId)
instead.
Spring.GetUnitCommands(integer, 0) -> integer
Parameters
Returns
integer
The- number of commands in the unit queue.
Spring.GetFactoryCommands (function)
Get the number or list of commands for a factory
[source]
See Spring.GetFactoryCounts to get command counts grouped by cmdID.
Spring.GetFactoryCommands(integer, integer) -> Command[]
Parameters
Returns
Spring.GetFactoryCommands (function overload 1)
Get the count of commands for a factory.
[source]
Deprecated: This overload is deprecated, use Spring.GetFactoryCommandCount(unitId)
instead.
See Spring.GetFactoryCommandCount for replacement function.
Spring.GetFactoryCommands(integer, 0) -> integer
Parameters
Returns
integer
The- number of commands in the factory queue.
Spring.GetUnitCommandCount (function)
Get the number of commands in a unit’s queue.
[source]
Spring.GetUnitCommandCount(integer) -> integer
Parameters
integer
unitID
Returns
integer
The- number of commands in the unit’s queue.
Spring.GetFactoryCommandCount (function)
Get the number of commands in a factory queue.
[source]
See Spring.GetFactoryCounts to get command counts grouped by cmdID.
Spring.GetFactoryCommandCount(integer) -> integer
Parameters
integer
unitID
Returns
integer
The- number of commands in the factory queue.
Spring.GetFactoryBuggerOff (function)
[source]Spring.GetFactoryBuggerOff(integer) -> nil
Parameters
integer
unitID
Spring.GetFactoryCounts (function)
Gets the build queue of a factory
[source]
Spring.GetFactoryCounts(integer, integer?, boolean?) -> table<number,number>?
Parameters
integer
unitIDinteger?
count- (Default:
-1
) Number of commands to retrieve,-1
for all. boolean?
addCmds- (Default:
false
) Retrieve commands other than buildunit
Returns
table<number,number>?
counts- Build queue count by
unitDefID
or-cmdID
, ornil
if unit is not found.
Spring.GetCommandQueue (function)
Get the commands for a unit.
[source]
Same as Spring.GetUnitCommands
Deprecated: Use Spring.GetUnitCommands instead.
Spring.GetCommandQueue(integer, integer) -> Command[]
Parameters
integer
unitIDinteger
count- Number of commands to return,
-1
returns all commands,0
returns command count.
Returns
Spring.GetCommandQueue (function overload 1)
Get the count of commands for a unit.
[source]
Same as Spring.GetUnitCommands
Deprecated: Use Spring.GetUnitCommandCount instead.
Spring.GetCommandQueue(integer, 0) -> integer
Parameters
Returns
integer
cmdCount- The number of commands in the unit queue.
Spring.GetFullBuildQueue (function)
Returns the build queue
[source]
Spring.GetFullBuildQueue(integer) -> table<number,number>?
Parameters
integer
unitID
Returns
table<number,number>?
buildqueue- indexed by unitDefID with count values
Spring.GetRealBuildQueue (function)
Returns the build queue cleaned of things the unit can’t build itself
[source]
Spring.GetRealBuildQueue(integer) -> table<number,number>?
Parameters
integer
unitID
Returns
table<number,number>?
buildqueue- indexed by unitDefID with count values
Spring.GetUnitCmdDescs (function)
[source]Spring.GetUnitCmdDescs(integer) -> nil
Parameters
integer
unitID
Spring.FindUnitCmdDesc (function)
[source]Spring.FindUnitCmdDesc(integer) -> nil
Parameters
integer
unitID
Spring.ValidFeatureID (function)
[source]Spring.ValidFeatureID(integer) -> boolean
Parameters
integer
featureID
Returns
Spring.GetAllFeatures (function)
[source]Spring.GetAllFeatures() -> integer[]
Returns
integer[]
featureIDs
Spring.GetFeatureDefID (function)
[source]Spring.GetFeatureDefID(integer) -> number?
Parameters
integer
featureID
Returns
Spring.GetFeatureTeam (function)
[source]Spring.GetFeatureTeam(integer) -> number?
Parameters
integer
featureID
Returns
Spring.GetFeatureAllyTeam (function)
[source]Spring.GetFeatureAllyTeam(integer) -> number?
Parameters
integer
featureID
Returns
Spring.GetFeatureHealth (function)
[source]Spring.GetFeatureHealth(integer) -> number?, number, number
Parameters
integer
featureID
Returns
number?
healthnumber
defHealthnumber
resurrectProgress
Spring.GetFeatureHeight (function)
[source]Spring.GetFeatureHeight(integer) -> number?
Parameters
integer
featureID
Returns
Spring.GetFeatureRadius (function)
[source]Spring.GetFeatureRadius(integer) -> number?
Parameters
integer
featureID
Returns
Spring.GetFeatureMass (function)
[source]Spring.GetFeatureMass(integer) -> number?
Parameters
integer
featureID
Returns
Spring.GetFeaturePosition (function)
[source]Spring.GetFeaturePosition(integer) -> number?, number?, number?
Parameters
integer
featureID
Returns
Spring.GetFeatureSeparation (function)
[source]Spring.GetFeatureSeparation(number, number, boolean?) -> number?
Parameters
number
featureID1number
featureID2boolean?
direction- (Default:
false
) to subtract from, default featureID1 - featureID2
Returns
Spring.GetFeatureRotation (function)
[source]
Note: PYR order
Spring.GetFeatureRotation(integer) -> number?, number?, number?
Parameters
integer
featureID
Returns
Spring.GetFeatureDirection (function)
[source]Spring.GetFeatureDirection(integer) -> number?, number?, number?, number?, number?, number?, number?, number?, number?
Parameters
integer
featureID
Returns
number?
frontDirXnumber?
frontDirYnumber?
frontDirZnumber?
rightDirXnumber?
rightDirYnumber?
rightDirZnumber?
upDirXnumber?
upDirYnumber?
upDirZ
Spring.GetFeatureVelocity (function)
[source]
Returns nil if no feature found with ID.
Spring.GetFeatureVelocity(integer) -> number?, number?, number?, number?
Parameters
integer
featureID
Returns
Spring.GetFeatureHeading (function)
[source]Spring.GetFeatureHeading(integer) -> nil
Parameters
integer
featureID
Spring.GetFeatureResources (function)
[source]Spring.GetFeatureResources(integer) -> number?, number, number, number, number, number
Parameters
integer
featureID
Returns
number?
metalnumber
defMetalnumber
energynumber
defEnergynumber
reclaimLeftnumber
reclaimTime
Spring.GetFeatureBlocking (function)
[source]Spring.GetFeatureBlocking(integer) -> boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?
Parameters
integer
featureID
Returns
boolean?
isBlockingboolean?
isSolidObjectCollidableboolean?
isProjectileCollidableboolean?
isRaySegmentCollidableboolean?
crushableboolean?
blockEnemyPushingboolean?
blockHeightChanges
Spring.GetFeatureNoSelect (function)
[source]Spring.GetFeatureNoSelect(integer) -> boolean?
Parameters
integer
featureID
Returns
Spring.GetFeatureResurrect (function)
[source]
Returns nil if no feature found with ID.
Spring.GetFeatureResurrect(integer) -> (string|"")?, FacingInteger
Parameters
integer
featureID
Returns
(string|"")?
featureDefNameFacingInteger
buildFacing- facing of footprint, 0 - 3
Spring.GetFeatureLastAttackedPiece (function)
[source]Spring.GetFeatureLastAttackedPiece(integer) -> (string|"")?, integer?
Parameters
integer
featureID
Returns
Spring.GetFeatureCollisionVolumeData (function)
[source]Spring.GetFeatureCollisionVolumeData(integer) -> CollisionVolumeData?
Parameters
integer
featureID
Returns
Spring.GetFeaturePieceCollisionVolumeData (function)
[source]Spring.GetFeaturePieceCollisionVolumeData(integer) -> CollisionVolumeData?
Parameters
integer
featureID
Returns
Spring.GetProjectilePosition (function)
[source]Spring.GetProjectilePosition(integer) -> number?, number?, number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileDirection (function)
[source]Spring.GetProjectileDirection(integer) -> number?, number?, number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileVelocity (function)
[source]Spring.GetProjectileVelocity(integer) -> number?, number?, number?, number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileGravity (function)
[source]Spring.GetProjectileGravity(integer) -> number?
Parameters
integer
projectileID
Returns
Spring.GetPieceProjectileParams (function)
[source]Spring.GetPieceProjectileParams(integer) -> number?, number, number, number, number, number
Parameters
integer
projectileID
Returns
number?
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
number
spinAnglenumber
spinSpeednumber
spinVectorXnumber
spinVectorYnumber
spinVectorZ
Spring.GetProjectileTarget (function)
[source]Spring.GetProjectileTarget(integer) -> number?, (number|float3)
Parameters
integer
projectileID
Returns
number?
targetTypeInt- where string.byte(‘g’) := GROUND string.byte(‘u’) := UNIT string.byte(‘f’) := FEATURE string.byte(‘p’) := PROJECTILE
(number|float3)
target- targetID or targetPos when targetTypeInt == string.byte(‘g’)
Spring.GetProjectileIsIntercepted (function)
[source]Spring.GetProjectileIsIntercepted(integer) -> boolean?
Parameters
integer
projectileID
Returns
Spring.GetProjectileTimeToLive (function)
[source]Spring.GetProjectileTimeToLive(integer) -> number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileOwnerID (function)
[source]Spring.GetProjectileOwnerID(integer) -> number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileTeamID (function)
[source]Spring.GetProjectileTeamID(integer) -> number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileAllyTeamID (function)
[source]Spring.GetProjectileAllyTeamID(integer) -> number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileType (function)
[source]Spring.GetProjectileType(integer) -> boolean?, boolean
Parameters
integer
projectileID
Returns
Spring.GetProjectileDefID (function)
[source]
Using this to get a weaponDefID is HIGHLY preferred to indexing WeaponDefNames via GetProjectileName
Spring.GetProjectileDefID(integer) -> number?
Parameters
integer
projectileID
Returns
Spring.GetProjectileDamages (function)
[source]Spring.GetProjectileDamages(integer, string) -> number?
Parameters
integer
projectileIDstring
tagone of: “paralyzeDamageTime” “impulseFactor” “impulseBoost” “craterMult” “craterBoost” “dynDamageExp” “dynDamageMin” “dynDamageRange” “dynDamageInverted” “craterAreaOfEffect” “damageAreaOfEffect” “edgeEffectiveness” “explosionSpeed”
- or - an armor type index to get the damage against it.
Returns
Spring.IsPosInMap (function)
[source]Spring.IsPosInMap(number, number) -> boolean, boolean
Parameters
Returns
boolean
inPlayArea- whether the position is in the active play area
boolean
inMap- whether the position is in the full map area (currently this is the same as above)
Spring.GetGroundHeight (function)
Get ground height
On sea, this returns the negative depth of the seafloor
[source]
Spring.GetGroundHeight(number, number) -> number
Parameters
Returns
Spring.GetWaterPlaneLevel (function)
Get water plane height
Water may at some point become shaped (rivers etc) but for now it is always a flat plane. Use this function instead of GetWaterLevel to denote you are relying on that assumption.
[source]
Spring.GetWaterPlaneLevel() -> number
Returns
number
waterPlaneLevel
Spring.GetWaterLevel (function)
Get water level in a specific position
Water is currently a flat plane, so this returns the same value regardless of XZ. However water may become more dynamic at some point so by using this you are future-proof.
[source]
Spring.GetWaterLevel(number, number) -> number
Parameters
Returns
number
waterLevel
Spring.GetGroundOrigHeight (function)
Get ground height as it was at game start
Returns the original height before the ground got deformed
[source]
Spring.GetGroundOrigHeight(number, number) -> number
Parameters
Returns
Spring.GetGroundNormal (function)
[source]Spring.GetGroundNormal(number, number, boolean?) -> number, number, number, number
Parameters
Returns
Spring.GetGroundInfo (function)
[source]Spring.GetGroundInfo(number, number) -> number, number, number, string, number, number, number, number, number, number, boolean
Parameters
Returns
number
ixnumber
iznumber
terrainTypeIndexstring
namenumber
metalExtractionnumber
hardnessnumber
tankSpeednumber
kbotSpeednumber
hoverSpeednumber
shipSpeedboolean
receiveTracks
Spring.GetGroundBlocked (function)
[source]Spring.GetGroundBlocked() -> nil
Spring.GetGroundExtremes (function)
[source]Spring.GetGroundExtremes() -> number, number, number, number
Returns
number
initMinHeightnumber
initMaxHeightnumber
currMinHeightnumber
currMaxHeight
Spring.GetTerrainTypeData (function)
[source]Spring.GetTerrainTypeData(number) -> number, string, number, number, number, number, number, boolean
Parameters
number
terrainTypeInfo
Returns
number
indexstring
namenumber
hardnessnumber
tankSpeednumber
kbotSpeednumber
hoverSpeednumber
shipSpeedboolean
receiveTracks
Spring.GetGrass (function)
[source]Spring.GetGrass(number, number) -> number
Parameters
Returns
Spring.GetSmoothMeshHeight (function)
[source]Spring.GetSmoothMeshHeight(number, number) -> number
Parameters
Returns
number
height
Spring.TestMoveOrder (function)
[source]Spring.TestMoveOrder(integer, number, number, number, number?, number?, number?, boolean?, boolean?, boolean?) -> boolean
Parameters
integer
unitDefIDnumber
posXnumber
posYnumber
posZnumber?
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)
[source]Spring.TestBuildOrder(integer, number, number, number, Facing) -> BuildOrderBlockedStatus, integer?
Parameters
Returns
BuildOrderBlockedStatus
blockinginteger?
featureID- A reclaimable feature in the way.
Spring.Pos2BuildPos (function)
Snaps a position to the building grid
[source]
Spring.Pos2BuildPos(integer, number, number, number, number?) -> number, number, number
Parameters
integer
unitDefIDnumber
posXnumber
posYnumber
posZnumber?
buildFacing- (Default:
0
) one of SOUTH = 0, EAST = 1, NORTH = 2, WEST = 3
Returns
Spring.ClosestBuildPos (function)
[source]Spring.ClosestBuildPos(integer, integer, number, number, number, number, number, number) -> number, number, number
Parameters
integer
teamIDinteger
unitDefIDnumber
posXnumber
posYnumber
posZnumber
searchRadiusnumber
minDistancenumber
buildFacing- one of SOUTH = 0, EAST = 1, NORTH = 2, WEST = 3
Returns
Spring.GetPositionLosState (function)
[source]Spring.GetPositionLosState(number, number, number, integer?) -> boolean, boolean, boolean, boolean
Parameters
number
posXnumber
posYnumber
posZinteger?
allyTeamID
Returns
boolean
inLosOrRadarboolean
inLosboolean
inRadarboolean
inJammer
Spring.IsPosInLos (function)
[source]Spring.IsPosInLos(number, number, number, integer?) -> boolean
Parameters
number
posXnumber
posYnumber
posZinteger?
allyTeamID
Returns
Spring.IsPosInRadar (function)
[source]Spring.IsPosInRadar(number, number, number, integer?) -> boolean
Parameters
number
posXnumber
posYnumber
posZinteger?
allyTeamID
Returns
Spring.IsPosInAirLos (function)
[source]Spring.IsPosInAirLos(number, number, number, integer?) -> boolean
Parameters
number
posXnumber
posYnumber
posZinteger?
allyTeamID
Returns
Spring.GetUnitLosState (function)
[source]Spring.GetUnitLosState(integer, integer?, true) -> integer?
Parameters
integer
unitIDinteger?
allyTeamIDtrue
raw- Return a bitmask.
Returns
integer?
bitmask
Spring.GetUnitLosState (function overload 1)
[source]Spring.GetUnitLosState(integer, integer?, false?) -> { los: boolean, radar: boolean, ... }?
Parameters
integer
unitIDinteger?
allyTeamIDfalse?
raw- Return a bitmask.
Returns
{ los: boolean, radar: boolean, ... }?
los
Spring.IsUnitInLos (function)
[source]Spring.IsUnitInLos(integer, integer) -> boolean
Parameters
integer
unitIDinteger
allyTeamID
Returns
boolean
inLos
Spring.IsUnitInAirLos (function)
[source]Spring.IsUnitInAirLos(integer, integer) -> boolean
Parameters
integer
unitIDinteger
allyTeamID
Returns
boolean
inAirLos
Spring.IsUnitInRadar (function)
[source]Spring.IsUnitInRadar(integer, integer) -> boolean
Parameters
integer
unitIDinteger
allyTeamID
Returns
boolean
inRadar
Spring.IsUnitInJammer (function)
[source]Spring.IsUnitInJammer(integer, integer) -> boolean
Parameters
integer
unitIDinteger
allyTeamID
Returns
boolean
inJammer
Spring.GetModelRootPiece (function)
[source]Spring.GetModelRootPiece(string) -> number
Parameters
string
modelName
Returns
number
index- of the root piece
Spring.GetModelPieceMap (function)
[source]Spring.GetModelPieceMap(string) -> table<string,number>?
Parameters
string
modelName
Returns
table<string,number>?
pieceInfos- where keys are piece names and values are indices
Spring.GetModelPieceList (function)
[source]Spring.GetModelPieceList(string) -> string[]?
Parameters
string
modelName
Returns
string[]?
pieceNames
Spring.GetUnitRootPiece (function)
[source]Spring.GetUnitRootPiece(integer) -> number
Parameters
integer
unitID
Returns
number
index- of the root piece
Spring.GetUnitPieceMap (function)
[source]Spring.GetUnitPieceMap(integer) -> table<string,number>?
Parameters
integer
unitID
Returns
table<string,number>?
pieceInfos- where keys are piece names and values are indices
Spring.GetUnitPieceList (function)
[source]Spring.GetUnitPieceList(integer) -> string[]
Parameters
integer
unitID
Returns
string[]
pieceNames
Spring.GetUnitPieceInfo (function)
[source]Spring.GetUnitPieceInfo(integer, integer) -> PieceInfo?
Parameters
integer
unitIDinteger
pieceIndex
Returns
Spring.GetUnitPiecePosDir (function)
[source]Spring.GetUnitPiecePosDir(integer, integer) -> number?, number, number, number, number, number
Parameters
integer
unitIDinteger
pieceIndex
Returns
Spring.GetUnitPiecePosition (function)
[source]Spring.GetUnitPiecePosition(integer, integer) -> number?, number, number
Parameters
integer
unitIDinteger
pieceIndex
Returns
Spring.GetUnitPieceDirection (function)
[source]Spring.GetUnitPieceDirection(integer, integer) -> number?, number, number
Parameters
integer
unitIDinteger
pieceIndex
Returns
Spring.GetUnitPieceMatrix (function)
[source]Spring.GetUnitPieceMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number
Parameters
integer
unitID
Returns
number?
m11number
m12number
m13number
m14number
m21number
m22number
m23number
m24number
m31number
m32number
m33number
m34number
m41number
m42number
m43number
m44
Spring.GetFeatureRootPiece (function)
[source]Spring.GetFeatureRootPiece(integer) -> number
Parameters
integer
featureID
Returns
number
index- of the root piece
Spring.GetFeaturePieceMap (function)
[source]Spring.GetFeaturePieceMap(integer) -> table<string,number>
Parameters
integer
featureID
Returns
table<string,number>
pieceInfos- where keys are piece names and values are indices
Spring.GetFeaturePieceList (function)
[source]Spring.GetFeaturePieceList(integer) -> string[]
Parameters
integer
featureID
Returns
string[]
pieceNames
Spring.GetFeaturePieceInfo (function)
[source]Spring.GetFeaturePieceInfo(integer, integer) -> PieceInfo?
Parameters
integer
featureIDinteger
pieceIndex
Returns
Spring.GetFeaturePiecePosDir (function)
[source]Spring.GetFeaturePiecePosDir(integer, integer) -> number?, number, number, number, number, number
Parameters
integer
featureIDinteger
pieceIndex
Returns
Spring.GetFeaturePiecePosition (function)
[source]Spring.GetFeaturePiecePosition(integer, integer) -> number?, number, number
Parameters
integer
featureIDinteger
pieceIndex
Returns
Spring.GetFeaturePieceDirection (function)
[source]Spring.GetFeaturePieceDirection(integer, integer) -> number?, number, number
Parameters
integer
featureIDinteger
pieceIndex
Returns
Spring.GetFeaturePieceMatrix (function)
[source]Spring.GetFeaturePieceMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number
Parameters
integer
featureID
Returns
number?
m11number
m12number
m13number
m14number
m21number
m22number
m23number
m24number
m31number
m32number
m33number
m34number
m41number
m42number
m43number
m44
Spring.GetUnitScriptPiece (function)
[source]Spring.GetUnitScriptPiece(integer) -> integer[]
Parameters
integer
unitID
Returns
integer[]
pieceIndices
Spring.GetUnitScriptPiece (function overload 1)
[source]Spring.GetUnitScriptPiece(integer, integer) -> integer
Parameters
integer
unitIDinteger
scriptPiece
Returns
integer
pieceIndex
Spring.GetUnitScriptNames (function)
[source]Spring.GetUnitScriptNames(integer) -> table<string,number>
Parameters
integer
unitID
Returns
table<string,number>
where- keys are piece names and values are piece indices
Spring.TraceRayGroundInDirection (function)
Checks for a ground collision in given direction
[source]
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, boolean?) -> number, number, number, number
Parameters
Returns
Spring.TraceRayGroundBetweenPositions (function)
Checks for a ground collision between two positions
[source]
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, number
Parameters
Returns
Spring.GetRadarErrorParams (function)
[source]Spring.GetRadarErrorParams(integer) -> number?, number, number
Parameters
integer
allyTeamID
Returns
number?
radarErrorSize- actual radar error size (when allyTeamID is allied to current team) or base radar error size
number
baseRadarErrorSizenumber
baseRadarErrorMult
Spring.GetMetalMapSize (function)
[source]Spring.GetMetalMapSize() -> integer, integer
Returns
integer
x- X coordinate in worldspace / Game.metalMapSquareSize.
integer
z- Z coordinate in worldspace / Game.metalMapSquareSize.
Spring.GetMetalAmount (function)
Returns the amount of metal on a single square.
[source]
Spring.GetMetalAmount(integer, integer) -> number
Parameters
integer
x- X coordinate in worldspace / Game.metalMapSquareSize.
integer
z- Z coordinate in worldspace / Game.metalMapSquareSize.
Returns
number
amount
Spring.SetMetalAmount (function)
Sets the amount of metal on a single square.
[source]
Spring.SetMetalAmount(integer, integer, number) -> nil
Parameters
integer
x- X coordinate in worldspace / Game.metalMapSquareSize.
integer
z- Z coordinate in worldspace / Game.metalMapSquareSize.
number
metalAmount- must be between 0 and 255*maxMetal (with maxMetal from the .smd or mapinfo.lua).
Returns
Spring.GetMetalExtraction (function)
[source]Spring.GetMetalExtraction(integer, integer) -> number
Parameters
integer
x- X coordinate in worldspace / Game.metalMapSquareSize.
integer
z- Z coordinate in worldspace / Game.metalMapSquareSize.
Returns
number
extraction
Fields
Callins (class)
[source]Members
Callins:Initialize (function)
Called when the addon is (re)loaded.
[source]
Callins:Initialize() -> nil
Callins:LoadCode (function)
Called when the game is (re)loaded.
[source]
Callins:LoadCode() -> nil
Callins:Shutdown (function)
Called when the addon or the game is shutdown.
[source]
Callins:Shutdown() -> nil
Returns
Callins:GotChatMsg (function)
Called when a player issues a UI command e.g. types /foo or /luarules foo.
[source]
Callins:GotChatMsg(string, integer) -> nil
Parameters
Callins:Load (function)
Called after GamePreload
and before GameStart
. See Lua_SaveLoad.
[source]
Callins:Load(table) -> nil
Parameters
table
zipReader
Callins:GamePreload (function)
Called before the 0 gameframe.
Is not called when a saved game is loaded.
[source]
Callins:GamePreload() -> nil
Callins:GameStart (function)
Called upon the start of the game.
[source]
Is not called when a saved game is loaded.
Callins:GameStart() -> nil
Callins:GameOver (function)
Called when the game ends
[source]
Callins:GameOver(number[]) -> nil
Parameters
number[]
winningAllyTeams- list of winning allyTeams, if empty the game result was undecided (like when dropping from an host).
Callins:GamePaused (function)
Called when the game is paused.
[source]
Callins:GamePaused(integer, boolean) -> nil
Parameters
Callins:GameFrame (function)
Called for every game simulation frame (30 per second).
[source]
Callins:GameFrame(number) -> nil
Parameters
number
frame- Starts at frame 1
Callins:GameFramePost (function)
Called at the end of every game simulation frame
[source]
Callins:GameFramePost(number) -> nil
Parameters
number
frame- Starts at frame 1
Callins:GameID (function)
Called once to deliver the gameID
[source]
Callins:GameID(string) -> nil
Parameters
string
gameID- encoded in hex.
Callins:TeamDied (function)
Called when a team dies (see Spring.KillTeam).
[source]
Callins:TeamDied(integer) -> nil
Parameters
integer
teamID
Callins:TeamChanged (function)
[source]Callins:TeamChanged(integer) -> nil
Parameters
integer
teamID
Callins:PlayerChanged (function)
Called whenever a player’s status changes e.g. becoming a spectator.
[source]
Callins:PlayerChanged(integer) -> nil
Parameters
integer
playerID
Callins:PlayerAdded (function)
Called whenever a new player joins the game.
[source]
Callins:PlayerAdded(integer) -> nil
Parameters
integer
playerID
Callins:PlayerRemoved (function)
Called whenever a player is removed from the game.
[source]
Callins:PlayerRemoved(integer, string) -> nil
Parameters
Callins:UnitCreated (function)
Called at the moment the unit is created.
[source]
Callins:UnitCreated(integer, integer, integer, integer?) -> nil
Parameters
Callins:UnitFinished (function)
Called at the moment the unit is completed.
[source]
Callins:UnitFinished(integer, integer, integer) -> nil
Parameters
Callins:UnitFromFactory (function)
Called when a factory finishes construction of a unit.
[source]
Callins:UnitFromFactory(integer, integer, integer, integer, integer, boolean) -> nil
Parameters
Callins:UnitReverseBuilt (function)
Called when a living unit becomes a nanoframe again.
[source]
Callins:UnitReverseBuilt(integer, integer, integer) -> nil
Parameters
Callins:UnitConstructionDecayed (function)
Called when a unit being built starts decaying.
[source]
Callins:UnitConstructionDecayed(integer, integer, integer, number, number, number) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeamnumber
timeSinceLastBuildnumber
iterationPeriodnumber
part
Callins:UnitDestroyed (function)
Called when a unit is destroyed.
[source]
Callins:UnitDestroyed(integer, integer, integer, integer, integer, number, integer) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
attackerIDinteger
attackerDefIDnumber
attackerTeaminteger
weaponDefID
Callins:UnitTaken (function)
Called when a unit is transferred between teams. This is called before UnitGiven
and in that moment unit is still assigned to the oldTeam.
[source]
Callins:UnitTaken(integer, integer, number, number) -> nil
Parameters
Callins:UnitGiven (function)
Called when a unit is transferred between teams. This is called after UnitTaken
and in that moment unit is assigned to the newTeam.
[source]
Callins:UnitGiven(integer, integer, number, number) -> nil
Parameters
Callins:UnitIdle (function)
Called when a unit is idle (empty command queue).
[source]
Callins:UnitIdle(integer, integer, integer) -> nil
Parameters
Callins:UnitCommand (function)
Called after when a unit accepts a command, after AllowCommand
returns true.
[source]
Callins:UnitCommand(integer, integer, integer, integer, table, CommandOptions, number) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
cmdIDtable
cmdParamsCommandOptions
optionsnumber
cmdTag
Callins:UnitCmdDone (function)
Called when a unit completes a command.
[source]
Callins:UnitCmdDone(integer, integer, integer, integer, table, CommandOptions, number) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
cmdIDtable
cmdParamsCommandOptions
optionsnumber
cmdTag
Callins:UnitDamaged (function)
Called when a unit is damaged (after UnitPreDamaged).
[source]
Callins:UnitDamaged(integer, integer, integer, number, number, integer, integer, integer, integer, number) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeamnumber
damagenumber
paralyzerinteger
weaponDefIDinteger
projectileIDinteger
attackerIDinteger
attackerDefIDnumber
attackerTeam
Callins:UnitStunned (function)
Called when a unit changes its stun status.
[source]
Callins:UnitStunned(integer, integer, integer, boolean) -> nil
Parameters
Callins:UnitExperience (function)
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.
[source]
Callins:UnitExperience(integer, integer, integer, number, number) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeamnumber
experiencenumber
oldExperience
Callins:UnitHarvestStorageFull (function)
Called when a unit’s harvestStorage is full (according to its unitDef’s entry).
[source]
Callins:UnitHarvestStorageFull(integer, integer, integer) -> nil
Parameters
Callins:UnitSeismicPing (function)
Called when a unit emits a seismic ping.
[source]
See seismicSignature
.
Callins:UnitSeismicPing(number, number, number, number, integer, integer, integer) -> nil
Parameters
Callins:UnitEnteredRadar (function)
Called when a unit enters radar of an allyteam.
Also called when a unit enters LOS without any radar coverage.
[source]
Callins:UnitEnteredRadar(integer, integer, integer, integer) -> nil
Parameters
Callins:UnitEnteredLos (function)
Called when a unit enters LOS of an allyteam.
Its called after the unit is in LOS, so you can query that unit.
[source]
Callins:UnitEnteredLos(integer, integer, integer, integer) -> nil
Parameters
Callins:UnitLeftRadar (function)
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.
[source]
Callins:UnitLeftRadar(integer, integer, integer, integer) -> nil
Parameters
Callins:UnitLeftLos (function)
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.
[source]
Callins:UnitLeftLos(integer, integer, integer, integer) -> nil
Parameters
Callins:UnitLoaded (function)
Called when a unit is loaded by a transport.
[source]
Callins:UnitLoaded(integer, integer, integer, integer, integer) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
transportIDinteger
transportTeam
Callins:UnitUnloaded (function)
Called when a unit is unloaded by a transport.
[source]
Callins:UnitUnloaded(integer, integer, integer, integer, integer) -> nil
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
transportIDinteger
transportTeam
Callins:UnitEnteredUnderwater (function)
[source]Callins:UnitEnteredUnderwater(integer, integer, integer) -> nil
Parameters
Callins:UnitEnteredWater (function)
[source]Callins:UnitEnteredWater(integer, integer, integer) -> nil
Parameters
Callins:UnitLeftAir (function)
[source]Callins:UnitLeftAir(integer, integer, integer) -> nil
Parameters
Callins:UnitLeftUnderwater (function)
[source]Callins:UnitLeftUnderwater(integer, integer, integer) -> nil
Parameters
Callins:UnitLeftWater (function)
[source]Callins:UnitLeftWater(integer, integer, integer) -> nil
Parameters
Callins:UnitEnteredAir (function)
[source]Callins:UnitEnteredAir(integer, integer, integer) -> nil
Parameters
Callins:UnitCloaked (function)
Called when a unit cloaks.
[source]
Callins:UnitCloaked(integer, integer, integer) -> nil
Parameters
Callins:UnitDecloaked (function)
Called when a unit decloaks.
[source]
Callins:UnitDecloaked(integer, integer, integer) -> nil
Parameters
Callins:UnitUnitCollision (function)
Called when two units collide.
Both units must be registered with Script.SetWatchUnit.
[source]
Callins:UnitUnitCollision(integer, integer) -> nil
Parameters
integer
colliderIDinteger
collideeID
Callins:UnitFeatureCollision (function)
Called when a unit collides with a feature.
[source]
The unit must be registered with Script.SetWatchUnit and the feature registered with Script.SetWatchFeature.
Callins:UnitFeatureCollision(integer, integer) -> nil
Parameters
integer
colliderIDinteger
collideeID
Callins:UnitMoveFailed (function)
[source]Callins:UnitMoveFailed(integer, integer, integer) -> nil
Parameters
Callins:UnitArrivedAtGoal (function)
[source]Callins:UnitArrivedAtGoal(integer, integer, integer) -> nil
Parameters
Callins:RenderUnitDestroyed (function)
Called just before a unit is invalid, after it finishes its death animation.
[source]
Callins:RenderUnitDestroyed(integer, integer, integer) -> nil
Parameters
Callins:FeatureCreated (function)
Called when a feature is created.
[source]
Callins:FeatureCreated(integer, integer) -> nil
Parameters
integer
featureIDinteger
allyTeamID
Callins:FeatureDestroyed (function)
Called when a feature is destroyed.
[source]
Callins:FeatureDestroyed(integer, integer) -> nil
Parameters
integer
featureIDinteger
allyTeamID
Callins:FeatureDamaged (function)
Called when a feature is damaged.
[source]
Callins:FeatureDamaged(integer, integer, number, number, integer, integer, integer, integer, number) -> nil
Parameters
integer
featureIDinteger
featureDefIDnumber
featureTeamnumber
damageinteger
weaponDefIDinteger
projectileIDinteger
attackerIDinteger
attackerDefIDnumber
attackerTeam
Callins:ProjectileCreated (function)
Called when the projectile is created.
[source]
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.
Callins:ProjectileCreated(integer, integer, integer) -> nil
Parameters
integer
proIDinteger
proOwnerIDinteger
weaponDefID
Callins:ProjectileDestroyed (function)
Called when the projectile is destroyed.
[source]
Callins:ProjectileDestroyed(integer, integer, integer) -> nil
Parameters
integer
proIDinteger
ownerIDinteger
proWeaponDefID
Callins:Explosion (function)
Called when an explosion occurs.
[source]
Only called for weaponDefIDs registered via Script.SetWatchExplosion or Script.SetWatchWeapon.
Callins:Explosion(integer, number, number, number, integer, integer) -> boolean
Parameters
integer
weaponDefIDnumber
pxnumber
pynumber
pzinteger
attackerIDinteger
projectileID
Returns
boolean
noGfx- if then no graphical effects are drawn by the engine for this explosion.
Callins:StockpileChanged (function)
Called when a units stockpile of weapons increases or decreases.
[source]
Callins:StockpileChanged(integer, integer, integer, integer, integer, integer) -> nil
Parameters
Callins:RecvLuaMsg (function)
Receives messages from unsynced sent via Spring.SendLuaRulesMsg or Spring.SendLuaUIMsg.
[source]
Callins:RecvLuaMsg(string, integer) -> nil
Parameters
Callins:Save (function)
Called when a chat command ‘/save’ or ‘/savegame’ is received.
[source]
Callins:Save(table) -> nil
Parameters
table
zip- a userdatum representing the savegame zip file. See Lua_SaveLoad.
Callins:UnsyncedHeightMapUpdate (function)
Called when the unsynced copy of the height-map is altered.
[source]
Callins:UnsyncedHeightMapUpdate() -> number, number, number, number
Returns
Callins:Update (function)
Called for every draw frame (including when the game is paused) and at least once per sim frame except when catching up.
[source]
Callins:Update(number) -> nil
Parameters
number
dt- the time since the last update.
Callins:ViewResize (function)
Called whenever the window is resized.
[source]
Callins:ViewResize(number, number) -> nil
Parameters
Callins:FontsChanged (function)
Called whenever fonts are updated. Signals the game display lists and other caches should be discarded.
Gets called before other Update and Draw callins.
[source]
Callins:FontsChanged() -> nil
Callins:SunChanged (function)
[source]Callins:SunChanged() -> nil
Callins:DefaultCommand (function)
Used to set the default command when a unit is selected.
[source]
Callins:DefaultCommand(("unit"|"feature"), integer) -> nil
Parameters
Callins:DrawGenesis (function)
Use this callin to update textures, shaders, etc.
[source]
Doesn’t render to screen! Also available to LuaMenu.
Callins:DrawGenesis() -> nil
Callins:DrawWorld (function)
Spring draws command queues, ‘map stuff’, and map marks.
[source]
Callins:DrawWorld() -> nil
Callins:DrawWorldPreUnit (function)
Spring draws units, features, some water types, cloaked units, and the sun.
[source]
Callins:DrawWorldPreUnit() -> nil
Callins:DrawPreDecals (function)
Called before decals are drawn
[source]
Callins:DrawPreDecals() -> nil
Callins:DrawWaterPost (function)
[source]Callins:DrawWaterPost() -> nil
Callins:DrawShadowPassTransparent (function)
Invoked after semi-transparent shadows pass is about to conclude
[source]
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() -> nil
Callins:DrawWorldShadow (function)
[source]Callins:DrawWorldShadow() -> nil
Callins:DrawWorldReflection (function)
[source]Callins:DrawWorldReflection() -> nil
Callins:DrawWorldRefraction (function)
[source]Callins:DrawWorldRefraction() -> nil
Callins:DrawGroundPreForward (function)
Runs at the start of the forward pass when a custom map shader has been assigned via Spring.SetMapShader (convenient for setting uniforms).
[source]
Callins:DrawGroundPreForward() -> nil
Callins:DrawGroundPostForward (function)
[source]Callins:DrawGroundPostForward() -> nil
Callins:DrawGroundPreDeferred (function)
Runs at the start of the deferred pass when a custom map shader has been assigned via Spring.SetMapShader (convenient for setting uniforms).
[source]
Callins:DrawGroundPreDeferred() -> nil
Callins:DrawGroundDeferred (function)
[source]Callins:DrawGroundDeferred() -> nil
Callins:DrawGroundPostDeferred (function)
This runs at the end of its respective deferred pass.
[source]
Allows proper frame compositing (with ground flashes/decals/foliage/etc, which are drawn between it and DrawWorldPreUnit
) via gl.CopyToTexture.
Callins:DrawGroundPostDeferred() -> nil
Callins:DrawUnitsPostDeferred (function)
Runs at the end of the unit deferred pass.
[source]
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() -> nil
Callins:DrawFeaturesPostDeferred (function)
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.
[source]
Callins:DrawFeaturesPostDeferred() -> nil
Callins:DrawShadowUnitsLua (function)
[source]Callins:DrawShadowUnitsLua() -> nil
Callins:DrawShadowFeaturesLua (function)
[source]Callins:DrawShadowFeaturesLua() -> nil
Callins:DrawWorldPreParticles (function)
DrawWorldPreParticles is called multiples times per draw frame. Each call has a different permutation of values for drawAboveWater, drawBelowWater, drawReflection, and drawRefraction.
[source]
Callins:DrawWorldPreParticles(boolean, boolean, boolean, boolean) -> nil
Parameters
boolean
drawAboveWaterboolean
drawBelowWaterboolean
drawReflectionboolean
drawRefraction
Callins:DrawScreen (function)
Also available to LuaMenu.
[source]
Callins:DrawScreen(number, number) -> nil
Parameters
Callins:DrawScreenEffects (function)
[source]Callins:DrawScreenEffects(number, number) -> nil
Parameters
Callins:DrawScreenPost (function)
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).
[source]
Note: This callin is invoked after the software rendered cursor (configuration variable HardwareCursor=0) is drawn.
Callins:DrawScreenPost(number, number) -> nil
Parameters
Callins:DrawInMiniMap (function)
[source]Callins:DrawInMiniMap(number, number) -> nil
Parameters
number
sx- relative to the minimap’s position and scale.
number
sy- relative to the minimap’s position and scale.
Callins:DrawInMiniMapBackground (function)
[source]Callins:DrawInMiniMapBackground(number, number) -> nil
Parameters
number
sx- relative to the minimap’s position and scale.
number
sy- relative to the minimap’s position and scale.
Callins:GameProgress (function)
Called every 60 frames, calculating delta between GameFrame
and GameProgress
.
Can give an ETA about catching up with simulation for mid-game join players.
[source]
Callins:GameProgress(integer) -> nil
Parameters
integer
serverFrameNum
Callins:KeyMapChanged (function)
Called when the keymap changes
[source]
Can be caused due to a change in language or keyboard
Callins:KeyMapChanged() -> nil
Callins:KeyPress (function)
Called repeatedly when a key is pressed down.
[source]
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(number, KeyModifiers, boolean, boolean, number, number, table) -> boolean
Parameters
number
keyCodeKeyModifiers
modsboolean
isRepeat- If you want an action to occur only once check for isRepeat == false.
boolean
label- the name of the key
number
utf32char- (deprecated) always 0
number
scanCodetable
actionList- the list of actions for this keypress
Returns
boolean
halt- whether to halt the chain for consumers of the keypress
Callins:KeyRelease (function)
Called when the key is released.
[source]
Callins:KeyRelease(number, KeyModifiers, boolean, number, number, table) -> boolean
Parameters
number
keyCodeKeyModifiers
modsboolean
label- the name of the key
number
utf32char- (deprecated) always 0
number
scanCodetable
actionList- the list of actions for this keyrelease
Returns
Callins:TextInput (function)
Called whenever a key press results in text input.
[source]
Callins:TextInput(string) -> nil
Parameters
string
utf8char
Callins:TextEditing (function)
[source]Callins:TextEditing(string, number, number) -> nil
Parameters
Callins:MousePress (function)
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.
[source]
Callins:MousePress(number, number, number) -> boolean
Parameters
Returns
boolean
becomeMouseOwner
Callins:MouseRelease (function)
Called when a mouse button is released.
[source]
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(number, number, number) -> boolean
Parameters
Returns
boolean
becomeMouseOwner
Callins:MouseMove (function)
Called when the mouse is moved.
[source]
Callins:MouseMove(number, number, number, number, number) -> nil
Parameters
number
x- final x position
number
y- final y position
number
dx- distance travelled in x
number
dy- distance travelled in y
number
button
Callins:MouseWheel (function)
Called when the mouse wheel is moved.
[source]
Callins:MouseWheel(boolean, number) -> nil
Parameters
Callins:IsAbove (function)
Called every Update
.
[source]
Must return true for Mouse*
events and Spring.GetToolTip
to be called.
Callins:IsAbove(number, number) -> boolean
Parameters
Returns
boolean
isAbove
Callins:GetTooltip (function)
Called when Spring.IsAbove
returns true.
[source]
Callins:GetTooltip(number, number) -> string
Parameters
Returns
string
tooltip
Callins:ActiveCommandChanged (function)
Called when a command is issued.
[source]
Callins:ActiveCommandChanged(integer?, integer?) -> nil
Parameters
Callins:CameraRotationChanged (function)
Called whenever the camera rotation changes
[source]
Callins:CameraRotationChanged(number, number, number) -> nil
Parameters
number
rotX- Camera rotation around the x axis in radians.
number
rotY- Camera rotation around the y axis in radians.
number
rotZ- Camera rotation around the z axis in radians.
Callins:CameraPositionChanged (function)
Called whenever the camera position changes
[source]
Callins:CameraPositionChanged(number, number, number) -> nil
Parameters
number
posX- Camera position x in world coordinates
number
posY- Camera position y in world coordinates
number
posZ- Camera position z in world coordinates
Callins:CommandNotify (function)
Called when a command is issued.
[source]
Callins:CommandNotify(integer, table, CommandOptions) -> boolean
Parameters
integer
cmdIDtable
cmdParamsCommandOptions
options
Returns
boolean
Returning- true deletes the command and does not send it through the network.
Callins:AddConsoleLine (function)
Called when text is entered into the console (e.g. Spring.Echo).
[source]
Callins:AddConsoleLine(string, integer) -> nil
Parameters
Callins:GroupChanged (function)
Called when a unit is added to or removed from a control group.
[source]
Callins:GroupChanged(integer) -> nil
Parameters
integer
groupID
Callins:WorldTooltip (function)
[source]Callins:WorldTooltip("unit", integer) -> string
Parameters
Returns
string
tooltip
Callins:WorldTooltip (function overload 1)
[source]Callins:WorldTooltip("feature", integer) -> string
Parameters
Returns
string
tooltip
Callins:WorldTooltip (function overload 2)
[source]Callins:WorldTooltip("ground", number, number, number) -> string
Parameters
Returns
string
tooltip
Callins:WorldTooltip (function overload 3)
[source]Callins:WorldTooltip("selection") -> string
Parameters
"selection"
type
Returns
string
tooltip
Callins:MapDrawCmd (function)
[source]Callins:MapDrawCmd(integer, "point", number, number, number, string) -> nil
Parameters
Callins:MapDrawCmd (function overload 1)
[source]Callins:MapDrawCmd(integer, "line", number, number, number, number, number, number) -> nil
Parameters
Callins:MapDrawCmd (function overload 2)
[source]Callins:MapDrawCmd(integer, "erase", number, number, number, number) -> nil
Parameters
Callins:GameSetup (function)
[source]Callins:GameSetup(string, boolean, table) -> boolean, boolean
Parameters
string
stateboolean
readytable
playerStates
Returns
Callins:RecvSkirmishAIMessage (function)
[source]Callins:RecvSkirmishAIMessage(integer, string) -> nil
Parameters
Callins:DownloadQueued (function)
Called when a Pr-downloader download is queued
[source]
Callins:DownloadQueued(integer, string, string) -> nil
Parameters
Callins:DownloadStarted (function)
Called when a Pr-downloader download is started via VFS.DownloadArchive.
[source]
Callins:DownloadStarted(integer) -> nil
Parameters
integer
id
Callins:DownloadFinished (function)
Called when a Pr-downloader download finishes successfully.
[source]
Callins:DownloadFinished(integer) -> nil
Parameters
integer
id
Callins:DownloadFailed (function)
Called when a Pr-downloader download fails to complete.
[source]
Callins:DownloadFailed(integer, integer) -> nil
Parameters
Callins:DownloadProgress (function)
Called incrementally during a Pr-downloader download.
[source]
Callins:DownloadProgress(integer, integer, integer) -> nil
Parameters
integer
idinteger
downloadedinteger
total
SyncedCallins (class)
[source]
Functions called by the Engine (Synced).
Members
SyncedCallins:CommandFallback (function)
Called when the unit reaches an unknown command in its queue (i.e. one not handled by the engine).
[source]
SyncedCallins:CommandFallback(integer, integer, integer, integer, number[], CommandOptions, number) -> boolean
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
cmdIDnumber[]
cmdParamsCommandOptions
cmdOptionsnumber
cmdTag
Returns
boolean
whether- to remove the command from the queue
SyncedCallins:AllowCommand (function)
Called when the command is given, before the unit’s queue is altered.
[source]
The queue remains untouched when a command is blocked, whether it would be queued or replace the queue.
SyncedCallins:AllowCommand(integer, integer, integer, integer, number[], CommandOptions, number, boolean, boolean) -> boolean
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
cmdIDnumber[]
cmdParamsCommandOptions
cmdOptionsnumber
cmdTagboolean
syncedboolean
fromLua
Returns
boolean
whether- it should be let into the queue.
SyncedCallins:AllowUnitCreation (function)
Called just before unit is created.
[source]
SyncedCallins:AllowUnitCreation(integer, integer, integer, number, number, number, FacingInteger) -> boolean, boolean
Parameters
integer
unitDefIDinteger
builderIDinteger
builderTeamnumber
xnumber
ynumber
zFacingInteger
facing
Returns
SyncedCallins:AllowUnitTransfer (function)
Called just before a unit is transferred to a different team.
[source]
SyncedCallins:AllowUnitTransfer(integer, integer, integer, integer, boolean) -> boolean
Parameters
Returns
boolean
whether- or not the transfer is permitted.
SyncedCallins:AllowUnitBuildStep (function)
Called just before a unit progresses its build percentage.
[source]
SyncedCallins:AllowUnitBuildStep(integer, integer, integer, integer, number) -> boolean
Parameters
integer
builderIDinteger
builderTeaminteger
unitIDinteger
unitDefIDnumber
part
Returns
boolean
whether- or not the build makes progress.
SyncedCallins:AllowUnitCaptureStep (function)
[source]SyncedCallins:AllowUnitCaptureStep(integer, integer, integer, integer, number) -> boolean
Parameters
integer
builderIDinteger
builderTeaminteger
unitIDinteger
unitDefIDnumber
part
Returns
boolean
whether- or not the capture makes progress.
SyncedCallins:AllowUnitTransport (function)
[source]SyncedCallins:AllowUnitTransport(integer, integer, integer, integer, integer, integer) -> boolean
Parameters
integer
transporterIDinteger
transporterUnitDefIDinteger
transporterTeaminteger
transporteeIDinteger
transporteeUnitDefIDinteger
transporteeTeam
Returns
boolean
whether- or not the transport is allowed
SyncedCallins:AllowUnitTransportLoad (function)
[source]SyncedCallins:AllowUnitTransportLoad(integer, integer, integer, integer, integer, integer, number, number, number) -> boolean
Parameters
integer
transporterIDinteger
transporterUnitDefIDinteger
transporterTeaminteger
transporteeIDinteger
transporteeUnitDefIDinteger
transporteeTeamnumber
xnumber
ynumber
z
Returns
boolean
whether- or not the transport load is allowed
SyncedCallins:AllowUnitTransportUnload (function)
[source]SyncedCallins:AllowUnitTransportUnload(integer, integer, integer, integer, integer, integer, number, number, number) -> boolean
Parameters
integer
transporterIDinteger
transporterUnitDefIDinteger
transporterTeaminteger
transporteeIDinteger
transporteeUnitDefIDinteger
transporteeTeamnumber
xnumber
ynumber
z
Returns
boolean
whether- or not the transport unload is allowed
SyncedCallins:AllowUnitCloak (function)
[source]SyncedCallins:AllowUnitCloak(integer, integer?) -> boolean
Parameters
Returns
boolean
whether- unit is allowed to cloak
SyncedCallins:AllowUnitCloak (function overload 1)
[source]SyncedCallins:AllowUnitCloak(integer, integer?, number?) -> boolean
Parameters
Returns
boolean
whether- unit is allowed to decloak
SyncedCallins:AllowUnitKamikaze (function)
[source]SyncedCallins:AllowUnitKamikaze(integer, integer) -> boolean
Parameters
Returns
boolean
whether- unit is allowed to selfd
SyncedCallins:AllowFeatureCreation (function)
Called just before feature is created.
[source]
SyncedCallins:AllowFeatureCreation(integer, integer, number, number, number) -> boolean
Parameters
integer
featureDefIDinteger
teamIDnumber
xnumber
ynumber
z
Returns
boolean
whether- or not the creation is permitted
SyncedCallins:AllowFeatureBuildStep (function)
Called just before a feature changes its build percentage.
[source]
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(integer, integer, integer, integer, number) -> boolean
Parameters
integer
builderIDinteger
builderTeaminteger
featureIDinteger
featureDefIDnumber
part
Returns
boolean
whether- or not the change is permitted
SyncedCallins:AllowResourceLevel (function)
Called when a team sets the sharing level of a resource.
[source]
SyncedCallins:AllowResourceLevel(integer, string, number) -> boolean
Parameters
Returns
boolean
whether- or not the sharing level is permitted
SyncedCallins:AllowResourceTransfer (function)
Called just before resources are transferred between players.
[source]
SyncedCallins:AllowResourceTransfer(integer, integer, string, number) -> boolean
Parameters
Returns
boolean
whether- or not the transfer is permitted.
SyncedCallins:AllowDirectUnitControl (function)
Determines if this unit can be controlled directly in FPS view.
[source]
SyncedCallins:AllowDirectUnitControl(integer, integer, integer, integer) -> boolean
Parameters
Returns
boolean
allow
SyncedCallins:AllowBuilderHoldFire (function)
Called when a construction unit wants to “use his nano beams”.
[source]
SyncedCallins:AllowBuilderHoldFire(integer, integer, unknown) -> boolean
Parameters
Returns
boolean
actionAllowed
SyncedCallins:AllowStartPosition (function)
Whether a start position should be allowed
[source]
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(integer, integer, number, number, number, number, number, number, number) -> boolean
Parameters
integer
playerIDinteger
teamIDnumber
readyStatenumber
clampedXnumber
clampedYnumber
clampedZnumber
rawXnumber
rawYnumber
rawZ
Returns
boolean
allow
SyncedCallins:MoveCtrlNotify (function)
Enable both Spring.MoveCtrl.SetCollideStop and Spring.MoveCtrl.SetTrackGround to enable this call-in.
[source]
SyncedCallins:MoveCtrlNotify(integer, integer, integer, number) -> boolean
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeamnumber
data- was supposed to indicate the type of notification but currently never has a value other than 1 (“unit hit the ground”).
Returns
boolean
whether- or not the unit should remain script-controlled (false) or return to engine controlled movement (true).
SyncedCallins:TerraformComplete (function)
Called when pre-building terrain levelling terraforms are completed (c.f. levelGround)
[source]
SyncedCallins:TerraformComplete(integer, integer, integer, integer, integer, integer) -> boolean
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeaminteger
buildUnitIDinteger
buildUnitDefIDinteger
buildUnitTeam
Returns
boolean
if- true the current build order is terminated
SyncedCallins:UnitPreDamaged (function)
Called before damage is applied to the unit, allows fine control over how much damage and impulse is applied.
[source]
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(integer, integer, integer, number, boolean, integer?, integer?, integer?, integer?, integer?) -> number, number
Parameters
integer
unitIDinteger
unitDefIDinteger
unitTeamnumber
damageboolean
paralyzerinteger?
weaponDefID- Synced Only
integer?
projectileID- Synced Only
integer?
attackerID- Synced Only
integer?
attackerDefID- Synced Only
integer?
attackerTeam- Synced Only
Returns
number
newDamagenumber
impulseMult
SyncedCallins:FeaturePreDamaged (function)
Called before damage is applied to the feature.
[source]
Allows fine control over how much damage and impulse is applied.
SyncedCallins:FeaturePreDamaged(integer, integer, integer, number, integer, integer, integer, integer, integer) -> number, number
Parameters
integer
featureIDinteger
featureDefIDinteger
featureTeamnumber
damageinteger
weaponDefIDinteger
projectileIDinteger
attackerIDinteger
attackerDefIDinteger
attackerTeam
Returns
number
newDamagenumber
impulseMult
SyncedCallins:ShieldPreDamaged (function)
Called before any engine shield-vs-projectile logic executes.
[source]
If the weapon is a hitscan type (BeamLaser or LightningCanon) then proID is nil and beamEmitterWeaponNum and beamEmitterUnitID are populated instead.
SyncedCallins:ShieldPreDamaged(integer, integer, integer, integer, boolean, integer, integer, number, number, number, number, number, number) -> boolean
Parameters
integer
projectileIDinteger
projectileOwnerIDinteger
shieldWeaponNuminteger
shieldCarrierIDboolean
bounceProjectileinteger
beamEmitterWeaponNuminteger
beamEmitterUnitIDnumber
startXnumber
startYnumber
startZnumber
hitXnumber
hitYnumber
hitZ
Returns
boolean
if- true the gadget handles the collision event and the engine does not remove the projectile
SyncedCallins:AllowWeaponTargetCheck (function)
Determines if this weapon can automatically generate targets itself. See also commandFire weaponDef tag.
[source]
Only called for weaponDefIDs registered via Script.SetWatchAllowTarget or Script.SetWatchWeapon.
SyncedCallins:AllowWeaponTargetCheck(integer, integer, integer) -> boolean, boolean
Parameters
integer
attackerIDinteger
attackerWeaponNuminteger
attackerWeaponDefID
Returns
boolean
allowCheckboolean
ignoreCheck
SyncedCallins:AllowWeaponTarget (function)
Controls blocking of a specific target from being considered during a weapon’s periodic auto-targeting sweep.
[source]
Only called for weaponDefIDs registered via Script.SetWatchAllowTarget or Script.SetWatchWeapon.
SyncedCallins:AllowWeaponTarget(integer, integer, integer, integer, number) -> boolean, number
Parameters
integer
attackerIDinteger
targetIDinteger
attackerWeaponNuminteger
attackerWeaponDefIDnumber
defPriority
Returns
boolean
allowednumber
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)
Controls blocking of a specific intercept target from being considered during an interceptor weapon’s periodic auto-targeting sweep.
[source]
Only called for weaponDefIDs registered via Script.SetWatchAllowTarget or Script.SetWatchWeapon.
SyncedCallins:AllowWeaponInterceptTarget(integer, integer, integer) -> boolean
Parameters
integer
interceptorUnitIDinteger
interceptorWeaponIDinteger
targetProjectileID
Returns
boolean
allowed
SyncedCallins.SendToUnsynced (function)
Invoke UnsyncedCallins:RecvFromSynced callin with the given arguments.
[source]
See UnsyncedCallins:RecvFromSynced
SyncedCallins.SendToUnsynced([(boolean|number|string|table)?, ]*) -> nil
Parameters
(boolean|number|string|table)?
...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.
UnsyncedCallins (class)
[source]
Functions called by the Engine (Unsynced).
Members
UnsyncedCallins:RecvFromSynced (function)
Receives data sent via SendToUnsynced
callout.
[source]
UnsyncedCallins:RecvFromSynced([any, ]*) -> nil
Parameters
any
...
UnsyncedCallins:DrawUnit (function)
For custom rendering of units
[source]
Deprecated
UnsyncedCallins:DrawUnit(integer, number) -> boolean
Parameters
Returns
boolean
suppressEngineDraw
UnsyncedCallins:DrawFeature (function)
For custom rendering of features
[source]
Deprecated
UnsyncedCallins:DrawFeature(integer, number) -> boolean
Parameters
Returns
boolean
suppressEngineDraw
UnsyncedCallins:DrawShield (function)
For custom rendering of shields.
[source]
Deprecated
UnsyncedCallins:DrawShield(integer, integer, number) -> boolean
Parameters
Returns
boolean
suppressEngineDraw
UnsyncedCallins:DrawProjectile (function)
For custom rendering of weapon (& other) projectiles
[source]
Deprecated
UnsyncedCallins:DrawProjectile(integer, number) -> boolean
Parameters
integer
projectileIDnumber
drawMode
Returns
boolean
suppressEngineDraw
UnsyncedCallins:DrawMaterial (function)
[source]Deprecated
UnsyncedCallins:DrawMaterial(integer, number) -> boolean
Parameters
Returns
boolean
suppressEngineDraw
gl (table)
Callouts for OpenGL API
Only setters and getters for OpenGL usage in Recoil, see GL for constants.
[source]
See GL
Members
gl.CreateRBO (function)
[source]gl.CreateRBO(integer, integer, CreateRBOData) -> RBO
Parameters
integer
xsizeinteger
ysizeCreateRBOData
data
Returns
gl.DeleteRBO (function)
[source]gl.DeleteRBO(RBO) -> nil
Parameters
gl.GetVAO (function)
Example:
local myVAO = gl.GetVAO()
if myVAO == nil then Spring.Echo(“Failed to get VAO”) end
[source]
gl.GetVAO() -> VAO?
Returns
gl.GetVBO (function)
Example:
lua
local myVBO = gl.GetVBO()
if myVBO == nil then Spring.Echo(“Failed to get VBO”) end
[source]
See GL.OpenGL_Buffer_Types
gl.GetVBO(GL?, boolean?) -> VBO?
Parameters
GL?
bufferType(Default: GL.ARRAY_BUFFER) The buffer type to use.
Accepts the following:
- GL.ARRAY_BUFFER for vertex data.
- GL.ELEMENT_ARRAY_BUFFER for vertex indices.
- GL.UNIFORM_BUFFER
- GL.SHADER_STORAGE_BUFFER
boolean?
freqUpdated(Default:
true
)true
to updated frequently,false
to update only once.
Returns
gl.CreateFBO (function)
[source]gl.CreateFBO(FBODescription) -> FBO
Parameters
Returns
gl.DeleteFBO (function)
This doesn’t delete the attached objects!
[source]
gl.DeleteFBO(FBO) -> nil
Parameters
gl.IsValidFBO (function)
[source]gl.IsValidFBO(FBO, GL?) -> boolean, number?
Parameters
Returns
gl.ActiveFBO (function)
[source]gl.ActiveFBO(FBO, fun(...), [any, ]*) -> nil
Parameters
gl.ActiveFBO (function overload 1)
[source]gl.ActiveFBO(FBO, GL?, fun(...), [any, ]*) -> nil
Parameters
gl.RawBindFBO (function)
Bind default or specified via rawFboId numeric id of FBO
[source]
gl.RawBindFBO(nil, GL?, integer?) -> nil
Parameters
Returns
gl.RawBindFBO (function overload 1)
[source]gl.RawBindFBO(FBO, GL?) -> number
Parameters
Returns
number
previouslyBoundRawFboId
gl.BlitFBO (function)
needs GLAD_GL_EXT_framebuffer_blit
[source]
gl.BlitFBO(number, number, number, number, number, number, number, number, number?, number?) -> nil
Parameters
number
x0Srcnumber
y0Srcnumber
x1Srcnumber
y1Srcnumber
x0Dstnumber
y0Dstnumber
x1Dstnumber
y1Dstnumber?
mask- (Default: GL_COLOR_BUFFER_BIT)
number?
filter- (Default: GL_NEAREST)
gl.BlitFBO (function overload 1)
needs GLAD_GL_EXT_framebuffer_blit
[source]
gl.BlitFBO(FBO, number, number, number, number, FBO, number, number, number, number, number?, number?) -> nil
Parameters
FBO
fboSrcnumber
x0Srcnumber
y0Srcnumber
x1Srcnumber
y1SrcFBO
fboDstnumber
x0Dstnumber
y0Dstnumber
x1Dstnumber
y1Dstnumber?
mask- (Default: GL_COLOR_BUFFER_BIT)
number?
filter- (Default: GL_NEAREST)
gl.ClearAttachmentFBO (function)
needs Platform.glVersionNum >= 30
Clears the “attachment” of the currently bound FBO type “target” with “clearValues”
[source]
gl.ClearAttachmentFBO(number?, (GL|Attachment), number?, number?, number?, number?) -> boolean
Parameters
number?
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
boolean
success
gl.GetShaderLog (function)
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.
[source]
gl.GetShaderLog() -> string
Returns
string
infoLog
gl.CreateShader (function)
Create a shader.
[source]
gl.CreateShader(ShaderParams) -> integer
Parameters
Returns
integer
shaderID
gl.DeleteShader (function)
Deletes a shader identified by shaderID
[source]
gl.DeleteShader(integer) -> nil
Parameters
integer
shaderID
gl.UseShader (function)
Binds a shader program identified by shaderID. Pass 0 to disable the shader. Returns whether the shader was successfully bound.
[source]
gl.UseShader(integer) -> boolean
Parameters
integer
shaderID
Returns
boolean
linked
gl.ActiveShader (function)
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.)!
[source]
gl.ActiveShader(integer, function, [any, ]*) -> nil
Parameters
gl.GetActiveUniforms (function)
Query the active (actually used) uniforms of a shader and identify their names, types (float, int, uint) and sizes (float, vec4, …).
[source]
gl.GetActiveUniforms(integer) -> ActiveUniform[]
Parameters
integer
shaderID
Returns
gl.GetUniformLocation (function)
Returns the locationID of a shaders uniform. Needed for changing uniform values with function gl.Uniform.
[source]
gl.GetUniformLocation(integer, string) -> GL
Parameters
Returns
gl.Uniform (function)
Sets the uniform float value at the locationID for the currently active shader. Shader must be activated before setting uniforms.
[source]
gl.Uniform((GL|string), number, number?, number?, number?) -> nil
Parameters
gl.UniformInt (function)
Sets the uniform int value at the locationID for the currently active shader. Shader must be activated before setting uniforms.
[source]
gl.UniformInt((integer|string), integer, integer?, integer?, integer?) -> nil
Parameters
(integer|string)
locationID- uniformName
integer
int1integer?
int2integer?
int3integer?
int4
gl.UniformArray (function)
Sets the an array of uniform values at the locationID for the currently active shader.
Shader must be activated before setting uniforms.
[source]
gl.UniformArray((integer|string), UniformArrayType, number[]) -> nil
Parameters
(integer|string)
locationID- uniformName
UniformArrayType
typenumber[]
uniforms- Array up to 1024 elements
gl.UniformMatrix (function)
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.
[source]
gl.UniformMatrix((integer|string), MatrixName) -> nil
Parameters
(integer|string)
locationID- uniformName
MatrixName
matrix- Name of common matrix.
gl.UniformMatrix (function overload 1)
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.
[source]
gl.UniformMatrix((integer|string), number[]) -> nil
Parameters
(integer|string)
locationID- uniformName
number[]
matrix- A 2x2, 3x3 or 4x4 matrix.
gl.GetEngineUniformBufferDef (function)
[source]
Return the GLSL compliant definition of UniformMatricesBuffer(idx=0) or UniformParamsBuffer(idx=1) structure.
gl.GetEngineUniformBufferDef(number) -> string
Parameters
number
index
Returns
string
glslDefinition
gl.GetEngineModelUniformDataDef (function)
[source]
Return the GLSL compliant definition of ModelUniformData structure (per Unit/Feature buffer available on GPU)
gl.GetEngineModelUniformDataDef(number) -> string
Parameters
number
index
Returns
string
glslDefinition
gl.GetEngineModelUniformDataSize (function)
[source]
Return the current size values of ModelUniformData structure (per Unit/Feature buffer available on GPU)
gl.GetEngineModelUniformDataSize(number) -> number, number
Parameters
number
index
Returns
number
sizeInElementsnumber
sizeInBytesOnCPU
gl.SetGeometryShaderParameter (function)
Sets the Geometry shader parameters for shaderID. Needed by geometry shader programs (check the opengl GL_ARB_geometry_shader4 extension for glProgramParameteri)
[source]
gl.SetGeometryShaderParameter(integer, number, number) -> nil
Parameters
Returns
gl.SetTesselationShaderParameter (function)
Sets the tesselation shader parameters for shaderID
.
Needed by tesselation shader programs. (Check the opengl
GL_ARB_tessellation_shader
extension for glProgramParameteri
).
[source]
gl.SetTesselationShaderParameter(integer, integer) -> nil
Parameters
Returns
gl.HasExtension (function)
[source]gl.HasExtension(string) -> boolean
Parameters
string
ext
Returns
gl.GetNumber (function)
Get the value or values of a selected parameter.
[source]
gl.GetNumber(GL, integer?) -> number ...
Parameters
Returns
gl.GetString (function)
Get a string describing the current OpenGL connection.
[source]
gl.GetString(GL) -> nil
Parameters
gl.GetScreenViewTrans (function)
[source]gl.GetScreenViewTrans() -> number, number, number
Returns
gl.GetViewSizes (function)
[source]gl.GetViewSizes() -> number, number
Returns
gl.GetViewRange (function)
[source]gl.GetViewRange() -> number, number, number, number
Returns
number
nearPlaneDistnumber
farPlaneDistnumber
minViewRangenumber
maxViewRange
gl.SlaveMiniMap (function)
[source]gl.SlaveMiniMap(boolean) -> nil
Parameters
boolean
newMode
gl.ConfigMiniMap (function)
[source]gl.ConfigMiniMap(integer, integer, integer, integer) -> nil
Parameters
gl.DrawMiniMap (function)
[source]gl.DrawMiniMap(boolean?) -> nil
Parameters
boolean?
defaultTransform- (Default:
true
)
gl.BeginText (function)
Begin a block of text commands.
[source]
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)
.
gl.BeginText(boolean?) -> nil
Parameters
boolean?
userDefinedBlending- When
true
doesn’t set the gl.BlendFunc automatically. Defaults tofalse
.
gl.EndText (function)
[source]gl.EndText() -> nil
gl.Text (function)
[source]gl.Text(string, number, number, number, string?) -> nil
Parameters
string
textnumber
xnumber
ynumber
sizestring?
optionsconcatenated 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)
Returns
gl.GetTextWidth (function)
[source]gl.GetTextWidth(string) -> number
Parameters
string
text
Returns
number
width
gl.GetTextHeight (function)
[source]gl.GetTextHeight(string) -> number, number, integer
Parameters
string
text
Returns
gl.Unit (function)
Draw the unit, applying transform.
[source]
gl.Unit(integer, boolean?, integer?, boolean?, boolean?) -> nil
Parameters
integer
unitIDboolean?
doRawDraw- (Default:
false
) integer?
useLuaMatboolean?
noLuaCall- (Default:
false
) Skip theDrawUnit
callin. boolean?
fullModel- (Default:
true
)
gl.UnitRaw (function)
Draw the unit without applying transform.
Also skips the DrawUnit
callin by default so any
recursion is blocked.
[source]
gl.UnitRaw(integer, boolean?, integer?, boolean?, boolean?) -> nil
Parameters
integer
unitIDboolean?
doRawDraw- (Default:
false
) integer?
useLuaMatboolean?
noLuaCall- (Default:
true
) Skip theDrawUnit
callin. boolean?
fullModel- (Default:
true
)
gl.UnitTextures (function)
[source]gl.UnitTextures(integer, boolean) -> nil
Parameters
gl.UnitShape (function)
[source]gl.UnitShape(integer, integer, boolean?, boolean?, boolean?) -> nil
Parameters
integer
unitDefIDinteger
teamIDboolean?
rawState- (Default:
true
) boolean?
toScreen- (Default:
false
) boolean?
opaque- (Default:
true
) Iftrue
, draw opaque; iffalse
, draw alpha.
gl.UnitShapeTextures (function)
[source]gl.UnitShapeTextures(integer, boolean) -> nil
Parameters
gl.UnitMultMatrix (function)
[source]gl.UnitMultMatrix(integer) -> nil
Parameters
integer
unitID
gl.UnitPiece (function)
[source]gl.UnitPiece(integer, integer) -> nil
Parameters
gl.UnitPieceMatrix (function)
[source]gl.UnitPieceMatrix(integer, integer) -> nil
Parameters
gl.UnitPieceMultMatrix (function)
[source]gl.UnitPieceMultMatrix(integer, integer) -> nil
Parameters
gl.Feature (function)
Draw the feature, applying transform.
[source]
gl.Feature(integer, boolean?, integer?, boolean?) -> nil
Parameters
integer
featureIDboolean?
doRawDraw- (Default:
false
) integer?
useLuaMatboolean?
noLuaCall- (Default:
false
) Skip theDrawFeature
callin.
gl.FeatureRaw (function)
Draw the unit without applying transform.
Also skips the DrawFeature
callin by default so any
recursion is blocked.
[source]
gl.FeatureRaw(integer, boolean?, integer?, boolean?) -> nil
Parameters
integer
featureIDboolean?
doRawDraw- (Default:
false
) integer?
useLuaMatboolean?
noLuaCall- (Default:
true
) Skip theDrawFeature
callin.
gl.FeatureTextures (function)
[source]gl.FeatureTextures(integer, boolean) -> nil
Parameters
gl.FeatureShape (function)
[source]gl.FeatureShape(integer, integer, boolean?, boolean?, boolean?) -> nil
Parameters
integer
featureDefIDinteger
teamIDboolean?
rawState- (Default:
true
) boolean?
toScreen- (Default:
false
) boolean?
opaque- (Default:
true
) Iftrue
, draw opaque; iffalse
, draw alpha.
gl.FeatureShapeTextures (function)
[source]gl.FeatureShapeTextures(integer, boolean) -> nil
Parameters
integer
featureDefIDboolean
push- If
true
, push the render state; iffalse
, pop it.
gl.FeatureMultMatrix (function)
[source]gl.FeatureMultMatrix(integer) -> nil
Parameters
integer
featureID
gl.FeaturePiece (function)
[source]gl.FeaturePiece(integer, integer) -> nil
Parameters
gl.FeaturePieceMatrix (function)
[source]gl.FeaturePieceMatrix(integer, integer) -> nil
Parameters
gl.FeaturePieceMultMatrix (function)
[source]gl.FeaturePieceMultMatrix(integer, integer) -> nil
Parameters
gl.DrawListAtUnit (function)
[source]gl.DrawListAtUnit(integer, integer, boolean?, number?, number?, number?, number?, number?, number?, number?) -> nil
Parameters
integer
unitIDinteger
listIndexboolean?
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)
[source]gl.DrawFuncAtUnit(integer, boolean?, unknown, [any, ]*) -> nil
Parameters
gl.DrawGroundCircle (function)
[source]gl.DrawGroundCircle(number, number, number, number, integer) -> nil
Parameters
number
posXnumber
posYnumber
posZnumber
radiusinteger
resolution
gl.DrawGroundCircle (function overload 1)
[source]gl.DrawGroundCircle(number, number, number, number, integer, number, number, integer) -> nil
Parameters
number
posXnumber
posYnumber
posZnumber
radiusinteger
resolutionnumber
slopenumber
gravityinteger
weaponDefID
gl.DrawGroundCircle (function overload 2)
[source]gl.DrawGroundCircle(number, number, number, number, nil, boolean?) -> nil
Parameters
gl.DrawGroundCircle (function overload 3)
[source]gl.DrawGroundCircle(number, number, number, number, nil, number, number, number, number) -> nil
Parameters
gl.Shape (function)
[source]gl.Shape(GL, VertexData[]) -> nil
Parameters
gl.BeginEnd (function)
[source]gl.BeginEnd(GL, unknown, [any, ]*) -> nil
Parameters
gl.Vertex (function)
[source]gl.Vertex(xy) -> nil
Parameters
gl.Vertex (function overload 1)
[source]gl.Vertex(xyz) -> nil
Parameters
gl.Vertex (function overload 2)
[source]gl.Vertex(xyzw) -> nil
Parameters
gl.Vertex (function overload 3)
[source]gl.Vertex(number, number, number?, number?) -> nil
Parameters
gl.Normal (function)
[source]gl.Normal(xyz) -> nil
Parameters
gl.Normal (function overload 1)
[source]gl.Normal(number, number, number) -> nil
Parameters
gl.TexCoord (function)
[source]gl.TexCoord((number)) -> nil
Parameters
(number)
coord
gl.TexCoord (function overload 1)
[source]gl.TexCoord(xy) -> nil
Parameters
gl.TexCoord (function overload 2)
[source]gl.TexCoord(xyz) -> nil
Parameters
gl.TexCoord (function overload 3)
[source]gl.TexCoord(xyzw) -> nil
Parameters
gl.TexCoord (function overload 4)
[source]gl.TexCoord(number, number?, number?, number?) -> nil
Parameters
gl.MultiTexCoord (function)
[source]gl.MultiTexCoord(integer, (number)) -> nil
Parameters
gl.MultiTexCoord (function overload 1)
[source]gl.MultiTexCoord(integer, xy) -> nil
Parameters
gl.MultiTexCoord (function overload 2)
[source]gl.MultiTexCoord(integer, xyz) -> nil
Parameters
gl.MultiTexCoord (function overload 3)
[source]gl.MultiTexCoord(integer, xyzw) -> nil
Parameters
gl.MultiTexCoord (function overload 4)
[source]gl.MultiTexCoord(integer, number, number?, number?, number?) -> nil
Parameters
gl.SecondaryColor (function)
[source]gl.SecondaryColor(rgb) -> nil
Parameters
gl.SecondaryColor (function overload 1)
[source]gl.SecondaryColor(number, number, number) -> nil
Parameters
gl.FogCoord (function)
[source]gl.FogCoord(number) -> nil
Parameters
number
coord
gl.EdgeFlag (function)
[source]gl.EdgeFlag(boolean) -> nil
Parameters
boolean
flag
gl.Rect (function)
[source]gl.Rect(number, number, number, number) -> nil
Parameters
gl.Rect (function overload 1)
[source]gl.Rect(number, number, number, number, boolean?, boolean?) -> nil
Parameters
number
x1number
y1number
x2number
y2boolean?
flipSCoordsboolean?
flipTCoords
gl.Rect (function overload 2)
[source]gl.Rect(number, number, number, number, number, number, number, number) -> nil
Parameters
gl.DispatchCompute (function)
[source]gl.DispatchCompute(integer, integer, integer, integer?) -> nil
Parameters
gl.MemoryBarrier (function)
[source]gl.MemoryBarrier(integer?) -> nil
Parameters
integer?
barriers- (Default:
4
)
gl.Color (function)
[source]gl.Color(number, number, number, number?) -> nil
Parameters
gl.Color (function overload 1)
[source]gl.Color(rgba) -> nil
Parameters
gl.Color (function overload 2)
[source]gl.Color(rgb) -> nil
Parameters
gl.Material (function)
[source]gl.Material(Material) -> nil
Parameters
gl.ResetState (function)
[source]gl.ResetState() -> nil
gl.ResetMatrices (function)
[source]gl.ResetMatrices() -> nil
gl.Lighting (function)
[source]gl.Lighting(boolean) -> nil
Parameters
boolean
enable
gl.ShadeModel (function)
[source]gl.ShadeModel(GL) -> nil
Parameters
gl.Scissor (function)
[source]gl.Scissor(boolean) -> nil
Parameters
boolean
enable
gl.Scissor (function overload 1)
[source]gl.Scissor(integer, integer, integer, integer) -> nil
Parameters
gl.Viewport (function)
[source]gl.Viewport(integer, integer, integer, integer) -> nil
Parameters
gl.ColorMask (function)
Enable or disable writing of frame buffer color components.
[source]
gl.ColorMask(boolean) -> nil
Parameters
boolean
rgba
gl.ColorMask (function overload 1)
Enable or disable writing of frame buffer color components.
[source]
gl.ColorMask(boolean, boolean, boolean, boolean) -> nil
Parameters
gl.DepthMask (function)
Enable or disable writing into the depth buffer.
[source]
gl.DepthMask(boolean) -> nil
Parameters
boolean
enable
gl.DepthTest (function)
Enable or disable depth test.
[source]
gl.DepthTest(boolean) -> nil
Parameters
boolean
enable
gl.DepthTest (function overload 1)
Enable depth test and specify the depth comparison function.
[source]
gl.DepthTest(GL) -> nil
Parameters
gl.DepthClamp (function)
[source]gl.DepthClamp(boolean) -> nil
Parameters
boolean
enable
gl.Culling (function)
[source]gl.Culling(boolean) -> nil
Parameters
boolean
enable
gl.Culling (function overload 1)
Enable culling and set culling mode.
[source]
gl.Culling(GL) -> nil
Parameters
gl.LogicOp (function)
[source]gl.LogicOp(boolean) -> nil
Parameters
boolean
enable
gl.LogicOp (function overload 1)
Specify a logical pixel operation for rendering.
[source]
gl.LogicOp(GL) -> nil
Parameters
gl.Fog (function)
[source]gl.Fog(boolean) -> nil
Parameters
boolean
enable
gl.Blending (function)
[source]gl.Blending(boolean) -> nil
Parameters
boolean
enable
gl.Blending (function overload 1)
[source]gl.Blending(("add"|"alpha_add"|"alpha"|"reset"|"color"|"modulate"...)) -> nil
Parameters
("add"|"alpha_add"|"alpha"|"reset"|"color"|"modulate"...)
mode
gl.Blending (function overload 2)
[source]gl.Blending(GL, GL) -> nil
Parameters
gl.BlendEquation (function)
[source]gl.BlendEquation(GL) -> nil
Parameters
gl.BlendFunc (function)
[source]gl.BlendFunc(GL, GL) -> nil
Parameters
gl.BlendEquationSeparate (function)
[source]gl.BlendEquationSeparate(GL, GL) -> nil
Parameters
gl.BlendFuncSeparate (function)
[source]gl.BlendFuncSeparate(GL, GL, GL, GL) -> nil
Parameters
gl.AlphaTest (function)
[source]gl.AlphaTest(boolean) -> nil
Parameters
boolean
enable
gl.AlphaTest (function overload 1)
Specify the alpha test function.
[source]
gl.AlphaTest(GL, number) -> nil
Parameters
gl.AlphaToCoverage (function)
[source]gl.AlphaToCoverage(boolean) -> nil
Parameters
boolean
enable
gl.PolygonMode (function)
Select polygon rasterization mode.
[source]
gl.PolygonMode(GL, GL) -> nil
Parameters
gl.PolygonOffset (function)
[source]gl.PolygonOffset(boolean) -> nil
Parameters
boolean
enable
gl.PolygonOffset (function overload 1)
[source]gl.PolygonOffset(number, number) -> nil
Parameters
gl.StencilTest (function)
[source]gl.StencilTest(boolean) -> nil
Parameters
boolean
enable
gl.StencilMask (function)
Control the front and back writing of individual bits in the stencil planes.
[source]
gl.StencilMask(integer) -> nil
Parameters
integer
mask- Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all
1
’s.
gl.StencilFunc (function)
Set front and back function and reference value for stencil testing.
[source]
gl.StencilFunc(GL, integer, integer) -> nil
Parameters
GL
func- Specifies the test function. Eight symbolic constants are valid: GL.NEVER, GL.LESS, GL.EQUAL, GL.LEQUAL, GL.GREATER, GL.NOTEQUAL, GL.GEQUAL, and GL.ALWAYS. The initial value is GL.ALWAYS.
integer
ref- Specifies the reference value for the stencil test.
ref
is clamped to the range[0, 2^n - 1]
, wheren
is the number of bitplanes in the stencil buffer. The initial value is0
. integer
mask- Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all
1
’s.
gl.StencilOp (function)
Set front and back stencil test actions.
[source]
gl.StencilOp(GL, GL, GL) -> nil
Parameters
GL
fail- Specifies the action to take when the stencil test fails. Eight symbolic constants are valid:
GL.KEEP
, GL.ZERO, GL.REPLACE,GL.INCR
,GL.INCR_WRAP
,GL.DECR
,GL.DECR_WRAP
, and GL.INVERT. The initial value isGL.KEEP
. GL
zfail- Specifies the stencil action when the stencil test passes, but the depth test fails. The initial value is
GL.KEEP
. GL
zpass- Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. The initial value is
GL.KEEP
.
gl.StencilMaskSeparate (function)
Control the front and back writing of individual bits in the stencil planes.
[source]
gl.StencilMaskSeparate(GL, integer) -> nil
Parameters
GL
face- Specifies whether the front and/or back stencil writemask is updated. Three symbolic constants are accepted: GL.FRONT, GL.BACK, and GL.FRONT_AND_BACK. The initial value is GL.FRONT_AND_BACK.
integer
mask- Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all
1
’s.
gl.StencilFuncSeparate (function)
Set front and/or back function and reference value for stencil testing.
[source]
gl.StencilFuncSeparate(GL, GL, integer, integer) -> nil
Parameters
GL
face- Specifies whether front and/or back stencil state is updated. Three symbolic constants are accepted: GL.FRONT, GL.BACK, and GL.FRONT_AND_BACK. The initial value is GL.FRONT_AND_BACK.
GL
func- Specifies the test function. Eight symbolic constants are valid: GL.NEVER, GL.LESS, GL.EQUAL, GL.LEQUAL, GL.GREATER, GL.NOTEQUAL, GL.GEQUAL, and GL.ALWAYS. The initial value is GL.ALWAYS.
integer
ref- Specifies the reference value for the stencil test.
ref
is clamped to the range[0, 2^n - 1]
, wheren
is the number of bitplanes in the stencil buffer. The initial value is0
. integer
mask- Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all
1
’s.
gl.StencilOpSeparate (function)
Set front and/or back stencil test actions.
[source]
gl.StencilOpSeparate(GL, GL, GL, GL) -> nil
Parameters
GL
face- Specifies whether front and/or back stencil state is updated. Three symbolic constants are accepted: GL.FRONT, GL.BACK, and GL.FRONT_AND_BACK. The initial value is GL.FRONT_AND_BACK.
GL
fail- Specifies the action to take when the stencil test fails. Eight symbolic constants are valid:
GL.KEEP
, GL.ZERO, GL.REPLACE,GL.INCR
,GL.INCR_WRAP
,GL.DECR
,GL.DECR_WRAP
, and GL.INVERT. The initial value isGL.KEEP
. GL
zfail- Specifies the stencil action when the stencil test passes, but the depth test fails. The initial value is
GL.KEEP
. GL
zpass- Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. The initial value is
GL.KEEP
.
gl.LineStipple (function)
[source]gl.LineStipple(boolean) -> nil
Parameters
boolean
enable
gl.LineStipple (function overload 1)
[source]gl.LineStipple(string) -> nil
Parameters
string
ignoredString- The value of this string is ignored, but it still does something.
gl.LineStipple (function overload 2)
[source]gl.LineStipple(integer, integer, integer?) -> nil
Parameters
gl.LineWidth (function)
[source]gl.LineWidth(number) -> nil
Parameters
number
width
gl.PointSize (function)
[source]gl.PointSize(number) -> nil
Parameters
number
size
gl.PointSprite (function)
[source]gl.PointSprite(boolean, boolean?, boolean?) -> nil
Parameters
boolean
enableboolean?
enableCoordReplaceboolean?
coordOrigintrue
for upper left,false
for lower left, otherwise no change.
gl.PointParameter (function)
[source]gl.PointParameter(number, number, number, number?, number?, number?) -> nil
Parameters
gl.Texture (function)
[source]gl.Texture(integer, boolean?) -> boolean
Parameters
Returns
gl.Texture (function overload 1)
[source]gl.Texture(boolean) -> boolean
Parameters
boolean
enable
Returns
gl.Texture (function overload 2)
[source]gl.Texture(integer, string) -> boolean
Parameters
Returns
gl.Texture (function overload 3)
[source]gl.Texture(string) -> boolean
Parameters
string
image
Returns
gl.CreateTexture (function)
[source]gl.CreateTexture(integer, integer, Texture) -> string?
Parameters
Returns
string?
texName
gl.CreateTexture (function overload 1)
[source]gl.CreateTexture(integer, integer, integer, Texture) -> string?
Parameters
Returns
string?
texName
gl.ChangeTextureParams (function)
[source]gl.ChangeTextureParams(string, Texture) -> nil
Parameters
gl.DeleteTexture (function)
[source]gl.DeleteTexture(string) -> boolean
Parameters
string
texName
Returns
gl.DeleteTextureFBO (function)
[source]gl.DeleteTextureFBO(string) -> boolean
Parameters
string
texName
Returns
gl.TextureInfo (function)
[source]gl.TextureInfo(string) -> TextureInfo
Parameters
string
texName
Returns
gl.CopyToTexture (function)
[source]gl.CopyToTexture(string, integer, integer, integer, integer, integer, integer, GL?, GL?) -> nil
Parameters
gl.RenderToTexture (function)
[source]gl.RenderToTexture(string, unknown, [any, ]*) -> nil
Parameters
gl.GenerateMipmap (function)
[source]gl.GenerateMipmap(string) -> nil
Parameters
string
texName
gl.ActiveTexture (function)
[source]gl.ActiveTexture(integer, function, [any, ]*) -> nil
Parameters
gl.TextEnv (function)
[source]gl.TextEnv(GL, GL, number) -> nil
Parameters
gl.TextEnv (function overload 1)
[source]gl.TextEnv(GL, GL, number?, number?, number?, number?) -> nil
Parameters
GL
targetGL
pnamenumber?
r- (Default:
0.0
) number?
g- (Default:
0.0
) number?
b- (Default:
0.0
) number?
a- (Default:
0.0
)
gl.MultiTexEnv (function)
[source]gl.MultiTexEnv(integer, GL, GL, number) -> nil
Parameters
gl.MultiTexEnv (function overload 1)
[source]gl.MultiTexEnv(integer, GL, GL, number?, number?, number?, number?) -> nil
Parameters
integer
texNumGL
targetGL
pnamenumber?
r- (Default:
0.0
) number?
g- (Default:
0.0
) number?
b- (Default:
0.0
) number?
a- (Default:
0.0
)
gl.TexGen (function)
[source]gl.TexGen(GL, boolean) -> nil
Parameters
gl.TexGen (function overload 1)
[source]gl.TexGen(GL, GL, number) -> nil
Parameters
gl.TexGen (function overload 2)
[source]gl.TexGen(GL, GL, number?, number?, number?, number?) -> nil
Parameters
GL
targetGL
pnamenumber?
r- (Default:
0.0
) number?
g- (Default:
0.0
) number?
b- (Default:
0.0
) number?
a- (Default:
0.0
)
gl.MultiTexGen (function)
[source]gl.MultiTexGen(integer, GL, boolean) -> nil
Parameters
gl.MultiTexGen (function overload 1)
[source]gl.MultiTexGen(integer, GL, GL, number) -> nil
Parameters
gl.MultiTexGen (function overload 2)
[source]gl.MultiTexGen(integer, GL, GL, number?, number?, number?, number?) -> nil
Parameters
integer
texNumGL
targetGL
pnamenumber?
r- (Default:
0.0
) number?
g- (Default:
0.0
) number?
b- (Default:
0.0
) number?
a- (Default:
0.0
)
gl.BindImageTexture (function)
[source]
For format parameters refer to https://registry.khronos.org/OpenGL-Refpages/gl4/html/glBindImageTexture.xhtml and https://beyond-all-reason.github.io/RecoilEngine/lua-api/types/GL#rgba32f
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) -> nil
Parameters
integer
unitstring?
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.
integer
format- (Example: GL.RGBA16F)
gl.CreateTextureAtlas (function)
[source]gl.CreateTextureAtlas(integer, integer, integer?) -> string
Parameters
Returns
string
texName
gl.FinalizeTextureAtlas (function)
[source]gl.FinalizeTextureAtlas(string) -> boolean
Parameters
string
texName
Returns
gl.DeleteTextureAtlas (function)
[source]gl.DeleteTextureAtlas(string) -> boolean
Parameters
string
texName
Returns
gl.AddAtlasTexture (function)
[source]gl.AddAtlasTexture(string, string) -> nil
Parameters
string
texNamestring
subAtlasTexName
gl.GetAtlasTexture (function)
[source]gl.GetAtlasTexture(string, string) -> number, number, number, number
Parameters
string
texNamestring
subAtlasTexName
Returns
gl.GetEngineAtlasTextures (function)
[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)
[source]gl.Clear(GL, number) -> nil
Parameters
gl.Clear (function overload 1)
[source]gl.Clear(GL, number, number, number, number) -> nil
Parameters
GL
bits- GL.COLOR_BUFFER_BIT or GL.ACCUM_BUFFER_BIT.
number
rnumber
gnumber
bnumber
a
gl.SwapBuffers (function)
[source]gl.SwapBuffers() -> nil
gl.Translate (function)
[source]gl.Translate(number, number, number) -> nil
Parameters
gl.Scale (function)
[source]gl.Scale(number, number, number) -> nil
Parameters
gl.Rotate (function)
[source]gl.Rotate(number, number, number, number) -> nil
Parameters
gl.Ortho (function)
[source]gl.Ortho(number, number, number, number, number, number) -> nil
Parameters
gl.Frustum (function)
[source]gl.Frustum(number, number, number, number, number, number) -> nil
Parameters
gl.Billboard (function)
[source]gl.Billboard() -> nil
gl.Light (function)
[source]gl.Light(integer, boolean) -> nil
Parameters
gl.Light (function overload 1)
[source]gl.Light(integer, GL, GL) -> nil
Parameters
gl.Light (function overload 2)
[source]gl.Light(integer, GL, number, number, number, number?) -> nil
Parameters
gl.ClipPlane (function)
[source]gl.ClipPlane(integer, boolean) -> nil
Parameters
gl.ClipPlane (function overload 1)
[source]gl.ClipPlane(integer, number, number, number, number) -> nil
Parameters
gl.ClipDistance (function)
[source]gl.ClipDistance(integer, boolean) -> nil
Parameters
gl.MatrixMode (function)
[source]gl.MatrixMode(GL) -> nil
Parameters
gl.LoadIdentity (function)
[source]gl.LoadIdentity() -> nil
gl.LoadMatrix (function)
[source]gl.LoadMatrix(string) -> nil
Parameters
string
matrix
gl.LoadMatrix (function overload 1)
[source]gl.LoadMatrix(Matrix4x4) -> nil
Parameters
gl.LoadMatrix (function overload 2)
[source]gl.LoadMatrix() -> number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number
Returns
number
m11number
m12number
m13number
m14number
m21number
m22number
m23number
m24number
m31number
m32number
m33number
m34number
m41number
m42number
m43number
m44
gl.MultMatrix (function)
[source]gl.MultMatrix(string) -> nil
Parameters
string
matrixName
gl.MultMatrix (function overload 1)
[source]gl.MultMatrix(Matrix4x4) -> nil
Parameters
gl.MultMatrix (function overload 2)
[source]gl.MultMatrix(number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number) -> nil
Parameters
number
m11number
m12number
m13number
m14number
m21number
m22number
m23number
m24number
m31number
m32number
m33number
m34number
m41number
m42number
m43number
m44
gl.PushMatrix (function)
[source]gl.PushMatrix() -> nil
gl.PopMatrix (function)
[source]gl.PopMatrix() -> nil
gl.PushPopMatrix (function)
[source]gl.PushPopMatrix(GL, fun(), [any, ]*) -> nil
Parameters
gl.PushPopMatrix (function overload 1)
[source]gl.PushPopMatrix(fun(), [any, ]*) -> nil
Parameters
gl.GetMatrixData (function)
Get value at index of matrix.
[source]
gl.GetMatrixData(GL, integer) -> number
Parameters
GL
type- Matrix type (GL.PROJECTION, GL.MODELVIEW, GL.TEXTURE).
integer
index- Matrix index in range
[1, 16]
.
Returns
number
The- value.
gl.GetMatrixData (function overload 1)
[source]gl.GetMatrixData(GL) -> Matrix4x4
Parameters
GL
type- Matrix type (GL.PROJECTION, GL.MODELVIEW, GL.TEXTURE).
Returns
gl.GetMatrixData (function overload 2)
[source]gl.GetMatrixData(integer) -> number
Parameters
integer
index- Matrix index in range
[1, 16]
.
Returns
number
The- value.
gl.GetMatrixData (function overload 3)
[source]gl.GetMatrixData(MatrixName) -> Matrix4x4
Parameters
MatrixName
name- The matrix name.
Returns
gl.PushAttrib (function)
[source]gl.PushAttrib(GL?) -> nil
Parameters
GL?
mask- (Default: GL.ALL_ATTRIB_BITS)
gl.PopAttrib (function)
[source]gl.PopAttrib() -> nil
gl.UnsafeState (function)
[source]gl.UnsafeState(GL, fun(), [any, ]*) -> nil
Parameters
gl.UnsafeState (function overload 1)
[source]gl.UnsafeState(GL, boolean, fun(), [any, ]*) -> nil
Parameters
gl.GetFixedState (function)
[source]gl.GetFixedState(string, boolean?) -> boolean, any ...
Parameters
Returns
gl.CreateList (function)
[source]gl.CreateList(fun(), [any, ]*) -> nil
Parameters
gl.CallList (function)
[source]gl.CallList(integer) -> nil
Parameters
integer
listIndex
gl.DeleteList (function)
[source]gl.DeleteList(integer) -> nil
Parameters
integer
listIndex
gl.Flush (function)
[source]gl.Flush() -> nil
gl.Finish (function)
[source]gl.Finish() -> nil
gl.ReadPixels (function)
Get single pixel.
[source]
gl.ReadPixels(integer, integer, 1, 1, GL?) -> number ...
Parameters
Returns
number ...
Color- values (color size based on format).
gl.ReadPixels (function overload 1)
Get column of pixels.
[source]
gl.ReadPixels(integer, integer, 1, integer, GL?) -> number[][]
Parameters
Returns
number[][]
Column- of color values (color size based on format).
gl.ReadPixels (function overload 2)
Get row of pixels.
[source]
gl.ReadPixels(integer, integer, integer, 1, GL?) -> number[][]
Parameters
Returns
number[][]
Row- of color values (color size based on format).
gl.ReadPixels (function overload 3)
Get row of pixels.
[source]
gl.ReadPixels(integer, integer, integer, integer, GL?) -> number[][][]
Parameters
Returns
number[][][]
Array- of columns of color values (color size based on format).
gl.SaveImage (function)
[source]gl.SaveImage(integer, integer, integer, integer, string, SaveImageOptions?) -> boolean?
Parameters
Returns
boolean?
success
gl.CreateQuery (function)
[source]gl.CreateQuery() -> any
Returns
any
query
gl.DeleteQuery (function)
[source]gl.DeleteQuery(any) -> nil
Parameters
any
query
gl.RunQuery (function)
[source]gl.RunQuery(any) -> nil
Parameters
any
query
gl.GetQuery (function)
[source]gl.GetQuery(any) -> integer
Parameters
any
query
Returns
integer
count
gl.GetGlobalTexNames (function)
[source]gl.GetGlobalTexNames() -> string[]
Returns
string[]
List- of texture names.
gl.GetGlobalTexCoords (function)
[source]gl.GetGlobalTexCoords() -> number, number, number, number
Returns
gl.GetShadowMapParams (function)
[source]gl.GetShadowMapParams() -> number, number, number, number
Returns
gl.GetAtmosphere (function)
[source]gl.GetAtmosphere() -> number, number, number
Returns
gl.GetAtmosphere (function overload 1)
[source]gl.GetAtmosphere(("fogStart"|"fogEnd"|"pos"|"fogColor"|"skyColor"|"sunColor"...)) -> any ...
Parameters
("fogStart"|"fogEnd"|"pos"|"fogColor"|"skyColor"|"sunColor"...)
param
Returns
gl.GetSun (function)
[source]gl.GetSun() -> number, number, number
Returns
gl.GetSun (function overload 1)
[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)
[source]gl.GetWaterRendering(string) -> any ...
Parameters
string
key
Returns
any ...
value
gl.GetMapRendering (function)
[source]gl.GetMapRendering(string) -> any ...
Parameters
string
key
Returns
any ...
value
gl.ObjectLabel (function)
Labels an object for use with debugging tools.
May be unavailable and nil
if the platform doesn’t support the feature.
[source]
gl.ObjectLabel(GL, integer, string) -> nil
Parameters
GL
objectTypeIdentifier- Specifies the type of object being labeled.
integer
objectID- Specifies the name or ID of the object to label.
string
label- A string containing the label to be assigned to the object.
gl.PushDebugGroup (function)
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.
[source]
gl.PushDebugGroup(integer, string, boolean) -> nil
Parameters
integer
id- A numeric identifier for the group, can be any unique number.
string
message- 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)
Pops the most recent GL debug group from the stack (does NOT take the numerical ID from push).
May be unavailable and nil
if the platform doesn’t support the feature.
[source]
gl.PopDebugGroup() -> nil
Returns
gl.AddFallbackFont (function)
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).
[source]
gl.AddFallbackFont(string) -> boolean
Parameters
string
filePath- VFS path to the file, for example “fonts/myfont.ttf”. Uses VFS.RAW_FIRST access mode.
Returns
boolean
success
gl.ClearFallbackFonts (function)
Clears all fallback fonts.
See the note at ‘AddFallbackFont’ about the ‘FontsChanged’ callin, it also applies when calling this method.
[source]
gl.ClearFallbackFonts() -> nil
Returns
GL (field)
Constants for OpenGL API
For callouts related to OpenGL usage in Recoil, see gl.
[source]
See gl
GL (enum)
Constants for OpenGL API
For callouts related to OpenGL usage in Recoil, see gl.
[source]
integer
POINTS- [source]
integer
LINES- [source]
integer
LINE_LOOP- [source]
integer
LINE_STRIP- [source]
integer
TRIANGLES- [source]
integer
TRIANGLE_STRIP- [source]
integer
TRIANGLE_FAN- [source]
integer
QUADS- [source]
integer
QUAD_STRIP- [source]
integer
POLYGON- [source]
integer
LINE_STRIP_ADJACENCY- [source]
integer
LINES_ADJACENCY- [source]
integer
TRIANGLE_STRIP_ADJACENCY- [source]
integer
TRIANGLES_ADJACENCY- [source]
integer
PATCHES- [source]
integer
ZERO- [source]
integer
ONE- [source]
integer
SRC_COLOR- [source]
integer
ONE_MINUS_SRC_COLOR- [source]
integer
SRC_ALPHA- [source]
integer
ONE_MINUS_SRC_ALPHA- [source]
integer
DST_ALPHA- [source]
integer
ONE_MINUS_DST_ALPHA- [source]
integer
DST_COLOR- [source]
integer
ONE_MINUS_DST_COLOR- [source]
integer
SRC_ALPHA_SATURATE- [source]
integer
FUNC_ADD- [source]
integer
FUNC_SUBTRACT- [source]
integer
FUNC_REVERSE_SUBTRACT- [source]
integer
MIN- [source]
integer
MAX- [source]
integer
NEVER- [source]
integer
LESS- [source]
integer
EQUAL- [source]
integer
LEQUAL- [source]
integer
GREATER- [source]
integer
NOTEQUAL- [source]
integer
GEQUAL- [source]
integer
ALWAYS- [source]
integer
CLEAR- [source]
integer
AND- [source]
integer
AND_REVERSE- [source]
integer
COPY- [source]
integer
AND_INVERTED- [source]
integer
NOOP- [source]
integer
XOR- [source]
integer
OR- [source]
integer
NOR- [source]
integer
EQUIV- [source]
integer
INVERT- [source]
integer
OR_REVERSE- [source]
integer
COPY_INVERTED- [source]
integer
OR_INVERTED- [source]
integer
NAND- [source]
integer
SET- [source]
integer
BACK- [source]
integer
FRONT- [source]
integer
FRONT_AND_BACK- [source]
integer
POINT- [source]
integer
LINE- [source]
integer
FILL- [source]
integer
FLAT- [source]
integer
SMOOTH- [source]
integer
MODELVIEW- [source]
integer
PROJECTION- [source]
integer
TEXTURE- [source]
integer
NEAREST- [source]
integer
LINEAR- [source]
integer
NEAREST_MIPMAP_NEAREST- [source]
integer
LINEAR_MIPMAP_NEAREST- [source]
integer
NEAREST_MIPMAP_LINEAR- [source]
integer
LINEAR_MIPMAP_LINEAR- [source]
integer
REPEAT- [source]
integer
MIRRORED_REPEAT- [source]
integer
CLAMP- [source]
integer
CLAMP_TO_EDGE- [source]
integer
CLAMP_TO_BORDER- [source]
integer
TEXTURE_ENV- [source]
integer
TEXTURE_ENV_MODE- [source]
integer
TEXTURE_ENV_COLOR- [source]
integer
MODULATE- [source]
integer
DECAL- [source]
integer
BLEND- [source]
integer
REPLACE- [source]
integer
TEXTURE_FILTER_CONTROL- [source]
integer
TEXTURE_LOD_BIAS- [source]
integer
TEXTURE_GEN_MODE- [source]
integer
EYE_PLANE- [source]
integer
OBJECT_PLANE- [source]
integer
EYE_LINEAR- [source]
integer
OBJECT_LINEAR- [source]
integer
SPHERE_MAP- [source]
integer
NORMAL_MAP- [source]
integer
REFLECTION_MAP- [source]
integer
S- [source]
integer
T- [source]
integer
R- [source]
integer
Q- [source]
integer
CURRENT_BIT- [source]
integer
POINT_BIT- [source]
integer
LINE_BIT- [source]
integer
POLYGON_BIT- [source]
integer
POLYGON_STIPPLE_BIT- [source]
integer
PIXEL_MODE_BIT- [source]
integer
LIGHTING_BIT- [source]
integer
FOG_BIT- [source]
integer
DEPTH_BUFFER_BIT- [source]
integer
ACCUM_BUFFER_BIT- [source]
integer
STENCIL_BUFFER_BIT- [source]
integer
VIEWPORT_BIT- [source]
integer
TRANSFORM_BIT- [source]
integer
ENABLE_BIT- [source]
integer
COLOR_BUFFER_BIT- [source]
integer
HINT_BIT- [source]
integer
EVAL_BIT- [source]
integer
LIST_BIT- [source]
integer
TEXTURE_BIT- [source]
integer
SCISSOR_BIT- [source]
integer
ALL_ATTRIB_BITS- [source]
integer
FOG_HINT- [source]
integer
PERSPECTIVE_CORRECTION_HINT- [source]
integer
DONT_CARE- [source]
integer
FASTEST- [source]
integer
NICEST- [source]
integer
AMBIENT- [source]
integer
DIFFUSE- [source]
integer
SPECULAR- [source]
integer
POSITION- [source]
integer
SPOT_DIRECTION- [source]
integer
SPOT_EXPONENT- [source]
integer
SPOT_CUTOFF- [source]
integer
CONSTANT_ATTENUATION- [source]
integer
LINEAR_ATTENUATION- [source]
integer
QUADRATIC_ATTENUATION- [source]
integer
VERTEX_SHADER- [source]
integer
TESS_CONTROL_SHADER- [source]
integer
TESS_EVALUATION_SHADER- [source]
integer
GEOMETRY_SHADER_EXT- [source]
integer
FRAGMENT_SHADER- [source]
integer
GEOMETRY_INPUT_TYPE_EXT- [source]
integer
GEOMETRY_OUTPUT_TYPE_EXT- [source]
integer
GEOMETRY_VERTICES_OUT_EXT- [source]
integer
PATCH_VERTICES- [source]
integer
PATCH_DEFAULT_OUTER_LEVEL- [source]
integer
PATCH_DEFAULT_INNER_LEVEL- [source]
integer
BYTE- [source]
integer
UNSIGNED_BYTE- [source]
integer
SHORT- [source]
integer
UNSIGNED_SHORT- [source]
integer
INT- [source]
integer
UNSIGNED_INT- [source]
integer
FLOAT- [source]
integer
FLOAT_VEC4- [source]
integer
INT_VEC4- [source]
integer
UNSIGNED_INT_VEC4- [source]
integer
FLOAT_MAT4- [source]
integer
ELEMENT_ARRAY_BUFFER- [source]
integer
ARRAY_BUFFER- [source]
integer
UNIFORM_BUFFER- [source]
integer
SHADER_STORAGE_BUFFER- [source]
integer
TEXTURE_1D- [source]
integer
TEXTURE_2D- [source]
integer
TEXTURE_2D_ARRAY- [source]
integer
TEXTURE_3D- [source]
integer
TEXTURE_CUBE_MAP- [source]
integer
TEXTURE_2D_MULTISAMPLE- [source]
integer
RGBA32F- [source]
integer
RGBA16F- [source]
integer
RG32F- [source]
integer
RG16F- [source]
integer
R11F_G11F_B10F- [source]
integer
R32F- [source]
integer
R16F- [source]
integer
RGBA32UI- [source]
integer
RGBA16UI- [source]
integer
RGB10_A2UI- [source]
integer
RGBA8UI- [source]
integer
RG32UI- [source]
integer
RG16UI- [source]
integer
RG8UI- [source]
integer
R32UI- [source]
integer
R16UI- [source]
integer
R8UI- [source]
integer
RGBA32I- [source]
integer
RGBA16I- [source]
integer
RGBA8I- [source]
integer
RG32I- [source]
integer
RG16I- [source]
integer
RG8I- [source]
integer
R32I- [source]
integer
R16I- [source]
integer
R8I- [source]
integer
RGBA16- [source]
integer
RGB10_A2- [source]
integer
RGBA8- [source]
integer
RG16- [source]
integer
RG8- [source]
integer
R16- [source]
integer
R8- [source]
integer
RGBA16_SNORM- [source]
integer
RGBA8_SNORM- [source]
integer
RG16_SNORM- [source]
integer
RG8_SNORM- [source]
integer
R16_SNORM- [source]
integer
R8_SNORM- [source]
integer
DEPTH_COMPONENT16- [source]
integer
DEPTH_COMPONENT24- [source]
integer
DEPTH_COMPONENT32- [source]
integer
DEPTH_COMPONENT32F- [source]
integer
READ_ONLY- [source]
integer
WRITE_ONLY- [source]
integer
READ_WRITE- [source]
integer
VERTEX_ATTRIB_ARRAY_BARRIER_BIT- [source]
integer
ELEMENT_ARRAY_BARRIER_BIT- [source]
integer
UNIFORM_BARRIER_BIT- [source]
integer
TEXTURE_FETCH_BARRIER_BIT- [source]
integer
SHADER_IMAGE_ACCESS_BARRIER_BIT- [source]
integer
COMMAND_BARRIER_BIT- [source]
integer
PIXEL_BUFFER_BARRIER_BIT- [source]
integer
TEXTURE_UPDATE_BARRIER_BIT- [source]
integer
BUFFER_UPDATE_BARRIER_BIT- [source]
integer
FRAMEBUFFER_BARRIER_BIT- [source]
integer
TRANSFORM_FEEDBACK_BARRIER_BIT- [source]
integer
ATOMIC_COUNTER_BARRIER_BIT- [source]
integer
SHADER_STORAGE_BARRIER_BIT- [source]
integer
ALL_BARRIER_BITS- [source]
integer
COLOR_ATTACHMENT0- [source]
integer
COLOR_ATTACHMENT1- [source]
integer
COLOR_ATTACHMENT2- [source]
integer
COLOR_ATTACHMENT3- [source]
integer
COLOR_ATTACHMENT4- [source]
integer
COLOR_ATTACHMENT5- [source]
integer
COLOR_ATTACHMENT6- [source]
integer
COLOR_ATTACHMENT7- [source]
integer
COLOR_ATTACHMENT8- [source]
integer
COLOR_ATTACHMENT9- [source]
integer
COLOR_ATTACHMENT10- [source]
integer
COLOR_ATTACHMENT11- [source]
integer
COLOR_ATTACHMENT12- [source]
integer
COLOR_ATTACHMENT13- [source]
integer
COLOR_ATTACHMENT14- [source]
integer
COLOR_ATTACHMENT15- [source]
integer
DEPTH_ATTACHMENT- [source]
integer
STENCIL_ATTACHMENT- [source]
integer
COLOR_ATTACHMENT0_EXT- [source]
integer
COLOR_ATTACHMENT1_EXT- [source]
integer
COLOR_ATTACHMENT2_EXT- [source]
integer
COLOR_ATTACHMENT3_EXT- [source]
integer
COLOR_ATTACHMENT4_EXT- [source]
integer
COLOR_ATTACHMENT5_EXT- [source]
integer
COLOR_ATTACHMENT6_EXT- [source]
integer
COLOR_ATTACHMENT7_EXT- [source]
integer
COLOR_ATTACHMENT8_EXT- [source]
integer
COLOR_ATTACHMENT9_EXT- [source]
integer
COLOR_ATTACHMENT10_EXT- [source]
integer
COLOR_ATTACHMENT11_EXT- [source]
integer
COLOR_ATTACHMENT12_EXT- [source]
integer
COLOR_ATTACHMENT13_EXT- [source]
integer
COLOR_ATTACHMENT14_EXT- [source]
integer
COLOR_ATTACHMENT15_EXT- [source]
integer
DEPTH_ATTACHMENT_EXT- [source]
integer
STENCIL_ATTACHMENT_EXT- [source]
integer
BUFFER- [source]
integer
SHADER- [source]
integer
PROGRAM- [source]
integer
VERTEX_ARRAY- [source]
integer
QUERY- [source]
integer
PROGRAM_PIPELINE- [source]
integer
TRANSFORM_FEEDBACK- [source]
integer
RENDERBUFFER- [source]
integer
FRAMEBUFFER- [source]
RmlUi (table)
Global functions for Recoil’s RmlUi implementation.
[source]
Members
RmlUi.CreateContext (function)
Create a new context.
[source]
RmlUi.CreateContext(string) -> RmlUi.Context?
Parameters
string
name
Returns
RmlUi.Context?
nil- if failed.
RmlUi.RemoveContext (function)
Remove a context.
[source]
RmlUi.RemoveContext((string|RmlUi.Context)) -> nil
Parameters
(string|RmlUi.Context)
context
RmlUi.LoadFontFace (function)
Load a font face.
[source]
RmlUi.LoadFontFace(string, boolean?, RmlUi.font_weight?) -> boolean
Parameters
string
file_pathboolean?
fallbackRmlUi.font_weight?
weight
Returns
boolean
success
RmlUi.GetContext (function)
Get a context by name.
[source]
RmlUi.GetContext(string) -> RmlUi.Context?
Parameters
string
name
Returns
RmlUi.Context?
nil- if failed.
RmlUi.RegiserEventType (function)
Register a new event type.
[source]
RmlUi.RegiserEventType(string, boolean?, boolean?, RmlUi.default_action_phase?) -> RmlUi.EventID
Parameters
string
event_typeboolean?
interruptibleboolean?
bubblesRmlUi.default_action_phase?
default_phase
Returns
RmlUi.AddTranslationString (function)
Add a translation string.
[source]
RmlUi.AddTranslationString(string, string) -> boolean
Parameters
string
keystring
translation
Returns
boolean
success
RmlUi.ClearTranslations (function)
Clear registered translations.
[source]
RmlUi.ClearTranslations() -> nil
RmlUi.SetMouseCursorAlias (function)
Converts the css names for cursors to the Recoil Engine names for cursors like RmlUi.SetMouseCursorAlias(“pointer”, ‘Move’)
.
Web devs tend to want to use specific words for pointer types.
[source]
RmlUi.SetMouseCursorAlias(string, string) -> nil
Parameters
string
rml_name- name used in rml script
string
recoil_name- name used in recoil
RmlUi.SetDebugContext (function)
Set which context the debug inspector is meant to inspect.
[source]
RmlUi.SetDebugContext((string|RmlUi.Context)) -> nil
Parameters
(string|RmlUi.Context)
context
Fields
RmlUi.Context
ContextHolds 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:
[source]
RmlUi.ElementPtr
ElementPtrRepresents 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.[source]
RmlUi.Context[]
contexts- [source]
string
version- [source] RmlUi version
RmlUi.key_identifier
key_identifier- [source]
RmlUi.key_modifier
key_modifier- [source]
RmlUi.font_weight
font_weight- [source]
RmlUi.default_action_phase
default_action_phase- [source]
RmlUi.RmlModalFlag
RmlModalFlag- [source]
RmlUi.RmlFocusFlag
RmlFocusFlag- [source]
RmlUi.Document
DocumentDocument 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:
[source]
RmlUi.Vector2i
Vector2iTwo-dimensional integral vector.
[source]
RmlUi.Vector2f
Vector2fTwo-dimensional float vector
[source]
RmlUi.ElementForm
ElementForm- [source]
RmlUi.ElementFormControl
ElementFormControl- [source]
RmlUi.ElementFormControlInput
ElementFormControlInput- [source]
RmlUi.ElementFormControlSelect
ElementFormControlSelect- [source]
RmlUi.ElementFormControlTextArea
ElementFormControlTextArea- [source]
RmlUi.EventListener
EventListenerEvent listener interface
[source]
RmlUi.Element
ElementRepresents 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.
[source]
RmlUi.RmlEventPhase
RmlEventPhase- [source]
RmlUi.EventParametersProxy
EventParametersProxyKeyboard and mouse input data associated with an event.
[source]
RmlUi.Event
EventAn event that happens to an element.
[source]
RmlUi.ElementText
ElementText- [source]
RmlUi.ElementTabSet
ElementTabSet- [source]
RmlUi.ElementProgress
ElementProgress- [source]
RmlUi.SolLuaDataModel<T>
SolLuaDataModelHandle 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.[source]
AIInfo (class)
[source]Fields
ActiveUniform (class)
[source]Fields
string
namestring
type- String name of
GL_*
constant. integer
length- The character length of
name
. integer
sizeGL
location
ArchiveInfo (class)
[source]Fields
string
namestring
shortnamestring
versionstring
mutatorstring
gamestring
shortgamestring
descriptionstring
mapfileModType
modtype
AtmosphereParams (class)
[source]Fields
number
fogStartnumber
fogEndrgba
sunColorrgba
skyColorrgba
cloudColorxyzw
skyAxisAngle- rotation axis and angle in radians of skybox orientation
CallAsTeamOptions (class)
[source]Fields
CameraState (class)
Parameters for camera state.
Highly dependent on the type of the current camera controller.
Fields
CameraName
name- The camera name.
CameraMode
mode- 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-1
for when south is down,1
for 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)
CameraVectors (class)
[source]Fields
xyz
forwardxyz
upxyz
rightxyz
topFrustumPlanexyz
botFrustumPlanexyz
lftFrustumPlanexyz
rgtFrustumPlane
CollisionVolumeData (class)
Parameters related to a collision volume.
[source]
Fields
("ellipsoid"|"cylinder"|"box"|"sphere")
type- type
number
scaleXnumber
scaleYnumber
scaleZnumber
offsetXnumber
offsetYnumber
offsetZnumber
boundingRadiusboolean
defaultToSphereboolean
defaultToFootPrintboolean
defaultToPieceTree
Command (class)
[source]Fields
integer
idnumber[]?
paramsCommandOptions?
options
CommandDescription (class)
Contains data about a command.
[source]
Fields
(CMD|integer)?
idCMDTYPE?
typestring?
namestring?
actionstring?
tooltipstring?
texturestring?
cursorboolean?
queueingboolean?
hiddenboolean?
disabledboolean?
showUniqueboolean?
onlyTexturestring[]?
params
CommandOptions (class)
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.
[source]
Fields
(CommandOptionBit|integer)
coded- Bitmask of command options.
boolean
alt- Alt key pressed.
boolean
ctrl- Ctrl key pressed.
boolean
shift- Shift key pressed.
boolean
right- Right mouse key pressed.
boolean
meta- Meta key (space) pressed.
boolean
internal
Configuration (class)
Contains data about a configuration, only name and type are guaranteed
[source]
Fields
string
namestring
typestring
descriptionstring
defaultValuestring
minimumValuestring
maximumValuestring
safemodeValuestring
declarationFilestring
declarationLineboolean
readOnly
ControlPoint (class)
NURBS control point.
[source]
CreateCommand (class)
Used when assigning multiple commands at once.
[source]
CreateRBOData (class)
[source]Fields
ExplosionParams (class)
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.
[source]
Fields
number
weaponDefnumber
ownernumber
hitUnitnumber
hitFeaturenumber
craterAreaOfEffectnumber
damageAreaOfEffectnumber
edgeEffectivenessnumber
explosionSpeednumber
gfxModboolean
impactOnlyboolean
ignoreOwnerboolean
damageGround
FBO (class)
User Data FBO
[source]
FBODescription (class)
[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
FeatureSupport (class)
[source]Fields
boolean
NegativeGetUnitCurrentCommand- Whether Spring.GetUnitCurrentCommand allows negative indices to look from the end
boolean
hasExitOnlyYardmaps- Whether yardmaps accept ’e’ (exit only) and ‘u’ (unbuildable, walkable)
integer
rmlUiApiVersion- Version of Recoil’s rmlUI API
boolean
noAutoShowMetal- Whether the engine switches to the metal view when selecting a “build metal extractor” command (yes if false)
integer
maxPiecesPerModel- How many pieces supported for 3d models?
number
gunshipCruiseAltitudeMultiplier- For gunships, the cruiseAltitude from the unit def is multiplied by this much
boolean
noRefundForConstructionDecay- Whether there is no refund for construction decay (100% metal back if false)
boolean
noRefundForFactoryCancel- Whether there is no refund for factory cancel (100% metal back if false)
boolean
noOffsetForFeatureID- Whether featureID from various interfaces (targetID for Reclaim commands, ownerID from SpringGetGroundDecalOwner, etc) needs to be offset by Game.maxUnits
boolean
noHandicapForReclaim- Whether handicap is applied to income from reclaim
boolean
groupAddDoesntSelect- Whether ‘group add’ also selects the group (does both if false)
GenericMoveType (class)
[source]Fields
number?
maxSpeednumber?
maxWantedSpeednumber?
maneuverLeashnumber?
waterlineboolean?
useWantedSpeed[0]- Use wanted speed for individual orders.
boolean?
useWantedSpeed[1]- Use wanted speed for formation orders.
GroundMoveType (class)
Inherits GenericMoveType
Fields
boolean?
atGoalboolean?
atEndOfPathboolean?
pushResistantinteger?
minScriptChangeHeadingnumber?
turnRatenumber?
turnAccelnumber?
accRatenumber?
decRatenumber?
myGravitynumber?
maxReverseDistnumber?
minReverseAnglenumber?
maxReverseSpeednumber?
sqSkidSpeedMult
HoverAirMoveType (class)
Inherits GenericMoveType
Fields
boolean?
collideboolean?
dontLandboolean?
airStrafeboolean?
useSmoothMeshboolean?
bankingAllowednumber?
wantedHeightnumber?
accRatenumber?
decRatenumber?
turnRatenumber?
altitudeRatenumber?
currentBanknumber?
currentPitchnumber?
maxDrift
Intro (class)
Inherits Callins
Members
Intro:DrawLoadScreen (function)
Draws custom load screens.
[source]
Intro:DrawLoadScreen() -> nil
Intro:LoadProgress (function)
[source]Intro:LoadProgress(string, boolean) -> nil
Parameters
string
messageboolean
replaceLastLine
KeyBinding (class)
Contains data about a keybinding
[source]
Fields
KeyModifiers (class)
Key Modifier Params
[source]
Fields
boolean
right- Right mouse key pressed
boolean
alt- Alt key pressed
boolean
ctrl- Ctrl key pressed
boolean
shift- Shift key pressed
LightParams (class)
Parameters for lighting
[source]
Fields
{ 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.0
then the*DecayRate
values will be interpreted as linear, otherwise exponential. number
radiusnumber
fovnumber
ttlnumber
priorityboolean
ignoreLOS
LuaFont (class)
Lua opengl font object.
[source]
Members
LuaFont:Begin (function)
Begin a block of font commands.
[source]
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)
.
LuaFont:Begin(boolean?) -> nil
Parameters
boolean?
userDefinedBlending- When
true
doesn’t set the gl.BlendFunc automatically. Defaults tofalse
.
LuaFont:SubmitBuffered (function)
Draws text printed with the buffered
option.
[source]
LuaFont:SubmitBuffered(boolean?, boolean?) -> nil
Parameters
boolean?
noBillboarding- When
false
sets 3d billboard mode. Defaults totrue
. boolean?
userDefinedBlending- When
true
doesn’t set the gl.BlendFunc automatically. Defaults tofalse
.
MapRenderingParams (class)
Map rendering params
[source]
Fields
rgba
splatTexMultsrgba
splatTexScalesboolean
voidWaterboolean
voidGroundboolean
splatDetailNormalDiffuseAlpha
Material (class)
[source]Fields
number
shininess(rgb|rgba)
ambidiff(rgb|rgba)
ambient(rgb|rgba)
diffuse(rgb|rgba)
specular(rgb|rgba)
emission
Matrix4x4 (class)
[source]Menu (class)
Inherits Callins
Members
Menu:ActivateMenu (function)
Called whenever LuaMenu is on with no game loaded.
[source]
Menu:ActivateMenu() -> nil
Menu:ActivateGame (function)
Called whenever LuaMenu is on with a game loaded.
[source]
Menu:ActivateGame() -> nil
Menu:AllowDraw (function)
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.
[source]
Menu:AllowDraw() -> boolean
Returns
boolean
allowDraw
MoveCtrl (class)
Members
MoveCtrl.IsEnabled (function)
[source]MoveCtrl.IsEnabled(integer) -> boolean?
Parameters
integer
unitID
Returns
boolean?
isEnabled
MoveCtrl.Enable (function)
[source]MoveCtrl.Enable(integer) -> nil
Parameters
integer
unitID
MoveCtrl.Disable (function)
[source]MoveCtrl.Disable(integer) -> nil
Parameters
integer
unitID
MoveCtrl.SetTag (function)
[source]MoveCtrl.SetTag(integer, integer) -> nil
Parameters
MoveCtrl.GetTag (function)
[source]MoveCtrl.GetTag(integer?) -> nil
Parameters
integer?
tag
MoveCtrl.SetProgressState (function)
[source]MoveCtrl.SetProgressState(integer, (0|1|2|"done"|"active"|"failed")) -> nil
Parameters
MoveCtrl.SetExtrapolate (function)
[source]MoveCtrl.SetExtrapolate(integer, boolean) -> nil
Parameters
integer
unitIDboolean
extrapolate
MoveCtrl.SetPhysics (function)
[source]MoveCtrl.SetPhysics(integer, number, number, number, number, number, number, number, number, number) -> nil
Parameters
integer
unitIDnumber
posX- Position X component.
number
posY- Position Y component.
number
posZ- Position Z component.
number
velX- Velocity X component.
number
velY- Velocity Y component.
number
velZ- Velocity Z component.
number
rotX- Rotation X component.
number
rotY- Rotation Y component.
number
rotZ- Rotation Z component.
MoveCtrl.SetPosition (function)
[source]MoveCtrl.SetPosition(integer, number, number, number) -> nil
Parameters
integer
unitIDnumber
posX- Position X component.
number
posY- Position Y component.
number
posZ- Position Z component.
MoveCtrl.SetVelocity (function)
[source]MoveCtrl.SetVelocity(integer, number, number, number) -> nil
Parameters
integer
unitIDnumber
velX- Velocity X component.
number
velY- Velocity Y component.
number
velZ- Velocity Z component.
MoveCtrl.SetRelativeVelocity (function)
[source]MoveCtrl.SetRelativeVelocity(integer, number, number, number) -> nil
Parameters
integer
unitIDnumber
relVelX- Relative velocity X component.
number
relVelY- Relative velocity Y component.
number
relVelZ- Relative velocity Z component.
MoveCtrl.SetRotation (function)
[source]MoveCtrl.SetRotation(integer, number, number, number) -> nil
Parameters
integer
unitIDnumber
rotX- Rotation X component.
number
rotY- Rotation Y component.
number
rotZ- Rotation Z component.
MoveCtrl.SetRotationOffset (function)
[source]Deprecated
MoveCtrl.SetRotationOffset() -> nil
MoveCtrl.SetRotationVelocity (function)
[source]MoveCtrl.SetRotationVelocity(integer, number, number, number) -> nil
Parameters
integer
unitIDnumber
rotVelX- Rotation velocity X component.
number
rotVelY- Rotation velocity Y component.
number
rotVelZ- Rotation velocity Z component.
MoveCtrl.SetHeading (function)
[source]MoveCtrl.SetHeading(integer, Heading) -> nil
Parameters
MoveCtrl.SetTrackSlope (function)
[source]MoveCtrl.SetTrackSlope(integer, boolean) -> nil
Parameters
integer
unitIDboolean
trackSlope
MoveCtrl.SetTrackGround (function)
[source]MoveCtrl.SetTrackGround(integer, boolean) -> nil
Parameters
integer
unitIDboolean
trackGround
MoveCtrl.SetTrackLimits (function)
[source]MoveCtrl.SetTrackLimits(integer, boolean) -> nil
Parameters
integer
unitIDboolean
trackLimits
MoveCtrl.SetGroundOffset (function)
[source]MoveCtrl.SetGroundOffset(integer, number) -> nil
Parameters
integer
unitIDnumber
groundOffset
MoveCtrl.SetGravity (function)
[source]MoveCtrl.SetGravity(integer, number) -> nil
Parameters
integer
unitIDnumber
gravityFactor
MoveCtrl.SetDrag (function)
[source]MoveCtrl.SetDrag(integer, number) -> nil
Parameters
MoveCtrl.SetWindFactor (function)
[source]MoveCtrl.SetWindFactor(integer, number) -> nil
Parameters
integer
unitIDnumber
windFactor
MoveCtrl.SetLimits (function)
[source]MoveCtrl.SetLimits(integer, number, number, number, number, number, number) -> nil
Parameters
integer
unitIDnumber
minX- Minimum position X component.
number
minY- Minimum position Y component.
number
minZ- Minimum position Z component.
number
maxX- Maximum position X component.
number
maxY- Maximum position Y component.
number
maxZ- Maximum position Z component.
MoveCtrl.SetNoBlocking (function)
[source]MoveCtrl.SetNoBlocking(integer, boolean) -> nil
Parameters
integer
unitIDboolean
noBlocking
MoveCtrl.SetCollideStop (function)
[source]MoveCtrl.SetCollideStop(integer, boolean) -> nil
Parameters
integer
unitIDboolean
collideStop
MoveCtrl.SetLimitsStop (function)
[source]MoveCtrl.SetLimitsStop(integer, boolean) -> nil
Parameters
integer
unitIDboolean
limitsStop
MoveCtrl.SetGunshipMoveTypeData (function)
[source]MoveCtrl.SetGunshipMoveTypeData(integer, HoverAirMoveType) -> number
Parameters
Returns
number
numAssignedValues
MoveCtrl.SetGunshipMoveTypeData (function overload 1)
[source]MoveCtrl.SetGunshipMoveTypeData(integer, (GenericMoveTypeBooleanKey|"collide"|"dontLand"|"airStrafe"|"useSmoothMesh"|"bankingAllowed"), boolean) -> number
Parameters
integer
unitID(GenericMoveTypeBooleanKey|"collide"|"dontLand"|"airStrafe"|"useSmoothMesh"|"bankingAllowed")
keyboolean
value
Returns
number
numAssignedValues
MoveCtrl.SetGunshipMoveTypeData (function overload 2)
[source]MoveCtrl.SetGunshipMoveTypeData(integer, (GenericMoveTypeNumberKey|"wantedHeight"|"accRate"|"decRate"|"turnRate"|"altitudeRate"|"currentBank"|"currentPitch"...), number) -> number
Parameters
integer
unitID(GenericMoveTypeNumberKey|"wantedHeight"|"accRate"|"decRate"|"turnRate"|"altitudeRate"|"currentBank"|"currentPitch"...)
keynumber
value
Returns
number
numAssignedValues
MoveCtrl.SetAirMoveTypeData (function)
[source]MoveCtrl.SetAirMoveTypeData(integer, StrafeAirMoveType) -> number
Parameters
Returns
number
numAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 1)
[source]MoveCtrl.SetAirMoveTypeData(integer, (GenericMoveTypeBooleanKey|"collide"|"useSmoothMesh"|"loopbackAttack"), boolean) -> number
Parameters
integer
unitID(GenericMoveTypeBooleanKey|"collide"|"useSmoothMesh"|"loopbackAttack")
keyboolean
value
Returns
number
numAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 2)
[source]MoveCtrl.SetAirMoveTypeData(integer, (GenericMoveTypeNumberKey|"wantedHeight"|"turnRadius"|"accRate"|"decRate"|"maxAcc"|"maxDec"|"maxBank"...), number) -> number
Parameters
integer
unitID(GenericMoveTypeNumberKey|"wantedHeight"|"turnRadius"|"accRate"|"decRate"|"maxAcc"|"maxDec"|"maxBank"...)
keynumber
value
Returns
number
numAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 3)
[source]MoveCtrl.SetAirMoveTypeData(integer, ("maneuverBlockTime"), integer) -> number
Parameters
Returns
number
numAssignedValues
MoveCtrl.SetGroundMoveTypeData (function)
[source]MoveCtrl.SetGroundMoveTypeData(integer, GroundMoveType) -> number
Parameters
integer
unitIDGroundMoveType
moveType
Returns
number
numAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 1)
[source]MoveCtrl.SetGroundMoveTypeData(integer, (GenericMoveTypeBooleanKey|"atGoal"|"atEndOfPath"|"pushResistant"), boolean) -> number
Parameters
integer
unitID(GenericMoveTypeBooleanKey|"atGoal"|"atEndOfPath"|"pushResistant")
keyboolean
value
Returns
number
numAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 2)
[source]MoveCtrl.SetGroundMoveTypeData(integer, (GenericMoveTypeNumberKey|"turnRate"|"turnAccel"|"accRate"|"decRate"|"myGravity"|"maxReverseDist"|"minReverseAngle"...), number) -> number
Parameters
integer
unitID(GenericMoveTypeNumberKey|"turnRate"|"turnAccel"|"accRate"|"decRate"|"myGravity"|"maxReverseDist"|"minReverseAngle"...)
keynumber
value
Returns
number
numAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 3)
[source]MoveCtrl.SetGroundMoveTypeData(integer, ("minScriptChangeHeading"), integer) -> number
Parameters
Returns
number
numAssignedValues
MoveCtrl.SetMoveDef (function)
[source]MoveCtrl.SetMoveDef(integer, (integer|string)) -> boolean
Parameters
Returns
boolean
successtrue
if theMoveDef
was set,false
ifunitID
ormoveDef
were invalid, or if the unit does not support aMoveDef
.
PieceInfo (class)
[source]Fields
string
namestring
parentstring[]
children- names
boolean
empty(number,number,number)
min- (x,y,z)
(number,number,number)
max- (x,y,z)
(number,number,number)
offset- (x,y,z)
Plane (class)
[source]Fields
number
normalVecXnumber
normalVecYnumber
normalVecZnumber
d
ProjectileParams (class)
[source]Fields
xyz
posxyz
speedxyz
spreadxyz
errorxyz
endinteger
ownerinteger
teamnumber
ttlnumber
gravitynumber
trackingnumber
maxRangenumber
startAlphanumber
endAlphastring
modelstring
cegTag
RBO (class)
User Data RBO
[source]
Fields
GL
targetGL
formatinteger
xsizeinteger
ysizeboolean
validinteger
samples- will return globalRendering->msaaLevel for multisampled RBO or 0 otherwise
ResourceCost (class)
[source]Fields
RmlUi.Context (class)
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:
[source]
Members
RmlUi.Context:AddEventListener (function)
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.
[source]
RmlUi.Context:AddEventListener(string, RmlUi.Element, boolean, boolean) -> nil
Parameters
string
eventRmlUi.Element
scriptboolean
element_contextboolean
in_capture_phase
RmlUi.Context:CreateDocument (function)
Creates a new document with the tag name of tag.
[source]
RmlUi.Context:CreateDocument(string) -> RmlUi.Document
Parameters
string
tag
Returns
RmlUi.Context:LoadDocument (function)
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.
[source]
RmlUi.Context:LoadDocument(string) -> RmlUi.Document
Parameters
string
document_path
Returns
RmlUi.Context:GetDocument (function)
[source]RmlUi.Context:GetDocument(string) -> nil
Parameters
string
name
RmlUi.Context:Render (function)
Renders the context.
[source]
RmlUi.Context:Render() -> boolean
Returns
RmlUi.Context:UnloadAllDocuments (function)
Closes all documents currently loaded with the context.
[source]
RmlUi.Context:UnloadAllDocuments() -> nil
RmlUi.Context:UnloadDocument (function)
Unloads a specific document within the context.
[source]
RmlUi.Context:UnloadDocument(RmlUi.Document) -> nil
Parameters
RmlUi.Context:Update (function)
Updates the context.
[source]
RmlUi.Context:Update() -> boolean
Returns
RmlUi.Context:OpenDataModel (function)
Create a new data model from a base table model
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.
[source]
RmlUi.Context:OpenDataModel(string, T, table) -> SolLuaDataModel<T>
Parameters
Returns
RmlUi.Context:RemoveDataModel (function)
Removes a data model from the context.
[source]
RmlUi.Context:RemoveDataModel(string) -> nil
Parameters
string
name
RmlUi.Context:ProcessMouseMove (function)
Processes a mouse move event.
[source]
RmlUi.Context:ProcessMouseMove(RmlUi.Vector2f) -> boolean
Parameters
Returns
RmlUi.Context:ProcessMouseButtonDown (function)
Processes a mouse button down event.
[source]
RmlUi.Context:ProcessMouseButtonDown(RmlUi.MouseButton, integer) -> boolean
Parameters
Returns
RmlUi.Context:ProcessMouseButtonUp (function)
Processes a mouse button up event.
[source]
RmlUi.Context:ProcessMouseButtonUp(RmlUi.MouseButton, integer) -> boolean
Parameters
Returns
RmlUi.Context:ProcessMouseWheel (function)
Processes a mouse wheel event.
[source]
RmlUi.Context:ProcessMouseWheel((RmlUi.Vector2f|number), integer) -> boolean
Parameters
(RmlUi.Vector2f|number)
deltainteger
key_modifier_state
Returns
RmlUi.Context:ProcessMouseLeave (function)
Processes a mouse leave event.
[source]
RmlUi.Context:ProcessMouseLeave() -> boolean
Returns
RmlUi.Context:IsMouseInteracting (function)
Returns true if the mouse is currently interacting with the context, false if not.
[source]
RmlUi.Context:IsMouseInteracting() -> boolean
Returns
RmlUi.Context:ProcessKeyDown (function)
Processes a key down event.
[source]
RmlUi.Context:ProcessKeyDown(RmlUi.key_identifier, integer) -> boolean
Parameters
Returns
RmlUi.Context:ProcessKeyUp (function)
Processes a key up event.
[source]
RmlUi.Context:ProcessKeyUp(RmlUi.key_identifier, integer) -> boolean
Parameters
Returns
RmlUi.Context:ProcessTextInput (function)
Processes a text input event.
[source]
RmlUi.Context:ProcessTextInput(string) -> boolean
Parameters
string
text
Returns
RmlUi.Context:EnableMouseCursor (function)
Enables or disables the mouse cursor for the context.
[source]
RmlUi.Context:EnableMouseCursor(boolean) -> nil
Parameters
boolean
enable
RmlUi.Context:ActivateTheme (function)
Activates a theme for the context.
[source]
RmlUi.Context:ActivateTheme(string, boolean) -> nil
Parameters
string
theme_nameboolean
activate
RmlUi.Context:IsThemeActive (function)
Returns true if the theme is active, false if not.
[source]
RmlUi.Context:IsThemeActive(string) -> boolean
Parameters
string
theme_name
Returns
RmlUi.Context:GetElementAtPoint (function)
Returns the element at the point specified by point.
[source]
RmlUi.Context:GetElementAtPoint(RmlUi.Vector2f, RmlUi.Element?) -> RmlUi.Element
Parameters
Returns
RmlUi.Context:PullDocumentToFront (function)
Pulls the document to the front of the context.
[source]
RmlUi.Context:PullDocumentToFront(RmlUi.Document) -> nil
Parameters
RmlUi.Context:PushDocumentToBack (function)
Pushes the document to the back of the context.
[source]
RmlUi.Context:PushDocumentToBack(RmlUi.Document) -> nil
Parameters
Fields
RmlUi.Vector2i
dimensions- [source]
number
dp_ratio- [source]
RmlUi.Document[]
documents- [source]
RmlUi.Element
focus_element- [source]
RmlUi.Element
hover_element- [source]
string
name- [source]
RmlUi.Element
root_element- [source]
RmlUi.Document (class)
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:
[source]
Members
RmlUi.Document:PullToFront (function)
Pulls the document in front of other documents within its context with a similar z-index.
[source]
RmlUi.Document:PullToFront() -> nil
RmlUi.Document:PushToBack (function)
Pushes the document behind other documents within its context with a similar z-index.
[source]
RmlUi.Document:PushToBack() -> nil
RmlUi.Document:Show (function)
Shows the document.
[source]
RmlUi.Document:Show(RmlUi.RmlModalFlag?, RmlUi.RmlFocusFlag?) -> nil
Parameters
RmlUi.RmlModalFlag?
modal- Defaults to Focus
RmlUi.RmlFocusFlag?
focus
RmlUi.Document:Hide (function)
Hides the document.
[source]
RmlUi.Document:Hide() -> nil
RmlUi.Document:Close (function)
Hides and closes the document, destroying its contents.
[source]
RmlUi.Document:Close() -> nil
RmlUi.Document:CreateElement (function)
Instances an element with a tag of tag_name.
[source]
RmlUi.Document:CreateElement(string) -> RmlUi.ElementPtr
Parameters
string
tag_name
Returns
RmlUi.Document:CreateTextNode (function)
Instances a text element containing the string text.
[source]
RmlUi.Document:CreateTextNode(string) -> RmlUi.ElementPtr
Parameters
string
text
Returns
RmlUi.Document:ReloadStyleSheet (function)
Reload the active style sheet.
[source]
RmlUi.Document:ReloadStyleSheet(boolean?) -> nil
Parameters
boolean?
load
RmlUi.Document:LoadInlineScript (function)
Load scripts as if it were in the script tag.
[source]
RmlUi.Document:LoadInlineScript(string, string?, integer?) -> nil
Parameters
string
contentstring?
sourceinteger?
source_line
RmlUi.Document:LoadExternalScript (function)
Load an external script.
[source]
RmlUi.Document:LoadExternalScript(string) -> nil
Parameters
string
source_path
RmlUi.Document:UpdateDocument (function)
Update the Document.
[source]
RmlUi.Document:UpdateDocument() -> nil
RmlUi.Document:AppendToStyleSheet (function)
Append text to style sheet.
[source]
RmlUi.Document:AppendToStyleSheet(string) -> nil
Parameters
string
content
Fields
string
title- [source]
RmlUi.Context
context- [source]
string
url- [source]
boolean
modal- [source] Is it modal?
table
widget- [source] A table of data that can be accessed in onevent attributes. It doesn’t have to be a widget.
RmlUi.Element (class)
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.
[source]
Members
RmlUi.Element:AddEventListener (function)
Adds an event listener to the element.
[source]
RmlUi.Element:AddEventListener(string, (function|string), boolean) -> nil
Parameters
string
event(function|string)
listenerboolean
in_capture_phase
RmlUi.Element:AppendChild (function)
Appends element as a child to this element.
[source]
RmlUi.Element:AppendChild(RmlUi.ElementPtr) -> RmlUi.ElementPtr
Parameters
Returns
RmlUi.Element:Blur (function)
Removes input focus from this element.
[source]
RmlUi.Element:Blur() -> nil
RmlUi.Element:Click (function)
Fakes a click on this element.
[source]
RmlUi.Element:Click() -> nil
RmlUi.Element:DispatchEvent (function)
Dispatches an event to this element.
[source]
RmlUi.Element:DispatchEvent(string, table, string) -> boolean
Parameters
string
eventtable
parametersstring
interruptible
Returns
RmlUi.Element:Focus (function)
Gives input focus to this element.
[source]
RmlUi.Element:Focus() -> nil
RmlUi.Element:GetAttribute (function)
Returns the value of the attribute named name. If no such attribute exists, the empty string will be returned.
[source]
RmlUi.Element:GetAttribute(string) -> any
Parameters
string
name
Returns
RmlUi.Element:GetElementById (function)
Returns the descendant element with an id of id.
[source]
RmlUi.Element:GetElementById(string) -> RmlUi.Element
Parameters
string
id
Returns
RmlUi.Element:GetElementsByTagName (function)
Returns a list of all descendant elements with the tag of tag_name.
[source]
RmlUi.Element:GetElementsByTagName(string) -> RmlUi.ElementPtr[]
Parameters
string
tag_name
Returns
RmlUi.Element:QuerySelector (function)
Unsure what this does, but seems powerful?
[source]
RmlUi.Element:QuerySelector(string) -> RmlUi.ElementPtr
Parameters
string
query
Returns
RmlUi.Element:QuerySelectorAll (function)
Unsure what this does, but seems powerful?
[source]
RmlUi.Element:QuerySelectorAll(string) -> nil
Parameters
string
selectors
RmlUi.Element:HasAttribute (function)
Returns True if the element has a value for the attribute named name, False if not.
[source]
RmlUi.Element:HasAttribute(string) -> boolean
Parameters
string
name
Returns
RmlUi.Element:HasChildNodes (function)
Returns True if the element has at least one child node, false if not.
[source]
RmlUi.Element:HasChildNodes() -> boolean
Returns
RmlUi.Element:InsertBefore (function)
Inserts the element element as a child of this element, directly before adjacent_element in the list of children.
[source]
RmlUi.Element:InsertBefore(RmlUi.ElementPtr, RmlUi.Element) -> RmlUi.Element?
Parameters
Returns
RmlUi.Element:IsClassSet (function)
Returns true if the class name is set on the element, false if not.
[source]
RmlUi.Element:IsClassSet(string) -> boolean
Parameters
string
name
Returns
RmlUi.Element:RemoveAttribute (function)
Removes the attribute named name from the element.
[source]
RmlUi.Element:RemoveAttribute(string) -> nil
Parameters
string
name
RmlUi.Element:RemoveChild (function)
Removes the child element element from this element.
[source]
RmlUi.Element:RemoveChild(RmlUi.Element) -> boolean
Parameters
Returns
RmlUi.Element:ReplaceChild (function)
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.
[source]
RmlUi.Element:ReplaceChild(RmlUi.ElementPtr, RmlUi.Element) -> boolean
Parameters
Returns
RmlUi.Element:ScrollIntoView (function)
Scrolls this element into view if its ancestors have hidden overflow.
[source]
RmlUi.Element:ScrollIntoView(boolean) -> nil
Parameters
boolean
align_with_top
RmlUi.Element:SetAttribute (function)
Sets the value of the attribute named name to value.
[source]
RmlUi.Element:SetAttribute(string, string) -> nil
Parameters
RmlUi.Element:SetClass (function)
Sets (if value is true) or clears (if value is false) the class name on the element.
[source]
RmlUi.Element:SetClass(string, boolean) -> nil
Parameters
RmlUi.Element:GetElementsByClassName (function)
[source]RmlUi.Element:GetElementsByClassName(string) -> RmlUi.Element[]
Parameters
string
class_name
Returns
RmlUi.Element:Clone (function)
[source]RmlUi.Element:Clone() -> RmlUi.ElementPtr
Returns
RmlUi.Element:Closest (function)
[source]RmlUi.Element:Closest() -> RmlUi.Element?
Returns
RmlUi.Element:SetPseudoClass (function)
[source]RmlUi.Element:SetPseudoClass(string) -> nil
Parameters
string
class_name
RmlUi.Element:IsPseudoClassSet (function)
[source]RmlUi.Element:IsPseudoClassSet(string) -> boolean
Parameters
string
class_name
Returns
RmlUi.Element:ArePseudoCLassesSet (function)
[source]RmlUi.Element:ArePseudoCLassesSet(string[]) -> boolean
Parameters
string[]
class_names
Returns
RmlUi.Element:GetActivePseudoCLasses (function)
[source]RmlUi.Element:GetActivePseudoCLasses() -> string[]
Returns
RmlUi.Element:IsPointWithinElement (function)
Is a screen-space point within this element?
[source]
RmlUi.Element:IsPointWithinElement(RmlUi.Vector2i) -> boolean
Parameters
Returns
RmlUi.Element:ProcessDefaultAction (function)
[source]RmlUi.Element:ProcessDefaultAction(RmlUi.Event) -> nil
Parameters
RmlUi.Element:GetValue (function)
Get the value of this element.
[source]
RmlUi.Element:GetValue() -> (number|string|"")
Returns
(number|string|"")
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)
[source]RmlUi.Element:GetChild(integer) -> RmlUi.Element?
Parameters
integer
index
Returns
Fields
string
class_name- [source] Name of the class.
string
id- [source]
ID of this element, in the context of
<span id=“foo”>
. string
inner_rml- [source] Gets or sets the inner RML (markup) content of the element.
integer
scroll_left- [source] Gets or sets the number of pixels that the content of the element is scrolled from the left.
integer
scroll_top- [source] Gets or sets the number of pixels that the content of the element is scrolled from the top.
RmlUi.ElementAttributesProxy
attributes- [source] Read-only. Proxy for accessing element attributes.
RmlUi.ElementChildNodesProxy
child_nodes- [source] Read-only. Proxy for accessing child nodes of the element.
integer
client_left- [source] Read-only. The width of the left border of the element in pixels.
integer
client_height- [source] Read-only. The inner height of the element in pixels, including padding but not the horizontal scrollbar height, border, or margin.
integer
client_top- [source] Read-only. The width of the top border of the element in pixels.
integer
client_width- [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_child- [source] Read-only. The first child element, or nil if there are no children.
RmlUi.Element?
last_child- [source] Read-only. The last child element, or nil if there are no children.
RmlUi.Element?
next_sibling- [source] Read-only. The next sibling element, or nil if there is none.
integer
offset_height- [source] Read-only. The height of the element including vertical padding and borders, in pixels.
integer
offset_left- [source] Read-only. The distance from the inner left edge of the offset parent, in pixels.
RmlUi.Element
offset_parent- [source] Read-only. The closest positioned ancestor element.
integer
offset_top- [source] Read-only. The distance from the inner top edge of the offset parent, in pixels.
integer
offset_width- [source] Read-only. The width of the element including horizontal padding and borders, in pixels.
RmlUi.Document
owner_document- [source] Read-only. The document that owns this element.
RmlUi.Element?
parent_node- [source] Read-only. The parent node of this element, or nil if there is none.
RmlUi.Element?
previous_sibling- [source] Read-only. The previous sibling element, or nil if there is none.
integer
scroll_height- [source] Read-only. The total height of the element’s content, including content not visible on the screen due to overflow.
integer
scroll_width- [source] Read-only. The total width of the element’s content, including content not visible on the screen due to overflow.
RmlUi.ElementStyleProxy
style- [source] Read-only. Proxy for accessing and modifying the element’s style properties.
string
tag_name- [source] Read-only. The tag name of the element.
string
address- [source] Read-only. The address of the element in the document tree.
integer
absolute_left- [source] Read-only. The absolute left position of the element relative to the document.
integer
absolute_top- [source] Read-only. The absolute top position of the element relative to the document.
integer
baseline- [source] Read-only. The baseline position of the element.
integer
line_height- [source] Read-only. The computed line height of the element.
boolean
visible- [source] Read-only. True if the element is visible, false otherwise.
integer
z_index- [source] Read-only. The computed z-index of the element.
RmlUi.ElementForm (class)
Inherits RmlUi.Element
Members
RmlUi.ElementForm:Submit (function)
[source]RmlUi.ElementForm:Submit(string?, string?) -> nil
Parameters
RmlUi.ElementFormControl (class)
Inherits RmlUi.Element
Fields
RmlUi.ElementFormControlInput (class)
Inherits RmlUi.Element
RmlUi.ElementFormControl
Fields
boolean
checked- [source]
integer
maxlength- [source]
integer
size- [source]
integer
max- [source]
integer
min- [source]
integer
step- [source]
RmlUi.ElementFormControlSelect (class)
Inherits RmlUi.Element
RmlUi.ElementFormControl
Members
RmlUi.ElementFormControlSelect:Add (function)
[source]RmlUi.ElementFormControlSelect:Add(RmlUi.Element, integer?) -> nil
Parameters
RmlUi.Element
elementinteger?
before
RmlUi.ElementFormControlSelect:Remove (function)
[source]RmlUi.ElementFormControlSelect:Remove(integer) -> nil
Parameters
integer
index
RmlUi.ElementFormControlSelect:RemoveAll (function)
[source]RmlUi.ElementFormControlSelect:RemoveAll() -> nil
RmlUi.ElementFormControlTextArea (class)
Inherits RmlUi.Element
RmlUi.ElementFormControl
Fields
RmlUi.ElementProgress (class)
Inherits RmlUi.Element
Fields
RmlUi.ElementPtr (class)
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.
[source]
RmlUi.ElementTabSet (class)
Inherits RmlUi.Element
Members
RmlUi.ElementTabSet:SetPanel (function)
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.
[source]
RmlUi.ElementTabSet:SetPanel(integer, string) -> nil
Parameters
RmlUi.ElementTabSet:SetTab (function)
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.
[source]
RmlUi.ElementTabSet:SetTab(integer, string) -> nil
Parameters
RmlUi.ElementTabSet:RemoveTab (function)
[source]RmlUi.ElementTabSet:RemoveTab(integer) -> nil
Parameters
integer
index
Fields
integer
active_tab- [source]
integer
num_tabs- [source]
RmlUi.ElementText (class)
Inherits RmlUi.Element
Fields
RmlUi.Event (class)
An event that happens to an element.
[source]
Fields
RmlUi.Element
current_element- [source]
string
type- [source]
RmlUi.Element
target_element- [source] What element it happened to
RmlUi.EventParametersProxy
parameters- [source]
RmlUi.RmlEventPhase
event_phase- [source]
boolean
interruptible- [source]
boolean
propagating- [source]
boolean
immediate_propagating- [source]
RmlUi.EventListener (class)
Event listener interface
[source]
Members
RmlUi.EventListener.OnAttach (function)
[source]RmlUi.EventListener.OnAttach(RmlUi.Element) -> nil
Parameters
RmlUi.EventListener.OnDetach (function)
[source]RmlUi.EventListener.OnDetach(RmlUi.Element) -> nil
Parameters
RmlUi.EventListener.ProcessEvent (function)
[source]RmlUi.EventListener.ProcessEvent(RmlUi.Event) -> nil
Parameters
RmlUi.EventParametersProxy (class)
Keyboard and mouse input data associated with an event.
[source]
Fields
RmlUi.EventParametersProxy.MouseButton
buttoninteger
mouse_xinteger
mouse_yRmlUi.EventParametersProxy.TrueFalse
scroll_lock_keyRmlUi.EventParametersProxy.TrueFalse
meta_keyRmlUi.EventParametersProxy.TrueFalse
ctrl_keyRmlUi.EventParametersProxy.TrueFalse
shift_keyRmlUi.EventParametersProxy.TrueFalse
caps_lock_keyRmlUi.EventParametersProxy.TrueFalse
alt_key
RmlUi.SolLuaDataModel (class)
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.
[source]
Members
RmlUi.SolLuaDataModel:__SetDirty (function)
Set a table property dirty to trigger a rerender
[source]
RmlUi.SolLuaDataModel:__SetDirty(string) -> nil
Parameters
string
property
RmlUi.Vector2f (class)
Members
RmlUi.Vector2f.new (function)
[source]RmlUi.Vector2f.new(number, number) -> RmlUi.Vector2f
Parameters
Returns
Fields
RmlUi.Vector2i (class)
Two-dimensional integral vector.
[source]
Members
RmlUi.Vector2i.new (function)
[source]RmlUi.Vector2i.new(integer, integer) -> RmlUi.Vector2i
Parameters
Returns
Fields
Roster (class)
Contains data about a player
[source]
Fields
string
nameinteger
playerIDinteger
teamIDinteger
allyTeamIDboolean
spectatornumber
cpuUsage- in order 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
number
pingTime- if -1, the player is pathfinding
RulesParams (class)
Inherits table<string,integer>
RulesSyncedCallins (class)
Inherits Callins
UnsyncedCallins
SyncedCallins
LuaRules/main.lua
RulesUnsyncedCallins (class)
Inherits Callins
UnsyncedCallins
LuaRules/draw.lua
SaveImageOptions (class)
[source]Fields
boolean
alpha- (Default:
false
) boolean
yflip- (Default:
true
) boolean
grayscale16bit- (Default:
false
) GL
readbuffer- (Default: current read buffer)
SetUnitHealthAmounts (class)
[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.
ShaderParams (class)
[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"
SideSpec (class)
Side spec
[source]
Fields
string
sideNameReturned when getting arrays of side specifications.
Lowercase side name.
string
caseName- Original case side name.
string
startUnit
SoundDeviceSpec (class)
Contains data about a sound device.
[source]
Fields
string
name
StrafeAirMoveType (class)
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
TeamStats (class)
[source]Fields
number
timenumber
framenumber
metalUsednumber
metalProducednumber
metalExcessnumber
metalReceivednumber
metalSentnumber
energyUsednumber
energyProducednumber
energyExcessnumber
energyReceivednumber
energySentnumber
damageDealtnumber
damageReceivedinteger
unitsProducedinteger
unitsDiedinteger
unitsReceivedinteger
unitsSentinteger
unitsCapturedinteger
unitsOutCaptured
TextColorCode (class)
Indicator bytes representing color code operations during font renderingFields
string
Color- Indicates that the following bytes contain color code information
string
ColorAndOutline- Indicates that the following bytes contain color code and outline information
string
Reset- Indicates reset of the current color
Texture (class)
[source]Fields
GL?
targetinteger?
formatGL?
min_filterGL?
mag_filterGL?
wrap_sGL?
wrap_tGL?
wrap_rnumber?
compareFuncnumber?
lodBiasnumber?
aniso
TextureInfo (class)
[source]Fields
UI (class)
Inherits Callins
Members
UI:ConfigureLayout (function)
[source]UI:ConfigureLayout() -> nil
UniformParam (class)
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;
[source]
UnitDefDimensions (class)
[source]Fields
number
heightnumber
radiusnumber
midxnumber
minxnumber
maxxnumber
midynumber
minynumber
maxynumber
midznumber
minznumber
maxz
UnitState (class)
[source]Fields
number
firestatenumber
movestateboolean
repeatboolean
cloakboolean
activeboolean
trajectoryboolean?
autolandnumber?
autorepairlevelboolean?
loopbackattack
VAO (class)
Vertex Array Object
[source]
Members
VAO:Delete (function)
[source]VAO:Delete() -> nil
Returns
VAO:AttachVertexBuffer (function)
Attaches a VBO to be used as a vertex buffer
[source]
VAO:AttachVertexBuffer(VBO) -> nil
Parameters
Returns
VAO:AttachInstanceBuffer (function)
Attaches a VBO to be used as an instance buffer
[source]
VAO:AttachInstanceBuffer(VBO) -> nil
Parameters
Returns
VAO:AttachIndexBuffer (function)
Attaches a VBO to be used as an index buffer
[source]
VAO:AttachIndexBuffer(VBO) -> nil
Parameters
Returns
VAO:DrawArrays (function)
[source]VAO:DrawArrays(number, number?, number?, number?, number?) -> nil
Parameters
number
glEnum- primitivesMode
number?
vertexCountnumber?
vertexFirstnumber?
instanceCountnumber?
instanceFirst
Returns
VAO:DrawElements (function)
[source]VAO:DrawElements(number, number?, number?, number?, number?, number?) -> nil
Parameters
number
glEnum- primitivesMode
number?
drawCountnumber?
baseIndexnumber?
instanceCountnumber?
baseVertexnumber?
baseInstance
Returns
VAO:AddUnitsToSubmission (function)
[source]VAO:AddUnitsToSubmission((number|number[])) -> number
Parameters
(number|number[])
unitIDs
Returns
number
submittedCount
VAO:AddFeaturesToSubmission (function)
[source]VAO:AddFeaturesToSubmission((number|number[])) -> number
Parameters
(number|number[])
featureIDs
Returns
number
submittedCount
VAO:AddUnitDefsToSubmission (function)
[source]VAO:AddUnitDefsToSubmission((number|number[])) -> number
Parameters
(number|number[])
unitDefIDs
Returns
number
submittedCount
VAO:AddFeatureDefsToSubmission (function)
[source]VAO:AddFeatureDefsToSubmission((number|number[])) -> number
Parameters
(number|number[])
featureDefIDs
Returns
number
submittedCount
VAO:RemoveFromSubmission (function)
[source]VAO:RemoveFromSubmission(number) -> nil
Parameters
number
index
Returns
VAO:Submit (function)
[source]VAO:Submit() -> nil
Returns
VBO (class)
Vertex Buffer Object
[source]
Members
VBO:Delete (function)
[source]VBO:Delete() -> nil
Returns
VBO:Define (function)
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.
[source]
See VBO:Upload
VBO:Define(number, (number|VBOAttributeDef[])) -> nil
Parameters
number
size- The maximum number of elements this VBO can have.
(number|VBOAttributeDef[])
attribs
Returns
VBO:GetBufferSize (function)
[source]VBO:GetBufferSize() -> number, number, number
Returns
number
elementsCountnumber
bufferSizeInBytesnumber
size
VBO:Upload (function)
Uploads data into the VBO.
[source]
See VBO:Define
VBO:Upload(number[], integer?, integer?, integer?, integer?) -> number[], integer, (integer|(integer,integer...))
Parameters
number[]
vboData- Array of values to upload into the VBO.
integer?
attributeIndex(Default:
-1
)If 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.
integer?
elemOffset- (Default:
0
) The index in destination VBO (on GPU) at which storing begins. integer?
luaStartIndex- (Default:
1
) The index ofvboData
at which copying begins. integer?
luaFinishIndex- (Default:
#vboData
) The index ofvboData
at which copying ends.
Returns
number[]
indexDatainteger
elemOffset(integer|(integer,integer...))
attrID
VBO:Download (function)
[source]VBO:Download(integer?, integer?, number?, boolean?) -> unknown
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 number?
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
VBO:ModelsVBO (function)
Binds engine side vertex or index VBO containing models (units, features) data.
[source]
Also fills in VBO definition data as they’re set for engine models (no need to do VBO:Define()).
VBO:ModelsVBO() -> number?
Returns
number?
buffer- size in bytes
VBO:InstanceDataFromUnitDefIDs (function)
Fills in attribute data for each specified unitDefID
[source]
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 ushc as draw flags and team index.
Data Layout:
SInstanceData:
, traOffset{ matOffset_ } // updated during the following draw frames
, uniOffset{ uniOffset_ } // updated during the following draw frames
, info{ teamIndex, drawFlags, 0, 0 } // not updated during the following draw frames
, aux1 { 0u }
VBO:InstanceDataFromUnitDefIDs((number|number[]), integer, integer?, integer?) -> (number,number,number,number), integer, integer
Parameters
(number|number[])
unitDefIDsinteger
attrIDinteger?
teamIdOptinteger?
elementOffset
Returns
(number,number,number,number)
instanceDatainteger
elementOffsetinteger
attrID
VBO:InstanceDataFromFeatureDefIDs (function)
Fills in attribute data for each specified featureDefID
[source]
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 ushc as draw flags and team index.
Data Layout
SInstanceData:
, traOffset{ matOffset_ } // updated during the following draw frames
, uniOffset{ uniOffset_ } // updated during the following draw frames
, info{ teamIndex, drawFlags, 0, 0 } // not updated during the following draw frames
, aux1 { 0u }
VBO:InstanceDataFromFeatureDefIDs((number|number[]), integer, integer?, integer?) -> (number,number,number,number), integer, integer
Parameters
(number|number[])
featureDefIDsinteger
attrIDinteger?
teamIdOptinteger?
elementOffset
Returns
(number,number,number,number)
instanceDatainteger
elementOffsetinteger
attrID
VBO:InstanceDataFromUnitIDs (function)
Fills in attribute data for each specified unitID
[source]
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 ushc as draw flags and team index.
Data Layout
SInstanceData:
, traOffset{ matOffset_ } // updated during the following draw frames
, uniOffset{ uniOffset_ } // updated during the following draw frames
, info{ teamIndex, drawFlags, 0, 0 } // not updated during the following draw frames
, aux1 { 0u }
VBO:InstanceDataFromUnitIDs((number|number[]), integer, integer?, integer?) -> (number,number,number,number), integer, integer
Parameters
(number|number[])
unitIDsinteger
attrIDinteger?
teamIdOptinteger?
elementOffset
Returns
(number,number,number,number)
instanceDatainteger
elementOffsetinteger
attrID
VBO:InstanceDataFromFeatureIDs (function)
Fills in attribute data for each specified featureID
[source]
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 ushc as draw flags and team index.
VBO:InstanceDataFromFeatureIDs((number|number[]), integer, integer?, integer?) -> (number,number,number,number), integer, integer
Parameters
(number|number[])
featureIDsinteger
attrIDinteger?
teamIdOptinteger?
elementOffset
Returns
(number,number,number,number)
instanceDatainteger
elementOffsetinteger
attrID
VBO:MatrixDataFromProjectileIDs (function)
[source]VBO:MatrixDataFromProjectileIDs((integer|integer[]), integer, integer?, integer?) -> number[], integer, (integer|(integer,integer...))
Parameters
(integer|integer[])
projectileIDsinteger
attrIDinteger?
teamIdOptinteger?
elementOffset
Returns
number[]
matDataVec- 4x4 matrix
integer
elemOffset(integer|(integer,integer...))
attrID
VBO:BindBufferRange (function)
Bind a range within a buffer object to an indexed buffer target
[source]
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?, number?, number?) -> integer
Parameters
integer
index- should be in the range between
5 < index < GL_MAX_UNIFORM_BUFFER_BINDINGS
value (usually 31) integer?
elementOffsetnumber?
elementCountnumber?
target- glEnum
Returns
integer
bindingIndex- when successful, -1 otherwise
VBO:UnbindBufferRange (function)
[source]VBO:UnbindBufferRange(integer, integer?, number?, number?) -> number
Parameters
integer
indexinteger?
elementOffsetnumber?
elementCountnumber?
target- glEnum
Returns
number
bindingIndex- when successful, -1 otherwise
VBO:DumpDefinition (function)
Logs the definition of the VBO to the console
[source]
VBO:DumpDefinition() -> nil
Returns
VBO:CopyTo (function)
Copy the contents of the VBO to another VBO.
[source]
Destination VBO is expected to have sufficient allocation size, otherwise the copying will gracefully fail.
VBO:CopyTo(VBO, integer) -> boolean
Parameters
VBO
destVBOinteger
copySizeInBytes
Returns
boolean
success
VBO:GetID (function)
Gets the OpenGL Buffer ID
[source]
VBO:GetID() -> integer
Returns
integer
bufferID
VBOAttributeDef (class)
[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.
VertexData (class)
[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
.
WaterParams (class)
Water params
[source]
Fields
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
WeaponDamages (class)
Parameters for damage
[source]
Fields
integer
paralyzeDamageTimenumber
impulseFactornumber
impulseBoostnumber
craterMultnumber
craterBoostnumber
dynDamageExpnumber
dynDamageMinnumber
dynDamageRangenumber
dynDamageInverted- Set to
true
if a non-zero value is passed,false
is zero is passed. number
craterAreaOfEffectnumber
damageAreaOfEffectnumber
edgeEffectivenessnumber
explosionSpeed
WeaponState (class)
Parameter for weapon states
[source]
Fields
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
SetUnitWeaponDamages
to change dynDamageRange as well. number?
projectileSpeedinteger?
burstnumber?
burstRateinteger?
projectilesinteger?
salvoLeftinteger?
nextSalvonumber?
aimReady- Set to
true
if a non-zero value is passed,false
is zero is passed. integer?
forceAiminteger?
avoidFlagsinteger?
collisionFlagsnumber?
ttl- How many seconds the projectile should live
losAccess (class)
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.
[source]
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
rgb (class)
Color triple (RGB)rgba (class)
Color quadruple (RGBA)xy (class)
Cartesian double (XY)xyz (class)
Cartesian triple (XYZ)xyzw (class)
Cartesian quadruple (XYZW)xz (class)
[source]Fields
CMD (enum)
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.
[source]
128
OPT_ALT- [source]
64
OPT_CTRL- [source]
32
OPT_SHIFT- [source]
16
OPT_RIGHT- [source]
8
OPT_INTERNAL- [source]
4
OPT_META- [source]
-1
MOVESTATE_NONE- [source]
0
MOVESTATE_HOLDPOS- [source]
1
MOVESTATE_MANEUVER- [source]
2
MOVESTATE_ROAM- [source]
-1
FIRESTATE_NONE- [source]
0
FIRESTATE_HOLDFIRE- [source]
1
FIRESTATE_RETURNFIRE- [source]
2
FIRESTATE_FIREATWILL- [source]
3
FIRESTATE_FIREATNEUTRAL- [source]
1
WAITCODE_TIME- [source]
2
WAITCODE_DEATH- [source]
3
WAITCODE_SQUAD- [source]
4
WAITCODE_GATHER- [source]
0
STOPStop 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
shift
option.[source]
1
INSERT- [source]
2
REMOVERemove 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 id
matching 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
alt
option.Command Options
alt
Tag/Id switchctrl
Alternative 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)
[source]
5
WAITMakes the unit suspend processing its command queue until wait is removed.
Accepts no parameters.
[source]
6
TIMEWAITMakes the unit suspend processing its command queue for a given duration.
params
{duration} Time to wait in seconds.
[source]
7
DEATHWAITMakes 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}.
[source]
8
SQUADWAITMakes 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.
[source]
9
GATHERWAITMakes 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.
[source]
10
MOVE- [source]
15
PATROL- [source]
16
FIGHT- [source]
20
ATTACKAttack 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 target
actions 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
alt
Also target stunned targets. Without this stunned targets will be skipped.meta
OverridemanualFire
, andnoAutoTarget
weapon 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})
[source]
21
AREA_ATTACK- [source]
25
GUARD- [source]
35
GROUPSELECT- [source]
36
GROUPADD- [source]
37
GROUPCLEAR- [source]
40
REPAIR- [source]
45
FIRE_STATE- [source]
50
MOVE_STATE- [source]
55
SETBASE- [source]
60
INTERNAL- [source]
65
SELFD- [source]
75
LOAD_UNITS- [source]
76
LOAD_ONTO- [source]
80
UNLOAD_UNITS- [source]
81
UNLOAD_UNIT- [source]
85
ONOFF- [source]
90
RECLAIM- [source]
95
CLOAK- [source]
100
STOCKPILE- [source]
105
MANUALFIRE- [source]
105
DGUN- [source]
110
RESTORE- [source]
115
REPEAT- [source]
120
TRAJECTORY- [source]
125
RESURRECT- [source]
130
CAPTURE- [source]
135
AUTOREPAIRLEVEL- [source]
20
LOOPBACKATTACK- [source]
145
IDLEMODE- [source]
CMDTYPE (enum)
Command type constants
Note, the CMDTYPE[]
table is bidirectional. That means: CMDTYPE[CMDTYPE.ICON] := “CMDTYPE_ICON”
[source]
integer
ICONExpect 0 parameters in return.
[source]
integer
ICON_MODEExpect 1 parameter in return (number selected mode).
[source]
integer
ICON_MAPExpect 3 parameters in return (mappos).
[source]
integer
ICON_AREAExpect 4 parameters in return (mappos+radius).
[source]
integer
ICON_UNITExpect 1 parameters in return (unitid).
[source]
integer
ICON_UNIT_OR_MAPExpect 1 parameters in return (unitid) or 3 parameters in return (mappos).
[source]
integer
ICON_FRONTExpect 3 or 6 parameters in return (middle and right side of front if a front was defined).
[source]
integer
ICON_UNIT_OR_AREAExpect 1 parameter in return (unitid) or 4 parameters in return (mappos+radius).
[source]
integer
NEXTExpect command page used with
CMD_INTERNAL
.[source]
integer
PREVExpect command page used with
CMD_INTERNAL
.[source]
integer
ICON_UNIT_FEATURE_OR_AREAExpect 1 parameter in return (unitid or Game.maxUnits+featureid) or 4 parameters in return (mappos+radius).
[source]
integer
ICON_BUILDINGExpect 3 parameters in return (mappos).
[source]
integer
CUSTOMExpect with
CMD_INTERNAL
.[source]
integer
ICON_UNIT_OR_RECTANGLEExpect 1 parameter in return (unitid) or 3 parameters in return (mappos) or 6 parameters in return (startpos+endpos).
[source]
integer
NUMBERExpect 1 parameter in return (number).
[source]
COB (enum)
COB constants
[source]
integer
ACTIVATION- [source]
integer
STANDINGMOVEORDERS- [source]
integer
STANDINGFIREORDERS- [source]
integer
HEALTH- [source]
integer
INBUILDSTANCE- [source]
integer
BUSY- [source]
integer
PIECE_XZ- [source]
integer
PIECE_Y- [source]
integer
UNIT_XZ- [source]
integer
UNIT_Y- [source]
integer
UNIT_HEIGHT- [source]
integer
XZ_ATAN- [source]
integer
XZ_HYPOT- [source]
integer
ATAN- [source]
integer
HYPOT- [source]
integer
GROUND_HEIGHT- [source]
integer
BUILD_PERCENT_LEFT- [source]
integer
YARD_OPEN- [source]
integer
BUGGER_OFF- [source]
integer
ARMORED- [source]
integer
IN_WATER- [source]
integer
CURRENT_SPEED- [source]
integer
VETERAN_LEVEL- [source]
integer
ON_ROAD- [source]
integer
MAX_ID- [source]
integer
MY_ID- [source]
integer
UNIT_TEAM- [source]
integer
UNIT_BUILD_PERCENT_LEFT- [source]
integer
UNIT_ALLIED- [source]
integer
MAX_SPEED- [source]
integer
CLOAKED- [source]
integer
WANT_CLOAK- [source]
integer
GROUND_WATER_HEIGHT- [source]
integer
UPRIGHT- [source]
integer
POW- [source]
integer
PRINT- [source]
integer
HEADING- [source]
integer
TARGET_ID- [source]
integer
LAST_ATTACKER_ID- [source]
integer
LOS_RADIUS- [source]
integer
AIR_LOS_RADIUS- [source]
integer
RADAR_RADIUS- [source]
integer
JAMMER_RADIUS- [source]
integer
SONAR_RADIUS- [source]
integer
SONAR_JAM_RADIUS- [source]
integer
SEISMIC_RADIUS- [source]
integer
DO_SEISMIC_PING- [source]
integer
CURRENT_FUEL- [source]
integer
TRANSPORT_ID- [source]
integer
SHIELD_POWER- [source]
integer
STEALTH- [source]
integer
CRASHING- [source]
integer
CHANGE_TARGET- [source]
integer
CEG_DAMAGE- [source]
integer
COB_ID- [source]
integer
PLAY_SOUND- [source]
integer
KILL_UNIT- [source]
integer
SET_WEAPON_UNIT_TARGET- [source]
integer
SET_WEAPON_GROUND_TARGET- [source]
integer
SONAR_STEALTH- [source]
integer
REVERSING- [source]
integer
FLANK_B_MODE- [source]
integer
FLANK_B_DIR- [source]
integer
FLANK_B_MOBILITY_ADD- [source]
integer
FLANK_B_MAX_DAMAGE- [source]
integer
FLANK_B_MIN_DAMAGE- [source]
integer
WEAPON_RELOADSTATE- [source]
integer
WEAPON_RELOADTIME- [source]
integer
WEAPON_ACCURACY- [source]
integer
WEAPON_SPRAY- [source]
integer
WEAPON_RANGE- [source]
integer
WEAPON_PROJECTILE_SPEED- [source]
integer
MIN- [source]
integer
MAX- [source]
integer
ABS- [source]
integer
GAME_FRAME- [source]
LOG (enum)
[source]RmlUi.RmlEventPhase (enum)
[source]RmlUi.RmlFocusFlag (enum)
[source]RmlUi.RmlModalFlag (enum)
[source]RmlUi.default_action_phase (enum)
[source]RmlUi.font_weight (enum)
[source]RmlUi.key_identifier (enum)
[source]integer
0integer
1integer
2integer
3integer
4integer
5integer
6integer
7integer
8integer
9integer
UNKNOWN- [source]
integer
SPACE- [source]
integer
A- [source]
integer
B- [source]
integer
C- [source]
integer
D- [source]
integer
E- [source]
integer
F- [source]
integer
G- [source]
integer
H- [source]
integer
I- [source]
integer
J- [source]
integer
K- [source]
integer
L- [source]
integer
M- [source]
integer
N- [source]
integer
O- [source]
integer
P- [source]
integer
Q- [source]
integer
R- [source]
integer
S- [source]
integer
T- [source]
integer
U- [source]
integer
V- [source]
integer
W- [source]
integer
X- [source]
integer
Y- [source]
integer
Z- [source]
integer
OEM_1- [source]
integer
OEM_PLUS- [source]
integer
OEM_COMMA- [source]
integer
OEM_MINUS- [source]
integer
OEM_PERIOD- [source]
integer
OEM_2- [source]
integer
OEM_3- [source]
integer
OEM_4- [source]
integer
OEM_5- [source]
integer
OEM_6- [source]
integer
OEM_7- [source]
integer
OEM_8- [source]
integer
OEM_102- [source]
integer
NUMPAD0- [source]
integer
NUMPAD1- [source]
integer
NUMPAD2- [source]
integer
NUMPAD3- [source]
integer
NUMPAD4- [source]
integer
NUMPAD5- [source]
integer
NUMPAD6- [source]
integer
NUMPAD7- [source]
integer
NUMPAD8- [source]
integer
NUMPAD9- [source]
integer
NUMPADENTER- [source]
integer
MULTIPLY- [source]
integer
ADD- [source]
integer
SEPARATOR- [source]
integer
SUBTRACT- [source]
integer
DECIMAL- [source]
integer
DIVIDE- [source]
integer
OEM_NEC_EQUAL- [source]
integer
BACK- [source]
integer
TAB- [source]
integer
CLEAR- [source]
integer
RETURN- [source]
integer
PAUSE- [source]
integer
CAPITAL- [source]
integer
KANA- [source]
integer
HANGUL- [source]
integer
JUNJA- [source]
integer
FINAL- [source]
integer
HANJA- [source]
integer
KANJI- [source]
integer
ESCAPE- [source]
integer
CONVERT- [source]
integer
NONCONVERT- [source]
integer
ACCEPT- [source]
integer
MODECHANGE- [source]
integer
PRIOR- [source]
integer
NEXT- [source]
integer
END- [source]
integer
HOME- [source]
integer
LEFT- [source]
integer
UP- [source]
integer
RIGHT- [source]
integer
DOWN- [source]
integer
SELECT- [source]
integer
PRINT- [source]
integer
EXECUTE- [source]
integer
SNAPSHOT- [source]
integer
INSERT- [source]
integer
DELETE- [source]
integer
HELP- [source]
integer
LWIN- [source]
integer
RWIN- [source]
integer
APPS- [source]
integer
POWER- [source]
integer
SLEEP- [source]
integer
WAKE- [source]
integer
F1- [source]
integer
F2- [source]
integer
F3- [source]
integer
F4- [source]
integer
F5- [source]
integer
F6- [source]
integer
F7- [source]
integer
F8- [source]
integer
F9- [source]
integer
F10- [source]
integer
F11- [source]
integer
F12- [source]
integer
F13- [source]
integer
F14- [source]
integer
F15- [source]
integer
F16- [source]
integer
F17- [source]
integer
F18- [source]
integer
F19- [source]
integer
F20- [source]
integer
F21- [source]
integer
F22- [source]
integer
F23- [source]
integer
F24- [source]
integer
NUMLOCK- [source]
integer
SCROLL- [source]
integer
OEM_FJ_JISHO- [source]
integer
OEM_FJ_MASSHOU- [source]
integer
OEM_FJ_TOUROKU- [source]
integer
OEM_FJ_LOYA- [source]
integer
OEM_FJ_ROYA- [source]
integer
LSHIFT- [source]
integer
RSHIFT- [source]
integer
LCONTROL- [source]
integer
RCONTROL- [source]
integer
LMENU- [source]
integer
RMENU- [source]
integer
BROWSER_BACK- [source]
integer
BROWSER_FORWARD- [source]
integer
BROWSER_REFRESH- [source]
integer
BROWSER_STOP- [source]
integer
BROWSER_SEARCH- [source]
integer
BROWSER_FAVORITES- [source]
integer
BROWSER_HOME- [source]
integer
VOLUME_MUTE- [source]
integer
VOLUME_DOWN- [source]
integer
VOLUME_UP- [source]
integer
MEDIA_NEXT_TRACK- [source]
integer
MEDIA_PREV_TRACK- [source]
integer
MEDIA_STOP- [source]
integer
MEDIA_PLAY_PAUSE- [source]
integer
LAUNCH_MAIL- [source]
integer
LAUNCH_MEDIA_SELECT- [source]
integer
LAUNCH_APP1- [source]
integer
LAUNCH_APP2- [source]
integer
OEM_AX- [source]
integer
ICO_HELP- [source]
integer
ICO_00- [source]
integer
PROCESSKEY- [source]
integer
ICO_CLEAR- [source]
integer
ATTN- [source]
integer
CRSEL- [source]
integer
EXSEL- [source]
integer
EREOF- [source]
integer
PLAY- [source]
integer
ZOOM- [source]
integer
PA1- [source]
integer
OEM_CLEAR- [source]
RmlUi.key_modifier (enum)
[source]integer
CTRL- [source]
integer
SHIFT- [source]
integer
ALT- [source]
integer
META- [source]
integer
CAPSLOCK- [source]
integer
NUMLOCK- [source]
integer
SCROLLLOCK- [source]
SFX (enum)
[source]integer
SHATTERPiece flag for
Spring.UnitScript.Explode
.[source]
integer
EXPLODEPiece flag for
Spring.UnitScript.Explode
.[source]
integer
EXPLODE_ON_HITPiece flag for
Spring.UnitScript.Explode
.[source]
integer
FALLPiece flag for
Spring.UnitScript.Explode
.[source]
integer
SMOKEPiece flag for
Spring.UnitScript.Explode
.[source]
integer
FIREPiece flag for
Spring.UnitScript.Explode
.[source]
integer
NONEPiece flag for
Spring.UnitScript.Explode
.[source]
integer
NO_CEG_TRAILPiece flag for
Spring.UnitScript.Explode
.[source]
integer
NO_HEATCLOUDPiece flag for
Spring.UnitScript.Explode
.[source]
integer
RECURSIVEPiece flag for
Spring.UnitScript.Explode
.[source]
integer
VTOLPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
WAKEPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
REVERSE_WAKEPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
WHITE_SMOKEPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
BLACK_SMOKEPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
BUBBLEPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
CEGPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
FIRE_WEAPONPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
DETONATE_WEAPONPiece flag for
Spring.UnitScript.EmitSfx
.[source]
integer
GLOBALPiece flag for
Spring.UnitScript.EmitSfx
.[source]
CMD (field)
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.
[source]
CMDTYPE (field)
Command type constants
Note, the CMDTYPE[]
table is bidirectional. That means: CMDTYPE[CMDTYPE.ICON] := “CMDTYPE_ICON”
[source]
COB (field)
COB constants
[source]
COBSCALE (field)
[source]LOG (field)
[source]See Spring.Log
LuaFont (field)
Lua opengl font object.
[source]
See gl.LoadFont
SFX (field)
[source]SYNCED (field)
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.
[source]
VAO (field)
Vertex Array Object
[source]
See rts/Lua/LuaVAOImpl.cpp
Encoding (table)
Lua Encoding API
[source]
Members
Encoding.DecodeBase64 (function)
Decodes a base64 string
[source]
Decodes a base64 encoded string. If it encounters invalid data, it stops and returns whatever it parsed so far.
Encoding.DecodeBase64(string) -> string
Parameters
string
text- Text to decode
Returns
string
decoded- Decoded text
Encoding.EncodeBase64 (function)
Encodes a base64 string
[source]
Encoding.EncodeBase64(string, boolean?) -> string
Parameters
string
text- Text to encode
boolean?
stripPadding- Remove padding (
=
characters) at the end when ’true’. Defaults totrue
.
Returns
string
encoded- Encoded text
Encoding.IsValidBase64 (function)
Validates a base64 string
[source]
Encoding.IsValidBase64(string) -> boolean
Parameters
string
text- Text to validate
Returns
boolean
valid- Whether the text is valid base64
Encoding.DecodeBase64Url (function)
Decodes a base64url string
[source]
Decodes a base64url encoded string. If it encounters invalid data, it stops and returns whatever it parsed so far.
Encoding.DecodeBase64Url(string) -> string
Parameters
string
text- Text to decode
Returns
string
decoded- Decoded text
Encoding.EncodeBase64Url (function)
Encodes a base64url string
[source]
Encoding.EncodeBase64Url(string) -> string
Parameters
string
text- Text to encode
Returns
string
encoded- Encoded text
Encoding.IsValidBase64Url (function)
Validates a base64url string
[source]
Encoding.IsValidBase64Url(string) -> boolean
Parameters
string
text- Text to validate
Returns
boolean
valid- Whether the text is valid base64url
Engine (table)
Engine specific information.
[source]
Fields
string
version- “Major.Minor.PatchSet” for releases, “Major.Minor.PatchSet-CommitNum-gHash branch” otherwise
string
versionFull- “Major.Minor.PatchSet” for releases, “Major.Minor.PatchSet-CommitNum-gHash branch” otherwise. Will also include (buildFlags), if there’re any.
string
versionMajor- Major part of the named release version
string
versionMinor- Minor part of the named release version
string
versionPatchSet- Build number of the named release version
string
commitsNumber- Number of commits after the latest named release, non-zero indicates a “dev” build
string
buildFlags- Gets additional engine buildflags, e.g. “Debug” or “Sync-Debug”
FeatureSupport
featureSupport- Table containing various engine features as keys; use for cross-version compat
number
wordSize- Indicates the build type always 64 these days
number
gameSpeed- Number of simulation gameframes per second
TextColorCode
textColorCodes- Table containing keys that represent the color code operations during font rendering
Game (table)
Game specific information
[source]
Fields
number
maxUnitsnumber
maxTeamsnumber
maxPlayersnumber
squareSize- Divide Game.mapSizeX or Game.mapSizeZ by this to get engine’s “mapDims” coordinates. The resolution of height, yard and type maps.
number
metalMapSquareSize- The resolution of metalmap (for use in API such as Spring.GetMetalAmount etc.)
number
gameSpeed- Number of simulation gameframes per second
number
startPosTypeboolean
ghostedBuildingsstring
mapChecksumstring
modChecksumboolean
mapDamagestring
mapNamestring
mapDescription- = string Game.mapHumanName
number
mapHardnessnumber
mapXnumber
mapYnumber
mapSizeX- in worldspace/opengl coords. Divide by Game.squareSize to get engine’s “mapDims” coordinates
number
mapSizeZ- in worldspace/opengl coords. Divide by Game.squareSize to get engine’s “mapDims” coordinates
number
gravitynumber
tidalnumber
windMinnumber
windMaxnumber
extractorRadiusnumber
waterDamagetable
envDamageTypes- Containing {def}IDs of environmental-damage sources
string
gameNamestring
gameShortNamestring
gameVersionstring
gameMutatorstring
gameDescboolean
requireSonarUnderWaternumber
transportAirnumber
transportShipnumber
transportHovernumber
transportGroundnumber
fireAtKillednumber
fireAtCrashingboolean
constructionDecayboolean
reclaimAllowEnemiesboolean
reclaimAllowAlliesnumber
constructionDecayTimenumber
constructionDecaySpeednumber
multiReclaimnumber
reclaimMethodnumber
reclaimUnitMethodnumber
reclaimUnitEnergyCostFactornumber
reclaimUnitEfficiencynumber
reclaimFeatureEnergyCostFactornumber
repairEnergyCostFactornumber
resurrectEnergyCostFactornumber
captureEnergyCostFactortable<string,integer>
springCategorieslua example: { [“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),(integer|string)>
armorTypes(bidirectional)
lua example: { [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, ... }
TextColorCode
textColorCodes- Table containing keys that represent the color code operations during font rendering
Platform (table)
Platform specific information
[source]
Fields
string
gpu- Full GPU device name
("Nvidia"|"Intel"|"ATI"|"Mesa"|"Unknown")
gpuVendorstring
glVersionShortmajor.minor.buildNumber
string
glslVersionShortmajor.minor
string
glVersion- Full version
string
glVendorstring
glRendererstring
glslVersion- Full version
string
gladVersionstring
osName- full name of the OS
("Windows"|"Linux"|"MacOSX"|"FreeBSD"|"Unknown")
osFamilynumber
numDisplaysnumber
gpuMemorySize- Size of total GPU memory in MBs; only available for “Nvidia”, (rest are 0)
number
sdlVersionCompiledMajornumber
sdlVersionCompiledMinornumber
sdlVersionCompiledPatchnumber
sdlVersionLinkedMajornumber
sdlVersionLinkedMinornumber
sdlVersionLinkedPatchnumber
totalRAM- Total physical system RAM in MBs.
boolean
glSupportNonPowerOfTwoTexboolean
glSupportTextureQueryLODboolean
glSupport24bitDepthBufferboolean
glSupportRestartPrimitiveboolean
glSupportClipSpaceControlboolean
glSupportFragDepthLayout
Script (table)
Members
Script.GetWatchUnit (function)
Query whether any callins are registered for a unitDefID.
[source]
Script.GetWatchUnit(integer) -> boolean
Parameters
integer
unitDefID
Returns
boolean
watched- Watch status.
Script.GetWatchFeature (function)
Query whether any callins are registered for a featureDefID.
[source]
Script.GetWatchFeature(integer) -> boolean
Parameters
integer
featureDefID
Returns
boolean
watchedtrue
if callins are registered, otherwisefalse
.
Script.GetWatchWeapon (function)
Query whether any callins are registered for a weaponDefID.
[source]
Same as calling:
lua
Script.GetWatchExplosion(weaponDefID) or Script.GetWatchProjectile(weaponDefID) or Script.GetWatchAllowTarget(weaponDefID)
Script.GetWatchWeapon(integer) -> boolean
Parameters
integer
weaponDefID
Returns
boolean
watched- True if watch is enabled for any weaponDefID callins.
Script.GetWatchExplosion (function)
Query whether explosion callins are registered for a weaponDefID.
[source]
Script.GetWatchExplosion(integer) -> boolean
Parameters
integer
weaponDefID
Returns
boolean
watchedtrue
if callins are registered, otherwisefalse
.
Script.GetWatchProjectile (function)
Query whether projectile callins are registered for a weaponDefID.
[source]
Script.GetWatchProjectile(integer) -> boolean
Parameters
integer
weaponDefID
Returns
boolean
watchedtrue
if callins are registered, otherwisefalse
.
Script.GetWatchAllowTarget (function)
Query whether weapon targeting callins are registered for a weaponDefID.
[source]
See Script.SetWatchAllowTarget
Script.GetWatchAllowTarget(integer) -> boolean
Parameters
integer
weaponDefID
Returns
boolean
watchedtrue
if callins are registered, otherwisefalse
.
Script.SetWatchUnit (function)
Register or deregister unitDefID for expensive callins.
[source]
Script.SetWatchUnit(integer, boolean) -> nil
Parameters
Script.SetWatchFeature (function)
Register or deregister featureDefID for expensive callins.
[source]
See Callins:UnitFeatureCollision
Script.SetWatchFeature(integer, boolean) -> nil
Parameters
integer
featureDefIDboolean
watch- Whether to register or deregister.
Script.SetWatchWeapon (function)
Register or deregister weaponDefID for all expensive callins.
[source]
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.SetWatchAllowTarget
Script.SetWatchWeapon(integer, boolean) -> nil
Parameters
integer
weaponDefIDboolean
watch- Whether to register or deregister.
Script.SetWatchExplosion (function)
Register or deregister weaponDefID for explosion callins.
[source]
Script.SetWatchExplosion(integer, boolean) -> nil
Parameters
integer
weaponDefIDboolean
watch- Whether to register or deregister.
Script.SetWatchProjectile (function)
Register or deregister weaponDefID for expensive projectile callins.
[source]
See Callins:ProjectileDestroyed
Script.SetWatchProjectile(integer, boolean) -> nil
Parameters
integer
weaponDefID- weaponDefID for weapons or -1 to watch for debris.
boolean
watch- Whether to register or deregister.
Script.SetWatchAllowTarget (function)
Register or deregister weaponDefID for weapon targeting callins.
[source]
See SyncedCallins:AllowWeaponInterceptTarget
Script.SetWatchAllowTarget(integer, boolean) -> nil
Parameters
integer
weaponDefIDboolean
watch- Whether to register or deregister.
Script.IsEngineMinVersion (function)
[source]Script.IsEngineMinVersion(integer, integer?, integer?) -> boolean
Parameters
integer
minMajorVerinteger?
minMinorVer- (Default:
0
) integer?
minCommits- (Default:
0
)
Returns
boolean
satisfiesMintrue
if the engine version is greater or equal to the specified version, otherwisefalse
.
Script.Kill (function)
[source]Script.Kill(string?) -> nil
Parameters
string?
killMessage- Kill message.
Script.UpdateCallin (function)
[source]Script.UpdateCallin(string) -> nil
Parameters
string
name
Script.GetName (function)
[source]Script.GetName() -> string
Returns
string
name
Script.GetSynced (function)
[source]Script.GetSynced() -> boolean
Returns
boolean
synced
Script.GetFullCtrl (function)
[source]Script.GetFullCtrl() -> boolean
Returns
boolean
fullCtrl
Script.GetFullRead (function)
[source]Script.GetFullRead() -> boolean
Returns
boolean
fullRead
Script.GetCtrlTeam (function)
[source]Script.GetCtrlTeam() -> integer
Returns
integer
teamID
Script.GetReadTeam (function)
[source]Script.GetReadTeam() -> integer
Returns
integer
teamID
Script.GetReadAllyTeam (function)
[source]Script.GetReadAllyTeam() -> integer
Returns
integer
allyTeamID
Script.GetSelectTeam (function)
[source]Script.GetSelectTeam() -> integer
Returns
integer
teamID
Script.GetGlobal (function)
[source]Script.GetGlobal() -> integer?
Returns
integer?
global
Script.GetRegistry (function)
[source]Script.GetRegistry() -> integer?
Returns
integer?
registry
Script.DelayByFrames (function)
[source]Script.DelayByFrames(integer, unknown) -> nil
Parameters
integer
frameDelayunknown
fun
Fields
VFS (table)
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.sdz
andmaphelper.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.lua
explosions.lua
explosion_alias.lua
icontypes.lua
messages.lua
modrules.lua
resources.lua
resources_map.lua
sidedata.lua
sounds.lua
luagaia/
main.lua
draw.lua
luarules/
main.lua
draw.lua
luaui/
main.lua
shaders/
?
luaai.lua
mapinfo.lua
mapoptions.lua
modinfo.lua
modoptions.lua
validmaps.lua
[source]
Members
VFS.GetMaps (function)
[source]VFS.GetMaps() -> string[]
Returns
string[]
mapNames
VFS.GetGames (function)
[source]VFS.GetGames() -> string[]
Returns
string[]
gameNames
VFS.GetAllArchives (function)
[source]VFS.GetAllArchives() -> string[]
Returns
string[]
archiveNames
VFS.HasArchive (function)
[source]VFS.HasArchive() -> boolean
Returns
boolean
hasArchive
VFS.GetLoadedArchives (function)
[source]VFS.GetLoadedArchives() -> string[]
Returns
string[]
archiveNames
VFS.GetArchivePath (function)
[source]VFS.GetArchivePath(string) -> string?
Parameters
string
archiveName
Returns
string?
archivePath
VFS.GetArchiveInfo (function)
[source]VFS.GetArchiveInfo(string) -> ArchiveInfo?
Parameters
string
archiveName
Returns
VFS.GetArchiveDependencies (function)
[source]VFS.GetArchiveDependencies(string) -> string[]
Parameters
string
archiveName
Returns
string[]
archiveNames
VFS.GetArchiveReplaces (function)
[source]VFS.GetArchiveReplaces(string) -> string[]
Parameters
string
archiveName
Returns
string[]
archiveNames
VFS.GetArchiveChecksum (function)
[source]VFS.GetArchiveChecksum(string) -> string, string
Parameters
string
archiveName
Returns
string
singleArchiveChecksumstring
completeArchiveChecksum
VFS.GetNameFromRapidTag (function)
[source]VFS.GetNameFromRapidTag(string) -> string
Parameters
string
rapidTag
Returns
string
archiveName
VFS.GetAvailableAIs (function)
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.
[source]
VFS.GetAvailableAIs(string?, string?) -> AIInfo[]
Parameters
string?
gameArchiveNamestring?
mapArichiveName
Returns
VFS.Include (function)
Loads and runs lua code from a file in the VFS.
[source]
The path is relative to the main Spring directory, e.g.
lua
VFS.Include(‘LuaUI/includes/filename.lua’, nil, vfsmode)
VFS.Include(string, table?, string?) -> any
Parameters
string
filenametable?
environment(Default: the current function environment)
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 infilename.lua
will see the contents of env in place of the normal global environment.string?
mode
Returns
any
module- The return value of the included file.
VFS.LoadFile (function)
Load raw text data from the VFS.
[source]
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
Returns
string?
data- The contents of the file.
VFS.FileExists (function)
Check if file exists in VFS.
[source]
Example usage:
lua
if VFS.FileExists(“mapconfig/custom_lava_config.lua”, VFS.MAP) then
…
end
VFS.FileExists(string, string?) -> boolean
Parameters
Returns
boolean
existstrue
if the file exists, otherwisefalse
.
VFS.DirList (function)
List files in a directory.
[source]
Example usage:
lua
local luaFiles = VFS.DirList(‘units/’, ‘*.lua’, nil, true)
VFS.DirList(string, string?, string?, boolean?) -> string[]
Parameters
Returns
string[]
filenames
VFS.SubDirs (function)
List sub-directories in a directory.
[source]
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
Returns
string[]
dirnames
VFS.GetFileAbsolutePath (function)
[source]VFS.GetFileAbsolutePath(string, string?) -> string?
Parameters
Returns
string?
absolutePath
VFS.GetArchiveContainingFile (function)
[source]VFS.GetArchiveContainingFile(string, string?) -> string?
Parameters
Returns
string?
archiveName
VFS.UseArchive (function)
Temporarily load an archive from the VFS and run the given function, which can make usage of the files in the archive.
[source]
VFS.UseArchive(string, unknown) -> any ...
Parameters
string
archiveNameunknown
fun
Returns
any ...
Results- of the given function
VFS.CompressFolder (function)
Compresses the specified folder.
[source]
VFS.CompressFolder(string, string?, string?, boolean?, string?) -> nil
Parameters
string
folderPathstring?
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)
[source]VFS.ZlibCompress(string) -> string?
Parameters
string
uncompressed- Data to compress.
Returns
string?
compressed- Compressed data, or
nil
on error.
VFS.ZlibDecompress (function)
[source]VFS.ZlibDecompress(string) -> string?
Parameters
string
compressed- Data to decompress.
Returns
string?
uncompressed- Uncompressed data, or
nil
on error.
VFS.CalculateHash (function)
Calculates hash of a given string.
- MD5 gets base64 encoded.
- SHA512 gets hex encoded.
[source]
VFS.CalculateHash(string, HashType) -> string?
Parameters
Returns
string?
hash
VFS.PackU8 (function)
Convert unsigned 8-bit integer(s) to binary string.
[source]
VFS.PackU8([integer, ]*) -> string
Parameters
integer
...- Numbers to pack.
Returns
VFS.PackU8 (function overload 1)
Convert unsigned 8-bit integer(s) to binary string.
[source]
VFS.PackU8(integer[]) -> string
Parameters
integer[]
numbers- Numbers to pack.
Returns
VFS.PackU16 (function)
Convert unsigned 16-bit integer(s) to binary string.
[source]
VFS.PackU16([integer, ]*) -> string
Parameters
integer
...- Numbers to pack.
Returns
VFS.PackU16 (function overload 1)
Convert unsigned 16-bit integer(s) to binary string.
[source]
VFS.PackU16(integer[]) -> string
Parameters
integer[]
numbers- Numbers to pack.
Returns
VFS.PackU32 (function)
Convert unsigned 32-bit integer(s) to binary string.
[source]
VFS.PackU32([integer, ]*) -> string
Parameters
integer
...- Numbers to pack.
Returns
VFS.PackU32 (function overload 1)
Convert unsigned 32-bit integer(s) to binary string.
[source]
VFS.PackU32(integer[]) -> string
Parameters
integer[]
numbers- Numbers to pack.
Returns
VFS.PackS8 (function)
Convert signed 8-bit integer(s) to binary string.
[source]
VFS.PackS8([integer, ]*) -> string
Parameters
integer
...- Numbers to pack.
Returns
VFS.PackS8 (function overload 1)
Convert signed 8-bit integer(s) to binary string.
[source]
VFS.PackS8(integer[]) -> string
Parameters
integer[]
numbers- Numbers to pack.
Returns
VFS.PackS16 (function)
Convert signed 16-bit integer(s) to binary string.
[source]
VFS.PackS16([integer, ]*) -> string
Parameters
integer
...- Numbers to pack.
Returns
VFS.PackS16 (function overload 1)
Convert signed 16-bit integer(s) to binary string.
[source]
VFS.PackS16(integer[]) -> string
Parameters
integer[]
numbers- Numbers to pack.
Returns
VFS.PackS32 (function)
Convert signed 32-bit integer(s) to binary string.
[source]
VFS.PackS32([integer, ]*) -> string
Parameters
integer
...- Numbers to pack.
Returns
VFS.PackS32 (function overload 1)
Convert signed 32-bit integer(s) to binary string.
[source]
VFS.PackS32(integer[]) -> string
Parameters
integer[]
numbers- Numbers to pack.
Returns
VFS.PackS32 (function overload 2)
Convert signed 32-bit float(s) to binary string.
[source]
VFS.PackS32([integer, ]*) -> string
Parameters
integer
...- Numbers to pack.
Returns
VFS.PackS32 (function overload 3)
Convert signed 32-bit float(s) to binary string.
[source]
VFS.PackS32(integer[]) -> string
Parameters
integer[]
numbers- Numbers to pack.
Returns
VFS.UnpackU8 (function)
Convert a binary string to an unsigned 8-bit integer.
[source]
VFS.UnpackU8(string, integer?) -> integer
Parameters
Returns
VFS.UnpackU16 (function)
Convert a binary string to an unsigned 16-bit integer.
[source]
VFS.UnpackU16(string, integer?) -> integer
Parameters
Returns
VFS.UnpackU32 (function)
Convert a binary string to an unsigned 32-bit integer.
[source]
VFS.UnpackU32(string, integer?) -> integer
Parameters
Returns
VFS.UnpackS8 (function)
Convert a binary string to a signed 8-bit integer.
[source]
VFS.UnpackS8(string, integer?) -> integer
Parameters
Returns
VFS.UnpackS16 (function)
Convert a binary string to a signed 16-bit integer.
[source]
VFS.UnpackS16(string, integer?) -> integer
Parameters
Returns
VFS.UnpackS32 (function)
Convert a binary string to a signed 32-bit integer.
[source]
VFS.UnpackS32(string, integer?) -> integer
Parameters
Returns
VFS.UnpackF32 (function)
Convert a binary string to a signed 32-bit float.
[source]
VFS.UnpackF32(string, integer?) -> integer
Parameters
Returns
Fields
"r"
RAW- [source] Only select uncompressed files.
"M"
GAME- [source]
"m"
MAP- [source]
"b"
BASE- [source]
"e"
MENU- [source]
"Mmeb"
ZIP- [source]
Only select compressed files (
.sdz
,.sd7
). "rMmeb"
RAW_FIRST- [source] Try uncompressed files first, then compressed.
"Mmebr"
ZIP_FIRST- [source] Try compressed files first, then uncompressed.
"M"
MOD- [source]
"r"
RAW_ONLY- [source]
"Mmeb"
ZIP_ONLY- [source]
tracy (table)
Members
tracy.LuaTracyPlotConfig (function)
Configure custom appearance for a Tracy plot for use in debugging or profiling
[source]
tracy.LuaTracyPlotConfig(string, ("Number"|"Percentage"|"Memory")?, boolean?, boolean?, integer?) -> nil
Parameters
string
plotName- 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)
Update a Tracy plot with a value
[source]
tracy.LuaTracyPlot(string, number) -> nil
Parameters
tracy.ZoneBegin (function)
tracy.ZoneBegin(string) -> nil
Parameters
string
name
tracy.ZoneBeginN (function)
tracy.ZoneBeginN(string) -> nil
Parameters
string
name
tracy.ZoneBeginS (function)
tracy.ZoneBeginS(string) -> nil
Parameters
string
name
tracy.ZoneBeginNS (function)
tracy.ZoneBeginNS(string) -> nil
Parameters
string
name
tracy.ZoneEnd (function)
tracy.ZoneEnd() -> nil
tracy.ZoneText (function)
tracy.ZoneText(string) -> nil
Parameters
string
text
tracy.ZoneName (function)
tracy.ZoneName(string) -> nil
Parameters
string
name
tracy.Message (function)
tracy.Message(string) -> nil
Parameters
string
text
Aliases
- RmlUi.SelectOptionsProxyNode
{ element: RmlUi.Element, value: string }
- HashType
(0|1)
- RmlUi.EventParametersProxy.MouseButton
(0|1|2)
- ResourceUsage
table<ResourceName,number>
- RmlUi.ElementStyleProxy
{ [string]: string }
- MatrixName
("view"|"projection"|"viewprojection"|"viewinverse"|"projectioninverse"|"viewprojectioninverse"|"billboard"|"shadow"...)
- float3
xyz
- CreateCommandOptions
(CommandOptionName[]|table<CommandOptionName,boolean>|CommandOptionBit|integer)
- ResourceName
("metal"|"energy"|"m"|"e")
- TargetType
(0|1|2|3)
- ModType
(0|1|3|4)
- CommandOptionName
("right"|"alt"|"ctrl"|"shift"|"meta")
- float2
xy
- RmlUi.MouseButton
(0|1|2)
- CameraMode
(0|1|2|3|4|5|6)
- BuildOrderBlockedStatus
(0|1|2|3)
- RmlUi.ElementAttributesProxy
{ [string]: (string|number|boolean) }
- GenericMoveTypeNumberKey
("maxSpeed"|"maxWantedSpeed"|"maneuverLeash"|"waterline")
- Facing
(0|1|2|3|"s"|"e"|"n"|"w"...)
- DrawFlag
(0|1|2|4|8|16|32|128)
- RmlUi.EventParametersProxy.TrueFalse
(0|1)
- SoundChannel
("general"|"battle"|"sfx"|"unitreply"|"voice"|"userinterface"|"ui"|0...)
- RmlUi.ElementChildNodesProxy
RmlUi.Element[]
- RmlUi.SelectOptionsProxy
RmlUi.SelectOptionsProxyNode[]
- Heading
integer
- LogLevel
(integer|"debug"|"info"|"notice"|"warning"|"deprecated"|"error"|"fatal")
- DrawMask
integer
- Attachment
("depth"|"stencil"|"color0"|"color1"|"color2"|"color3"|"color4"|"color5"...)
- CreateCommandParams
(number[]|number)
- GenericMoveTypeBooleanKey
("useWantedSpeed[0]"|"useWantedSpeed[1]")
- FacingInteger
(0|1|2|3)
- RmlUi.StyleProxy
{ [string]: string }
- UniformArrayType
(1|2|3)
- RmlUi.EventID
(0|1|2|3|4|5|6|7...)
- CameraName
("ta"|"spring"|"rot"|"ov"|"free"|"fps"|"dummy")
- CommandOptionBit
(4|8|16|32|64|128)
- StorageName
("metalStorage"|"energyStorage"|"ms"|"es")
- float4
xyzw