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.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() -> stringReturns
stringname
Spring.GetMenuName (function)
[source]Spring.GetMenuName() -> stringReturns
stringname- 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
stringprofilerNameboolean?frameData- (Default:
false)
Returns
numbertotal- in ms
numbercurrent- in ms
numbermax_dtnumbertime_pctnumberpeak_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, numberReturns
numberluaHandleAllocedMem- in kilobytes
numberluaHandleNumAllocs- divided by 1000
numberluaGlobalAllocedMem- in kilobytes
numberluaGlobalNumAllocs- divided by 1000
numberluaUnsyncedGlobalAllocedMem- in kilobytes
numberluaUnsyncedGlobalNumAllocs- divided by 1000
numberluaSyncedGlobalAllocedMem- in kilobytes
numberluaSyncedGlobalNumAllocs- divided by 1000
Spring.GetVidMemUsage (function)
[source]Spring.GetVidMemUsage() -> number, numberReturns
numberusedMem- in MB
numberavailableMem- in MB
Spring.GetTimer (function)
Get a timer with millisecond resolution
[source]
Spring.GetTimer() -> integerReturns
Spring.GetTimerMicros (function)
Get a timer with microsecond resolution
[source]
Spring.GetTimerMicros() -> integerReturns
Spring.GetFrameTimer (function)
Get a timer for the start of the frame
[source]
This should give better results for camera interpolations
Spring.GetFrameTimer(boolean?) -> integerParameters
boolean?lastFrameTime- (Default:
false) whether to use last frame time instead of last frame start
Returns
Spring.DiffTimers (function)
[source]Spring.DiffTimers(integer, integer, boolean?, boolean?) -> numberParameters
integerendTimerintegerstartTimerboolean?returnMs- (Default:
false) whether to returntimeAmountin milliseconds as opposed to seconds boolean?fromMicroSecs- (Default:
false) whether timers are in microseconds instead of milliseconds
Returns
numbertimeAmount
Spring.GetNumDisplays (function)
[source]Spring.GetNumDisplays() -> numberReturns
numbernumDisplays- as returned by
SDL_GetNumVideoDisplays
Spring.GetViewGeometry (function)
Get main view geometry (map and game rendering)
[source]
Spring.GetViewGeometry() -> number, number, number, numberReturns
numberviewSizeX- in px
numberviewSizeY- in px
numberviewPosX- offset from leftmost screen left border in px
numberviewPosY- offset from bottommost screen bottom border in px
Spring.GetDualViewGeometry (function)
Get dual view geometry (minimap when enabled)
[source]
Spring.GetDualViewGeometry() -> number, number, number, numberReturns
numberdualViewSizeX- in px
numberdualViewSizeY- in px
numberdualViewPosX- offset from leftmost screen left border in px
numberdualViewPosY- 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, numberReturns
numberwinSizeX- in px
numberwinSizeY- in px
numberwinPosX- in px
numberwinPosY- in px
numberwindowBorderTop- in px
numberwindowBorderLeft- in px
numberwindowBorderBottom- in px
numberwindowBorderRight- in px
Spring.GetWindowDisplayMode (function)
Get main window display mode
[source]
Spring.GetWindowDisplayMode() -> number, number, number, numberReturns
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
numberscreenSizeX- in px
numberscreenSizeY- in px
numberscreenPosX- in px
numberscreenPosY- in px
numberwindowBorderTop- in px
numberwindowBorderLeft- in px
numberwindowBorderBottom- in px
numberwindowBorderRight- 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, booleanReturns
numberminimapPosX- in px
numberminimapPosY- in px
numberminimapSizeX- in px
numberminimapSizeY- in px
booleanminimizedbooleanmaximized
Spring.GetMiniMapRotation (function)
Get minimap rotation
[source]
Spring.GetMiniMapRotation() -> numberReturns
numberamount- 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() -> booleanReturns
Spring.IsAboveMiniMap (function)
[source]Spring.IsAboveMiniMap(number, number) -> booleanParameters
Returns
booleanisAbove
Spring.GetDrawFrame (function)
[source]Spring.GetDrawFrame() -> number, numberReturns
numberlow_16bitnumberhigh_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() -> booleanReturns
booleanallowRecord
Spring.IsUnitAllied (function)
[source]Spring.IsUnitAllied(integer) -> boolean?Parameters
integerunitID
Returns
boolean?isAllied- nil with unitID cannot be parsed
Spring.IsUnitSelected (function)
[source]Spring.IsUnitSelected(integer) -> boolean?Parameters
integerunitID
Returns
boolean?isSelected- nil when unitID cannot be parsed
Spring.GetUnitLuaDraw (function)
[source]Spring.GetUnitLuaDraw(integer) -> boolean?Parameters
integerunitID
Returns
boolean?draw- nil when unitID cannot be parsed
Spring.GetUnitNoDraw (function)
[source]Spring.GetUnitNoDraw(integer) -> boolean?Parameters
integerunitID
Returns
boolean?nil- when unitID cannot be parsed
Spring.GetUnitEngineDrawMask (function)
[source]Spring.GetUnitEngineDrawMask(integer) -> boolean?Parameters
integerunitID
Returns
boolean?nil- when unitID cannot be parsed
Spring.GetUnitAlwaysUpdateMatrix (function)
[source]Spring.GetUnitAlwaysUpdateMatrix(integer) -> boolean?Parameters
integerunitID
Returns
boolean?nil- when unitID cannot be parsed
Spring.GetUnitDrawFlag (function)
[source]Spring.GetUnitDrawFlag(integer) -> number?Parameters
integerunitID
Returns
number?nil- when unitID cannot be parsed
Spring.GetUnitNoMinimap (function)
[source]Spring.GetUnitNoMinimap(integer) -> boolean?Parameters
integerunitID
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
integerunitID
Returns
boolean?noGrouptrueif the unit is not allowed to be added to a group,falseif it is allowed to be added to a group, ornilwhenunitIDis not valid.
Spring.GetUnitNoSelect (function)
[source]Spring.GetUnitNoSelect(integer) -> boolean?Parameters
integerunitID
Returns
boolean?noSelectnilwhenunitIDcannot be parsed.
Spring.UnitIconGetDraw (function)
[source]Spring.UnitIconGetDraw(integer) -> boolean?Parameters
integerunitID
Returns
boolean?drawIcon
Spring.GetUnitIconData (function)
Get unit icon data
[source]
Spring.GetUnitIconData(number, boolean?) -> IconDataParameters
numberunitIDboolean?fullData- (Default: false) Whether additional information about the icon is returned, otherwise only
nameandatlasTexCoordsare returned
Returns
Spring.GetIconData (function)
Get icon data
[source]
Spring.GetIconData(string, boolean?) -> IconDataParameters
stringiconNameboolean?fullData- (Default: false) Whether additional information about the icon is returned, otherwise only
nameandatlasTexCoordsare returned
Returns
Spring.GetAllIconDataArray (function)
Get icon data
[source]
Spring.GetAllIconDataArray(boolean?) -> IconData[]Parameters
boolean?fullData- (Default: false) Whether additional information about each icon is returned, otherwise only
nameandatlasTexCoordsare returned
Returns
Spring.GetUnitSelectionVolumeData (function)
[source]Spring.GetUnitSelectionVolumeData(integer) -> number?, number, number, number, number, number, number, number, number, booleanParameters
integerunitID
Returns
number?scaleX- nil when unitID cannot be parsed
numberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumbervolumeTypenumberuseContHitTestnumbergetPrimaryAxisbooleanignoreHits
Spring.GetFeatureLuaDraw (function)
[source]Spring.GetFeatureLuaDraw(integer) -> boolean?Parameters
integerfeatureID
Returns
boolean?nil- when featureID cannot be parsed
Spring.GetFeatureNoDraw (function)
[source]Spring.GetFeatureNoDraw(integer) -> boolean?Parameters
integerfeatureID
Returns
boolean?nil- when featureID cannot be parsed
Spring.GetFeatureEngineDrawMask (function)
[source]Spring.GetFeatureEngineDrawMask(integer) -> boolean?Parameters
integerfeatureID
Returns
boolean?nil- when featureID cannot be parsed
Spring.GetFeatureAlwaysUpdateMatrix (function)
[source]Spring.GetFeatureAlwaysUpdateMatrix(integer) -> boolean?Parameters
integerfeatureID
Returns
boolean?nil- when featureID cannot be parsed
Spring.GetFeatureDrawFlag (function)
[source]Spring.GetFeatureDrawFlag(integer) -> number?Parameters
integerfeatureID
Returns
number?nil- when featureID cannot be parsed
Spring.GetFeatureSelectionVolumeData (function)
[source]Spring.GetFeatureSelectionVolumeData(integer) -> number?, number, number, number, number, number, number, number, number, booleanParameters
integerfeatureID
Returns
number?scaleX- nil when unitID cannot be parsed
numberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumbervolumeTypenumberuseContHitTestnumbergetPrimaryAxisbooleanignoreHits
Spring.GetUnitTransformMatrix (function)
[source]Spring.GetUnitTransformMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
integerunitID
Returns
number?m11- nil when unitID cannot be parsed
numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.GetFeatureTransformMatrix (function)
[source]Spring.GetFeatureTransformMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
integerfeatureID
Returns
number?m11- nil when featureID cannot be parsed
numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.IsUnitInView (function)
[source]Spring.IsUnitInView(integer) -> boolean?Parameters
integerunitID
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
integerunitID
Returns
boolean?isUnitIcon- nil when unitID cannot be parsed
Spring.IsAABBInView (function)
[source]Spring.IsAABBInView(number, number, number, number, number, number) -> booleanParameters
Returns
booleaninView
Spring.IsSphereInView (function)
[source]Spring.IsSphereInView(number, number, number, number?) -> booleanParameters
Returns
booleaninView
Spring.GetUnitViewPosition (function)
[source]Spring.GetUnitViewPosition(integer, boolean?) -> number?, number, numberParameters
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
DrawMaskdrawMask- (Default:
0) Filter objects by their draw flags. truesendMask- 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
DrawMaskdrawMask- (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
truesendMask- 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
DrawMaskdrawMask- (Default:
0) Filter objects by their draw flags. truesendMask- 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
DrawMaskdrawMask- (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
truesendMask- 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() -> nilSpring.ClearFeaturesPreviousDrawFlag (function)
[source]Spring.ClearFeaturesPreviousDrawFlag() -> nilSpring.GetUnitsInScreenRectangle (function)
Get units inside a rectangle area on the map
[source]
Spring.GetUnitsInScreenRectangle(number, number, number, number, number?) -> number[]?Parameters
numberleftnumbertopnumberrightnumberbottomnumber?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() -> integerReturns
integerplayerID
Spring.GetLocalTeamID (function)
[source]Spring.GetLocalTeamID() -> integerReturns
integerteamID
Spring.GetLocalAllyTeamID (function)
[source]Spring.GetLocalAllyTeamID() -> integerReturns
integerallyTeamID
Spring.GetSpectatingState (function)
[source]Spring.GetSpectatingState() -> boolean, boolean, booleanReturns
booleanspectatingbooleanspectatingFullViewbooleanspectatingFullSelect
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[]>, integerReturns
Spring.GetSelectedUnitsCounts (function)
Get an aggregate count of selected units per unitDefID
[source]
Spring.GetSelectedUnitsCounts() -> table<number,number>, integerReturns
table<number,number>unitsCounts- where keys are unitDefIDs and values are counts
integerthe- number of unitDefIDs
Spring.GetSelectedUnitsCount (function)
Returns the amount of selected units
[source]
Spring.GetSelectedUnitsCount() -> numberReturns
numberselectedUnitsCount
Spring.GetBoxSelectionByEngine (function)
Get if selection box is handled by engine.
[source]
See Spring.SetBoxSelectionByEngine
Spring.GetBoxSelectionByEngine() -> booleanReturns
booleanisHandledByEnginetrueif the engine will select units inside selection box on release, otherwisefalse.
Spring.IsGUIHidden (function)
[source]Spring.IsGUIHidden() -> booleanReturns
Spring.HaveShadows (function)
[source]Spring.HaveShadows() -> booleanReturns
booleanshadowsLoaded
Spring.HaveAdvShading (function)
[source]Spring.HaveAdvShading() -> boolean, booleanReturns
booleanuseAdvShadingbooleangroundUseAdvShading
Spring.GetWaterMode (function)
[source]See rts/Rendering/Env/IWater.h
Spring.GetWaterMode() -> integer, stringReturns
integerwaterRendererIDstringwaterRendererName
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
numbertexSquareXnumbertexSquareYnumberlodMinstringluaTexNamenumber?lodMax- (Default: lodMin)
Returns
boolean?success
Spring.GetLosViewColors (function)
[source]Spring.GetLosViewColors() -> rgb, rgb, rgb, rgb, rgbReturns
Spring.GetNanoProjectileParams (function)
[source]Spring.GetNanoProjectileParams() -> number, number, number, number, number, numberReturns
numberrotVal- in degrees
numberrotVel- in degrees
numberrotAcc- in degrees
numberrotValRng- in degrees
numberrotVelRng- in degrees
numberrotAccRng- in degrees
Spring.GetCameraNames (function)
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) -> CameraName, any ...Parameters
falseuseTable
Returns
CameraNamenameany ...depends- on the current controller mode.
Spring.GetCameraState (function overload 1)
[source]Spring.GetCameraState(true?) -> CameraStateParameters
true?useTable- (Default:
true) Return a table instead of multiple values.
Returns
Spring.GetCameraPosition (function)
[source]Spring.GetCameraPosition() -> number, number, numberReturns
Spring.GetCameraDirection (function)
[source]Spring.GetCameraDirection() -> number, number, numberReturns
Spring.GetCameraRotation (function)
Get camera rotation in radians.
[source]
Spring.GetCameraRotation() -> number, number, numberReturns
numberrotX- Rotation around X axis in radians.
numberrotY- Rotation around Y axis in radians.
numberrotZ- Rotation around Z axis in radians.
Spring.GetCameraFOV (function)
[source]Spring.GetCameraFOV() -> number, numberReturns
Spring.GetCameraVectors (function)
[source]Spring.GetCameraVectors() -> CameraVectorsReturns
Spring.WorldToScreenCoords (function)
[source]Spring.WorldToScreenCoords(number, number, number) -> number, number, numberParameters
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
numberscreenX- position on x axis in mouse coordinates (origin on left border of view)
numberscreenY- 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, numberParameters
Returns
Spring.GetTeamColor (function)
[source]Spring.GetTeamColor(integer) -> number?, number?, number?, number?Parameters
integerteamID
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
integerteamID
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() -> integerReturns
integertime- Time in seconds.
Spring.GetSoundDevices (function)
[source]Spring.GetSoundDevices() -> SoundDeviceSpec[]Returns
SoundDeviceSpec[]devices- Sound devices.
Spring.GetSoundStreamTime (function)
[source]Spring.GetSoundStreamTime() -> number, numberReturns
Spring.GetSoundEffectParams (function)
[source]Spring.GetSoundEffectParams() -> nilSpring.GetFPS (function)
[source]Spring.GetFPS() -> numberReturns
numberfps
Spring.GetGameSpeed (function)
[source]Spring.GetGameSpeed() -> number, number, booleanReturns
numberwantedSpeedFactornumberspeedFactorbooleanpaused
Spring.GetGameState (function)
[source]Spring.GetGameState(number?) -> boolean, boolean, boolean, booleanParameters
number?maxLatency- (Default:
500) used forisSimLaggingreturn parameter
Returns
booleandoneLoadingbooleanisSavedGamebooleanisClientPausedbooleanisSimLagging
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
integercmdIndex
Returns
Spring.GetCmdDescIndex (function)
[source]Spring.GetCmdDescIndex(integer) -> integer?Parameters
integercmdID
Returns
integer?cmdDescIndex
Spring.GetBuildFacing (function)
[source]Spring.GetBuildFacing() -> FacingIntegerReturns
Spring.GetBuildSpacing (function)
[source]Spring.GetBuildSpacing() -> numberReturns
numberbuildSpacing
Spring.GetGatherMode (function)
[source]Spring.GetGatherMode() -> numberReturns
numbergatherMode
Spring.GetActivePage (function)
[source]Spring.GetActivePage() -> number, numberReturns
numberactivePagenumbermaxPage
Spring.GetMouseState (function)
[source]Spring.GetMouseState() -> number, number, number, number, number, boolean, booleanReturns
numberxnumberynumberlmbPressed- left mouse button pressed
numbermmbPressed- middle mouse button pressed
numberrmbPressed- right mouse button pressed
booleanoffscreenbooleanmmbScroll
Spring.GetMouseCursor (function)
[source]Spring.GetMouseCursor() -> string, numberReturns
stringcursorNamenumbercursorScale
Spring.GetMouseStartPosition (function)
[source]Spring.GetMouseStartPosition(number) -> number, number, number, number, number, number, number, numberParameters
numberbutton
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() -> stringReturns
stringtext
Spring.IsUserWriting (function)
[source]Spring.IsUserWriting() -> booleanReturns
Spring.GetLastMessagePositions (function)
[source]Spring.GetLastMessagePositions() -> xyz[]Returns
Spring.GetConsoleBuffer (function)
[source]Spring.GetConsoleBuffer(number) -> { priority: integer, text: string }[]Parameters
numbermaxLines
Returns
{ priority: integer, text: string }[]buffer
Spring.GetCurrentTooltip (function)
[source]Spring.GetCurrentTooltip() -> stringReturns
stringtooltip
Spring.GetKeyFromScanSymbol (function)
[source]Spring.GetKeyFromScanSymbol(string) -> stringParameters
stringscanSymbol
Returns
stringkeyName
Spring.GetKeyState (function)
[source]Spring.GetKeyState(number) -> booleanParameters
numberkeyCode
Returns
booleanpressed
Spring.GetModKeyState (function)
[source]Spring.GetModKeyState() -> boolean, boolean, boolean, booleanReturns
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) -> numberParameters
stringkeySym
Returns
numberkeyCode
Spring.GetKeySymbol (function)
[source]Spring.GetKeySymbol(number) -> string, stringParameters
numberkeyCode
Returns
stringkeyCodeNamestringkeyCodeDefaultName- name when there are not aliases
Spring.GetScanSymbol (function)
[source]Spring.GetScanSymbol(number) -> string, stringParameters
numberscanCode
Returns
stringscanCodeNamestringscanCodeDefaultName- 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
stringactionName
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() -> integerReturns
integergroupID
Spring.GetUnitGroup (function)
[source]Spring.GetUnitGroup(integer) -> integer?Parameters
integerunitID
Returns
integer?groupID
Spring.GetGroupUnits (function)
[source]Spring.GetGroupUnits(integer) -> number[]?Parameters
integergroupID
Returns
number[]?unitIDs
Spring.GetGroupUnitsSorted (function)
[source]Spring.GetGroupUnitsSorted(integer) -> table<number,number[]>?Parameters
integergroupID
Returns
table<number,number[]>?where- keys are unitDefIDs and values are unitIDs
Spring.GetGroupUnitsCounts (function)
[source]Spring.GetGroupUnitsCounts(integer) -> table<number,number>?Parameters
integergroupID
Returns
table<number,number>?where- keys are unitDefIDs and values are counts
Spring.GetGroupUnitsCount (function)
[source]Spring.GetGroupUnitsCount(integer) -> number?Parameters
integergroupID
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?) -> numberParameters
Returns
numbertraffic
Spring.GetPlayerStatistics (function)
[source]Spring.GetPlayerStatistics(integer) -> number?, number, number, number, numberParameters
integerplayerID
Returns
number?mousePixels- nil when invalid playerID
numbermouseClicksnumberkeyPressesnumbernumCommandsnumberunitCommands
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?, numberParameters
integerdecalID
Returns
Spring.GetGroundDecalQuadPos (function)
[source]Spring.GetGroundDecalQuadPos(integer) -> number?, number, number, number, number, number, number, numberParameters
integerdecalID
Returns
number?posTL.xnumberposTL.znumberposTR.xnumberposTR.znumberposBR.xnumberposBR.znumberposBL.xnumberposBL.z
Spring.GetGroundDecalSizeAndHeight (function)
[source]Spring.GetGroundDecalSizeAndHeight(integer) -> number?, number, numberParameters
integerdecalID
Returns
number?sizeXnumbersizeYnumberprojCubeHeight
Spring.GetGroundDecalRotation (function)
[source]Spring.GetGroundDecalRotation(integer) -> number?Parameters
integerdecalID
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?, boolean?) -> string[]Parameters
boolean?isMainTex- (Default:
nil). Ifnil- no filtering is done, iffalse- return normal/glow textures, iftrue- return main color textures. boolean?addFilenames- (Default:
false). Iftrueadd the texture filenames in the second table
Returns
string[]textureNames- All textures on the atlas and available for use in
SetGroundDecalTexture.
Spring.SetGroundDecalTextureParams (function)
[source]Spring.SetGroundDecalTextureParams(integer) -> number?, numberParameters
integerdecalID
Returns
number?texWrapDistance- If non-zero, sets the mode to repeat the texture along the left-right direction of the decal every texWrapFactor elmos.
numbertexTraveledDistance- Shifts the texture repetition defined by texWrapFactor so the texture of a next line in the continuous multiline can start where the previous finished. For that it should collect all elmo lengths of the previously set multiline segments.
Spring.SetGroundDecalTextureParams (function overload 1)
[source]Spring.SetGroundDecalTextureParams(integer, number?, number?) -> boolean?Parameters
integerdecalIDnumber?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.GetGroundDecalAlpha (function)
[source]Spring.GetGroundDecalAlpha(integer) -> number?, numberParameters
integerdecalID
Returns
number?alpha- Between 0 and 1
numberalphaFalloff- 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, numberParameters
integerdecalID
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, numberParameters
integerdecalID
Returns
Spring.GetGroundDecalMisc (function)
[source]
Returns less important parameters of a ground decal
Spring.GetGroundDecalMisc(integer) -> number?, number, number, number, numberParameters
integerdecalID
Returns
number?dotElimExpnumberrefHeightnumberminHeightnumbermaxHeightnumberforceHeightMode
Spring.GetGroundDecalCreationFrame (function)
[source]
Min can be not equal to max for “gradient” style decals, e.g. unit tracks
Spring.GetGroundDecalCreationFrame(integer) -> number?, numberParameters
integerdecalID
Returns
number?creationFrameMinnumbercreationFrameMax
Spring.GetGroundDecalOwner (function)
[source]Spring.GetGroundDecalOwner(integer) -> integer?Parameters
integerdecalID
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
integerdecalID
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
integergroupID
Returns
number[]?unitIDs
Spring.Ping (function)
Send a ping request to the server
[source]
Spring.Ping(number) -> nilParameters
numberpingTag
Returns
Spring.SendCommands (function)
[source]Spring.SendCommands(string[]) -> nilParameters
string[]commands
Spring.SendCommands (function overload 1)
[source]Spring.SendCommands(string, [string, ]*) -> nilParameters
Returns
Spring.SendPublicChat (function)
Sends a chat message to everyone (players and spectators).
[source]
Spring.SendPublicChat(string) -> nilParameters
stringmessage
Returns
Spring.SendAllyChat (function)
Sends a chat message to the sender’s ally team (if a spectator, to other spectators).
[source]
Spring.SendAllyChat(string) -> nilParameters
stringmessage
Returns
Spring.SendSpectatorChat (function)
Sends a chat message to spectators. Works even if you’re a player.
[source]
Spring.SendSpectatorChat(string) -> nilParameters
stringmessage
Returns
Spring.SendPrivateChat (function)
Sends a private chat message to a specific player ID.
[source]
Spring.SendPrivateChat(string, integer) -> nilParameters
Returns
Spring.SendMessage (function)
[source]Spring.SendMessage(string) -> nilParameters
stringmessage
Returns
Spring.SendMessageToSpectators (function)
[source]Spring.SendMessageToSpectators(string) -> nilParameters
stringmessage"<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) -> nilParameters
Returns
Spring.SendMessageToTeam (function)
[source]Spring.SendMessageToTeam(integer, string) -> nilParameters
Returns
Spring.SendMessageToAllyTeam (function)
[source]Spring.SendMessageToAllyTeam(integer, string) -> nilParameters
Returns
Spring.RequestStartPosition (function)
[source]
Requests a startpoint, as if clicking the spot with the native GUI.
Spring.RequestStartPosition(number, number, number, boolean?) -> nilParameters
Spring.LoadSoundDef (function)
Loads a SoundDefs file, the format is the same as in gamedata/sounds.lua.
[source]
Spring.LoadSoundDef(string) -> booleanParameters
stringsoundfile
Returns
booleansuccess
Spring.PlaySoundFile (function)
[source]Spring.PlaySoundFile(string, number?, number?, number?, number?, number?, number?, number?, SoundChannel?) -> booleanParameters
stringsoundfilenumber?volume- (Default: 1.0)
number?posxnumber?posynumber?posznumber?speedxnumber?speedynumber?speedzSoundChannel?channel- (Default:
0|“general”)
Returns
booleanplaySound
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?) -> booleanParameters
Returns
booleansuccess
Spring.StopSoundStream (function)
Terminates any SoundStream currently running.
[source]
Spring.StopSoundStream() -> nilReturns
Spring.PauseSoundStream (function)
Pause any SoundStream currently running.
[source]
Spring.PauseSoundStream() -> nilReturns
Spring.SetSoundStreamVolume (function)
Set volume for SoundStream
[source]
Spring.SetSoundStreamVolume(number) -> nilParameters
numbervolume
Returns
Spring.SetSoundEffectParams (function)
[source]Spring.SetSoundEffectParams() -> nilSpring.AddWorldIcon (function)
[source]Spring.AddWorldIcon(integer, number, number, number) -> nilParameters
Returns
Spring.AddWorldText (function)
[source]Spring.AddWorldText(string, number, number, number) -> nilParameters
Returns
Spring.AddWorldUnit (function)
[source]Spring.AddWorldUnit(integer, number, number, number, integer, FacingInteger) -> nilParameters
Returns
Spring.DrawUnitCommands (function)
[source]Spring.DrawUnitCommands(integer) -> nilParameters
integerunitID
Spring.DrawUnitCommands (function overload 1)
[source]Spring.DrawUnitCommands(integer[], false?) -> nilParameters
integer[]unitIDs- Unit ids.
false?tableOrArray- Set to
trueif the unit IDs should be read from the keys ofunitIDs.
Spring.DrawUnitCommands (function overload 2)
[source]Spring.DrawUnitCommands(table<integer,any>, true) -> nilParameters
table<integer,any>unitIDs- Table with unit IDs as keys.
truetableOrArray- Set to
falseif the unit IDs should be read from the values ofunitIDs.
Returns
Spring.SetCameraTarget (function)
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?) -> nilParameters
Returns
Spring.SetCameraOffset (function)
[source]Spring.SetCameraOffset(number?, number?, number?, number?, number?, number?) -> nilParameters
number?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0) number?tiltX- (Default:
0) number?tiltY- (Default:
0) number?tiltZ- (Default:
0)
Returns
Spring.SetCameraState (function)
Set camera state.
[source]
Spring.SetCameraState(CameraState, number?, number?, number?) -> booleanParameters
CameraStatecameraState- The fields must be consistent with the name/mode and current/new camera mode.
number?transitionTime- (Default:
0) in nanoseconds number?transitionTimeFactornumber?transitionTimeExponent
Returns
booleansettruewhen applied without errors, otherwisefalse.
Spring.RunDollyCamera (function)
Runs Dolly Camera
[source]
Spring.RunDollyCamera(number) -> nilParameters
numberruntime- Runtime in milliseconds.
Returns
Spring.PauseDollyCamera (function)
Pause Dolly Camera
[source]
Spring.PauseDollyCamera(number) -> nilParameters
numberfraction- 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() -> nilReturns
Spring.SetDollyCameraPosition (function)
Sets Dolly Camera Position
[source]
Spring.SetDollyCameraPosition(number, number, number) -> nilParameters
Returns
Spring.SetDollyCameraCurve (function)
Sets Dolly Camera movement Curve
[source]
Spring.SetDollyCameraCurve(number, ControlPoint[], table) -> nilParameters
numberdegreeControlPoint[]cpoints- NURBS control point positions.
tableknots
Returns
Spring.SetDollyCameraMode (function)
Sets Dolly Camera movement mode
[source]
Spring.SetDollyCameraMode((1|2)) -> nilParameters
(1|2)mode1static position,2nurbs curve
Returns
Spring.SetDollyCameraRelativeMode (function)
Sets Dolly Camera movement curve to world relative or look target relative
[source]
Spring.SetDollyCameraRelativeMode(number) -> nilParameters
numberrelativeMode1world,2look target
Returns
Spring.SetDollyCameraLookCurve (function)
Sets Dolly Camera Look Curve
[source]
Spring.SetDollyCameraLookCurve(number, ControlPoint[], table) -> nilParameters
numberdegreeControlPoint[]cpoints- NURBS control point positions.
tableknots
Returns
Spring.SetDollyCameraLookPosition (function)
Sets Dolly Camera Look Position
[source]
Spring.SetDollyCameraLookPosition(number, number, number) -> nilParameters
Returns
Spring.SetDollyCameraLookUnit (function)
Sets target unit for Dolly Camera to look towards
[source]
Spring.SetDollyCameraLookUnit(integer) -> nilParameters
integerunitID- The unit to look at.
Returns
Spring.SelectUnit (function)
Selects a single unit
[source]
Spring.SelectUnit(integer?, boolean?) -> nilParameters
Returns
Spring.DeselectUnit (function)
[source]Spring.DeselectUnit(integer) -> nilParameters
integerunitID
Returns
Spring.DeselectUnitArray (function)
Deselects multiple units.
[source]
Spring.DeselectUnitArray(integer[]) -> nilParameters
integer[]unitIDs- Table with unit IDs as values.
Returns
Spring.DeselectUnitMap (function)
Deselects multiple units.
[source]
Spring.DeselectUnitMap(table<integer,any>) -> nilParameters
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?) -> nilParameters
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?) -> nilParameters
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) -> integerParameters
Returns
integerlightHandle
Spring.AddModelLight (function)
[source]
requires MaxDynamicMapLights > 0
Spring.AddModelLight(LightParams) -> numberParameters
Returns
numberlightHandle
Spring.UpdateMapLight (function)
[source]Spring.UpdateMapLight(number, LightParams) -> booleanParameters
Returns
booleansuccess
Spring.UpdateModelLight (function)
[source]Spring.UpdateModelLight(number, LightParams) -> booleanParameters
Returns
booleansuccess
Spring.AddLightTrackingTarget (function)
[source]Spring.AddLightTrackingTarget() -> nilSpring.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) -> booleanParameters
numberlightHandleintegerunitOrProjectileIDbooleanenableTrackingbooleanunitOrProjectile
Returns
booleansuccess
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) -> booleanParameters
numberlightHandleintegerunitOrProjectileIDbooleanenableTrackingbooleanunitOrProjectile
Returns
booleansuccess
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) -> nilParameters
integerstandardShaderIDintegerdeferredShaderID
Returns
Spring.SetMapSquareTexture (function)
[source]Spring.SetMapSquareTexture(number, number, string) -> booleanParameters
numbertexSqrXnumbertexSqrYstringluaTexName
Returns
booleansuccess
Spring.SetMapShadingTexture (function)
[source]Spring.SetMapShadingTexture(string, string) -> booleanParameters
Returns
booleansuccess
Spring.SetSkyBoxTexture (function)
[source]Spring.SetSkyBoxTexture(string) -> nilParameters
stringtexName
Returns
Spring.SetUnitNoDraw (function)
[source]Spring.SetUnitNoDraw(integer, boolean) -> nilParameters
Returns
Spring.SetUnitEngineDrawMask (function)
[source]Spring.SetUnitEngineDrawMask(integer, number) -> nilParameters
Returns
Spring.SetUnitAlwaysUpdateMatrix (function)
[source]Spring.SetUnitAlwaysUpdateMatrix(integer, boolean) -> nilParameters
integerunitIDbooleanalwaysUpdateMatrix
Returns
Spring.SetUnitNoMinimap (function)
[source]Spring.SetUnitNoMinimap(integer, boolean) -> nilParameters
integerunitIDbooleanunitNoMinimap
Returns
Spring.SetMiniMapRotation (function)
[source]Spring.SetMiniMapRotation(number) -> nilParameters
numberrotation- amount in radians
Returns
Spring.SetUnitNoGroup (function)
[source]Spring.SetUnitNoGroup(integer, boolean) -> nilParameters
integerunitIDbooleanunitNoGroup- Whether unit can be added to selection groups
Spring.SetUnitNoSelect (function)
[source]Spring.SetUnitNoSelect(integer, boolean) -> nilParameters
integerunitIDbooleanunitNoSelect- whether unit can be selected or not
Returns
Spring.SetUnitLeaveTracks (function)
[source]Spring.SetUnitLeaveTracks(integer, boolean) -> nilParameters
integerunitIDbooleanunitLeaveTracks- whether unit leaves tracks on movement
Returns
Spring.SetUnitSelectionVolumeData (function)
[source]Spring.SetUnitSelectionVolumeData(integer, integer, number, number, number, number, number, number, number, number, number) -> nilParameters
integerunitIDintegerfeatureIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumbervTypenumbertTypenumberAxis
Returns
Spring.SetFeatureNoDraw (function)
[source]Spring.SetFeatureNoDraw(integer, boolean) -> nilParameters
Returns
Spring.SetFeatureEngineDrawMask (function)
[source]Spring.SetFeatureEngineDrawMask(integer, number) -> nilParameters
integerfeatureIDnumberengineDrawMask
Returns
Spring.SetFeatureAlwaysUpdateMatrix (function)
[source]Spring.SetFeatureAlwaysUpdateMatrix(integer, number) -> nilParameters
integerfeatureIDnumberalwaysUpdateMat
Returns
Spring.SetFeatureFade (function)
Control whether a feature will fade or not when zoomed out.
[source]
Spring.SetFeatureFade(integer, boolean) -> nilParameters
Returns
Spring.SetFeatureSelectionVolumeData (function)
[source]Spring.SetFeatureSelectionVolumeData(integer, number, number, number, number, number, number, number, number, number) -> nilParameters
integerfeatureIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumbervTypenumbertTypenumberAxis
Returns
Spring.AddUnitIcon (function)
[source]Spring.AddUnitIcon(string, string, number?, number?, number?, number?, number?, number?, number?) -> booleanParameters
stringiconNamestringtexFilenumber?sizenumber?distnumber?radAdjustnumber?u0number?v0number?u1number?v1
Returns
booleanadded
Spring.FreeUnitIcon (function)
[source]Spring.FreeUnitIcon(string) -> boolean?Parameters
stringiconName
Returns
boolean?freed
Spring.UnitIconSetDraw (function)
[source]
Use Spring.SetUnitIconDraw instead.
Deprecated
Spring.UnitIconSetDraw(integer, boolean) -> nilParameters
Returns
Spring.SetUnitIconDraw (function)
[source]Spring.SetUnitIconDraw(integer, boolean) -> nilParameters
Returns
Spring.SetUnitDefIcon (function)
[source]Spring.SetUnitDefIcon(integer, string) -> nilParameters
Returns
Spring.SetUnitDefImage (function)
[source]Spring.SetUnitDefImage(integer, string) -> nilParameters
Returns
Spring.ExtractModArchiveFile (function)
[source]Spring.ExtractModArchiveFile(string) -> booleanParameters
stringmodfile
Returns
booleanextracted
Spring.CreateDir (function)
[source]Spring.CreateDir(string) -> boolean?Parameters
stringpath
Returns
boolean?dirCreated
Spring.SetActiveCommand (function)
[source]Spring.SetActiveCommand(string, string?) -> boolean?Parameters
stringactionstring?actionExtra
Returns
boolean?commandSet
Spring.SetActiveCommand (function overload 1)
[source]Spring.SetActiveCommand(number, number?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> boolean?Parameters
numbercmdIndexnumber?button- (Default:
1) boolean?leftClickboolean?rightClickboolean?altboolean?ctrlboolean?metaboolean?shift
Returns
boolean?commandSet
Spring.LoadCmdColorsConfig (function)
[source]Spring.LoadCmdColorsConfig(string) -> nilParameters
stringconfig
Returns
Spring.LoadCtrlPanelConfig (function)
[source]Spring.LoadCtrlPanelConfig(string) -> nilParameters
stringconfig
Returns
Spring.ForceLayoutUpdate (function)
[source]Spring.ForceLayoutUpdate() -> nilReturns
Spring.SetDrawSelectionInfo (function)
Disables the “Selected Units x” box in the GUI.
[source]
Spring.SetDrawSelectionInfo(boolean) -> nilParameters
booleanenable
Returns
Spring.SetBoxSelectionByEngine (function)
[source]Spring.SetBoxSelectionByEngine(boolean) -> nilParameters
booleanstate
Returns
Spring.SetTeamColor (function)
[source]Spring.SetTeamColor(integer, number, number, number) -> nilParameters
Returns
Spring.AssignMouseCursor (function)
Changes/creates the cursor of a single CursorCmd.
[source]
Spring.AssignMouseCursor(string, string, boolean?, boolean?) -> boolean?Parameters
stringcmdNamestringiconFileName- 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
stringoldFileNamestringnewFileNameboolean?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?) -> nilParameters
integercmdID(string|integer)?cmdReference- The name or ID of an icon for command. Pass
nilto clear draw data for command. rgba?color- (Default: white)
boolean?showArea- (Default:
false)
Returns
Spring.WarpMouse (function)
[source]Spring.WarpMouse(number, number) -> nilParameters
Returns
Spring.SetMouseCursor (function)
[source]Spring.SetMouseCursor(string, number?) -> nilParameters
stringcursorNamenumber?cursorScale- (Default:
1.0)
Returns
Spring.SetLosViewColors (function)
[source]Spring.SetLosViewColors(rgb, rgb, rgb, rgb, rgb) -> nilParameters
Returns
Spring.SetNanoProjectileParams (function)
[source]Spring.SetNanoProjectileParams(number?, number?, number?, number?, number?, number?) -> nilParameters
number?rotVal- (Default:
0) in degrees number?rotVel- (Default:
0) in degrees number?rotAcc- (Default:
0) in degrees number?rotValRng- (Default:
0) in degrees number?rotVelRng- (Default:
0) in degrees number?rotAccRng- (Default:
0) in degrees
Returns
Spring.SetConfigInt (function)
[source]Spring.SetConfigInt(string, integer, boolean?) -> nilParameters
stringnameintegervalueboolean?useOverlay- (Default:
false) Iftrue, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.SetConfigFloat (function)
[source]Spring.SetConfigFloat(string, number, boolean?) -> nilParameters
stringnamenumbervalueboolean?useOverlay- (Default:
false) Iftrue, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.SetConfigString (function)
[source]Spring.SetConfigString(string, string, boolean?) -> nilParameters
stringnamestringvalueboolean?useOverlay- (Default:
false) Iftrue, the value will only be set in memory, and not be restored for the next game.
Returns
Spring.Quit (function)
Closes the application
[source]
Spring.Quit() -> nilReturns
Spring.SetUnitGroup (function)
[source]Spring.SetUnitGroup(integer, integer) -> nilParameters
Returns
Spring.GiveOrder (function)
Give order to selected units.
[source]
Spring.GiveOrder((CMD|integer), CreateCommandParams, CreateCommandOptions?, integer?) -> booleanParameters
(CMD|integer)cmdID- The command ID.
CreateCommandParamsparams- 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?) -> booleanParameters
integerunitID(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?) -> booleanParameters
integerunitID(CMD|integer)cmdID- The command ID.
CreateCommandParams?params- Parameters for the given command.
CreateCommandOptions?optionsinteger?timeout- Absolute frame number. The command will be discarded after this frame. Only respected by mobile units.
Returns
booleanunitOrdered
Spring.GiveOrderToUnitMap (function)
Give order to multiple units, specified by table keys.
[source]
Spring.GiveOrderToUnitMap(table<integer,any>, (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> booleanParameters
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
booleanorderGiven
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?) -> integerParameters
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
integerunitsOrdered- The number of units ordered.
Spring.GiveOrderToUnitArray (function)
Give order to an array of units.
[source]
Spring.GiveOrderToUnitArray(integer[], (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> booleanParameters
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
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderToUnitArray (function overload 1)
[source]Spring.GiveOrderToUnitArray(integer[], (CMD|integer), CreateCommandParams?, CreateCommandOptions?, integer?) -> integerParameters
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
integerunitsOrdered- The number of units ordered.
Spring.GiveOrderArrayToUnit (function)
[source]Spring.GiveOrderArrayToUnit(integer, CreateCommand[]) -> booleanParameters
integerunitID- Unit ID.
CreateCommand[]commands
Returns
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderArrayToUnit (function overload 1)
[source]Spring.GiveOrderArrayToUnit(integer, CreateCommand[]) -> booleanParameters
integerunitIDCreateCommand[]commands
Returns
booleanordersGiven
Spring.GiveOrderArrayToUnitMap (function)
[source]Spring.GiveOrderArrayToUnitMap(table<integer,any>, CreateCommand[]) -> booleanParameters
table<integer,any>unitMap- A table with unit IDs as keys.
CreateCommand[]commands
Returns
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderArrayToUnitMap (function overload 1)
[source]Spring.GiveOrderArrayToUnitMap(table<integer,any>, CreateCommand[]) -> integerParameters
table<integer,any>unitMap- A table with unit IDs as keys.
CreateCommand[]commands
Returns
integerunitsOrdered- The number of units ordered.
Spring.GiveOrderArrayToUnitArray (function)
[source]Spring.GiveOrderArrayToUnitArray(integer[], CreateCommand[], boolean?) -> booleanParameters
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
booleanordersGiventrueif any orders were sent, otherwisefalse.
Spring.GiveOrderArrayToUnitArray (function overload 1)
[source]Spring.GiveOrderArrayToUnitArray(integer[], CreateCommand[], boolean?) -> integerParameters
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
integerunitsOrdered- The number of units ordered.
Spring.SetBuildSpacing (function)
[source]Spring.SetBuildSpacing(number) -> nilParameters
numberspacing
Returns
Spring.SetBuildFacing (function)
[source]Spring.SetBuildFacing(FacingInteger) -> nilParameters
Returns
Spring.SendLuaUIMsg (function)
[source]Spring.SendLuaUIMsg(string, string) -> nilParameters
Returns
Spring.SendLuaGaiaMsg (function)
[source]Spring.SendLuaGaiaMsg(string) -> nilParameters
stringmessage
Returns
Spring.SendLuaRulesMsg (function)
[source]Spring.SendLuaRulesMsg(string) -> nilParameters
stringmessage
Returns
Spring.SendLuaMenuMsg (function)
[source]Spring.SendLuaMenuMsg(string) -> nilParameters
stringmsg
Spring.SetShareLevel (function)
[source]Spring.SetShareLevel(string, number) -> nilParameters
stringresource- metal | energy
numbershareLevel
Returns
Spring.ShareResources (function)
[source]Spring.ShareResources(integer, string) -> nilParameters
Returns
Spring.ShareResources (function overload 1)
[source]Spring.ShareResources(integer, string, number) -> nilParameters
Returns
Spring.SetLastMessagePosition (function)
[source]Spring.SetLastMessagePosition(number, number, number) -> nilParameters
Returns
Spring.MarkerAddPoint (function)
[source]Spring.MarkerAddPoint(number, number, number, string?, boolean?) -> nilParameters
Returns
Spring.MarkerAddLine (function)
[source]Spring.MarkerAddLine(number, number, number, number, number, number, boolean?, number?) -> nilParameters
Returns
Spring.MarkerErasePosition (function)
[source]
Issue an erase command for markers on the map.
Spring.MarkerErasePosition(number, number, number, nil, boolean?, number?, boolean?) -> nilParameters
numberxnumberynumberznilunused- 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 whenlocalOnlyand current player is spectating. Allows spectators to erase players markers locally
Returns
Spring.SetAtmosphere (function)
Set atmosphere parameters
[source]
Spring.SetAtmosphere(AtmosphereParams) -> nilParameters
Spring.SetSunDirection (function)
[source]Spring.SetSunDirection(number, number, number, number?) -> nilParameters
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 }) -> nilParameters
Spring.SetMapRenderingParams (function)
Allows to change map rendering params at runtime.
[source]
Spring.SetMapRenderingParams(MapRenderingParams) -> nilParameters
Returns
Spring.ForceTesselationUpdate (function)
[source]Spring.ForceTesselationUpdate(boolean?, boolean?) -> booleanParameters
Returns
booleanupdated
Spring.SendSkirmishAIMessage (function)
[source]Spring.SendSkirmishAIMessage(number, string) -> boolean?Parameters
Returns
boolean?ai_processed
Spring.SetLogSectionFilterLevel (function)
[source]Spring.SetLogSectionFilterLevel(string, (string|number)?) -> nilParameters
stringsectionName(string|number)?logLevel
Returns
Spring.GarbageCollectCtrl (function)
[source]Spring.GarbageCollectCtrl(integer?, integer?, integer?, integer?, number?, number?, number?, number?) -> nilParameters
integer?itersPerBatchinteger?numStepsPerIterinteger?minStepsPerIterinteger?maxStepsPerIternumber?minLoopRunTimenumber?maxLoopRunTimenumber?baseRunTimeMultnumber?baseMemLoadMult
Returns
Spring.SetAutoShowMetal (function)
[source]Spring.SetAutoShowMetal(boolean) -> nilParameters
booleanautoShow
Returns
Spring.SetDrawSky (function)
[source]Spring.SetDrawSky(boolean) -> nilParameters
booleandrawSky
Returns
Spring.SetDrawWater (function)
[source]Spring.SetDrawWater(boolean) -> nilParameters
booleandrawWater
Returns
Spring.SetDrawGround (function)
[source]Spring.SetDrawGround(boolean) -> nilParameters
booleandrawGround
Returns
Spring.SetDrawGroundDeferred (function)
[source]Spring.SetDrawGroundDeferred(boolean, boolean?) -> nilParameters
booleandrawGroundDeferredboolean?drawGroundForward- allows disabling of the forward pass
Returns
Spring.SetDrawModelsDeferred (function)
[source]Spring.SetDrawModelsDeferred(boolean, boolean, boolean?, boolean?) -> nilParameters
booleandrawUnitsDeferredbooleandrawFeaturesDeferredboolean?drawUnitsForward- allows disabling of the respective forward passes
boolean?drawFeaturesForward- allows disabling of the respective forward passes
Returns
Spring.SetVideoCapturingMode (function)
This doesn’t actually record the game in any way, it just regulates the framerate and interpolations.
[source]
Spring.SetVideoCapturingMode(boolean) -> nilParameters
booleanallowCaptureMode
Returns
Spring.SetVideoCapturingTimeOffset (function)
[source]Spring.SetVideoCapturingTimeOffset(boolean) -> nilParameters
booleantimeOffset
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) -> nilParameters
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) -> nilParameters
integerunitDefID
Returns
Spring.PreloadFeatureDefModel (function)
[source]Spring.PreloadFeatureDefModel(integer) -> nilParameters
integerfeatureDefID
Returns
Spring.PreloadSoundItem (function)
[source]Spring.PreloadSoundItem(string) -> nilParameters
stringname
Returns
Spring.LoadModelTextures (function)
[source]Spring.LoadModelTextures(string) -> boolean?Parameters
stringmodelName
Returns
boolean?success
Spring.CreateGroundDecal (function)
[source]Spring.CreateGroundDecal() -> number?Returns
number?decalID
Spring.DestroyGroundDecal (function)
[source]Spring.DestroyGroundDecal(integer) -> booleanParameters
integerdecalID
Returns
booleandelSuccess
Spring.SetGroundDecalPosAndDims (function)
[source]Spring.SetGroundDecalPosAndDims(integer, number?, number?, number?, number?, number?) -> booleanParameters
integerdecalIDnumber?midPosX- (Default: currMidPosX)
number?midPosZ- (Default: currMidPosZ)
number?sizeX- (Default: currSizeX)
number?sizeZ- (Default: currSizeZ)
number?projCubeHeight- (Default: calculateProjCubeHeight)
Returns
booleandecalSet
Spring.SetGroundDecalQuadPosAndHeight (function)
[source]
Use for non-rectangular decals
Spring.SetGroundDecalQuadPosAndHeight(integer, xz?, xz?, xz?, xz?, number?) -> booleanParameters
integerdecalIDxz?posTL- (Default: currPosTL)
xz?posTR- (Default: currPosTR)
xz?posBR- (Default: currPosBR)
xz?posBL- (Default: currPosBL)
number?projCubeHeight- (Default: calculateProjCubeHeight)
Returns
booleandecalSet
Spring.SetGroundDecalRotation (function)
[source]Spring.SetGroundDecalRotation(integer, number?) -> booleanParameters
Returns
booleandecalSet
Spring.SetGroundDecalTexture (function)
[source]Spring.SetGroundDecalTexture(integer, string, boolean?) -> boolean?Parameters
integerdecalIDstringtextureName- 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.SetGroundDecalAlpha (function)
[source]Spring.SetGroundDecalAlpha(integer, number?, number?) -> booleanParameters
integerdecalIDnumber?alpha- (Default: currAlpha) Between 0 and 1
number?alphaFalloff- (Default: currAlphaFalloff) Between 0 and 1, per second
Returns
booleandecalSet
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?) -> booleanParameters
Returns
booleandecalSet
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?) -> booleanParameters
integerdecalIDnumber?tintColR- (Default: curTintColR)
number?tintColG- (Default: curTintColG)
number?tintColB- (Default: curTintColB)
number?tintColA- (Default: curTintColA)
Returns
booleandecalSet
Spring.SetGroundDecalMisc (function)
[source]
Sets varios secondary parameters of a decal
Spring.SetGroundDecalMisc(integer, number?, number?, number?, number?, number?) -> booleanParameters
integerdecalIDnumber?dotElimExp- (Default: curValue) pow(max(dot(decalProjVector, SurfaceNormal), 0.0), dotElimExp), used to reduce decal artifacts on surfaces non-collinear with the projection vector
number?refHeight- (Default: curValue)
number?minHeight- (Default: curValue)
number?maxHeight- (Default: curValue)
number?forceHeightMode- (Default: curValue) in case forceHeightMode==1.0 ==> force relative height: midPoint.y = refHeight + clamp(midPoint.y - refHeight, minHeight); forceHeightMode==2.0 ==> force absolute height: midPoint.y = midPoint.y, clamp(midPoint.y, minHeight, maxHeight); other forceHeightMode values do not enforce the height of the center position
Returns
booleandecalSet
Spring.SetGroundDecalCreationFrame (function)
[source]
Use separate min and max for “gradient” style decals such as tank tracks
Spring.SetGroundDecalCreationFrame(integer, number?, number?) -> booleanParameters
integerdecalIDnumber?creationFrameMin- (Default: currCreationFrameMin)
number?creationFrameMax- (Default: currCreationFrameMax)
Returns
booleandecalSet
Spring.SDLSetTextInputRect (function)
[source]Spring.SDLSetTextInputRect(number, number, number, number) -> nilParameters
Returns
Spring.SDLStartTextInput (function)
[source]Spring.SDLStartTextInput() -> nilReturns
Spring.SDLStopTextInput (function)
[source]Spring.SDLStopTextInput() -> nilReturns
Spring.SetWindowGeometry (function)
[source]Spring.SetWindowGeometry(number, number, number, number, number, boolean, boolean) -> nilParameters
numberdisplayIndexnumberwinRelPosXnumberwinRelPosYnumberwinSizeXnumberwinSizeYbooleanfullScreenbooleanborderless
Returns
Spring.SetWindowMinimized (function)
[source]Spring.SetWindowMinimized() -> booleanReturns
booleanminimized
Spring.SetWindowMaximized (function)
[source]Spring.SetWindowMaximized() -> booleanReturns
booleanmaximized
Spring.Reload (function)
[source]Spring.Reload(string) -> nilParameters
stringstartScript- 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) -> nilParameters
stringcommandline_args- commandline arguments passed to spring executable.
stringstartScript
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) -> nilParameters
stringcommandline_args- commandline arguments passed to spring executable.
stringstartScript- the CONTENT of the script.txt spring should use to start (if empty, no start-script is added, you can still point spring to your custom script.txt when you add the file-path to commandline_args.
Returns
Spring.SetWMIcon (function)
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) -> nilParameters
stringiconFileName
Returns
Spring.SetWMCaption (function)
Set the window title for the process
[source]
Spring.SetWMCaption(string, string?) -> nilParameters
stringtitle- (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?) -> nilParameters
string?threadName- (Default: main)
Returns
Spring.SetClipboard (function)
[source]Spring.SetClipboard(string) -> nilParameters
stringtext
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() -> booleanReturns
booleanwhen- true caller should continue calling Spring.Yield during the widgets/gadgets load, when false it shouldn’t call it any longer.
Spring.GetMetalMapSize (function)
[source]Spring.GetMetalMapSize() -> integer, integerReturns
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
Spring.GetMetalAmount (function)
Returns the amount of metal on a single square.
[source]
Spring.GetMetalAmount(integer, integer) -> numberParameters
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
Returns
numberamount
Spring.SetMetalAmount (function)
Sets the amount of metal on a single square.
[source]
Spring.SetMetalAmount(integer, integer, number) -> nilParameters
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
numbermetalAmount- must be between 0 and 255*maxMetal (with maxMetal from the .smd or mapinfo.lua).
Returns
Spring.GetMetalExtraction (function)
[source]Spring.GetMetalExtraction(integer, integer) -> numberParameters
integerx- X coordinate in worldspace / Game.metalMapSquareSize.
integerz- Z coordinate in worldspace / Game.metalMapSquareSize.
Returns
numberextraction
Spring.SetAlly (function)
Changes the value of the (one-sided) alliance between: firstAllyTeamID -> secondAllyTeamID.
[source]
Spring.SetAlly(integer, integer, boolean) -> nilParameters
integerfirstAllyTeamIDintegersecondAllyTeamIDbooleanally
Returns
Spring.SetAllyTeamStartBox (function)
Changes the start box position of an allyTeam.
[source]
Spring.SetAllyTeamStartBox(integer, number, number, number, number) -> nilParameters
integerallyTeamIDnumberxMin- left start box boundary (elmos)
numberzMin- top start box boundary (elmos)
numberxMax- right start box boundary (elmos)
numberzMax- bottom start box boundary (elmos)
Returns
Spring.AssignPlayerToTeam (function)
Assigns a player to a team.
[source]
Spring.AssignPlayerToTeam(integer, integer) -> nilParameters
Returns
Spring.SetTeamStartPosition (function)
Set the starting position of a team.
If the position argument is outside the team’s startbox, the position is clamped.
[source]
Spring.SetTeamStartPosition(integer, number, number, number) -> booleanParameters
integerteamIDnumberx- left position (elmos)
numbery- vertical position (elmos)
numberz- top position (elmos)
Returns
Spring.SetPlayerReadyState (function)
Set the ready state of a player.
Use to mark a player (un)ready in the pregame phase.
[source]
Spring.SetPlayerReadyState(integer, boolean) -> booleanParameters
Returns
Spring.SetGlobalLos (function)
Changes access to global line of sight for a team and its allies.
[source]
Spring.SetGlobalLos(integer, boolean) -> nilParameters
integerallyTeamIDbooleangloballos
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) -> nilParameters
integerteamID
Returns
Spring.GameOver (function)
Declare game over.
[source]
Spring.GameOver(integer[]) -> integerParameters
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
integerNumber- of accepted (valid) ally teams.
Spring.SetTidal (function)
Set tidal strength
[source]
Spring.SetTidal(number) -> nilParameters
numberstrength
Returns
Spring.SetWind (function)
Set wind strength
[source]
Spring.SetWind(number, number) -> nilParameters
numberminStrengthnumbermaxStrength
Returns
Spring.AddTeamResource (function)
Adds metal or energy resources to the specified team. Counts as production in post-game graph statistics.
[source]
Spring.AddTeamResource(integer, ResourceName, number) -> nilParameters
integerteamIDResourceNametypenumberamount
Returns
Spring.UseTeamResource (function)
Consumes metal or energy resources of the specified team. Counts as usage in post-game graph statistics.
[source]
Spring.UseTeamResource(integer, ResourceName, number) -> booleanParameters
integerteamIDResourceNametype- Resource type.
numberamount- Amount of resource to use.
Returns
booleanhadEnough
Spring.UseTeamResource (function overload 1)
Consumes metal and/or energy resources of the specified team. Counts as usage in post-game graph statistics.
[source]
Spring.UseTeamResource(integer, ResourceUsage) -> booleanParameters
integerteamIDResourceUsageamount
Returns
booleanhadEnough
Spring.SetTeamResource (function)
[source]Spring.SetTeamResource(integer, (ResourceName|StorageName), number) -> nilParameters
integerteamID(ResourceName|StorageName)resourcenumberamount
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) -> nilParameters
integerteamIDResourceNametypenumberamount
Returns
Spring.ShareTeamResource (function)
Transfers resources between two teams.
[source]
Spring.ShareTeamResource(integer, integer, ResourceName, number) -> nilParameters
integerteamID_srcintegerteamID_recvResourceNametypenumberamount
Returns
Spring.SetGameRulesParam (function)
[source]Spring.SetGameRulesParam(string, (number|string)?, losAccess?) -> nilParameters
stringparamName(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?) -> nilParameters
integerteamIDstringparamName(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?) -> nilParameters
integerplayerIDstringparamName(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?) -> nilParameters
integerunitIDstringparamName(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?) -> nilParameters
integerfeatureIDstringparamName(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
integerunitID(integer|string)?funcName- Function ID or name.
integerretArgs- 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.
numberposXnumberposYnumberposZFacingfacingintegerteamIDboolean?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
nilif the unit could not be created.
Spring.DestroyUnit (function)
[source]Spring.DestroyUnit(integer, boolean?, boolean?, integer?, boolean?) -> nilParameters
integerunitIDboolean?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?, boolean?) -> booleanParameters
integerunitIDintegernewTeamIDboolean?given- (Default:
true) if false, the unit is captured. boolean?adjustUnitLimit- (Default:
false) if true, also transfer the limit slot
Returns
booleansuccessfulTransfer
Spring.TransferTeamMaxUnits (function)
Transfer capacity of units from one team to another
[source]
There are some conditions that must be satisfied for the operation to be successful:
transferAmntmust be lower or equal than the origin team current maxunits (can’t transfer limit team does not have available)transferAmntmust be lower than origin team maxunits - currentunitscount (can’t transfer limit if origin team would be already over the limit after transfer)
Spring.TransferTeamMaxUnits(number, number, number) -> booleanParameters
numberfromTeamIDnumbernewTeamIDnumbertransferAmnt
Returns
booleansuccessfulTransfer- Whether the max unit limit was successfully transferred.
Spring.SetUnitCosts (function)
[source]Spring.SetUnitCosts(integer, table<number,number>) -> nilParameters
integerunitIDtable<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) -> nilParameters
Returns
Spring.SetUnitResourcing (function overload 1)
[source]Spring.SetUnitResourcing(integer, table<string,number>) -> nilParameters
integerunitIDtable<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) -> nilParameters
Spring.SetUnitStorage (function overload 1)
[source]Spring.SetUnitStorage(integer, ResourceUsage) -> nilParameters
integerunitIDResourceUsageres- keys are: “[m|e]” metal | energy. Values are amounts
Spring.SetUnitTooltip (function)
[source]Spring.SetUnitTooltip(integer, string) -> nilParameters
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)) -> nilParameters
integerunitID(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) -> nilParameters
Returns
Spring.SetUnitStockpile (function)
[source]Spring.SetUnitStockpile(integer, number?, number?) -> nilParameters
integerunitIDnumber?stockpilenumber?buildPercent
Returns
Spring.SetUnitUseWeapons (function)
[source]Spring.SetUnitUseWeapons(integer, number?, number?) -> nilParameters
integerunitIDnumber?forceUseWeaponsnumber?allowUseWeapons
Returns
Spring.SetUnitWeaponState (function)
[source]Spring.SetUnitWeaponState(integer, number, WeaponState) -> nilParameters
integerunitIDnumberweaponNumWeaponStatestates
Returns
Spring.SetUnitWeaponState (function overload 1)
[source]Spring.SetUnitWeaponState(integer, number, string, number) -> nilParameters
Returns
Spring.SetUnitWeaponDamages (function)
[source]Spring.SetUnitWeaponDamages(integer, (number|"selfDestruct"|"explode"), WeaponDamages) -> nilParameters
integerunitID(number|"selfDestruct"|"explode")weaponNumWeaponDamagesdamages
Returns
Spring.SetUnitWeaponDamages (function overload 1)
[source]Spring.SetUnitWeaponDamages(integer, (number|"selfDestruct"|"explode"), string, number) -> nilParameters
Returns
Spring.SetUnitMaxRange (function)
[source]Spring.SetUnitMaxRange(integer, number) -> nilParameters
Returns
Spring.SetUnitExperience (function)
[source]Spring.SetUnitExperience(integer, number) -> nilParameters
integerunitIDnumberexperience
Returns
Spring.AddUnitExperience (function)
[source]Spring.AddUnitExperience(integer, number) -> nilParameters
integerunitIDnumberdeltaExperience- Can be negative to subtract, but the unit will never have negative total afterwards
Returns
Spring.SetUnitArmored (function)
[source]Spring.SetUnitArmored(integer, boolean?, number?) -> nilParameters
integerunitIDboolean?armorednumber?armorMultiple
Returns
Spring.SetUnitLosMask (function)
Set visibility status mask for a unit and team
Use this to allow or disallow a unit from having its visibility status against a certain team updated by the engine.
[source]
Spring.SetUnitLosMask(integer, number, (LosTable|LosMask|integer)) -> nilParameters
integerunitIDnumberallyTeam(LosTable|LosMask|integer)losTypes- A bitmask of LosMask bits or a table. True bits disable engine updates to visibility.
Spring.SetUnitLosState (function)
Set current visibility status for a unit and team
Note this state will not be persisted if the visibility state is not masked.
Use it to change visibility state, once you set the unit to not receive engine visibility updates.
A few notes on certain bits:
contradar: True when the unit entered los at some point, remains set until radar is lost. Useful for tracking the unit type in radar, if you lost los you still know what unit type that radar dot refers to.prevlos: True when the unit has entered los at least once, useful for tracking building locations (controls whether a ghost appears or not in the location)
[source]
Spring.SetUnitLosState(integer, number, (LosTable|LosMask|integer)) -> nilParameters
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)) -> nilParameters
Returns
Spring.SetUnitStealth (function)
[source]Spring.SetUnitStealth(integer, boolean) -> nilParameters
Returns
Spring.SetUnitSonarStealth (function)
[source]Spring.SetUnitSonarStealth(integer, boolean) -> nilParameters
integerunitIDbooleansonarStealth
Returns
Spring.SetUnitSeismicSignature (function)
[source]Spring.SetUnitSeismicSignature(integer, number) -> nilParameters
integerunitIDnumberseismicSignature
Returns
Spring.SetUnitLeavesGhost (function)
Set whether unit leaves static radar ghosts.
[source]
Spring.SetUnitLeavesGhost(boolean, boolean?) -> nilParameters
booleanleavesGhostboolean?leaveDeadGhost- (Default:
false) leave a dead ghost behind if disabling and the unit had a live static ghost.
Spring.SetUnitAlwaysVisible (function)
[source]Spring.SetUnitAlwaysVisible(integer, boolean) -> nilParameters
integerunitIDbooleanalwaysVisible
Returns
Spring.SetUnitUseAirLos (function)
[source]Spring.SetUnitUseAirLos(integer, boolean) -> nilParameters
Returns
Spring.SetUnitMetalExtraction (function)
[source]Spring.SetUnitMetalExtraction(integer, number, number?) -> nilParameters
integerunitIDnumberdepth- 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) -> nilParameters
Returns
Spring.SetUnitBuildParams (function)
[source]Spring.SetUnitBuildParams(integer, string, (number|boolean)) -> nilParameters
integerunitIDstringparamName- one of
buildRange|buildDistance|buildRange3D (number|boolean)value- boolean when
paramNameisbuildRange3D, otherwise number.
Returns
Spring.SetUnitBuildSpeed (function)
[source]Spring.SetUnitBuildSpeed(integer, number, number?, number?, number?, number?) -> nilParameters
integerbuilderIDnumberbuildSpeednumber?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) -> nilParameters
Returns
Spring.SetUnitBlocking (function)
[source]Spring.SetUnitBlocking(integer, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> booleanParameters
integerunitIDboolean?isBlocking- If
trueadd this unit to theGroundBlockingMap, but only if it collides with solid objects (or is being set to collide with theisSolidObjectCollidableargument). Iffalse, remove this unit from theGroundBlockingMap. No change ifnil. boolean?isSolidObjectCollidable- Enable or disable collision with solid objects, or no change if
nil. boolean?isProjectileCollidable- Enable or disable collision with projectiles, or no change if
nil. boolean?isRaySegmentCollidable- Enable or disable collision with ray segments, or no change if
nil. boolean?crushable- Enable or disable crushable, or no change if
nil. boolean?blockEnemyPushing- Enable or disable blocking enemy pushing, or no change if
nil. boolean?blockHeightChanges- Enable or disable blocking height changes, or no change if
nil.
Returns
booleanisBlocking
Spring.SetUnitCrashing (function)
[source]Spring.SetUnitCrashing(integer, boolean) -> booleanParameters
Returns
booleansuccess
Spring.SetUnitShieldState (function)
[source]Spring.SetUnitShieldState(integer, integer?, boolean?, number?) -> nilParameters
Returns
Spring.SetUnitShieldRechargeDelay (function)
[source]Spring.SetUnitShieldRechargeDelay(integer, integer?, number?) -> nilParameters
integerunitIDinteger?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?) -> nilParameters
integerunitIDstringtype- “dir”|“minDamage”|“maxDamage”|“moveFactor”|“mode”
numberarg1- x|minDamage|maxDamage|moveFactor|mode
number?y- only when type is “dir”
number?z- only when type is “dir”
Returns
Spring.SetUnitPhysicalStateBit (function)
[source]Spring.SetUnitPhysicalStateBit(integer, ) -> nilParameters
Returns
Spring.GetUnitPhysicalState (function)
[source]Spring.GetUnitPhysicalState(integer) -> numberParameters
integerunitID
Returns
numberUnit- ’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?) -> booleanParameters
integerunitIDinteger?enemyUnitID- when nil drops the units current target.
boolean?dgun- (Default:
false) boolean?userTarget- (Default:
false) number?weaponNum- (Default:
-1)
Returns
booleansuccess
Spring.SetUnitTarget (function overload 1)
[source]Spring.SetUnitTarget(integer, number?, number?, number?, boolean?, boolean?, number?) -> booleanParameters
integerunitIDnumber?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
booleansuccess
Spring.SetUnitMidAndAimPos (function)
[source]Spring.SetUnitMidAndAimPos(integer, number, number, number, number, number, number, boolean?) -> booleanParameters
integerunitIDnumbermpX- new middle positionX of unit
numbermpY- new middle positionY of unit
numbermpZ- new middle positionZ of unit
numberapX- new positionX that enemies aim at on this unit
numberapY- new positionY that enemies aim at on this unit
numberapZ- new positionZ that enemies aim at on this unit
boolean?relative- (Default:
false) are the new coordinates relative to world (false) or unit (true) coordinates? Also, note that apy is inverted!
Returns
booleansuccess
Spring.SetUnitRadiusAndHeight (function)
[source]Spring.SetUnitRadiusAndHeight(integer, number, number) -> booleanParameters
Returns
booleansuccess
Spring.SetUnitBuildeeRadius (function)
[source]
Sets the unit’s radius for when targeted by build, repair, reclaim-type commands.
Spring.SetUnitBuildeeRadius(integer, number) -> nilParameters
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) -> nilParameters
integerunitIDnumberAlteredPiecenumberParentPiece
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[]) -> nilParameters
Returns
Spring.SetUnitCollisionVolumeData (function)
[source]Spring.SetUnitCollisionVolumeData(integer, number, number, number, number, number, number, number, number, number) -> nilParameters
integerunitIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumbervTypenumbertTypenumberAxis
Returns
nilenum- 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?) -> nilParameters
integerunitIDnumberpieceIndexbooleanenablenumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumber?volumeTypenumber?primaryAxis
Returns
Spring.SetUnitPieceVisible (function)
[source]Spring.SetUnitPieceVisible(integer, number, boolean) -> nilParameters
integerunitIDnumberpieceIndexbooleanvisible
Returns
Spring.SetUnitSensorRadius (function)
[source]Spring.SetUnitSensorRadius(integer, ("los"|"airLos"|"radar"|"sonar"|"seismic"|"radarJammer"...), number) -> number?Parameters
Returns
number?New- radius, or
nilif 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?) -> nilParameters
integerunitIDnumberposErrorVectorXnumberposErrorVectorYnumberposErrorVectorZnumberposErrorDeltaXnumberposErrorDeltaYnumberposErrorDeltaZnumber?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?) -> nilParameters
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?) -> nilParameters
integerunitIDnumbergoalXnumbergoalYnumbergoalZnumber?goalRadius
Returns
Spring.ClearUnitGoal (function)
[source]Spring.ClearUnitGoal(integer) -> nilParameters
integerunitID
Returns
Spring.SetUnitPhysics (function)
[source]Spring.SetUnitPhysics(integer, number, number, number, number, number, number, number, number, number, number, number, number) -> nilParameters
integerunitIDnumberposXnumberposYnumberposZnumbervelXnumbervelYnumbervelZnumberrotXnumberrotYnumberrotZnumberdragXnumberdragYnumberdragZ
Returns
Spring.SetUnitMass (function)
[source]Spring.SetUnitMass(integer, number) -> nilParameters
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?) -> nilParameters
integerunitIDnumberxnumberzboolean?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) -> nilParameters
Returns
Spring.SetUnitRotation (function)
[source]
Note: PYR order
Spring.SetUnitRotation(integer, number, number, number) -> nilParameters
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) -> nilParameters
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) -> nilParameters
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) -> nilParameters
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) -> nilParameters
Spring.SetFactoryBuggerOff (function)
[source]Spring.SetFactoryBuggerOff(integer, boolean?, number?, number?, Heading?, boolean?, boolean?) -> number?Parameters
integerunitIDboolean?buggerOffnumber?offsetnumber?radiusHeading?relHeadingboolean?sphericalboolean?forced
Returns
number?buggerOff
Spring.BuggerOff (function)
[source]Spring.BuggerOff(number, number, number?, number, integer, boolean?, boolean?, integer?, number[]?) -> nilParameters
numberxnumberynumber?z- uses ground height when unspecified
numberradiusintegerteamIDboolean?spherical- (Default:
true) boolean?forced- (Default:
true) integer?excludeUnitIDnumber[]?excludeUnitDefIDs
Returns
Spring.AddFeatureDamage (function)
Apply damage to feature
[source]
Will trigger FeaturePreDamaged and FeatureDamaged callins.
Won’t do anything if paralyze is not zero, the feature is already marked for deletion, or in void.
If health goes below 0 and featureDef is destructable the feature will be deleted and
a wreck created.
See SyncedCallins:FeatureDamaged
Spring.AddFeatureDamage(integer, number, number?, integer?, integer?, number?, number?, number?) -> nilParameters
integerfeatureIDnumberdamagenumber?paralyze- (Default:
0) equals to the paralyzetime in the WeaponDef. integer?attackerID- (Default:
-1) integer?weaponID- (Default:
-1) number?impulseXnumber?impulseYnumber?impulseZ
Spring.AddUnitDamage (function)
[source]Spring.AddUnitDamage(integer, number, number?, integer?, integer?, number?, number?, number?) -> nilParameters
integerunitIDnumberdamagenumber?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?) -> nilParameters
Returns
Spring.AddUnitSeismicPing (function)
[source]Spring.AddUnitSeismicPing(integer, number) -> nilParameters
Returns
Spring.AddUnitResource (function)
[source]Spring.AddUnitResource(integer, string, number) -> nilParameters
Returns
Spring.UseUnitResource (function)
[source]Spring.UseUnitResource(integer, ResourceName, number) -> boolean?Parameters
integerunitIDResourceNameresourcenumberamount
Returns
boolean?okay
Spring.UseUnitResource (function overload 1)
[source]Spring.UseUnitResource(integer, ResourceUsage) -> boolean?Parameters
integerunitIDResourceUsageresources
Returns
boolean?okay
Spring.AddObjectDecal (function)
[source]Spring.AddObjectDecal(integer) -> nilParameters
integerunitID
Returns
Spring.RemoveObjectDecal (function)
[source]Spring.RemoveObjectDecal(integer) -> nilParameters
integerunitID
Returns
Spring.AddGrass (function)
[source]Spring.AddGrass(number, number) -> nilParameters
Returns
Spring.RemoveGrass (function)
[source]Spring.RemoveGrass(number, number) -> nilParameters
Returns
Spring.CreateFeature (function)
[source]Spring.CreateFeature((string|integer), number, number, number, Heading?, integer?, integer?) -> integer?Parameters
(string|integer)featureDef- name or id
numberxnumberynumberzHeading?headinginteger?teamIDinteger?featureID
Returns
integer?featureID- returns nil if creation was unsuccessful
Spring.DestroyFeature (function)
[source]Spring.DestroyFeature(integer) -> nilParameters
integerfeatureID
Returns
Spring.TransferFeature (function)
Feature Control
[source]
Spring.TransferFeature(integer, integer) -> nilParameters
Returns
Spring.SetFeatureAlwaysVisible (function)
[source]Spring.SetFeatureAlwaysVisible(integer, boolean) -> nilParameters
Returns
Spring.SetFeatureUseAirLos (function)
[source]Spring.SetFeatureUseAirLos(integer, boolean) -> nilParameters
Returns
Spring.SetFeatureHealth (function)
[source]Spring.SetFeatureHealth(integer, number, boolean?) -> nilParameters
integerfeatureIDnumberhealthboolean?checkDestruction- (Default:
false) Whether to destroy feature if feature goes below 0 health.
Returns
Spring.SetFeatureMaxHealth (function)
[source]Spring.SetFeatureMaxHealth(integer, number) -> nilParameters
Returns
Spring.SetFeatureReclaim (function)
[source]Spring.SetFeatureReclaim(integer, number) -> nilParameters
integerfeatureIDnumberreclaimLeft
Returns
Spring.SetFeatureResources (function)
[source]Spring.SetFeatureResources(integer, number, number, number?, number?, number?, number?) -> nilParameters
integerfeatureIDnumbermetalnumberenergynumber?reclaimTimenumber?reclaimLeftnumber?featureDefMetalnumber?featureDefEnergy
Returns
Spring.SetFeatureResurrect (function)
[source]Spring.SetFeatureResurrect(integer, (string|integer), Facing?, number?) -> nilParameters
integerfeatureID(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?) -> nilParameters
integerfeatureIDtrueenabled- Enable feature movement.
number?initialVelocityX- Initial velocity on X axis, or
nilfor no change. number?initialVelocityY- Initial velocity on Y axis, or
nilfor no change. number?initialVelocityZ- Initial velocity on Z axis, or
nilfor no change. number?accelerationX- Acceleration per frame on X axis, or
nilfor no change. number?accelerationY- Acceleration per frame on Y axis, or
nilfor no change. number?accelerationZ- Acceleration per frame on Z axis, or
nilfor no change.
Spring.SetFeatureMoveCtrl (function overload 1)
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?) -> nilParameters
integerfeatureIDfalseenabled- Disable feature movement.
number?velocityMaskX- Lock velocity change in X dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?velocityMaskY- Lock velocity change in Y dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?velocityMaskZ- Lock velocity change in Z dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?impulseMaskX- Lock impulse in X dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?impulseMaskY- Lock impulse in Y dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?impulseMaskZ- Lock impulse in Z dimension when not using MoveCtrl.
0to lock, non-zero to allow, ornilto for no change. number?movementMaskX- Lock move in X dimension when not using MoveCtrl.
0to lock the axis, non-zero to allow, ornilfor no change. number?movementMaskY- Lock move in Y dimension when not using MoveCtrl.
0to lock the axis, non-zero to allow, ornilfor no change. number?movementMaskZ- Lock move in Z dimension when not using MoveCtrl.
0to lock the axis, non-zero to allow, ornilfor no change.
Spring.SetFeaturePhysics (function)
[source]Spring.SetFeaturePhysics(integer, number, number, number, number, number, number, number, number, number, number, number, number) -> nilParameters
integerfeatureIDnumberposXnumberposYnumberposZnumbervelXnumbervelYnumbervelZnumberrotXnumberrotYnumberrotZnumberdragXnumberdragYnumberdragZ
Returns
Spring.SetFeatureMass (function)
[source]Spring.SetFeatureMass(integer, number) -> nilParameters
Returns
Spring.SetFeaturePosition (function)
[source]Spring.SetFeaturePosition(integer, number, number, number, boolean?) -> nilParameters
integerfeatureIDnumberxnumberynumberzboolean?snapToGround
Returns
Spring.SetFeatureRotation (function)
[source]
Note: PYR order
Spring.SetFeatureRotation(integer, number, number, number) -> nilParameters
integerfeatureIDnumberpitch- Rotation in X axis
numberyaw- Rotation in Y axis
numberroll- 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) -> nilParameters
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) -> nilParameters
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) -> nilParameters
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) -> nilParameters
Spring.SetFeatureBlocking (function)
[source]Spring.SetFeatureBlocking(integer, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> booleanParameters
integerfeatureIDboolean?isBlocking- If
trueadd this feature to theGroundBlockingMap, but only if it collides with solid objects (or is being set to collide with theisSolidObjectCollidableargument). Iffalse, remove this feature from theGroundBlockingMap. No change ifnil. boolean?isSolidObjectCollidable- Enable or disable collision with solid objects, or no change if
nil. boolean?isProjectileCollidable- Enable or disable collision with projectiles, or no change if
nil. boolean?isRaySegmentCollidable- Enable or disable collision with ray segments, or no change if
nil. boolean?crushable- Enable or disable crushable, or no change if
nil. boolean?blockEnemyPushing- Enable or disable blocking enemy pushing, or no change if
nil. boolean?blockHeightChanges- Enable or disable blocking height changes, or no change if
nil.
Returns
booleanisBlocking
Spring.SetFeatureNoSelect (function)
[source]Spring.SetFeatureNoSelect(integer, boolean) -> nilParameters
Returns
Spring.SetFeatureMidAndAimPos (function)
[source]
Check Spring.SetUnitMidAndAimPos for further explanation of the arguments.
Spring.SetFeatureMidAndAimPos(integer, number, number, number, number, number, number, boolean?) -> booleanParameters
Returns
booleansuccess
Spring.SetFeatureRadiusAndHeight (function)
[source]Spring.SetFeatureRadiusAndHeight(integer, number, number) -> booleanParameters
Returns
booleansuccess
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) -> nilParameters
integerfeatureIDnumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumbervTypenumbertTypenumberAxis
Returns
Spring.SetFeaturePieceCollisionVolumeData (function)
[source]Spring.SetFeaturePieceCollisionVolumeData(integer, number, boolean, number, number, number, number, number, number, number, number, number?) -> nilParameters
integerfeatureIDnumberpieceIndexbooleanenablenumberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumberAxisnumbervolumeTypenumber?primaryAxis
Returns
Spring.SetFeaturePieceVisible (function)
[source]Spring.SetFeaturePieceVisible(integer, number, boolean) -> nilParameters
integerfeatureIDnumberpieceIndexbooleanvisible
Returns
Spring.SetFeatureFireTime (function)
Set the fire timer for a feature.
[source]
Starts or resets an internal feature fire timer, when reaching zero the feature will be destroyed.
Spring.SetFeatureFireTime(integer, number) -> nilParameters
Spring.SetFeatureSmokeTime (function)
Set the smoke timer for a feature.
[source]
If different than zero, starts emitting smoke until the timer counts down to zero.
Setting to zero will stop smoke emission by the feature.
The smoke timer affects both the duration and size of the smoke particles.
Spring.SetFeatureSmokeTime(integer, number) -> nilParameters
Spring.CreateUnitWreck (function)
Create a wreck from a unit
[source]
Spring.CreateUnitWreck(integer, integer?, boolean?) -> integer?Parameters
integerunitIDinteger?wreckLevel- (Default:
1) Wreck index to use. boolean?doSmoke- (Default:
true) Wreck emits smoke whentrue.
Returns
integer?featureID- The wreck featureID, or nil if it couldn’t be created or unit doesn’t exist.
Spring.CreateFeatureWreck (function)
Create a wreck from a feature
[source]
Spring.CreateFeatureWreck(integer, integer?, boolean?) -> integer?Parameters
integerfeatureIDinteger?wreckLevel- (Default:
1) Wreck index to use. boolean?doSmoke- (Default:
false) Wreck emits smoke whentrue.
Returns
integer?featureID- The wreck featureID, or nil if it couldn’t be created or unit doesn’t exist.
Spring.SetProjectileAlwaysVisible (function)
[source]Spring.SetProjectileAlwaysVisible(integer, boolean) -> nilParameters
integerprojectileIDbooleanalwaysVisible
Returns
Spring.SetProjectileUseAirLos (function)
[source]Spring.SetProjectileUseAirLos(integer, boolean) -> nilParameters
integerprojectileIDbooleanuseAirLos
Returns
Spring.SetProjectileMoveControl (function)
Set whether engine should process position and speed for a projectile
Contrary to Spring.SetFeatureMoveCtrl, speed and position for projectiles can be set regardless of whether this method has been called or not.
Passing true merely skips engine updating velocity and position.
[source]
Spring.SetProjectileMoveControl(integer, boolean) -> nilParameters
integerprojectileIDbooleanenable
Spring.SetProjectilePosition (function)
Set the position of a projectile
[source]
Spring.SetProjectilePosition(integer, number?, number?, number?) -> nilParameters
integerprojectileIDnumber?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0)
Spring.SetProjectileVelocity (function)
Set the velocity of a projectile
Note
Differently from features, Spring.SetProjectileMoveControl is not required to have been called to make use of this method, but often used in conjunction.
[source]
See Spring.SetProjectileMoveControl
Spring.SetProjectileVelocity(integer, number, number, number) -> nilParameters
integerprojectileIDnumbervelX- in elmos/frame
numbervelY- in elmos/frame
numbervelZ- in elmos/frame
Spring.SetProjectileCollision (function)
[source]Spring.SetProjectileCollision(integer) -> nilParameters
integerprojectileID
Spring.SetProjectileTarget (function)
Set projectile target (object)
[source]
Spring.SetProjectileTarget(integer, number, ProjectileTargetType) -> boolean?Parameters
integerprojectileIDnumbertargetIDProjectileTargetTypetargetType
Returns
boolean?validTarget
Spring.SetProjectileTarget (function overload 1)
Set projectile target (position)
[source]
Spring.SetProjectileTarget(integer, number, number, number) -> boolean?Parameters
integerprojectileIDnumberposXnumberposYnumberposZ
Returns
boolean?validTarget
Spring.SetProjectileTimeToLive (function)
Set Time To Live for a projectile
[source]
Spring.SetProjectileTimeToLive(integer, number) -> nilParameters
integerprojectileIDnumberttl- Remaining time to live in frames
Spring.SetProjectileIsIntercepted (function)
[source]Spring.SetProjectileIsIntercepted(integer) -> nilParameters
integerprojectileID
Spring.SetProjectileDamages (function)
[source]Spring.SetProjectileDamages(integer, integer, string, number) -> nilParameters
Spring.SetProjectileIgnoreTrackingError (function)
[source]Spring.SetProjectileIgnoreTrackingError(integer, boolean) -> nilParameters
integerprojectileIDbooleanignore
Spring.SetProjectileGravity (function)
[source]Spring.SetProjectileGravity(integer, number?) -> nilParameters
integerprojectileIDnumber?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?) -> nilParameters
integerprojectileIDnumber?explosionFlagsnumber?spinAnglenumber?spinSpeednumber?spinVectorXnumber?spinVectorYnumber?spinVectorZ
Spring.SetProjectileCEG (function)
[source]Spring.SetProjectileCEG(integer, string) -> nilParameters
integerprojectileIDstringceg_name
Returns
Spring.UnitFinishCommand (function)
[source]Spring.UnitFinishCommand(integer) -> nilParameters
integerunitID
Spring.LevelHeightMap (function)
Set the height of a point in the world.
[source]
Spring.LevelHeightMap(number, number, number) -> nilParameters
Spring.LevelHeightMap (function overload 1)
Set the height of a rectangle area in the world.
[source]
Spring.LevelHeightMap(number, number, number, number, number?) -> nilParameters
Returns
Spring.AdjustHeightMap (function)
Add height to a point in the world.
[source]
Spring.AdjustHeightMap(number, number, number) -> nilParameters
Spring.AdjustHeightMap (function overload 1)
Add height to a rectangle in the world.
[source]
Spring.AdjustHeightMap(number, number, number, number, number?) -> nilParameters
Returns
Spring.RevertHeightMap (function)
Restore map height at a point in the world.
[source]
Spring.RevertHeightMap(number, number, number) -> nilParameters
Spring.RevertHeightMap (function overload 1)
Restore map height of a rectangle area in the world.
[source]
Spring.RevertHeightMap(number, number, number, number, number?) -> nilParameters
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), if1the 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
functionluaFunctionnumberargnumber...
Returns
integer?absTotalHeightMapAmountChanged
Spring.LevelOriginalHeightMap (function)
Set the height of a point in the original map height cache.
[source]
Spring.LevelOriginalHeightMap(number, number, number) -> nilParameters
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) -> nilParameters
Spring.AdjustOriginalHeightMap (function)
Add height to a point in the original map height cache.
[source]
Spring.AdjustOriginalHeightMap(number, number, number) -> nilParameters
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) -> nilParameters
Spring.RevertOriginalHeightMap (function)
Restore original map height at a point in the world.
[source]
Spring.RevertOriginalHeightMap(number, number, number) -> nilParameters
Spring.RevertOriginalHeightMap (function overload 1)
Restore original map height over a rectangle in the world.
[source]
Spring.RevertOriginalHeightMap(number, number, number, number, number?) -> nilParameters
Returns
Spring.AddOriginalHeightMap (function)
[source]
Can only be called in Spring.SetOriginalHeightMapFunc
Spring.AddOriginalHeightMap(number, number, number) -> nilParameters
Returns
Spring.SetOriginalHeightMap (function)
[source]
Can only be called in Spring.SetOriginalHeightMapFunc
Spring.SetOriginalHeightMap(number, number, number, number?) -> nilParameters
Returns
Spring.SetOriginalHeightMapFunc (function)
[source]
Cannot recurse on itself
Spring.SetOriginalHeightMapFunc(function) -> nilParameters
functionheightMapFunc
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() -> nilReturns
Spring.LevelSmoothMesh (function)
[source]Spring.LevelSmoothMesh(number, number, number) -> nilParameters
Spring.LevelSmoothMesh (function overload 1)
[source]Spring.LevelSmoothMesh(number, number, number, number, number) -> nilParameters
Spring.AdjustSmoothMesh (function)
[source]Spring.AdjustSmoothMesh(number, number, number) -> nilParameters
Spring.AdjustSmoothMesh (function overload 1)
[source]Spring.AdjustSmoothMesh(number, number, number, number, number) -> nilParameters
Spring.RevertSmoothMesh (function)
[source]Spring.RevertSmoothMesh(number, number, number) -> nilParameters
numberxnumberznumberorigFactor
Spring.RevertSmoothMesh (function overload 1)
[source]Spring.RevertSmoothMesh(number, number, number, number, number) -> nilParameters
numberx1numberz1numberx2numberz2numberorigFactor
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
nilif 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
nilif coordinates are invalid.
Spring.SetSmoothMeshFunc (function)
[source]Spring.SetSmoothMeshFunc(function, any, [any, ]*) -> number?Parameters
functionluaFunctionanyargany...
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
numbertypeIndexnumber?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) -> nilParameters
Returns
nilSee- also buildingMask unitdef tag.
Spring.UnitWeaponFire (function)
[source]Spring.UnitWeaponFire(integer, integer) -> nilParameters
Returns
Spring.UnitWeaponHoldFire (function)
[source]Spring.UnitWeaponHoldFire(integer, integer) -> nilParameters
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) -> nilParameters
integerunitID
Returns
Spring.UnitAttach (function)
[source]Spring.UnitAttach(integer, integer, number) -> nilParameters
integertransporterIDintegerpassengerIDnumberpieceNum
Returns
Spring.UnitDetach (function)
[source]Spring.UnitDetach(integer) -> nilParameters
integerpassengerID
Returns
Spring.UnitDetachFromAir (function)
[source]Spring.UnitDetachFromAir(integer) -> nilParameters
integerpassengerID
Returns
Spring.SetUnitLoadingTransport (function)
Disables collisions between the two units to allow colvol intersection during the approach.
[source]
Spring.SetUnitLoadingTransport(integer, integer) -> nilParameters
integerpassengerIDintegertransportID
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) -> nilParameters
integerprojectileID
Returns
Spring.SpawnExplosion (function)
[source]Spring.SpawnExplosion(number?, number?, number?, number?, number?, number?, ExplosionParams) -> nilParameters
number?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0) number?dirX- (Default:
0) number?dirY- (Default:
0) number?dirZ- (Default:
0) ExplosionParamsexplosionParams
Returns
Spring.SpawnCEG (function)
[source]Spring.SpawnCEG(string, number?, number?, number?, number?, number?, number?, number?, number?) -> boolean?, integerParameters
stringcegnamenumber?posX- (Default:
0) number?posY- (Default:
0) number?posZ- (Default:
0) number?dirX- (Default:
0) number?dirY- (Default:
0) number?dirZ- (Default:
0) number?radius- (Default:
0) number?damage- (Default:
0)
Returns
Spring.SpawnSFX (function)
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) -> nilParameters
booleannoPause
Returns
Spring.SetExperienceGrade (function)
Defines how often Callins.UnitExperience will be called.
[source]
Spring.SetExperienceGrade(number, number?, number?, number?) -> nilParameters
numberexpGradenumber?ExpPowerScalenumber?ExpHealthScalenumber?ExpReloadScale
Returns
Spring.SetRadarErrorParams (function)
[source]Spring.SetRadarErrorParams(integer, number, number?, number?) -> nilParameters
integerallyTeamIDnumberallyteamErrorSizenumber?baseErrorSizenumber?baseErrorMult
Returns
Spring.EditUnitCmdDesc (function)
[source]Spring.EditUnitCmdDesc(integer, integer, CommandDescription) -> nilParameters
integerunitIDintegercmdDescIDCommandDescriptioncmdArray
Spring.InsertUnitCmdDesc (function)
Insert a command description at a specific index.
[source]
Spring.InsertUnitCmdDesc(integer, integer, CommandDescription) -> nilParameters
integerunitIDintegerindexCommandDescriptioncmdDesc
Spring.InsertUnitCmdDesc (function overload 1)
Insert a command description at the last position.
[source]
Spring.InsertUnitCmdDesc(integer, CommandDescription) -> nilParameters
Spring.RemoveUnitCmdDesc (function)
[source]Spring.RemoveUnitCmdDesc(integer, integer?) -> nilParameters
Spring.IsCheatingEnabled (function)
[source]Spring.IsCheatingEnabled() -> booleanReturns
booleanenabled
Spring.IsGodModeEnabled (function)
[source]Spring.IsGodModeEnabled() -> booleanReturns
booleanenabled
Spring.IsDevLuaEnabled (function)
[source]Spring.IsDevLuaEnabled() -> booleanReturns
booleanenabled
Spring.IsEditDefsEnabled (function)
[source]Spring.IsEditDefsEnabled() -> booleanReturns
booleanenabled
Spring.IsNoCostEnabled (function)
[source]Spring.IsNoCostEnabled() -> booleanReturns
booleanenabled
Spring.GetGlobalLos (function)
[source]Spring.GetGlobalLos(integer?) -> booleanParameters
integer?teamID
Returns
booleanenabled
Spring.AreHelperAIsEnabled (function)
[source]Spring.AreHelperAIsEnabled() -> booleanReturns
booleanenabled
Spring.FixedAllies (function)
[source]Spring.FixedAllies() -> boolean?Returns
boolean?enabled
Spring.IsGameOver (function)
[source]Spring.IsGameOver() -> booleanReturns
booleanisGameOver
Spring.GetGameFrame (function)
[source]Spring.GetGameFrame() -> number, numberReturns
Spring.GetGameSeconds (function)
[source]Spring.GetGameSeconds() -> numberReturns
numberseconds
Spring.GetTidal (function)
[source]Spring.GetTidal() -> numberReturns
numbertidalStrength
Spring.GetWind (function)
[source]Spring.GetWind() -> number, number, number, number, number, number, numberReturns
numberwindSpeedXnumberwindSpeedY- (Always 0)
numberwindSpeedZnumberwindStrength- (Length of windSpeed)
numberwindDirX- (Normalized windSpeed)
numberwindDirY- (Always 0)
numberwindDirZ
Spring.GetGameRulesParams (function)
[source]Spring.GetGameRulesParams() -> RulesParamsReturns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetTeamRulesParams (function)
[source]Spring.GetTeamRulesParams(integer) -> RulesParamsParameters
integerteamID
Returns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetPlayerRulesParams (function)
[source]Spring.GetPlayerRulesParams(integer) -> RulesParamsParameters
integerplayerID
Returns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetUnitRulesParams (function)
[source]Spring.GetUnitRulesParams(integer) -> RulesParamsParameters
integerunitID
Returns
RulesParamsrulesParams- map with rules names as key and values as values
Spring.GetFeatureRulesParams (function)
[source]Spring.GetFeatureRulesParams(integer) -> RulesParamsParameters
integerfeatureID
Returns
RulesParamsrulesParams- 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) -> stringParameters
stringmapOption
Returns
stringvalue- 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) -> stringParameters
stringmodOption
Returns
stringvalue- 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) -> numberParameters
Returns
numberheading
Spring.GetVectorFromHeading (function)
[source]Spring.GetVectorFromHeading(number) -> number, numberParameters
numberheading
Returns
Spring.GetFacingFromHeading (function)
[source]Spring.GetFacingFromHeading(number) -> FacingIntegerParameters
numberheading
Returns
Spring.GetHeadingFromFacing (function)
[source]Spring.GetHeadingFromFacing(FacingInteger) -> numberParameters
Returns
numberheading
Spring.GetSideData (function)
[source]Spring.GetSideData(string) -> string?, string?Parameters
stringsideName- Case-insensitive side name.
Returns
Spring.GetSideData (function overload 1)
[source]Spring.GetSideData(integer) -> string?, string?, string?Parameters
integersideID
Returns
Spring.GetSideData (function overload 2)
[source]Spring.GetSideData() -> SideSpec[]Returns
Spring.GetGaiaTeamID (function)
[source]Spring.GetGaiaTeamID() -> integerReturns
integerteamID
Spring.GetAllyTeamStartBox (function)
[source]Spring.GetAllyTeamStartBox(integer) -> number?, number?, number?, number?Parameters
integerallyID
Returns
Spring.GetTeamStartPosition (function)
[source]Spring.GetTeamStartPosition(integer) -> number?, number?, number?Parameters
integerteamID
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
unknownallyTeamID- (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
integerallyTeamID- 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
nilifallyTeamIDis 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
integerteamIDboolean?getTeamKeys- (Default:
true) whether to return the customTeamKeys table
Returns
integer?teamIDnumberleadernumberisDeadnumberhasAIstringsidenumberallyTeamnumberincomeMultipliertable<string,string>customTeamKeys- when getTeamKeys is true, otherwise nil
Spring.GetTeamAllyTeamID (function)
[source]Spring.GetTeamAllyTeamID(integer) -> integer?Parameters
integerteamID
Returns
integer?allyTeamID
Spring.GetTeamResources (function)
[source]Spring.GetTeamResources(integer, ResourceName) -> number?, number, number, number, number, number, number, number, numberParameters
integerteamIDResourceNameresource
Returns
number?currentLevel- The current amount of the resource that the team has in storage at this moment
numberstorage- The maximum storage capacity for the resource.
numberpull- The total amount of the resource that is being requested/used by all units and buildings per second, regardless of whether the resource is actually available.
numberincome- The total amount of the resource being generated per second from all sources (e.g., mines, generators, reclaiming, etc.).
numberexpense- The total amount of the resource actually being spent per second. This is the real consumption, which may be less than pull if there isn’t enough resource available.
numbershare- The fraction (0.0 to 1.0) of the storage that the team is sharing with allied teams. A value of 0.0 means 100% of storage is shared, while 1.0 means only any excess is shared.
numbersent- The total amount of the resource that has actually been sent to allies (via sharing or manual transfer).
numberreceived- The total amount of the resource that has actually been received from allies (via sharing or manual transfer).
numberexcess- The amount of the resource that was lost due to storage overflow (wasted).
Spring.GetTeamUnitStats (function)
[source]Spring.GetTeamUnitStats(integer) -> number?, number, number, number, number, numberParameters
integerteamID
Returns
number?killednumberdiednumbercapturedBynumbercapturedFromnumberreceivednumbersent
Spring.GetTeamResourceStats (function)
[source]Spring.GetTeamResourceStats(integer, ResourceName) -> number?, number, number, number, numberParameters
integerteamIDResourceNameresource
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, numberParameters
integerteamID
Returns
numberdamageDealtnumberdamageReceived
Spring.GetTeamStatsHistory (function)
Get the number of history entries.
[source]
Spring.GetTeamStatsHistory(integer) -> integer?Parameters
integerteamID
Returns
integer?historyCount- The number of history entries, or
nilif unable to resolve team.
Spring.GetTeamStatsHistory (function overload 1)
Get team stats history.
[source]
Spring.GetTeamStatsHistory(integer, integer, integer?) -> TeamStats[]Parameters
integerteamIDintegerstartIndexinteger?endIndex- (Default: startIndex)
Returns
Spring.GetTeamLuaAI (function)
[source]Spring.GetTeamLuaAI(integer) -> stringParameters
integerteamID
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
integerteamID
Returns
numbermaxUnitsnumber?currentUnits
Spring.GetPlayerInfo (function)
[source]Spring.GetPlayerInfo(integer, boolean?) -> string, boolean, boolean, integer, integer, number, number, string, number, boolean, { [string]: string }, booleanParameters
integerplayerIDboolean?getPlayerOpts- (Default:
true) whether to return custom player options
Returns
stringnamebooleanactivebooleanspectatorintegerteamIDintegerallyTeamIDnumberpingTimenumbercpuUsagestringcountrynumberrankbooleanhasSkirmishAIsInTeam{ [string]: string }playerOpts- when playerOpts is true
booleandesynced
Spring.GetPlayerControlledUnit (function)
Returns unit controlled by player on FPS mode
[source]
Spring.GetPlayerControlledUnit(integer) -> number?Parameters
integerplayerID
Returns
Spring.GetAIInfo (function)
[source]Spring.GetAIInfo(integer) -> integer, string, integer, string, string, table<string,string>Parameters
integerteamID
Returns
integerskirmishAIIDstringnameintegerhostingPlayerIDstringshortName- When synced
“SYNCED_NOSHORTNAME”, otherwise the AI shortname or“UNKNOWN”. stringversion- When synced
“SYNCED_NOVERSION”, otherwise the AI version or“UNKNOWN”. table<string,string>options
Spring.GetAllyTeamInfo (function)
[source]Spring.GetAllyTeamInfo(integer) -> table<string,string>?Parameters
integerallyTeamID
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
integerteamID
Returns
number[]?unitIDs
Spring.GetTeamUnitsSorted (function)
[source]Spring.GetTeamUnitsSorted(integer) -> table<integer,integer>Parameters
integerteamID
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
integerteamID
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
integerteamID(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
integerteamID
Returns
number?count
Spring.GetUnitsInRectangle (function)
[source]Spring.GetUnitsInRectangle(number, number, number, number, number?) -> number[]Parameters
numberxminnumberzminnumberxmaxnumberzmaxnumber?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, numberParameters
tableunits- { 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, numberParameters
tableunits- { [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
numberxnumberznumberradiusnumber?allegiance
Returns
number[]featureIDs
Spring.GetAllProjectiles (function)
[source]Spring.GetAllProjectiles(boolean?, boolean?) -> number[]Parameters
boolean?excludeWeaponProjectiles- (Default:
false) boolean?excludePieceProjectiles- (Default:
false)
Returns
number[]projectileIDs
Spring.GetProjectilesInRectangle (function)
[source]Spring.GetProjectilesInRectangle(number, number, number, number, boolean?, boolean?) -> number[]Parameters
numberxminnumberzminnumberxmaxnumberzmaxboolean?excludeWeaponProjectiles- (Default:
false) boolean?excludePieceProjectiles- (Default:
false)
Returns
number[]projectileIDs
Spring.GetProjectilesInSphere (function)
[source]Spring.GetProjectilesInSphere(number, number, number, number, boolean?, boolean?) -> number[]Parameters
numberxnumberynumberznumberradiusboolean?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) -> booleanParameters
integerunitID
Returns
Spring.GetUnitStates (function)
[source]Spring.GetUnitStates(integer) -> UnitStateParameters
integerunitID
Returns
Spring.GetUnitArmored (function)
[source]Spring.GetUnitArmored(integer) -> boolean?, numberParameters
integerunitID
Returns
boolean?armorednumberarmorMultiple
Spring.GetUnitIsActive (function)
[source]Spring.GetUnitIsActive(integer) -> boolean?Parameters
integerunitID
Returns
boolean?isActive
Spring.GetUnitIsCloaked (function)
[source]Spring.GetUnitIsCloaked(integer) -> boolean?Parameters
integerunitID
Returns
boolean?isCloaked
Spring.GetUnitSeismicSignature (function)
[source]Spring.GetUnitSeismicSignature(integer) -> number?Parameters
integerunitID
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
integerunitID
Returns
integer?selfDTime
Spring.GetUnitStockpile (function)
[source]Spring.GetUnitStockpile(integer) -> integer?, integer?, number?Parameters
integerunitID
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, booleanParameters
integerunitIDinteger?allyTeamID
Returns
number?posErrorVectorXnumberposErrorVectorYnumberposErrorVectorZnumberposErrorDeltaXnumberposErrorDeltaYnumberposErrorDeltaZnumbernextPosErrorUpdatebaseErrorMultbooleanposErrorBit
Spring.GetUnitTooltip (function)
[source]Spring.GetUnitTooltip(integer) -> string?Parameters
integerunitID
Returns
Spring.GetUnitDefID (function)
[source]Spring.GetUnitDefID(integer) -> number?Parameters
integerunitID
Returns
Spring.GetUnitTeam (function)
[source]Spring.GetUnitTeam(integer) -> number?Parameters
integerunitID
Returns
Spring.GetUnitAllyTeam (function)
[source]Spring.GetUnitAllyTeam(integer) -> number?Parameters
integerunitID
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
integerunitID
Returns
Spring.GetUnitHealth (function)
[source]Spring.GetUnitHealth(integer) -> number?, number, number, number, numberParameters
integerunitID
Returns
number?healthnumbermaxHealthnumberparalyzeDamagenumbercaptureProgressnumberbuildProgress- between 0.0-1.0
Spring.GetUnitIsDead (function)
[source]Spring.GetUnitIsDead(integer) -> boolean?Parameters
integerunitID
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, booleanParameters
integerunitID
Returns
boolean?stunnedOrBuilt- unit is disabled
booleanstunned- unit is either stunned via EMP or being transported by a non-fireplatform
booleanbeingBuilt- unit is under construction
Spring.GetUnitIsBeingBuilt (function)
[source]Spring.GetUnitIsBeingBuilt(integer) -> boolean, numberParameters
integerunitID
Returns
booleanbeingBuiltnumberbuildProgress
Spring.GetUnitResources (function)
[source]Spring.GetUnitResources(integer) -> number?, number, number, numberParameters
integerunitID
Returns
number?metalMakenumbermetalUsenumberenergyMakenumberenergyUse
Spring.GetUnitStorage (function)
[source]Spring.GetUnitStorage(integer) -> number, numberParameters
integerunitID
Returns
Spring.GetUnitCosts (function)
[source]Spring.GetUnitCosts(integer) -> number?, number, numberParameters
integerunitID
Returns
number?buildTimenumbermetalCostnumberenergyCost
Spring.GetUnitCostTable (function)
[source]Spring.GetUnitCostTable(integer) -> ResourceCost?, number?Parameters
integerunitID
Returns
ResourceCost?cost- The cost of the unit, or
nilif invalid. number?buildTime- The build time the unit, or
nilif invalid.
Spring.GetUnitMetalExtraction (function)
[source]Spring.GetUnitMetalExtraction(integer) -> number?Parameters
integerunitID
Returns
number?metalExtraction
Spring.GetUnitExperience (function)
[source]Spring.GetUnitExperience(integer) -> number, numberParameters
integerunitID
Returns
Spring.GetUnitHeight (function)
[source]Spring.GetUnitHeight(integer) -> number?Parameters
integerunitID
Returns
Spring.GetUnitRadius (function)
[source]Spring.GetUnitRadius(integer) -> number?Parameters
integerunitID
Returns
Spring.GetUnitBuildeeRadius (function)
[source]
Gets the unit’s radius for when targeted by build, repair, reclaim-type commands.
Spring.GetUnitBuildeeRadius(integer) -> number?Parameters
integerunitID
Returns
Spring.GetUnitMass (function)
[source]Spring.GetUnitMass(integer) -> number?Parameters
integerunitID
Returns
Spring.GetUnitPosition (function)
[source]Spring.GetUnitPosition(integer, boolean?, boolean?) -> number?, number, number, number?, number, number, number?, number, numberParameters
integerunitIDboolean?midPos- (Default:
false) return midpoint as well boolean?aimPos- (Default:
false) return aimpoint as well
Returns
number?basePointXnumberbasePointYnumberbasePointZnumber?midPointXnumbermidPointYnumbermidPointZnumber?aimPointXnumberaimPointYnumberaimPointZ
Spring.GetUnitBasePosition (function)
[source]
The same as Spring.GetUnitPosition, but without the optional midpoint calculations.
Spring.GetUnitBasePosition(integer) -> number?, number?, number?Parameters
integerunitID
Returns
Spring.GetUnitVectors (function)
[source]Spring.GetUnitVectors(integer) -> float3?, float3, float3Parameters
integerunitID
Returns
Spring.GetUnitRotation (function)
[source]
Note: PYR order
Spring.GetUnitRotation(integer) -> number, number, numberParameters
integerunitID
Returns
Spring.GetUnitDirection (function)
[source]Spring.GetUnitDirection(integer) -> number, number, number, number, number, number, number, number, numberParameters
integerunitID
Returns
numberfrontDirXnumberfrontDirYnumberfrontDirZnumberrightDirXnumberrightDirYnumberrightDirZnumberupDirXnumberupDirYnumberupDirZ
Spring.GetUnitHeading (function)
[source]Spring.GetUnitHeading(integer, boolean?) -> numberParameters
integerunitIDboolean?convertToRadians- (Default:
false)
Returns
numberheading
Spring.GetUnitVelocity (function)
[source]Spring.GetUnitVelocity(integer) -> nilParameters
integerunitID
Spring.GetUnitBuildFacing (function)
[source]Spring.GetUnitBuildFacing(integer) -> nilParameters
integerunitID
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) -> integerParameters
integerunitID
Returns
integerbuildeeUnitID- 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, integerParameters
integerunitID
Returns
Spring.GetUnitEffectiveBuildRange (function)
[source]
Useful for setting move goals manually.
Spring.GetUnitEffectiveBuildRange(integer, integer) -> numberParameters
integerunitIDintegerbuildeeDefID- or nil
Returns
numbereffectiveBuildRange- counted to the center of prospective buildee; buildRange if buildee nil
Spring.GetUnitCurrentBuildPower (function)
[source]Spring.GetUnitCurrentBuildPower(integer) -> nilParameters
integerunitID
Spring.GetUnitHarvestStorage (function)
Get a unit’s carried resources
[source]
Checks resources being carried internally by the unit.
Spring.GetUnitHarvestStorage(integer) -> number, number, number, numberParameters
integerunitID
Returns
numberstoredMetalnumbermaxStoredMetalnumberstoredEnergynumbermaxStoredEnergy
Spring.GetUnitBuildParams (function)
[source]Spring.GetUnitBuildParams(integer) -> nilParameters
integerunitID
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) -> booleanParameters
integerunitID
Returns
booleaninBuildStance
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
integerunitID
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
integerunitID
Returns
integer?transportUnitID
Spring.GetUnitIsTransporting (function)
Get units being transported
[source]
Spring.GetUnitIsTransporting(integer) -> integer[]?Parameters
integerunitID
Returns
integer[]?transporteeArray
Spring.GetUnitShieldState (function)
[source]Spring.GetUnitShieldState(integer, number?) -> number, numberParameters
Returns
numberisEnabled- Warning, number not boolean. 0 or 1
numbercurrentPower
Spring.GetUnitFlanking (function)
[source]Spring.GetUnitFlanking(integer) -> nilParameters
integerunitID
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) -> numberParameters
integerunitID
Returns
numbermaxRange
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) -> numberParameters
Returns
numberstateValue
Spring.GetUnitWeaponDamages (function)
[source]Spring.GetUnitWeaponDamages(integer) -> nilParameters
integerunitID
Spring.GetUnitWeaponVectors (function)
[source]Spring.GetUnitWeaponVectors(integer) -> nilParameters
integerunitID
Spring.GetUnitWeaponTryTarget (function)
[source]Spring.GetUnitWeaponTryTarget(integer) -> nilParameters
integerunitID
Spring.GetUnitWeaponTestTarget (function)
[source]Spring.GetUnitWeaponTestTarget(integer) -> nilParameters
integerunitID
Spring.GetUnitWeaponTestRange (function)
[source]Spring.GetUnitWeaponTestRange(integer) -> nilParameters
integerunitID
Spring.GetUnitWeaponHaveFreeLineOfFire (function)
[source]Spring.GetUnitWeaponHaveFreeLineOfFire(integer) -> nilParameters
integerunitID
Spring.GetUnitWeaponCanFire (function)
[source]Spring.GetUnitWeaponCanFire(integer) -> nilParameters
integerunitID
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, booleanParameters
Returns
0TargetType- none
booleanisUserTarget
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, integerParameters
Returns
1TargetType- unit
booleanisUserTargetintegertargetUnitID
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, float3Parameters
Returns
2TargetType- position
booleanisUserTargetfloat3targetPosition
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, integerParameters
Returns
3TargetType- projectileID
booleanisUserTargetintegertargetProjectileId
Spring.GetUnitEstimatedPath (function)
[source]Spring.GetUnitEstimatedPath(integer) -> nilParameters
integerunitID
Spring.GetUnitLastAttacker (function)
[source]Spring.GetUnitLastAttacker(integer) -> nilParameters
integerunitID
Spring.GetUnitLastAttackedPiece (function)
[source]Spring.GetUnitLastAttackedPiece(integer) -> nilParameters
integerunitID
Spring.GetUnitCollisionVolumeData (function)
[source]Spring.GetUnitCollisionVolumeData(integer) -> nilParameters
integerunitID
Spring.GetUnitSeparation (function)
[source]Spring.GetUnitSeparation(number, number, boolean?, boolean?) -> number?Parameters
numberunitID1numberunitID2boolean?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) -> nilParameters
integerunitID
Spring.GetUnitDefDimensions (function)
[source]Spring.GetUnitDefDimensions(integer) -> UnitDefDimensions?Parameters
integerunitDefID
Returns
Spring.GetCEGID (function)
[source]Spring.GetCEGID() -> nilSpring.GetUnitBlocking (function)
[source]Spring.GetUnitBlocking(integer) -> boolean?, boolean, boolean, boolean, boolean, boolean, booleanParameters
integerunitID
Returns
boolean?isBlockingbooleanisSolidObjectCollidablebooleanisProjectileCollidablebooleanisRaySegmentCollidablebooleancrushablebooleanblockEnemyPushingbooleanblockHeightChanges
Spring.GetUnitMoveTypeData (function)
[source]Spring.GetUnitMoveTypeData(integer) -> nilParameters
integerunitID
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
integerunitID- 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) -> integerParameters
Returns
integerThe- 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) -> integerParameters
Returns
integerThe- number of commands in the factory queue.
Spring.GetUnitCommandCount (function)
Get the number of commands in a unit’s queue.
[source]
Spring.GetUnitCommandCount(integer) -> integerParameters
integerunitID
Returns
integerThe- 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) -> integerParameters
integerunitID
Returns
integerThe- number of commands in the factory queue.
Spring.GetFactoryBuggerOff (function)
[source]Spring.GetFactoryBuggerOff(integer) -> nilParameters
integerunitID
Spring.GetFactoryCounts (function)
Gets the build queue of a factory
[source]
Spring.GetFactoryCounts(integer, integer?, boolean?) -> table<number,number>?Parameters
integerunitIDinteger?count- (Default:
-1) Number of commands to retrieve,-1for all. boolean?addCmds- (Default:
false) Retrieve commands other than buildunit
Returns
table<number,number>?counts- Build queue count by
unitDefIDor-cmdID, ornilif unit is not found.
Spring.GetCommandQueue (function)
Get the commands for a unit.
[source]
Same as Spring.GetUnitCommands
Deprecated: Use Spring.GetUnitCommands instead.
Spring.GetCommandQueue(integer, integer) -> Command[]Parameters
integerunitIDintegercount- Number of commands to return,
-1returns all commands,0returns 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) -> integerParameters
Returns
integercmdCount- The number of commands in the unit queue.
Spring.GetFullBuildQueue (function)
Returns the build queue
[source]
Spring.GetFullBuildQueue(integer) -> table<number,number>?Parameters
integerunitID
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
integerunitID
Returns
table<number,number>?buildqueue- indexed by unitDefID with count values
Spring.GetUnitCmdDescs (function)
[source]Spring.GetUnitCmdDescs(integer) -> nilParameters
integerunitID
Spring.FindUnitCmdDesc (function)
[source]Spring.FindUnitCmdDesc(integer) -> nilParameters
integerunitID
Spring.ValidFeatureID (function)
[source]Spring.ValidFeatureID(integer) -> booleanParameters
integerfeatureID
Returns
Spring.GetAllFeatures (function)
[source]Spring.GetAllFeatures() -> integer[]Returns
integer[]featureIDs
Spring.GetFeatureDefID (function)
[source]Spring.GetFeatureDefID(integer) -> number?Parameters
integerfeatureID
Returns
Spring.GetFeatureTeam (function)
[source]Spring.GetFeatureTeam(integer) -> number?Parameters
integerfeatureID
Returns
Spring.GetFeatureAllyTeam (function)
[source]Spring.GetFeatureAllyTeam(integer) -> number?Parameters
integerfeatureID
Returns
Spring.GetFeatureHealth (function)
[source]Spring.GetFeatureHealth(integer) -> number?, number, numberParameters
integerfeatureID
Returns
number?healthnumberdefHealthnumberresurrectProgress
Spring.GetFeatureHeight (function)
[source]Spring.GetFeatureHeight(integer) -> number?Parameters
integerfeatureID
Returns
Spring.GetFeatureRadius (function)
[source]Spring.GetFeatureRadius(integer) -> number?Parameters
integerfeatureID
Returns
Spring.GetFeatureMass (function)
[source]Spring.GetFeatureMass(integer) -> number?Parameters
integerfeatureID
Returns
Spring.GetFeaturePosition (function)
[source]Spring.GetFeaturePosition(integer) -> number?, number?, number?Parameters
integerfeatureID
Returns
Spring.GetFeatureSeparation (function)
[source]Spring.GetFeatureSeparation(number, number, boolean?) -> number?Parameters
numberfeatureID1numberfeatureID2boolean?direction- (Default:
false) to subtract from, default featureID1 - featureID2
Returns
Spring.GetFeatureRotation (function)
[source]
Note: PYR order
Spring.GetFeatureRotation(integer) -> number?, number?, number?Parameters
integerfeatureID
Returns
Spring.GetFeatureDirection (function)
[source]Spring.GetFeatureDirection(integer) -> number?, number?, number?, number?, number?, number?, number?, number?, number?Parameters
integerfeatureID
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
integerfeatureID
Returns
Spring.GetFeatureHeading (function)
[source]Spring.GetFeatureHeading(integer) -> nilParameters
integerfeatureID
Spring.GetFeatureResources (function)
[source]Spring.GetFeatureResources(integer) -> number?, number, number, number, number, numberParameters
integerfeatureID
Returns
number?metalnumberdefMetalnumberenergynumberdefEnergynumberreclaimLeftnumberreclaimTime
Spring.GetFeatureBlocking (function)
[source]Spring.GetFeatureBlocking(integer) -> boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?Parameters
integerfeatureID
Returns
boolean?isBlockingboolean?isSolidObjectCollidableboolean?isProjectileCollidableboolean?isRaySegmentCollidableboolean?crushableboolean?blockEnemyPushingboolean?blockHeightChanges
Spring.GetFeatureNoSelect (function)
[source]Spring.GetFeatureNoSelect(integer) -> boolean?Parameters
integerfeatureID
Returns
Spring.GetFeatureResurrect (function)
[source]
Returns nil if no feature found with ID.
Spring.GetFeatureResurrect(integer) -> (string|"")?, FacingIntegerParameters
integerfeatureID
Returns
(string|"")?featureDefNameFacingIntegerbuildFacing- facing of footprint, 0 - 3
Spring.GetFeatureLastAttackedPiece (function)
[source]Spring.GetFeatureLastAttackedPiece(integer) -> (string|"")?, integer?Parameters
integerfeatureID
Returns
Spring.GetFeatureCollisionVolumeData (function)
[source]Spring.GetFeatureCollisionVolumeData(integer) -> CollisionVolumeData?Parameters
integerfeatureID
Returns
Spring.GetFeaturePieceCollisionVolumeData (function)
[source]Spring.GetFeaturePieceCollisionVolumeData(integer) -> CollisionVolumeData?Parameters
integerfeatureID
Returns
Spring.GetFeatureFireTime (function)
Get the feature current fire timer.
[source]
Spring.GetFeatureFireTime(integer) -> number?Parameters
integerfeatureID
Returns
number?fireTime- in seconds, nil when featureID is invalid.
Spring.GetFeatureSmokeTime (function)
Get the feature current smoke timer.
[source]
Spring.GetFeatureSmokeTime(integer) -> number?Parameters
integerfeatureID
Returns
number?smokeTime- in seconds, nil when featureID is invalid.
Spring.GetProjectilePosition (function)
[source]Spring.GetProjectilePosition(integer) -> number?, number?, number?Parameters
integerprojectileID
Returns
Spring.GetProjectileDirection (function)
[source]Spring.GetProjectileDirection(integer) -> number?, number?, number?Parameters
integerprojectileID
Returns
Spring.GetProjectileVelocity (function)
[source]Spring.GetProjectileVelocity(integer) -> number?, number?, number?, number?Parameters
integerprojectileID
Returns
Spring.GetProjectileGravity (function)
[source]Spring.GetProjectileGravity(integer) -> number?Parameters
integerprojectileID
Returns
Spring.GetPieceProjectileParams (function)
[source]Spring.GetPieceProjectileParams(integer) -> number?, number, number, number, number, numberParameters
integerprojectileID
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
numberspinAnglenumberspinSpeednumberspinVectorXnumberspinVectorYnumberspinVectorZ
Spring.GetProjectileTarget (function)
[source]Spring.GetProjectileTarget(integer) -> number?, (number|float3)Parameters
integerprojectileID
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
integerprojectileID
Returns
Spring.GetProjectileTimeToLive (function)
[source]Spring.GetProjectileTimeToLive(integer) -> number?Parameters
integerprojectileID
Returns
Spring.GetProjectileOwnerID (function)
[source]Spring.GetProjectileOwnerID(integer) -> number?Parameters
integerprojectileID
Returns
Spring.GetProjectileTeamID (function)
[source]Spring.GetProjectileTeamID(integer) -> number?Parameters
integerprojectileID
Returns
Spring.GetProjectileAllyTeamID (function)
[source]Spring.GetProjectileAllyTeamID(integer) -> number?Parameters
integerprojectileID
Returns
Spring.GetProjectileType (function)
[source]Spring.GetProjectileType(integer) -> boolean?, booleanParameters
integerprojectileID
Returns
Spring.GetProjectileDefID (function)
[source]Spring.GetProjectileDefID(integer) -> number?Parameters
integerprojectileID
Returns
Spring.GetPieceProjectileName (function)
Returns the name of the model piece from which a piece projectile was spawned. Returns nil for other projectiles including weapons
[source]
Spring.GetPieceProjectileName(integer) -> string?Parameters
integerprojectileID
Returns
string?pieceName
Spring.GetProjectileDamages (function)
[source]Spring.GetProjectileDamages(integer, string) -> number?Parameters
integerprojectileIDstringtagone 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, booleanParameters
Returns
booleaninPlayArea- whether the position is in the active play area
booleaninMap- whether the position is in the full map area (currently this is the same as above)
Spring.GetGroundHeight (function)
Get ground height
On sea, this returns the negative depth of the seafloor
[source]
Spring.GetGroundHeight(number, number) -> numberParameters
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() -> numberReturns
numberwaterPlaneLevel
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) -> numberParameters
Returns
numberwaterLevel
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) -> numberParameters
Returns
Spring.GetGroundNormal (function)
[source]Spring.GetGroundNormal(number, number, boolean?) -> number, number, number, numberParameters
Returns
Spring.GetGroundInfo (function)
[source]Spring.GetGroundInfo(number, number) -> number, number, number, string, number, number, number, number, number, number, booleanParameters
Returns
numberixnumberiznumberterrainTypeIndexstringnamenumbermetalExtractionnumberhardnessnumbertankSpeednumberkbotSpeednumberhoverSpeednumbershipSpeedbooleanreceiveTracks
Spring.GetGroundBlocked (function)
[source]Spring.GetGroundBlocked() -> nilSpring.GetGroundExtremes (function)
[source]Spring.GetGroundExtremes() -> number, number, number, numberReturns
numberinitMinHeightnumberinitMaxHeightnumbercurrMinHeightnumbercurrMaxHeight
Spring.GetTerrainTypeData (function)
[source]Spring.GetTerrainTypeData(number) -> number, string, number, number, number, number, number, booleanParameters
numberterrainTypeInfo
Returns
numberindexstringnamenumberhardnessnumbertankSpeednumberkbotSpeednumberhoverSpeednumbershipSpeedbooleanreceiveTracks
Spring.GetGrass (function)
[source]Spring.GetGrass(number, number) -> numberParameters
Returns
Spring.GetSmoothMeshHeight (function)
[source]Spring.GetSmoothMeshHeight(number, number) -> numberParameters
Returns
numberheight
Spring.TestMoveOrder (function)
[source]Spring.TestMoveOrder(integer, number, number, number, number?, number?, number?, boolean?, boolean?, boolean?) -> booleanParameters
integerunitDefIDnumberposXnumberposYnumberposZnumber?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
BuildOrderBlockedStatusblockinginteger?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, numberParameters
integerunitDefIDnumberposXnumberposYnumberposZnumber?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, numberParameters
integerteamIDintegerunitDefIDnumberposXnumberposYnumberposZnumbersearchRadiusnumberminDistancenumberbuildFacing- one of SOUTH = 0, EAST = 1, NORTH = 2, WEST = 3
Returns
Spring.GetPositionLosState (function)
[source]Spring.GetPositionLosState(number, number, number, integer?) -> boolean, boolean, boolean, booleanParameters
numberposXnumberposYnumberposZinteger?allyTeamID
Returns
booleaninLosOrRadarbooleaninLosbooleaninRadarbooleaninJammer
Spring.IsPosInLos (function)
[source]Spring.IsPosInLos(number, number, number, integer?) -> booleanParameters
numberposXnumberposYnumberposZinteger?allyTeamID
Returns
Spring.IsPosInRadar (function)
[source]Spring.IsPosInRadar(number, number, number, integer?) -> booleanParameters
numberposXnumberposYnumberposZinteger?allyTeamID
Returns
Spring.IsPosInAirLos (function)
[source]Spring.IsPosInAirLos(number, number, number, integer?) -> booleanParameters
numberposXnumberposYnumberposZinteger?allyTeamID
Returns
Spring.GetUnitLosState (function)
Get unit los state (bitmask)
[source]
Spring.GetUnitLosState(integer, integer?, true) -> (LosMask|integer)?Parameters
integerunitIDinteger?allyTeamIDtrueraw- Return a bitmask.
Returns
Spring.GetUnitLosState (function overload 1)
Get unit los state (table)
[source]
Spring.GetUnitLosState(integer, integer?, false?) -> table<("los"|"radar"...),boolean>?Parameters
integerunitIDinteger?allyTeamIDfalse?raw- Return a table.
Returns
table<("los"|"radar"...),boolean>?los- A table of LOS state names as keys and booleans as values, or
nilifunitIDis invalid.
Spring.IsUnitInLos (function)
[source]Spring.IsUnitInLos(integer, integer) -> booleanParameters
integerunitIDintegerallyTeamID
Returns
booleaninLos
Spring.IsUnitInAirLos (function)
[source]Spring.IsUnitInAirLos(integer, integer) -> booleanParameters
integerunitIDintegerallyTeamID
Returns
booleaninAirLos
Spring.IsUnitInRadar (function)
[source]Spring.IsUnitInRadar(integer, integer) -> booleanParameters
integerunitIDintegerallyTeamID
Returns
booleaninRadar
Spring.IsUnitInJammer (function)
[source]Spring.IsUnitInJammer(integer, integer) -> booleanParameters
integerunitIDintegerallyTeamID
Returns
booleaninJammer
Spring.GetModelRootPiece (function)
[source]Spring.GetModelRootPiece(string) -> numberParameters
stringmodelName
Returns
numberindex- of the root piece
Spring.GetModelPieceMap (function)
[source]Spring.GetModelPieceMap(string) -> table<string,number>?Parameters
stringmodelName
Returns
table<string,number>?pieceInfos- where keys are piece names and values are indices
Spring.GetModelPieceList (function)
[source]Spring.GetModelPieceList(string) -> string[]?Parameters
stringmodelName
Returns
string[]?pieceNames
Spring.GetUnitRootPiece (function)
[source]Spring.GetUnitRootPiece(integer) -> numberParameters
integerunitID
Returns
numberindex- of the root piece
Spring.GetUnitPieceMap (function)
[source]Spring.GetUnitPieceMap(integer) -> table<string,number>?Parameters
integerunitID
Returns
table<string,number>?pieceInfos- where keys are piece names and values are indices
Spring.GetUnitPieceList (function)
[source]Spring.GetUnitPieceList(integer) -> string[]Parameters
integerunitID
Returns
string[]pieceNames
Spring.GetUnitPieceInfo (function)
[source]Spring.GetUnitPieceInfo(integer, integer) -> PieceInfo?Parameters
integerunitIDintegerpieceIndex
Returns
Spring.GetUnitPiecePosDir (function)
[source]Spring.GetUnitPiecePosDir(integer, integer) -> number?, number, number, number, number, numberParameters
integerunitIDintegerpieceIndex
Returns
Spring.GetUnitPiecePosition (function)
[source]Spring.GetUnitPiecePosition(integer, integer) -> number?, number, numberParameters
integerunitIDintegerpieceIndex
Returns
Spring.GetUnitPieceDirection (function)
[source]Spring.GetUnitPieceDirection(integer, integer) -> number?, number, numberParameters
integerunitIDintegerpieceIndex
Returns
Spring.GetUnitPieceMatrix (function)
[source]Spring.GetUnitPieceMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
integerunitID
Returns
number?m11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.GetFeatureRootPiece (function)
[source]Spring.GetFeatureRootPiece(integer) -> numberParameters
integerfeatureID
Returns
numberindex- of the root piece
Spring.GetFeaturePieceMap (function)
[source]Spring.GetFeaturePieceMap(integer) -> table<string,number>Parameters
integerfeatureID
Returns
table<string,number>pieceInfos- where keys are piece names and values are indices
Spring.GetFeaturePieceList (function)
[source]Spring.GetFeaturePieceList(integer) -> string[]Parameters
integerfeatureID
Returns
string[]pieceNames
Spring.GetFeaturePieceInfo (function)
[source]Spring.GetFeaturePieceInfo(integer, integer) -> PieceInfo?Parameters
integerfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePiecePosDir (function)
[source]Spring.GetFeaturePiecePosDir(integer, integer) -> number?, number, number, number, number, numberParameters
integerfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePiecePosition (function)
[source]Spring.GetFeaturePiecePosition(integer, integer) -> number?, number, numberParameters
integerfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePieceDirection (function)
[source]Spring.GetFeaturePieceDirection(integer, integer) -> number?, number, numberParameters
integerfeatureIDintegerpieceIndex
Returns
Spring.GetFeaturePieceMatrix (function)
[source]Spring.GetFeaturePieceMatrix(integer) -> number?, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberParameters
integerfeatureID
Returns
number?m11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
Spring.GetUnitScriptPiece (function)
[source]Spring.GetUnitScriptPiece(integer) -> integer[]Parameters
integerunitID
Returns
integer[]pieceIndices
Spring.GetUnitScriptPiece (function overload 1)
[source]Spring.GetUnitScriptPiece(integer, integer) -> integerParameters
integerunitIDintegerscriptPiece
Returns
integerpieceIndex
Spring.GetUnitScriptNames (function)
[source]Spring.GetUnitScriptNames(integer) -> table<string,number>Parameters
integerunitID
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, numberParameters
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, numberParameters
Returns
Spring.GetRadarErrorParams (function)
[source]Spring.GetRadarErrorParams(integer) -> number?, number, numberParameters
integerallyTeamID
Returns
number?radarErrorSize- actual radar error size (when allyTeamID is allied to current team) or base radar error size
numberbaseRadarErrorSizenumberbaseRadarErrorMult
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, ]*) -> nilParameters
Returns
Spring.Log (function)
Logs a message to the logfile/console.
[source]
Spring.Log(string, (LogLevel|LOG)?, [string, ]*) -> nilParameters
stringsection- Sets an arbitrary section. Level filtering can be applied per-section
(LogLevel|LOG)?logLevel- (Default:
“notice”) string...- messages
Spring.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
CallAsTeamOptionsoptions- Options.
fun(...)func- The function to call.
any...- Arguments to pass to the function.
Returns
any ...The- return values of the function.
Fields
Callins (class)
[source]Members
Callins:Initialize (function)
Called when the addon is (re)loaded.
[source]
Callins:Initialize() -> nilCallins:LoadCode (function)
Called when the game is (re)loaded.
[source]
Callins:LoadCode() -> nilCallins:Shutdown (function)
Called when the addon or the game is shutdown.
[source]
Callins:Shutdown() -> nilReturns
Callins:GotChatMsg (function)
Called when a player issues a UI command e.g. types /foo or /luarules foo.
[source]
Callins:GotChatMsg(string, integer) -> nilParameters
Callins:Load (function)
Called after GamePreload and before GameStart. See Lua_SaveLoad.
[source]
Callins:Load(table) -> nilParameters
tablezipReader
Callins:GamePreload (function)
Called before the 0 gameframe.
Is not called when a saved game is loaded.
[source]
Callins:GamePreload() -> nilCallins:GameStart (function)
Called upon the start of the game.
[source]
Is not called when a saved game is loaded.
Callins:GameStart() -> nilCallins:GameOver (function)
Called when the game ends
[source]
Callins:GameOver(number[]) -> nilParameters
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) -> nilParameters
Callins:GameFrame (function)
Called for every game simulation frame (30 per second).
[source]
Callins:GameFrame(number) -> nilParameters
numberframe- Starts at frame 1
Callins:GameFramePost (function)
Called at the end of every game simulation frame
[source]
Callins:GameFramePost(number) -> nilParameters
numberframe- Starts at frame 1
Callins:GameID (function)
Called once to deliver the gameID
[source]
Callins:GameID(string) -> nilParameters
stringgameID- encoded in hex.
Callins:TeamDied (function)
Called when a team dies (see Spring.KillTeam).
[source]
Callins:TeamDied(integer) -> nilParameters
integerteamID
Callins:TeamChanged (function)
[source]Callins:TeamChanged(integer) -> nilParameters
integerteamID
Callins:PlayerChanged (function)
Called whenever a player’s status changes e.g. becoming a spectator.
[source]
Callins:PlayerChanged(integer) -> nilParameters
integerplayerID
Callins:PlayerAdded (function)
Called whenever a new player joins the game.
[source]
Callins:PlayerAdded(integer) -> nilParameters
integerplayerID
Callins:PlayerRemoved (function)
Called whenever a player is removed from the game.
[source]
Callins:PlayerRemoved(integer, string) -> nilParameters
Callins:UnitCreated (function)
Called at the moment the unit is created.
[source]
Callins:UnitCreated(integer, integer, integer, integer?) -> nilParameters
Callins:UnitFinished (function)
Called at the moment the unit is completed.
[source]
Callins:UnitFinished(integer, integer, integer) -> nilParameters
Callins:UnitFromFactory (function)
Called when a factory finishes construction of a unit.
[source]
Callins:UnitFromFactory(integer, integer, integer, integer, integer, boolean) -> nilParameters
Callins:UnitReverseBuilt (function)
Called when a living unit becomes a nanoframe again.
[source]
Callins:UnitReverseBuilt(integer, integer, integer) -> nilParameters
Callins:UnitConstructionDecayed (function)
Called when a unit being built starts decaying.
[source]
Callins:UnitConstructionDecayed(integer, integer, integer, number, number, number) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamnumbertimeSinceLastBuildnumberiterationPeriodnumberpart
Callins:UnitDestroyed (function)
Called when a unit is destroyed.
[source]
Callins:UnitDestroyed(integer, integer, integer, integer, integer, number, integer) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamintegerattackerIDintegerattackerDefIDnumberattackerTeamintegerweaponDefID
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) -> nilParameters
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) -> nilParameters
Callins:UnitIdle (function)
Called when a unit is idle (empty command queue).
[source]
Callins:UnitIdle(integer, integer, integer) -> nilParameters
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) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamintegercmdIDtablecmdParamsCommandOptionsoptionsnumbercmdTag
Callins:UnitCmdDone (function)
Called when a unit completes a command.
[source]
Callins:UnitCmdDone(integer, integer, integer, integer, table, CommandOptions, number) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamintegercmdIDtablecmdParamsCommandOptionsoptionsnumbercmdTag
Callins:UnitDamaged (function)
Called when a unit is damaged (after UnitPreDamaged).
[source]
Callins:UnitDamaged(integer, integer, integer, number, number, integer, integer, integer, integer, number) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamnumberdamagenumberparalyzerintegerweaponDefIDintegerprojectileIDintegerattackerIDintegerattackerDefIDnumberattackerTeam
Callins:UnitStunned (function)
Called when a unit changes its stun status.
[source]
Callins:UnitStunned(integer, integer, integer, boolean) -> nilParameters
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) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamnumberexperiencenumberoldExperience
Callins:UnitHarvestStorageFull (function)
Called when a unit’s harvestStorage is full (according to its unitDef’s entry).
[source]
Callins:UnitHarvestStorageFull(integer, integer, integer) -> nilParameters
Callins:UnitSeismicPing (function)
Called when a unit emits a seismic ping.
[source]
See seismicSignature.
Callins:UnitSeismicPing(number, number, number, number, integer, integer, integer) -> nilParameters
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) -> nilParameters
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) -> nilParameters
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) -> nilParameters
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) -> nilParameters
Callins:UnitLoaded (function)
Called when a unit is loaded by a transport.
[source]
Callins:UnitLoaded(integer, integer, integer, integer, integer) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamintegertransportIDintegertransportTeam
Callins:UnitUnloaded (function)
Called when a unit is unloaded by a transport.
[source]
Callins:UnitUnloaded(integer, integer, integer, integer, integer) -> nilParameters
integerunitIDintegerunitDefIDintegerunitTeamintegertransportIDintegertransportTeam
Callins:UnitEnteredUnderwater (function)
[source]Callins:UnitEnteredUnderwater(integer, integer, integer) -> nilParameters
Callins:UnitEnteredWater (function)
[source]Callins:UnitEnteredWater(integer, integer, integer) -> nilParameters
Callins:UnitLeftAir (function)
[source]Callins:UnitLeftAir(integer, integer, integer) -> nilParameters
Callins:UnitLeftUnderwater (function)
[source]Callins:UnitLeftUnderwater(integer, integer, integer) -> nilParameters
Callins:UnitLeftWater (function)
[source]Callins:UnitLeftWater(integer, integer, integer) -> nilParameters
Callins:UnitEnteredAir (function)
[source]Callins:UnitEnteredAir(integer, integer, integer) -> nilParameters
Callins:UnitCloaked (function)
Called when a unit cloaks.
[source]
Callins:UnitCloaked(integer, integer, integer) -> nilParameters
Callins:UnitDecloaked (function)
Called when a unit decloaks.
[source]
Callins:UnitDecloaked(integer, integer, integer) -> nilParameters
Callins:UnitUnitCollision (function)
Called when two units collide.
Both units must be registered with Script.SetWatchUnit.
[source]
Callins:UnitUnitCollision(integer, integer) -> nilParameters
integercolliderIDintegercollideeID
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) -> nilParameters
integercolliderIDintegercollideeID
Callins:UnitMoveFailed (function)
[source]Callins:UnitMoveFailed(integer, integer, integer) -> nilParameters
Callins:UnitArrivedAtGoal (function)
[source]Callins:UnitArrivedAtGoal(integer, integer, integer) -> nilParameters
Callins:RenderUnitDestroyed (function)
Called just before a unit is invalid, after it finishes its death animation.
[source]
Callins:RenderUnitDestroyed(integer, integer, integer) -> nilParameters
Callins:FeatureCreated (function)
Called when a feature is created.
[source]
Callins:FeatureCreated(integer, integer) -> nilParameters
integerfeatureIDintegerallyTeamID
Callins:FeatureDestroyed (function)
Called when a feature is destroyed.
[source]
Callins:FeatureDestroyed(integer, integer) -> nilParameters
integerfeatureIDintegerallyTeamID
Callins:FeatureDamaged (function)
Called when a feature is damaged.
[source]
Callins:FeatureDamaged(integer, integer, number, number, integer, integer, integer, integer, number) -> nilParameters
integerfeatureIDintegerfeatureDefIDnumberfeatureTeamnumberdamageintegerweaponDefIDintegerprojectileIDintegerattackerIDintegerattackerDefIDnumberattackerTeam
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) -> nilParameters
integerproIDintegerproOwnerIDintegerweaponDefID
Callins:ProjectileDestroyed (function)
Called when the projectile is destroyed.
[source]
Callins:ProjectileDestroyed(integer, integer, integer) -> nilParameters
integerproIDintegerownerIDintegerproWeaponDefID
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) -> booleanParameters
integerweaponDefIDnumberpxnumberpynumberpzintegerattackerIDintegerprojectileID
Returns
booleannoGfx- 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) -> nilParameters
Callins:RecvLuaMsg (function)
Receives messages from unsynced sent via Spring.SendLuaRulesMsg or Spring.SendLuaUIMsg.
[source]
Callins:RecvLuaMsg(string, integer) -> nilParameters
Callins:Save (function)
Called when a chat command ‘/save’ or ‘/savegame’ is received.
[source]
Callins:Save(table) -> nilParameters
tablezip- 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, numberReturns
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) -> nilParameters
numberdt- the time since the last update.
Callins:ViewResize (function)
Called whenever the window is resized.
[source]
Callins:ViewResize(number, number) -> nilParameters
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() -> nilCallins:SunChanged (function)
[source]Callins:SunChanged() -> nilCallins:DefaultCommand (function)
Used to set the default command when a unit is selected.
[source]
Callins:DefaultCommand(("unit"|"feature"), integer) -> nilParameters
Callins:DrawGenesis (function)
Use this callin to update textures, shaders, etc.
[source]
Doesn’t render to screen! Also available to LuaMenu.
Callins:DrawGenesis() -> nilCallins:DrawWorld (function)
Spring draws command queues, ‘map stuff’, and map marks.
[source]
Callins:DrawWorld() -> nilCallins:DrawWorldPreUnit (function)
Spring draws units, features, some water types, cloaked units, and the sun.
[source]
Callins:DrawWorldPreUnit() -> nilCallins:DrawPreDecals (function)
Called before decals are drawn
[source]
Callins:DrawPreDecals() -> nilCallins:DrawWaterPost (function)
[source]Callins:DrawWaterPost() -> nilCallins: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() -> nilCallins:DrawWorldShadow (function)
[source]Callins:DrawWorldShadow() -> nilCallins:DrawWorldReflection (function)
[source]Callins:DrawWorldReflection() -> nilCallins:DrawWorldRefraction (function)
[source]Callins:DrawWorldRefraction() -> nilCallins: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() -> nilCallins:DrawGroundPostForward (function)
[source]Callins:DrawGroundPostForward() -> nilCallins: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() -> nilCallins:DrawGroundDeferred (function)
[source]Callins:DrawGroundDeferred() -> nilCallins: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() -> nilCallins: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() -> nilCallins: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() -> nilCallins:DrawShadowUnitsLua (function)
[source]Callins:DrawShadowUnitsLua() -> nilCallins:DrawShadowFeaturesLua (function)
[source]Callins:DrawShadowFeaturesLua() -> nilCallins: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) -> nilParameters
booleandrawAboveWaterbooleandrawBelowWaterbooleandrawReflectionbooleandrawRefraction
Callins:DrawScreen (function)
Also available to LuaMenu.
[source]
Callins:DrawScreen(number, number) -> nilParameters
Callins:DrawScreenEffects (function)
[source]Callins:DrawScreenEffects(number, number) -> nilParameters
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) -> nilParameters
Callins:DrawInMiniMap (function)
[source]Callins:DrawInMiniMap(number, number) -> nilParameters
numbersx- relative to the minimap’s position and scale.
numbersy- relative to the minimap’s position and scale.
Callins:DrawInMiniMapBackground (function)
[source]Callins:DrawInMiniMapBackground(number, number) -> nilParameters
numbersx- relative to the minimap’s position and scale.
numbersy- 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) -> nilParameters
integerserverFrameNum
Callins:KeyMapChanged (function)
Called when the keymap changes
[source]
Can be caused due to a change in language or keyboard
Callins:KeyMapChanged() -> nilCallins: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) -> booleanParameters
numberkeyCodeKeyModifiersmodsbooleanisRepeat- If you want an action to occur only once check for isRepeat == false.
booleanlabel- the name of the key
numberutf32char- (deprecated) always 0
numberscanCodetableactionList- the list of actions for this keypress
Returns
booleanhalt- 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) -> booleanParameters
numberkeyCodeKeyModifiersmodsbooleanlabel- the name of the key
numberutf32char- (deprecated) always 0
numberscanCodetableactionList- the list of actions for this keyrelease
Returns
Callins:TextInput (function)
Called whenever a key press results in text input.
[source]
Callins:TextInput(string) -> nilParameters
stringutf8char
Callins:TextEditing (function)
[source]Callins:TextEditing(string, number, number) -> nilParameters
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) -> booleanParameters
Returns
booleanbecomeMouseOwner
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) -> booleanParameters
Returns
booleanbecomeMouseOwner
Callins:MouseMove (function)
Called when the mouse is moved.
[source]
Callins:MouseMove(number, number, number, number, number) -> nilParameters
numberx- final x position
numbery- final y position
numberdx- distance travelled in x
numberdy- distance travelled in y
numberbutton
Callins:MouseWheel (function)
Called when the mouse wheel is moved.
[source]
Callins:MouseWheel(boolean, number) -> nilParameters
Callins:IsAbove (function)
Called every Update.
[source]
Must return true for Mouse* events and Spring.GetToolTip to be called.
Callins:IsAbove(number, number) -> booleanParameters
Returns
booleanisAbove
Callins:GetTooltip (function)
Called when Spring.IsAbove returns true.
[source]
Callins:GetTooltip(number, number) -> stringParameters
Returns
stringtooltip
Callins:ActiveCommandChanged (function)
Called when a command is issued.
[source]
Callins:ActiveCommandChanged(integer?, integer?) -> nilParameters
Callins:CameraRotationChanged (function)
Called whenever the camera rotation changes
[source]
Callins:CameraRotationChanged(number, number, number) -> nilParameters
numberrotX- Camera rotation around the x axis in radians.
numberrotY- Camera rotation around the y axis in radians.
numberrotZ- Camera rotation around the z axis in radians.
Callins:CameraPositionChanged (function)
Called whenever the camera position changes
[source]
Callins:CameraPositionChanged(number, number, number) -> nilParameters
numberposX- Camera position x in world coordinates
numberposY- Camera position y in world coordinates
numberposZ- Camera position z in world coordinates
Callins:CommandNotify (function)
Called when a command is issued.
[source]
Callins:CommandNotify(integer, table, CommandOptions) -> booleanParameters
integercmdIDtablecmdParamsCommandOptionsoptions
Returns
booleanReturning- 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) -> nilParameters
Callins:GroupChanged (function)
Called when a unit is added to or removed from a control group.
[source]
Callins:GroupChanged(integer) -> nilParameters
integergroupID
Callins:WorldTooltip (function)
[source]Callins:WorldTooltip("unit", integer) -> stringParameters
Returns
stringtooltip
Callins:WorldTooltip (function overload 1)
[source]Callins:WorldTooltip("feature", integer) -> stringParameters
Returns
stringtooltip
Callins:WorldTooltip (function overload 2)
[source]Callins:WorldTooltip("ground", number, number, number) -> stringParameters
Returns
stringtooltip
Callins:WorldTooltip (function overload 3)
[source]Callins:WorldTooltip("selection") -> stringParameters
"selection"type
Returns
stringtooltip
Callins:MapDrawCmd (function)
[source]Callins:MapDrawCmd(integer, "point", number, number, number, string) -> nilParameters
Callins:MapDrawCmd (function overload 1)
[source]Callins:MapDrawCmd(integer, "line", number, number, number, number, number, number) -> nilParameters
Callins:MapDrawCmd (function overload 2)
[source]Callins:MapDrawCmd(integer, "erase", number, number, number, number) -> nilParameters
Callins:GameSetup (function)
Fired when the pregame stage is reached
Pregame is the stage where player readiness is managed before a game starts. Game only starts once all players are ready.
[source]
Callins:GameSetup(READY_MESSAGE, boolean, table<number,READY_STATE>) -> boolean?, boolean?Parameters
READY_MESSAGEstate- the current message the engine would display to the player
booleanready- whether the player is currently ready or not
table<number,READY_STATE>playerStates- indexed by playerID
Returns
boolean?gameHandled- disables the engine ui when true
boolean?newReady- whether the player is ready (ignored unless
gameHandled = true)
Callins:RecvSkirmishAIMessage (function)
[source]Callins:RecvSkirmishAIMessage(integer, string) -> nilParameters
Callins:DownloadQueued (function)
Called when a Pr-downloader download is queued
[source]
Callins:DownloadQueued(integer, string, string) -> nilParameters
Callins:DownloadStarted (function)
Called when a Pr-downloader download is started via VFS.DownloadArchive.
[source]
Callins:DownloadStarted(integer) -> nilParameters
integerid
Callins:DownloadFinished (function)
Called when a Pr-downloader download finishes successfully.
[source]
Callins:DownloadFinished(integer) -> nilParameters
integerid
Callins:DownloadFailed (function)
Called when a Pr-downloader download fails to complete.
[source]
Callins:DownloadFailed(integer, integer) -> nilParameters
Callins:DownloadProgress (function)
Called incrementally during a Pr-downloader download.
[source]
Callins:DownloadProgress(integer, integer, integer) -> nilParameters
integeridintegerdownloadedintegertotal
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) -> booleanParameters
integerunitIDintegerunitDefIDintegerunitTeamintegercmdIDnumber[]cmdParamsCommandOptionscmdOptionsnumbercmdTag
Returns
booleanwhether- 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) -> booleanParameters
integerunitIDintegerunitDefIDintegerunitTeamintegercmdIDnumber[]cmdParamsCommandOptionscmdOptionsnumbercmdTagbooleansyncedbooleanfromLua
Returns
booleanwhether- 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, booleanParameters
integerunitDefIDintegerbuilderIDintegerbuilderTeamnumberxnumberynumberzFacingIntegerfacing
Returns
SyncedCallins:AllowUnitTransfer (function)
Called just before a unit is transferred to a different team.
[source]
SyncedCallins:AllowUnitTransfer(integer, integer, integer, integer, boolean) -> booleanParameters
Returns
booleanwhether- 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) -> booleanParameters
integerbuilderIDintegerbuilderTeamintegerunitIDintegerunitDefIDnumberpart
Returns
booleanwhether- or not the build makes progress.
SyncedCallins:AllowUnitCaptureStep (function)
[source]SyncedCallins:AllowUnitCaptureStep(integer, integer, integer, integer, number) -> booleanParameters
integerbuilderIDintegerbuilderTeamintegerunitIDintegerunitDefIDnumberpart
Returns
booleanwhether- or not the capture makes progress.
SyncedCallins:AllowUnitTransport (function)
[source]SyncedCallins:AllowUnitTransport(integer, integer, integer, integer, integer, integer) -> booleanParameters
integertransporterIDintegertransporterUnitDefIDintegertransporterTeamintegertransporteeIDintegertransporteeUnitDefIDintegertransporteeTeam
Returns
booleanwhether- or not the transport is allowed
SyncedCallins:AllowUnitTransportLoad (function)
[source]SyncedCallins:AllowUnitTransportLoad(integer, integer, integer, integer, integer, integer, number, number, number) -> booleanParameters
integertransporterIDintegertransporterUnitDefIDintegertransporterTeamintegertransporteeIDintegertransporteeUnitDefIDintegertransporteeTeamnumberxnumberynumberz
Returns
booleanwhether- or not the transport load is allowed
SyncedCallins:AllowUnitTransportUnload (function)
[source]SyncedCallins:AllowUnitTransportUnload(integer, integer, integer, integer, integer, integer, number, number, number) -> booleanParameters
integertransporterIDintegertransporterUnitDefIDintegertransporterTeamintegertransporteeIDintegertransporteeUnitDefIDintegertransporteeTeamnumberxnumberynumberz
Returns
booleanwhether- or not the transport unload is allowed
SyncedCallins:AllowUnitCloak (function)
[source]SyncedCallins:AllowUnitCloak(integer, integer?) -> booleanParameters
Returns
booleanwhether- unit is allowed to cloak
SyncedCallins:AllowUnitCloak (function overload 1)
[source]SyncedCallins:AllowUnitCloak(integer, integer?, number?) -> booleanParameters
Returns
booleanwhether- unit is allowed to decloak
SyncedCallins:AllowUnitKamikaze (function)
[source]SyncedCallins:AllowUnitKamikaze(integer, integer) -> booleanParameters
Returns
booleanwhether- unit is allowed to selfd
SyncedCallins:AllowFeatureCreation (function)
Called just before feature is created.
[source]
SyncedCallins:AllowFeatureCreation(integer, integer, number, number, number) -> booleanParameters
integerfeatureDefIDintegerteamIDnumberxnumberynumberz
Returns
booleanwhether- 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) -> booleanParameters
integerbuilderIDintegerbuilderTeamintegerfeatureIDintegerfeatureDefIDnumberpart
Returns
booleanwhether- 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) -> booleanParameters
Returns
booleanwhether- 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) -> booleanParameters
Returns
booleanwhether- 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) -> booleanParameters
Returns
booleanallow
SyncedCallins:AllowBuilderHoldFire (function)
Called when a construction unit wants to “use his nano beams”.
[source]
SyncedCallins:AllowBuilderHoldFire(integer, integer, unknown) -> booleanParameters
Returns
booleanactionAllowed
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) -> booleanParameters
integerplayerIDintegerteamIDnumberreadyStatenumberclampedXnumberclampedYnumberclampedZnumberrawXnumberrawYnumberrawZ
Returns
booleanallow
SyncedCallins:MoveCtrlNotify (function)
Enable both Spring.MoveCtrl.SetCollideStop and Spring.MoveCtrl.SetTrackGround to enable this call-in.
[source]
SyncedCallins:MoveCtrlNotify(integer, integer, integer, number) -> booleanParameters
integerunitIDintegerunitDefIDintegerunitTeamnumberdata- was supposed to indicate the type of notification but currently never has a value other than 1 (“unit hit the ground”).
Returns
booleanwhether- 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) -> booleanParameters
integerunitIDintegerunitDefIDintegerunitTeamintegerbuildUnitIDintegerbuildUnitDefIDintegerbuildUnitTeam
Returns
booleanif- 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, numberParameters
integerunitIDintegerunitDefIDintegerunitTeamnumberdamagebooleanparalyzerinteger?weaponDefID- Synced Only
integer?projectileID- Synced Only
integer?attackerID- Synced Only
integer?attackerDefID- Synced Only
integer?attackerTeam- Synced Only
Returns
numbernewDamagenumberimpulseMult
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, numberParameters
integerfeatureIDintegerfeatureDefIDintegerfeatureTeamnumberdamageintegerweaponDefIDintegerprojectileIDintegerattackerIDintegerattackerDefIDintegerattackerTeam
Returns
numbernewDamagenumberimpulseMult
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) -> booleanParameters
integerprojectileIDintegerprojectileOwnerIDintegershieldWeaponNumintegershieldCarrierIDbooleanbounceProjectileintegerbeamEmitterWeaponNumintegerbeamEmitterUnitIDnumberstartXnumberstartYnumberstartZnumberhitXnumberhitYnumberhitZ
Returns
booleanif- 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, booleanParameters
integerattackerIDintegerattackerWeaponNumintegerattackerWeaponDefID
Returns
booleanallowCheckbooleanignoreCheck
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, numberParameters
integerattackerIDintegertargetIDintegerattackerWeaponNumintegerattackerWeaponDefIDnumberdefPriority
Returns
booleanallowednumberthe- 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) -> booleanParameters
integerinterceptorUnitIDintegerinterceptorWeaponIDintegertargetProjectileID
Returns
booleanallowed
SyncedCallins.SendToUnsynced (function)
Invoke UnsyncedCallins:RecvFromSynced callin with the given arguments.
[source]
See UnsyncedCallins:RecvFromSynced
SyncedCallins.SendToUnsynced([(boolean|number|string|table)?, ]*) -> nilParameters
(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, ]*) -> nilParameters
any...
UnsyncedCallins:DrawUnit (function)
For custom rendering of units
[source]
Deprecated
UnsyncedCallins:DrawUnit(integer, number) -> booleanParameters
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawFeature (function)
For custom rendering of features
[source]
Deprecated
UnsyncedCallins:DrawFeature(integer, number) -> booleanParameters
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawShield (function)
For custom rendering of shields.
[source]
Deprecated
UnsyncedCallins:DrawShield(integer, integer, number) -> booleanParameters
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawProjectile (function)
For custom rendering of weapon (& other) projectiles
[source]
Deprecated
UnsyncedCallins:DrawProjectile(integer, number) -> booleanParameters
integerprojectileIDnumberdrawMode
Returns
booleansuppressEngineDraw
UnsyncedCallins:DrawMaterial (function)
[source]Deprecated
UnsyncedCallins:DrawMaterial(integer, number) -> booleanParameters
Returns
booleansuppressEngineDraw
gl (table)
Callouts for OpenGL API
Only setters and getters for OpenGL usage in Recoil, see GL for constants.
[source]
See GL
Members
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) -> booleanParameters
stringfilePath- VFS path to the file, for example “fonts/myfont.ttf”. Uses VFS.RAW_FIRST access mode.
Returns
booleansuccess
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() -> nilReturns
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.CreateFBO (function)
[source]gl.CreateFBO(FBODescription) -> FBOParameters
Returns
gl.DeleteFBO (function)
This doesn’t delete the attached objects!
[source]
gl.DeleteFBO(FBO) -> nilParameters
gl.IsValidFBO (function)
[source]gl.IsValidFBO(FBO, GL?) -> boolean, number?Parameters
Returns
gl.ActiveFBO (function)
[source]gl.ActiveFBO(FBO, fun(...), [any, ]*) -> nilParameters
gl.ActiveFBO (function overload 1)
[source]gl.ActiveFBO(FBO, GL?, fun(...), [any, ]*) -> nilParameters
gl.RawBindFBO (function)
Bind default or specified via rawFboId numeric id of FBO
[source]
gl.RawBindFBO(nil, GL?, integer?) -> nilParameters
Returns
gl.RawBindFBO (function overload 1)
[source]gl.RawBindFBO(FBO, GL?) -> numberParameters
Returns
numberpreviouslyBoundRawFboId
gl.BlitFBO (function)
needs GLAD_GL_EXT_framebuffer_blit
[source]
gl.BlitFBO(number, number, number, number, number, number, number, number, number?, number?) -> nilParameters
numberx0Srcnumbery0Srcnumberx1Srcnumbery1Srcnumberx0Dstnumbery0Dstnumberx1Dstnumbery1Dstnumber?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?) -> nilParameters
FBOfboSrcnumberx0Srcnumbery0Srcnumberx1Srcnumbery1SrcFBOfboDstnumberx0Dstnumbery0Dstnumberx1Dstnumbery1Dstnumber?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?) -> booleanParameters
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
booleansuccess
gl.HasExtension (function)
[source]gl.HasExtension(string) -> booleanParameters
stringext
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) -> nilParameters
gl.GetScreenViewTrans (function)
[source]gl.GetScreenViewTrans() -> number, number, numberReturns
gl.GetViewSizes (function)
[source]gl.GetViewSizes() -> number, numberReturns
gl.GetViewRange (function)
[source]gl.GetViewRange() -> number, number, number, numberReturns
numbernearPlaneDistnumberfarPlaneDistnumberminViewRangenumbermaxViewRange
gl.SlaveMiniMap (function)
[source]gl.SlaveMiniMap(boolean) -> nilParameters
booleannewMode
gl.ConfigMiniMap (function)
[source]gl.ConfigMiniMap(integer, integer, integer, integer) -> nilParameters
gl.DrawMiniMap (function)
[source]gl.DrawMiniMap(boolean?) -> nilParameters
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?) -> nilParameters
boolean?userDefinedBlending- When
truedoesn’t set the gl.BlendFunc automatically. Defaults tofalse.
gl.EndText (function)
[source]gl.EndText() -> nilgl.Text (function)
[source]gl.Text(string, number, number, number, string?) -> nilParameters
stringtextnumberxnumberynumbersizestring?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) -> numberParameters
stringtext
Returns
numberwidth
gl.GetTextHeight (function)
[source]gl.GetTextHeight(string) -> number, number, integerParameters
stringtext
Returns
gl.Unit (function)
Draw the unit, applying transform.
[source]
gl.Unit(integer, boolean?, integer?, boolean?, boolean?) -> nilParameters
integerunitIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
false) Skip theDrawUnitcallin. 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?) -> nilParameters
integerunitIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
true) Skip theDrawUnitcallin. boolean?fullModel- (Default:
true)
gl.UnitTextures (function)
[source]gl.UnitTextures(integer, boolean) -> nilParameters
gl.UnitShape (function)
[source]gl.UnitShape(integer, integer, boolean?, boolean?, boolean?) -> nilParameters
integerunitDefIDintegerteamIDboolean?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) -> nilParameters
gl.UnitMultMatrix (function)
[source]gl.UnitMultMatrix(integer) -> nilParameters
integerunitID
gl.UnitPiece (function)
[source]gl.UnitPiece(integer, integer) -> nilParameters
gl.UnitPieceMatrix (function)
[source]gl.UnitPieceMatrix(integer, integer) -> nilParameters
gl.UnitPieceMultMatrix (function)
[source]gl.UnitPieceMultMatrix(integer, integer) -> nilParameters
gl.Feature (function)
Draw the feature, applying transform.
[source]
gl.Feature(integer, boolean?, integer?, boolean?) -> nilParameters
integerfeatureIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
false) Skip theDrawFeaturecallin.
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?) -> nilParameters
integerfeatureIDboolean?doRawDraw- (Default:
false) integer?useLuaMatboolean?noLuaCall- (Default:
true) Skip theDrawFeaturecallin.
gl.FeatureTextures (function)
[source]gl.FeatureTextures(integer, boolean) -> nilParameters
gl.FeatureShape (function)
[source]gl.FeatureShape(integer, integer, boolean?, boolean?, boolean?) -> nilParameters
integerfeatureDefIDintegerteamIDboolean?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) -> nilParameters
integerfeatureDefIDbooleanpush- If
true, push the render state; iffalse, pop it.
gl.FeatureMultMatrix (function)
[source]gl.FeatureMultMatrix(integer) -> nilParameters
integerfeatureID
gl.FeaturePiece (function)
[source]gl.FeaturePiece(integer, integer) -> nilParameters
gl.FeaturePieceMatrix (function)
[source]gl.FeaturePieceMatrix(integer, integer) -> nilParameters
gl.FeaturePieceMultMatrix (function)
[source]gl.FeaturePieceMultMatrix(integer, integer) -> nilParameters
gl.DrawListAtUnit (function)
[source]gl.DrawListAtUnit(integer, integer, boolean?, number?, number?, number?, number?, number?, number?, number?) -> nilParameters
integerunitIDintegerlistIndexboolean?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, ]*) -> nilParameters
gl.DrawGroundCircle (function)
[source]gl.DrawGroundCircle(number, number, number, number, integer) -> nilParameters
numberposXnumberposYnumberposZnumberradiusintegerresolution
gl.DrawGroundCircle (function overload 1)
[source]gl.DrawGroundCircle(number, number, number, number, integer, number, number, integer) -> nilParameters
numberposXnumberposYnumberposZnumberradiusintegerresolutionnumberslopenumbergravityintegerweaponDefID
gl.DrawGroundCircle (function overload 2)
[source]gl.DrawGroundCircle(number, number, number, number, nil, boolean?) -> nilParameters
gl.DrawGroundCircle (function overload 3)
[source]gl.DrawGroundCircle(number, number, number, number, nil, number, number, number, number) -> nilParameters
gl.Shape (function)
[source]gl.Shape(GL, VertexData[]) -> nilParameters
gl.BeginEnd (function)
[source]gl.BeginEnd(GL, unknown, [any, ]*) -> nilParameters
gl.Vertex (function)
[source]gl.Vertex(xy) -> nilParameters
gl.Vertex (function overload 1)
[source]gl.Vertex(xyz) -> nilParameters
gl.Vertex (function overload 2)
[source]gl.Vertex(xyzw) -> nilParameters
gl.Vertex (function overload 3)
[source]gl.Vertex(number, number, number?, number?) -> nilParameters
gl.Normal (function)
[source]gl.Normal(xyz) -> nilParameters
gl.Normal (function overload 1)
[source]gl.Normal(number, number, number) -> nilParameters
gl.TexCoord (function)
[source]gl.TexCoord((number)) -> nilParameters
(number)coord
gl.TexCoord (function overload 1)
[source]gl.TexCoord(xy) -> nilParameters
gl.TexCoord (function overload 2)
[source]gl.TexCoord(xyz) -> nilParameters
gl.TexCoord (function overload 3)
[source]gl.TexCoord(xyzw) -> nilParameters
gl.TexCoord (function overload 4)
[source]gl.TexCoord(number, number?, number?, number?) -> nilParameters
gl.MultiTexCoord (function)
[source]gl.MultiTexCoord(integer, (number)) -> nilParameters
gl.MultiTexCoord (function overload 1)
[source]gl.MultiTexCoord(integer, xy) -> nilParameters
gl.MultiTexCoord (function overload 2)
[source]gl.MultiTexCoord(integer, xyz) -> nilParameters
gl.MultiTexCoord (function overload 3)
[source]gl.MultiTexCoord(integer, xyzw) -> nilParameters
gl.MultiTexCoord (function overload 4)
[source]gl.MultiTexCoord(integer, number, number?, number?, number?) -> nilParameters
gl.SecondaryColor (function)
[source]gl.SecondaryColor(rgb) -> nilParameters
gl.SecondaryColor (function overload 1)
[source]gl.SecondaryColor(number, number, number) -> nilParameters
gl.FogCoord (function)
[source]gl.FogCoord(number) -> nilParameters
numbercoord
gl.EdgeFlag (function)
[source]gl.EdgeFlag(boolean) -> nilParameters
booleanflag
gl.Rect (function)
[source]gl.Rect(number, number, number, number) -> nilParameters
gl.Rect (function overload 1)
[source]gl.Rect(number, number, number, number, boolean?, boolean?) -> nilParameters
numberx1numbery1numberx2numbery2boolean?flipSCoordsboolean?flipTCoords
gl.Rect (function overload 2)
[source]gl.Rect(number, number, number, number, number, number, number, number) -> nilParameters
gl.DispatchCompute (function)
[source]gl.DispatchCompute(integer, integer, integer, integer?) -> nilParameters
gl.MemoryBarrier (function)
[source]gl.MemoryBarrier(integer?) -> nilParameters
integer?barriers- (Default:
4)
gl.Color (function)
[source]gl.Color(number, number, number, number?) -> nilParameters
gl.Color (function overload 1)
[source]gl.Color(rgba) -> nilParameters
gl.Color (function overload 2)
[source]gl.Color(rgb) -> nilParameters
gl.Material (function)
[source]gl.Material(Material) -> nilParameters
gl.ResetState (function)
[source]gl.ResetState() -> nilgl.ResetMatrices (function)
[source]gl.ResetMatrices() -> nilgl.Lighting (function)
[source]gl.Lighting(boolean) -> nilParameters
booleanenable
gl.ShadeModel (function)
[source]gl.ShadeModel(GL) -> nilParameters
gl.Scissor (function)
[source]gl.Scissor(boolean) -> nilParameters
booleanenable
gl.Scissor (function overload 1)
[source]gl.Scissor(integer, integer, integer, integer) -> nilParameters
gl.Viewport (function)
[source]gl.Viewport(integer, integer, integer, integer) -> nilParameters
gl.ColorMask (function)
Enable or disable writing of frame buffer color components.
[source]
gl.ColorMask(boolean) -> nilParameters
booleanrgba
gl.ColorMask (function overload 1)
Enable or disable writing of frame buffer color components.
[source]
gl.ColorMask(boolean, boolean, boolean, boolean) -> nilParameters
gl.DepthMask (function)
Enable or disable writing into the depth buffer.
[source]
gl.DepthMask(boolean) -> nilParameters
booleanenable
gl.DepthTest (function)
Enable or disable depth test.
[source]
gl.DepthTest(boolean) -> nilParameters
booleanenable
gl.DepthTest (function overload 1)
Enable depth test and specify the depth comparison function.
[source]
gl.DepthTest(GL) -> nilParameters
gl.DepthClamp (function)
[source]gl.DepthClamp(boolean) -> nilParameters
booleanenable
gl.Culling (function)
[source]gl.Culling(boolean) -> nilParameters
booleanenable
gl.Culling (function overload 1)
Enable culling and set culling mode.
[source]
gl.Culling(GL) -> nilParameters
gl.LogicOp (function)
[source]gl.LogicOp(boolean) -> nilParameters
booleanenable
gl.LogicOp (function overload 1)
Specify a logical pixel operation for rendering.
[source]
gl.LogicOp(GL) -> nilParameters
gl.Fog (function)
[source]gl.Fog(boolean) -> nilParameters
booleanenable
gl.Blending (function)
[source]gl.Blending(boolean) -> nilParameters
booleanenable
gl.Blending (function overload 1)
[source]gl.Blending(("add"|"alpha_add"|"alpha"|"reset"|"color"|"modulate"...)) -> nilParameters
("add"|"alpha_add"|"alpha"|"reset"|"color"|"modulate"...)mode
gl.Blending (function overload 2)
[source]gl.Blending(GL, GL) -> nilParameters
gl.BlendEquation (function)
[source]gl.BlendEquation(GL) -> nilParameters
gl.BlendFunc (function)
[source]gl.BlendFunc(GL, GL) -> nilParameters
gl.BlendEquationSeparate (function)
[source]gl.BlendEquationSeparate(GL, GL) -> nilParameters
gl.BlendFuncSeparate (function)
[source]gl.BlendFuncSeparate(GL, GL, GL, GL) -> nilParameters
gl.AlphaTest (function)
[source]gl.AlphaTest(boolean) -> nilParameters
booleanenable
gl.AlphaTest (function overload 1)
Specify the alpha test function.
[source]
gl.AlphaTest(GL, number) -> nilParameters
gl.AlphaToCoverage (function)
[source]gl.AlphaToCoverage(boolean) -> nilParameters
booleanenable
gl.PolygonMode (function)
Select polygon rasterization mode.
[source]
gl.PolygonMode(GL, GL) -> nilParameters
gl.PolygonOffset (function)
[source]gl.PolygonOffset(boolean) -> nilParameters
booleanenable
gl.PolygonOffset (function overload 1)
[source]gl.PolygonOffset(number, number) -> nilParameters
gl.StencilTest (function)
[source]gl.StencilTest(boolean) -> nilParameters
booleanenable
gl.StencilMask (function)
Control the front and back writing of individual bits in the stencil planes.
[source]
gl.StencilMask(integer) -> nilParameters
integermask- 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) -> nilParameters
GLfunc- 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.
integerref- Specifies the reference value for the stencil test.
refis clamped to the range[0, 2^n - 1], wherenis the number of bitplanes in the stencil buffer. The initial value is0. integermask- 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) -> nilParameters
GLfail- 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. GLzfail- Specifies the stencil action when the stencil test passes, but the depth test fails. The initial value is
GL.KEEP. GLzpass- 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) -> nilParameters
GLface- 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.
integermask- 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) -> nilParameters
GLface- 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.
GLfunc- 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.
integerref- Specifies the reference value for the stencil test.
refis clamped to the range[0, 2^n - 1], wherenis the number of bitplanes in the stencil buffer. The initial value is0. integermask- 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) -> nilParameters
GLface- 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.
GLfail- 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. GLzfail- Specifies the stencil action when the stencil test passes, but the depth test fails. The initial value is
GL.KEEP. GLzpass- 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) -> nilParameters
booleanenable
gl.LineStipple (function overload 1)
[source]gl.LineStipple(string) -> nilParameters
stringignoredString- The value of this string is ignored, but it still does something.
gl.LineStipple (function overload 2)
[source]gl.LineStipple(integer, integer, integer?) -> nilParameters
gl.LineWidth (function)
[source]gl.LineWidth(number) -> nilParameters
numberwidth
gl.PointSize (function)
[source]gl.PointSize(number) -> nilParameters
numbersize
gl.PointSprite (function)
[source]gl.PointSprite(boolean, boolean?, boolean?) -> nilParameters
booleanenableboolean?enableCoordReplaceboolean?coordOrigintruefor upper left,falsefor lower left, otherwise no change.
gl.PointParameter (function)
[source]gl.PointParameter(number, number, number, number?, number?, number?) -> nilParameters
gl.Texture (function)
[source]gl.Texture(integer, boolean?) -> booleanParameters
Returns
gl.Texture (function overload 1)
[source]gl.Texture(boolean) -> booleanParameters
booleanenable
Returns
gl.Texture (function overload 2)
[source]gl.Texture(integer, string) -> booleanParameters
Returns
gl.Texture (function overload 3)
[source]gl.Texture(string) -> booleanParameters
stringimage
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) -> nilParameters
gl.DeleteTexture (function)
[source]gl.DeleteTexture(string) -> booleanParameters
stringtexName
Returns
gl.DeleteTextureFBO (function)
[source]gl.DeleteTextureFBO(string) -> booleanParameters
stringtexName
Returns
gl.TextureInfo (function)
[source]gl.TextureInfo(string) -> TextureInfoParameters
stringtexName
Returns
gl.CopyToTexture (function)
[source]gl.CopyToTexture(string, integer, integer, integer, integer, integer, integer, GL?, GL?) -> nilParameters
gl.RenderToTexture (function)
[source]gl.RenderToTexture(string, unknown, [any, ]*) -> nilParameters
gl.GenerateMipmap (function)
[source]gl.GenerateMipmap(string) -> nilParameters
stringtexName
gl.ActiveTexture (function)
[source]gl.ActiveTexture(integer, function, [any, ]*) -> nilParameters
gl.TextEnv (function)
[source]gl.TextEnv(GL, GL, number) -> nilParameters
gl.TextEnv (function overload 1)
[source]gl.TextEnv(GL, GL, number?, number?, number?, number?) -> nilParameters
GLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.MultiTexEnv (function)
[source]gl.MultiTexEnv(integer, GL, GL, number) -> nilParameters
gl.MultiTexEnv (function overload 1)
[source]gl.MultiTexEnv(integer, GL, GL, number?, number?, number?, number?) -> nilParameters
integertexNumGLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.TexGen (function)
[source]gl.TexGen(GL, boolean) -> nilParameters
gl.TexGen (function overload 1)
[source]gl.TexGen(GL, GL, number) -> nilParameters
gl.TexGen (function overload 2)
[source]gl.TexGen(GL, GL, number?, number?, number?, number?) -> nilParameters
GLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.MultiTexGen (function)
[source]gl.MultiTexGen(integer, GL, boolean) -> nilParameters
gl.MultiTexGen (function overload 1)
[source]gl.MultiTexGen(integer, GL, GL, number) -> nilParameters
gl.MultiTexGen (function overload 2)
[source]gl.MultiTexGen(integer, GL, GL, number?, number?, number?, number?) -> nilParameters
integertexNumGLtargetGLpnamenumber?r- (Default:
0.0) number?g- (Default:
0.0) number?b- (Default:
0.0) number?a- (Default:
0.0)
gl.BindImageTexture (function)
[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) -> nilParameters
integerunitstring?texID- (nil breaks any existing binding to the image unit)
integer?level- (Default: 0)
integer?layer- (nil binds the entire texture(array/cube), an integer binds a specific layer, ignored by gl if the texture does not support layered bindings)
GL?access- (Default: GL.READ_WRITE) Accepts GL.READ_ONLY, GL.WRITE_ONLY or GL.READ_WRITE.
integerformat- (Example: GL.RGBA16F)
gl.CreateTextureAtlas (function)
[source]gl.CreateTextureAtlas(integer, integer, integer?) -> stringParameters
Returns
stringtexName
gl.FinalizeTextureAtlas (function)
[source]gl.FinalizeTextureAtlas(string) -> booleanParameters
stringtexName
Returns
gl.DeleteTextureAtlas (function)
[source]gl.DeleteTextureAtlas(string) -> booleanParameters
stringtexName
Returns
gl.AddAtlasTexture (function)
[source]gl.AddAtlasTexture(string, string) -> nilParameters
stringtexNamestringsubAtlasTexName
gl.GetAtlasTexture (function)
[source]gl.GetAtlasTexture(string, string) -> number, number, number, numberParameters
stringtexNamestringsubAtlasTexName
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) -> nilParameters
gl.Clear (function overload 1)
[source]gl.Clear(GL, number, number, number, number) -> nilParameters
GLbits- GL.COLOR_BUFFER_BIT or GL.ACCUM_BUFFER_BIT.
numberrnumbergnumberbnumbera
gl.SwapBuffers (function)
[source]gl.SwapBuffers() -> nilgl.Translate (function)
[source]gl.Translate(number, number, number) -> nilParameters
gl.Scale (function)
[source]gl.Scale(number, number, number) -> nilParameters
gl.Rotate (function)
[source]gl.Rotate(number, number, number, number) -> nilParameters
gl.Ortho (function)
[source]gl.Ortho(number, number, number, number, number, number) -> nilParameters
gl.Frustum (function)
[source]gl.Frustum(number, number, number, number, number, number) -> nilParameters
gl.Billboard (function)
[source]gl.Billboard() -> nilgl.Light (function)
[source]gl.Light(integer, boolean) -> nilParameters
gl.Light (function overload 1)
[source]gl.Light(integer, GL, GL) -> nilParameters
gl.Light (function overload 2)
[source]gl.Light(integer, GL, number, number, number, number?) -> nilParameters
gl.ClipPlane (function)
[source]gl.ClipPlane(integer, boolean) -> nilParameters
gl.ClipPlane (function overload 1)
[source]gl.ClipPlane(integer, number, number, number, number) -> nilParameters
gl.ClipDistance (function)
[source]gl.ClipDistance(integer, boolean) -> nilParameters
gl.MatrixMode (function)
[source]gl.MatrixMode(GL) -> nilParameters
gl.LoadIdentity (function)
[source]gl.LoadIdentity() -> nilgl.LoadMatrix (function)
[source]gl.LoadMatrix(string) -> nilParameters
stringmatrix
gl.LoadMatrix (function overload 1)
[source]gl.LoadMatrix(Matrix4x4) -> nilParameters
gl.LoadMatrix (function overload 2)
[source]gl.LoadMatrix() -> number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, numberReturns
numberm11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
gl.MultMatrix (function)
[source]gl.MultMatrix(string) -> nilParameters
stringmatrixName
gl.MultMatrix (function overload 1)
[source]gl.MultMatrix(Matrix4x4) -> nilParameters
gl.MultMatrix (function overload 2)
[source]gl.MultMatrix(number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number) -> nilParameters
numberm11numberm12numberm13numberm14numberm21numberm22numberm23numberm24numberm31numberm32numberm33numberm34numberm41numberm42numberm43numberm44
gl.PushMatrix (function)
[source]gl.PushMatrix() -> nilgl.PopMatrix (function)
[source]gl.PopMatrix() -> nilgl.PushPopMatrix (function)
[source]gl.PushPopMatrix(GL, fun(), [any, ]*) -> nilParameters
gl.PushPopMatrix (function overload 1)
[source]gl.PushPopMatrix(fun(), [any, ]*) -> nilParameters
gl.GetMatrixData (function)
Get value at index of matrix.
[source]
gl.GetMatrixData(GL, integer) -> numberParameters
GLtype- Matrix type (GL.PROJECTION, GL.MODELVIEW, GL.TEXTURE).
integerindex- Matrix index in range
[1, 16].
Returns
numberThe- value.
gl.GetMatrixData (function overload 1)
[source]gl.GetMatrixData(GL) -> Matrix4x4Parameters
GLtype- Matrix type (GL.PROJECTION, GL.MODELVIEW, GL.TEXTURE).
Returns
gl.GetMatrixData (function overload 2)
[source]gl.GetMatrixData(integer) -> numberParameters
integerindex- Matrix index in range
[1, 16].
Returns
numberThe- value.
gl.GetMatrixData (function overload 3)
[source]gl.GetMatrixData(MatrixName) -> Matrix4x4Parameters
MatrixNamename- The matrix name.
Returns
gl.PushAttrib (function)
[source]gl.PushAttrib(GL?) -> nilParameters
GL?mask- (Default: GL.ALL_ATTRIB_BITS)
gl.PopAttrib (function)
[source]gl.PopAttrib() -> nilgl.UnsafeState (function)
[source]gl.UnsafeState(GL, fun(), [any, ]*) -> nilParameters
gl.UnsafeState (function overload 1)
[source]gl.UnsafeState(GL, boolean, fun(), [any, ]*) -> nilParameters
gl.GetFixedState (function)
[source]gl.GetFixedState(string, boolean?) -> boolean, any ...Parameters
Returns
gl.CreateList (function)
[source]gl.CreateList(fun(), [any, ]*) -> nilParameters
gl.CallList (function)
[source]gl.CallList(integer) -> nilParameters
integerlistIndex
gl.DeleteList (function)
[source]gl.DeleteList(integer) -> nilParameters
integerlistIndex
gl.Flush (function)
[source]gl.Flush() -> nilgl.Finish (function)
[source]gl.Finish() -> nilgl.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() -> anyReturns
anyquery
gl.DeleteQuery (function)
[source]gl.DeleteQuery(any) -> nilParameters
anyquery
gl.RunQuery (function)
[source]gl.RunQuery(any) -> nilParameters
anyquery
gl.GetQuery (function)
[source]gl.GetQuery(any) -> integerParameters
anyquery
Returns
integercount
gl.GetGlobalTexNames (function)
[source]gl.GetGlobalTexNames() -> string[]Returns
string[]List- of texture names.
gl.GetGlobalTexCoords (function)
[source]gl.GetGlobalTexCoords() -> number, number, number, numberReturns
gl.GetShadowMapParams (function)
[source]gl.GetShadowMapParams() -> number, number, number, numberReturns
gl.GetAtmosphere (function)
[source]gl.GetAtmosphere() -> number, number, numberReturns
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, numberReturns
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
stringkey
Returns
any ...value
gl.GetMapRendering (function)
[source]gl.GetMapRendering(string) -> any ...Parameters
stringkey
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) -> nilParameters
GLobjectTypeIdentifier- Specifies the type of object being labeled.
integerobjectID- Specifies the name or ID of the object to label.
stringlabel- A string containing the label to be assigned to the object.
gl.PushDebugGroup (function)
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) -> nilParameters
integerid- A numeric identifier for the group, can be any unique number.
stringmessage- A human-readable string describing the debug group. Will be truncated if longer than driver-specific limit
booleansourceIsThirdParty- 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() -> nilReturns
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() -> stringReturns
stringinfoLog
gl.CreateShader (function)
Create a shader.
[source]
gl.CreateShader(ShaderParams) -> integerParameters
Returns
integershaderID
gl.DeleteShader (function)
Deletes a shader identified by shaderID
[source]
gl.DeleteShader(integer) -> nilParameters
integershaderID
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) -> booleanParameters
integershaderID
Returns
booleanlinked
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, ]*) -> nilParameters
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
integershaderID
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) -> GLParameters
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?) -> nilParameters
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?) -> nilParameters
(integer|string)locationID- uniformName
integerint1integer?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[]) -> nilParameters
(integer|string)locationID- uniformName
UniformArrayTypetypenumber[]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) -> nilParameters
(integer|string)locationID- uniformName
MatrixNamematrix- 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[]) -> nilParameters
(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) -> stringParameters
numberindex
Returns
stringglslDefinition
gl.GetEngineModelUniformDataDef (function)
[source]
Return the GLSL compliant definition of ModelUniformData structure (per Unit/Feature buffer available on GPU)
gl.GetEngineModelUniformDataDef(number) -> stringParameters
numberindex
Returns
stringglslDefinition
gl.GetEngineModelUniformDataSize (function)
[source]
Return the current size values of ModelUniformData structure (per Unit/Feature buffer available on GPU)
gl.GetEngineModelUniformDataSize(number) -> number, numberParameters
numberindex
Returns
numbersizeInElementsnumbersizeInBytesOnCPU
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) -> nilParameters
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) -> nilParameters
Returns
gl.CreateRBO (function)
[source]gl.CreateRBO(integer, integer, CreateRBOData) -> RBOParameters
integerxsizeintegerysizeCreateRBODatadata
Returns
gl.DeleteRBO (function)
[source]gl.DeleteRBO(RBO) -> nilParameters
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)trueto updated frequently,falseto update only once.
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]
integerPOINTS- [source]
integerLINES- [source]
integerLINE_LOOP- [source]
integerLINE_STRIP- [source]
integerTRIANGLES- [source]
integerTRIANGLE_STRIP- [source]
integerTRIANGLE_FAN- [source]
integerQUADS- [source]
integerQUAD_STRIP- [source]
integerPOLYGON- [source]
integerLINE_STRIP_ADJACENCY- [source]
integerLINES_ADJACENCY- [source]
integerTRIANGLE_STRIP_ADJACENCY- [source]
integerTRIANGLES_ADJACENCY- [source]
integerPATCHES- [source]
integerZERO- [source]
integerONE- [source]
integerSRC_COLOR- [source]
integerONE_MINUS_SRC_COLOR- [source]
integerSRC_ALPHA- [source]
integerONE_MINUS_SRC_ALPHA- [source]
integerDST_ALPHA- [source]
integerONE_MINUS_DST_ALPHA- [source]
integerDST_COLOR- [source]
integerONE_MINUS_DST_COLOR- [source]
integerSRC_ALPHA_SATURATE- [source]
integerFUNC_ADD- [source]
integerFUNC_SUBTRACT- [source]
integerFUNC_REVERSE_SUBTRACT- [source]
integerMIN- [source]
integerMAX- [source]
integerNEVER- [source]
integerLESS- [source]
integerEQUAL- [source]
integerLEQUAL- [source]
integerGREATER- [source]
integerNOTEQUAL- [source]
integerGEQUAL- [source]
integerALWAYS- [source]
integerCLEAR- [source]
integerAND- [source]
integerAND_REVERSE- [source]
integerCOPY- [source]
integerAND_INVERTED- [source]
integerNOOP- [source]
integerXOR- [source]
integerOR- [source]
integerNOR- [source]
integerEQUIV- [source]
integerINVERT- [source]
integerOR_REVERSE- [source]
integerCOPY_INVERTED- [source]
integerOR_INVERTED- [source]
integerNAND- [source]
integerSET- [source]
integerBACK- [source]
integerFRONT- [source]
integerFRONT_AND_BACK- [source]
integerPOINT- [source]
integerLINE- [source]
integerFILL- [source]
integerFLAT- [source]
integerSMOOTH- [source]
integerMODELVIEW- [source]
integerPROJECTION- [source]
integerTEXTURE- [source]
integerNEAREST- [source]
integerLINEAR- [source]
integerNEAREST_MIPMAP_NEAREST- [source]
integerLINEAR_MIPMAP_NEAREST- [source]
integerNEAREST_MIPMAP_LINEAR- [source]
integerLINEAR_MIPMAP_LINEAR- [source]
integerREPEAT- [source]
integerMIRRORED_REPEAT- [source]
integerCLAMP- [source]
integerCLAMP_TO_EDGE- [source]
integerCLAMP_TO_BORDER- [source]
integerTEXTURE_ENV- [source]
integerTEXTURE_ENV_MODE- [source]
integerTEXTURE_ENV_COLOR- [source]
integerMODULATE- [source]
integerDECAL- [source]
integerBLEND- [source]
integerREPLACE- [source]
integerTEXTURE_FILTER_CONTROL- [source]
integerTEXTURE_LOD_BIAS- [source]
integerTEXTURE_GEN_MODE- [source]
integerEYE_PLANE- [source]
integerOBJECT_PLANE- [source]
integerEYE_LINEAR- [source]
integerOBJECT_LINEAR- [source]
integerSPHERE_MAP- [source]
integerNORMAL_MAP- [source]
integerREFLECTION_MAP- [source]
integerS- [source]
integerT- [source]
integerR- [source]
integerQ- [source]
integerCURRENT_BIT- [source]
integerPOINT_BIT- [source]
integerLINE_BIT- [source]
integerPOLYGON_BIT- [source]
integerPOLYGON_STIPPLE_BIT- [source]
integerPIXEL_MODE_BIT- [source]
integerLIGHTING_BIT- [source]
integerFOG_BIT- [source]
integerDEPTH_BUFFER_BIT- [source]
integerACCUM_BUFFER_BIT- [source]
integerSTENCIL_BUFFER_BIT- [source]
integerVIEWPORT_BIT- [source]
integerTRANSFORM_BIT- [source]
integerENABLE_BIT- [source]
integerCOLOR_BUFFER_BIT- [source]
integerHINT_BIT- [source]
integerEVAL_BIT- [source]
integerLIST_BIT- [source]
integerTEXTURE_BIT- [source]
integerSCISSOR_BIT- [source]
integerALL_ATTRIB_BITS- [source]
integerFOG_HINT- [source]
integerPERSPECTIVE_CORRECTION_HINT- [source]
integerDONT_CARE- [source]
integerFASTEST- [source]
integerNICEST- [source]
integerAMBIENT- [source]
integerDIFFUSE- [source]
integerSPECULAR- [source]
integerPOSITION- [source]
integerSPOT_DIRECTION- [source]
integerSPOT_EXPONENT- [source]
integerSPOT_CUTOFF- [source]
integerCONSTANT_ATTENUATION- [source]
integerLINEAR_ATTENUATION- [source]
integerQUADRATIC_ATTENUATION- [source]
integerVERTEX_SHADER- [source]
integerTESS_CONTROL_SHADER- [source]
integerTESS_EVALUATION_SHADER- [source]
integerGEOMETRY_SHADER_EXT- [source]
integerFRAGMENT_SHADER- [source]
integerGEOMETRY_INPUT_TYPE_EXT- [source]
integerGEOMETRY_OUTPUT_TYPE_EXT- [source]
integerGEOMETRY_VERTICES_OUT_EXT- [source]
integerPATCH_VERTICES- [source]
integerPATCH_DEFAULT_OUTER_LEVEL- [source]
integerPATCH_DEFAULT_INNER_LEVEL- [source]
integerBYTE- [source]
integerUNSIGNED_BYTE- [source]
integerSHORT- [source]
integerUNSIGNED_SHORT- [source]
integerINT- [source]
integerUNSIGNED_INT- [source]
integerFLOAT- [source]
integerFLOAT_VEC4- [source]
integerINT_VEC4- [source]
integerUNSIGNED_INT_VEC4- [source]
integerFLOAT_MAT4- [source]
integerELEMENT_ARRAY_BUFFER- [source]
integerARRAY_BUFFER- [source]
integerUNIFORM_BUFFER- [source]
integerSHADER_STORAGE_BUFFER- [source]
integerTEXTURE_1D- [source]
integerTEXTURE_2D- [source]
integerTEXTURE_2D_ARRAY- [source]
integerTEXTURE_3D- [source]
integerTEXTURE_CUBE_MAP- [source]
integerTEXTURE_2D_MULTISAMPLE- [source]
integerRGBA32F- [source]
integerRGBA16F- [source]
integerRG32F- [source]
integerRG16F- [source]
integerR11F_G11F_B10F- [source]
integerR32F- [source]
integerR16F- [source]
integerRGBA32UI- [source]
integerRGBA16UI- [source]
integerRGB10_A2UI- [source]
integerRGBA8UI- [source]
integerRG32UI- [source]
integerRG16UI- [source]
integerRG8UI- [source]
integerR32UI- [source]
integerR16UI- [source]
integerR8UI- [source]
integerRGBA32I- [source]
integerRGBA16I- [source]
integerRGBA8I- [source]
integerRG32I- [source]
integerRG16I- [source]
integerRG8I- [source]
integerR32I- [source]
integerR16I- [source]
integerR8I- [source]
integerRGBA16- [source]
integerRGB10_A2- [source]
integerRGBA8- [source]
integerRG16- [source]
integerRG8- [source]
integerR16- [source]
integerR8- [source]
integerRGBA16_SNORM- [source]
integerRGBA8_SNORM- [source]
integerRG16_SNORM- [source]
integerRG8_SNORM- [source]
integerR16_SNORM- [source]
integerR8_SNORM- [source]
integerDEPTH_COMPONENT16- [source]
integerDEPTH_COMPONENT24- [source]
integerDEPTH_COMPONENT32- [source]
integerDEPTH_COMPONENT32F- [source]
integerREAD_ONLY- [source]
integerWRITE_ONLY- [source]
integerREAD_WRITE- [source]
integerVERTEX_ATTRIB_ARRAY_BARRIER_BIT- [source]
integerELEMENT_ARRAY_BARRIER_BIT- [source]
integerUNIFORM_BARRIER_BIT- [source]
integerTEXTURE_FETCH_BARRIER_BIT- [source]
integerSHADER_IMAGE_ACCESS_BARRIER_BIT- [source]
integerCOMMAND_BARRIER_BIT- [source]
integerPIXEL_BUFFER_BARRIER_BIT- [source]
integerTEXTURE_UPDATE_BARRIER_BIT- [source]
integerBUFFER_UPDATE_BARRIER_BIT- [source]
integerFRAMEBUFFER_BARRIER_BIT- [source]
integerTRANSFORM_FEEDBACK_BARRIER_BIT- [source]
integerATOMIC_COUNTER_BARRIER_BIT- [source]
integerSHADER_STORAGE_BARRIER_BIT- [source]
integerALL_BARRIER_BITS- [source]
integerCOLOR_ATTACHMENT0- [source]
integerCOLOR_ATTACHMENT1- [source]
integerCOLOR_ATTACHMENT2- [source]
integerCOLOR_ATTACHMENT3- [source]
integerCOLOR_ATTACHMENT4- [source]
integerCOLOR_ATTACHMENT5- [source]
integerCOLOR_ATTACHMENT6- [source]
integerCOLOR_ATTACHMENT7- [source]
integerCOLOR_ATTACHMENT8- [source]
integerCOLOR_ATTACHMENT9- [source]
integerCOLOR_ATTACHMENT10- [source]
integerCOLOR_ATTACHMENT11- [source]
integerCOLOR_ATTACHMENT12- [source]
integerCOLOR_ATTACHMENT13- [source]
integerCOLOR_ATTACHMENT14- [source]
integerCOLOR_ATTACHMENT15- [source]
integerDEPTH_ATTACHMENT- [source]
integerSTENCIL_ATTACHMENT- [source]
integerCOLOR_ATTACHMENT0_EXT- [source]
integerCOLOR_ATTACHMENT1_EXT- [source]
integerCOLOR_ATTACHMENT2_EXT- [source]
integerCOLOR_ATTACHMENT3_EXT- [source]
integerCOLOR_ATTACHMENT4_EXT- [source]
integerCOLOR_ATTACHMENT5_EXT- [source]
integerCOLOR_ATTACHMENT6_EXT- [source]
integerCOLOR_ATTACHMENT7_EXT- [source]
integerCOLOR_ATTACHMENT8_EXT- [source]
integerCOLOR_ATTACHMENT9_EXT- [source]
integerCOLOR_ATTACHMENT10_EXT- [source]
integerCOLOR_ATTACHMENT11_EXT- [source]
integerCOLOR_ATTACHMENT12_EXT- [source]
integerCOLOR_ATTACHMENT13_EXT- [source]
integerCOLOR_ATTACHMENT14_EXT- [source]
integerCOLOR_ATTACHMENT15_EXT- [source]
integerDEPTH_ATTACHMENT_EXT- [source]
integerSTENCIL_ATTACHMENT_EXT- [source]
integerBUFFER- [source]
integerSHADER- [source]
integerPROGRAM- [source]
integerVERTEX_ARRAY- [source]
integerQUERY- [source]
integerPROGRAM_PIPELINE- [source]
integerTRANSFORM_FEEDBACK- [source]
integerRENDERBUFFER- [source]
integerFRAMEBUFFER- [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
stringname
Returns
RmlUi.Context?nil- if failed.
RmlUi.RemoveContext (function)
Remove a context.
[source]
RmlUi.RemoveContext((string|RmlUi.Context)) -> nilParameters
(string|RmlUi.Context)context
RmlUi.LoadFontFace (function)
Load a font face.
[source]
RmlUi.LoadFontFace(string, boolean?, RmlUi.font_weight?) -> booleanParameters
stringfile_pathboolean?fallbackRmlUi.font_weight?weight
Returns
booleansuccess
RmlUi.GetContext (function)
Get a context by name.
[source]
RmlUi.GetContext(string) -> RmlUi.Context?Parameters
stringname
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.EventIDParameters
stringevent_typeboolean?interruptibleboolean?bubblesRmlUi.default_action_phase?default_phase
Returns
RmlUi.AddTranslationString (function)
Add a translation string.
[source]
RmlUi.AddTranslationString(string, string) -> booleanParameters
stringkeystringtranslation
Returns
booleansuccess
RmlUi.ClearTranslations (function)
Clear registered translations.
[source]
RmlUi.ClearTranslations() -> nilRmlUi.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) -> nilParameters
stringrml_name- name used in rml script
stringrecoil_name- name used in recoil
RmlUi.SetDebugContext (function)
Set which context the debug inspector is meant to inspect.
[source]
RmlUi.SetDebugContext((string|RmlUi.Context)) -> nilParameters
(string|RmlUi.Context)context
Fields
RmlUi.ContextContextHolds 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.ElementTextElementText- [source]
RmlUi.ElementTabSetElementTabSet- [source]
RmlUi.ElementProgressElementProgress- [source]
RmlUi.EventListenerEventListenerEvent listener interface
[source]
RmlUi.ElementElementRepresents 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.ElementPtrElementPtrRepresents 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]
stringversion- [source] RmlUi version
RmlUi.key_identifierkey_identifier- [source]
RmlUi.key_modifierkey_modifier- [source]
RmlUi.font_weightfont_weight- [source]
RmlUi.default_action_phasedefault_action_phase- [source]
RmlUi.RmlEventPhaseRmlEventPhase- [source]
RmlUi.EventParametersProxyEventParametersProxyKeyboard and mouse input data associated with an event.
[source]
RmlUi.EventEventAn event that happens to an element.
[source]
RmlUi.RmlModalFlagRmlModalFlag- [source]
RmlUi.RmlFocusFlagRmlFocusFlag- [source]
RmlUi.DocumentDocumentDocument 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.Vector2iVector2iTwo-dimensional integral vector.
[source]
RmlUi.Vector2fVector2fTwo-dimensional float vector
[source]
RmlUi.ElementFormElementForm- [source]
RmlUi.ElementFormControlElementFormControl- [source]
RmlUi.ElementFormControlInputElementFormControlInput- [source]
RmlUi.ElementFormControlSelectElementFormControlSelect- [source]
RmlUi.ElementFormControlTextAreaElementFormControlTextArea- [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
stringnamestringtype- String name of
GL_*constant. integerlength- The character length of
name. integersizeGLlocation
ArchiveInfo (class)
[source]Fields
stringnamestringshortnamestringversionstringmutatorstringgamestringshortgamestringdescriptionstringmapfileModTypemodtype
AtmosphereParams (class)
[source]Fields
numberfogStartnumberfogEndrgbasunColorrgbaskyColorrgbacloudColorxyzwskyAxisAngle- 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
CameraNamename- The camera name.
CameraModemode- The camera mode.
number?fovnumber?px- Position X of the ground point in screen center.
number?py- Position Y of the ground point in screen center.
number?pz- Position Z of the ground point in screen center.
number?dx- Camera direction vector X.
number?dy- Camera direction vector Y.
number?dz- Camera direction vector Z.
number?rx- Camera rotation angle on X axis. (spring)
number?ry- Camera rotation angle on Y axis. (spring)
number?rz- Camera rotation angle on Z axis. (spring)
number?angle- Camera rotation angle on X axis (aka tilt/pitch). (ta)
number?flipped-1for when south is down,1for when north is down. (ta)number?dist- Camera distance from the ground. (spring)
number?height- Camera distance from the ground. (ta)
number?oldHeight- Camera distance from the ground, cannot be changed. (rot)
CameraVectors (class)
[source]Fields
xyzforwardxyzupxyzrightxyztopFrustumPlanexyzbotFrustumPlanexyzlftFrustumPlanexyzrgtFrustumPlane
CollisionVolumeData (class)
Parameters related to a collision volume.
[source]
Fields
("ellipsoid"|"cylinder"|"box"|"sphere")type- type
numberscaleXnumberscaleYnumberscaleZnumberoffsetXnumberoffsetYnumberoffsetZnumberboundingRadiusbooleandefaultToSpherebooleandefaultToFootPrintbooleandefaultToPieceTree
Command (class)
[source]Fields
integeridnumber[]?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.
booleanalt- Alt key pressed.
booleanctrl- Ctrl key pressed.
booleanshift- Shift key pressed.
booleanright- Right mouse key pressed.
booleanmeta- Meta key (space) pressed.
booleaninternal
Configuration (class)
Contains data about a configuration, only name and type are guaranteed
[source]
Fields
stringnamestringtypestringdescriptionstringdefaultValuestringminimumValuestringmaximumValuestringsafemodeValuestringdeclarationFilestringdeclarationLinebooleanreadOnly
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
numberweaponDefnumberownernumberhitUnitnumberhitFeaturenumbercraterAreaOfEffectnumberdamageAreaOfEffectnumberedgeEffectivenessnumberexplosionSpeednumbergfxModbooleanimpactOnlybooleanignoreOwnerbooleandamageGround
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
booleanNegativeGetUnitCurrentCommand- Whether Spring.GetUnitCurrentCommand allows negative indices to look from the end
booleanhasExitOnlyYardmaps- Whether yardmaps accept ’e’ (exit only) and ‘u’ (unbuildable, walkable)
integerrmlUiApiVersion- Version of Recoil’s rmlUI API
booleannoAutoShowMetal- Whether the engine switches to the metal view when selecting a “build metal extractor” command (yes if false)
integermaxPiecesPerModel- How many pieces supported for 3d models?
numbergunshipCruiseAltitudeMultiplier- For gunships, the cruiseAltitude from the unit def is multiplied by this much
booleannoRefundForConstructionDecay- Whether there is no refund for construction decay (100% metal back if false)
booleannoRefundForFactoryCancel- Whether there is no refund for factory cancel (100% metal back if false)
booleannoOffsetForFeatureID- Whether featureID from various interfaces (targetID for Reclaim commands, ownerID from SpringGetGroundDecalOwner, etc) needs to be offset by Game.maxUnits
booleannoHandicapForReclaim- Whether handicap is applied to income from reclaim
booleangroupAddDoesntSelect- Whether ‘group add’ also selects the group (does both if false)
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
IconData (class)
Icon Data
[source]
Fields
stringname- [source]
string?fileName- [source]
number?size- [source] Relative size of the icon
number?distance- [source] When squared used as a icon length multiplier
boolean?radiusAdjust- [source] Controls whether the unit radius affects the icon size
TexCoords?srcTexCoords- [source]
TexCoordsatlasTexCoords- [source] atlasIndex points to $icons0 or $icons1 texture
Intro (class)
Inherits Callins
Members
Intro:DrawLoadScreen (function)
Draws custom load screens.
[source]
Intro:DrawLoadScreen() -> nilIntro:LoadProgress (function)
[source]Intro:LoadProgress(string, boolean) -> nilParameters
stringmessagebooleanreplaceLastLine
KeyBinding (class)
Contains data about a keybinding
[source]
Fields
KeyModifiers (class)
Key Modifier Params
[source]
Fields
booleanright- Right mouse key pressed
booleanalt- Alt key pressed
booleanctrl- Ctrl key pressed
booleanshift- 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.0then the*DecayRatevalues will be interpreted as linear, otherwise exponential. numberradiusnumberfovnumberttlnumberprioritybooleanignoreLOS
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?) -> nilParameters
boolean?userDefinedBlending- When
truedoesn’t set the gl.BlendFunc automatically. Defaults tofalse.
LuaFont:SubmitBuffered (function)
Draws text printed with the buffered option.
[source]
LuaFont:SubmitBuffered(boolean?, boolean?) -> nilParameters
boolean?noBillboarding- When
falsesets 3d billboard mode. Defaults totrue. boolean?userDefinedBlending- When
truedoesn’t set the gl.BlendFunc automatically. Defaults tofalse.
MapRenderingParams (class)
Map rendering params
[source]
Fields
rgbasplatTexMultsrgbasplatTexScalesbooleanvoidWaterbooleanvoidGroundbooleansplatDetailNormalDiffuseAlpha
Material (class)
[source]Fields
numbershininess(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() -> nilMenu:ActivateGame (function)
Called whenever LuaMenu is on with a game loaded.
[source]
Menu:ActivateGame() -> nilMenu: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() -> booleanReturns
booleanallowDraw
MoveCtrl (class)
Members
MoveCtrl.IsEnabled (function)
[source]MoveCtrl.IsEnabled(integer) -> boolean?Parameters
integerunitID
Returns
boolean?isEnabled
MoveCtrl.Enable (function)
[source]MoveCtrl.Enable(integer) -> nilParameters
integerunitID
MoveCtrl.Disable (function)
[source]MoveCtrl.Disable(integer) -> nilParameters
integerunitID
MoveCtrl.SetTag (function)
[source]MoveCtrl.SetTag(integer, integer) -> nilParameters
MoveCtrl.GetTag (function)
[source]MoveCtrl.GetTag(integer?) -> nilParameters
integer?tag
MoveCtrl.SetProgressState (function)
[source]MoveCtrl.SetProgressState(integer, (0|1|2|"done"|"active"|"failed")) -> nilParameters
MoveCtrl.SetExtrapolate (function)
[source]MoveCtrl.SetExtrapolate(integer, boolean) -> nilParameters
integerunitIDbooleanextrapolate
MoveCtrl.SetPhysics (function)
[source]MoveCtrl.SetPhysics(integer, number, number, number, number, number, number, number, number, number) -> nilParameters
integerunitIDnumberposX- Position X component.
numberposY- Position Y component.
numberposZ- Position Z component.
numbervelX- Velocity X component.
numbervelY- Velocity Y component.
numbervelZ- Velocity Z component.
numberrotX- Rotation X component.
numberrotY- Rotation Y component.
numberrotZ- Rotation Z component.
MoveCtrl.SetPosition (function)
[source]MoveCtrl.SetPosition(integer, number, number, number) -> nilParameters
integerunitIDnumberposX- Position X component.
numberposY- Position Y component.
numberposZ- Position Z component.
MoveCtrl.SetVelocity (function)
[source]MoveCtrl.SetVelocity(integer, number, number, number) -> nilParameters
integerunitIDnumbervelX- Velocity X component.
numbervelY- Velocity Y component.
numbervelZ- Velocity Z component.
MoveCtrl.SetRelativeVelocity (function)
[source]MoveCtrl.SetRelativeVelocity(integer, number, number, number) -> nilParameters
integerunitIDnumberrelVelX- Relative velocity X component.
numberrelVelY- Relative velocity Y component.
numberrelVelZ- Relative velocity Z component.
MoveCtrl.SetRotation (function)
[source]MoveCtrl.SetRotation(integer, number, number, number) -> nilParameters
integerunitIDnumberrotX- Rotation X component.
numberrotY- Rotation Y component.
numberrotZ- Rotation Z component.
MoveCtrl.SetRotationOffset (function)
[source]Deprecated
MoveCtrl.SetRotationOffset() -> nilMoveCtrl.SetRotationVelocity (function)
[source]MoveCtrl.SetRotationVelocity(integer, number, number, number) -> nilParameters
integerunitIDnumberrotVelX- Rotation velocity X component.
numberrotVelY- Rotation velocity Y component.
numberrotVelZ- Rotation velocity Z component.
MoveCtrl.SetHeading (function)
[source]MoveCtrl.SetHeading(integer, Heading) -> nilParameters
MoveCtrl.SetTrackSlope (function)
[source]MoveCtrl.SetTrackSlope(integer, boolean) -> nilParameters
integerunitIDbooleantrackSlope
MoveCtrl.SetTrackGround (function)
[source]MoveCtrl.SetTrackGround(integer, boolean) -> nilParameters
integerunitIDbooleantrackGround
MoveCtrl.SetTrackLimits (function)
[source]MoveCtrl.SetTrackLimits(integer, boolean) -> nilParameters
integerunitIDbooleantrackLimits
MoveCtrl.SetGroundOffset (function)
[source]MoveCtrl.SetGroundOffset(integer, number) -> nilParameters
integerunitIDnumbergroundOffset
MoveCtrl.SetGravity (function)
[source]MoveCtrl.SetGravity(integer, number) -> nilParameters
integerunitIDnumbergravityFactor
MoveCtrl.SetDrag (function)
[source]MoveCtrl.SetDrag(integer, number) -> nilParameters
MoveCtrl.SetWindFactor (function)
[source]MoveCtrl.SetWindFactor(integer, number) -> nilParameters
integerunitIDnumberwindFactor
MoveCtrl.SetLimits (function)
[source]MoveCtrl.SetLimits(integer, number, number, number, number, number, number) -> nilParameters
integerunitIDnumberminX- Minimum position X component.
numberminY- Minimum position Y component.
numberminZ- Minimum position Z component.
numbermaxX- Maximum position X component.
numbermaxY- Maximum position Y component.
numbermaxZ- Maximum position Z component.
MoveCtrl.SetNoBlocking (function)
[source]MoveCtrl.SetNoBlocking(integer, boolean) -> nilParameters
integerunitIDbooleannoBlocking
MoveCtrl.SetCollideStop (function)
[source]MoveCtrl.SetCollideStop(integer, boolean) -> nilParameters
integerunitIDbooleancollideStop
MoveCtrl.SetLimitsStop (function)
[source]MoveCtrl.SetLimitsStop(integer, boolean) -> nilParameters
integerunitIDbooleanlimitsStop
MoveCtrl.SetGunshipMoveTypeData (function)
[source]MoveCtrl.SetGunshipMoveTypeData(integer, HoverAirMoveType) -> numberParameters
Returns
numbernumAssignedValues
MoveCtrl.SetGunshipMoveTypeData (function overload 1)
[source]MoveCtrl.SetGunshipMoveTypeData(integer, (GenericMoveTypeBooleanKey|"collide"|"dontLand"|"airStrafe"|"useSmoothMesh"|"bankingAllowed"), boolean) -> numberParameters
integerunitID(GenericMoveTypeBooleanKey|"collide"|"dontLand"|"airStrafe"|"useSmoothMesh"|"bankingAllowed")keybooleanvalue
Returns
numbernumAssignedValues
MoveCtrl.SetGunshipMoveTypeData (function overload 2)
[source]MoveCtrl.SetGunshipMoveTypeData(integer, (GenericMoveTypeNumberKey|"wantedHeight"|"accRate"|"decRate"|"turnRate"|"altitudeRate"|"currentBank"|"currentPitch"...), number) -> numberParameters
integerunitID(GenericMoveTypeNumberKey|"wantedHeight"|"accRate"|"decRate"|"turnRate"|"altitudeRate"|"currentBank"|"currentPitch"...)keynumbervalue
Returns
numbernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function)
[source]MoveCtrl.SetAirMoveTypeData(integer, StrafeAirMoveType) -> numberParameters
Returns
numbernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 1)
[source]MoveCtrl.SetAirMoveTypeData(integer, (GenericMoveTypeBooleanKey|"collide"|"useSmoothMesh"|"loopbackAttack"), boolean) -> numberParameters
integerunitID(GenericMoveTypeBooleanKey|"collide"|"useSmoothMesh"|"loopbackAttack")keybooleanvalue
Returns
numbernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 2)
[source]MoveCtrl.SetAirMoveTypeData(integer, (GenericMoveTypeNumberKey|"wantedHeight"|"turnRadius"|"accRate"|"decRate"|"maxAcc"|"maxDec"|"maxBank"...), number) -> numberParameters
integerunitID(GenericMoveTypeNumberKey|"wantedHeight"|"turnRadius"|"accRate"|"decRate"|"maxAcc"|"maxDec"|"maxBank"...)keynumbervalue
Returns
numbernumAssignedValues
MoveCtrl.SetAirMoveTypeData (function overload 3)
[source]MoveCtrl.SetAirMoveTypeData(integer, ("maneuverBlockTime"), integer) -> numberParameters
Returns
numbernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function)
[source]MoveCtrl.SetGroundMoveTypeData(integer, GroundMoveType) -> numberParameters
integerunitIDGroundMoveTypemoveType
Returns
numbernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 1)
[source]MoveCtrl.SetGroundMoveTypeData(integer, (GenericMoveTypeBooleanKey|"atGoal"|"atEndOfPath"|"pushResistant"), boolean) -> numberParameters
integerunitID(GenericMoveTypeBooleanKey|"atGoal"|"atEndOfPath"|"pushResistant")keybooleanvalue
Returns
numbernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 2)
[source]MoveCtrl.SetGroundMoveTypeData(integer, (GenericMoveTypeNumberKey|"turnRate"|"turnAccel"|"accRate"|"decRate"|"myGravity"|"maxReverseDist"|"minReverseAngle"...), number) -> numberParameters
integerunitID(GenericMoveTypeNumberKey|"turnRate"|"turnAccel"|"accRate"|"decRate"|"myGravity"|"maxReverseDist"|"minReverseAngle"...)keynumbervalue
Returns
numbernumAssignedValues
MoveCtrl.SetGroundMoveTypeData (function overload 3)
[source]MoveCtrl.SetGroundMoveTypeData(integer, ("minScriptChangeHeading"), integer) -> numberParameters
Returns
numbernumAssignedValues
MoveCtrl.SetMoveDef (function)
[source]MoveCtrl.SetMoveDef(integer, (integer|string)) -> booleanParameters
Returns
booleansuccesstrueif theMoveDefwas set,falseifunitIDormoveDefwere invalid, or if the unit does not support aMoveDef.
PieceInfo (class)
[source]Fields
stringnamestringparentstring[]children- names
booleanempty(number,number,number)min- (x,y,z)
(number,number,number)max- (x,y,z)
(number,number,number)offset- (x,y,z)
Plane (class)
[source]Fields
numbernormalVecXnumbernormalVecYnumbernormalVecZnumberd
PlatformVideoMode (class)
[source]Fields
integerdisplay- [source]
stringdisplayName- [source]
numberw- [source]
numberh- [source]
integerbpp- [source]
numberhz- [source]
ProjectileParams (class)
[source]Fields
xyzposxyzspeedxyzspreadxyzerrorxyzendintegerownerintegerteamnumberttlnumbergravitynumbertrackingnumbermaxRangenumberstartAlphanumberendAlphastringmodelstringcegTag
RBO (class)
User Data RBO
[source]
Fields
GLtargetGLformatintegerxsizeintegerysizebooleanvalidintegersamples- 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) -> nilParameters
stringeventRmlUi.Elementscriptbooleanelement_contextbooleanin_capture_phase
RmlUi.Context:CreateDocument (function)
Creates a new document with the tag name of tag.
[source]
RmlUi.Context:CreateDocument(string) -> RmlUi.DocumentParameters
stringtag
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.DocumentParameters
stringdocument_path
Returns
RmlUi.Context:GetDocument (function)
[source]RmlUi.Context:GetDocument(string) -> nilParameters
stringname
RmlUi.Context:Render (function)
Renders the context.
[source]
RmlUi.Context:Render() -> booleanReturns
RmlUi.Context:UnloadAllDocuments (function)
Closes all documents currently loaded with the context.
[source]
RmlUi.Context:UnloadAllDocuments() -> nilRmlUi.Context:UnloadDocument (function)
Unloads a specific document within the context.
[source]
RmlUi.Context:UnloadDocument(RmlUi.Document) -> nilParameters
RmlUi.Context:Update (function)
Updates the context.
[source]
RmlUi.Context:Update() -> booleanReturns
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) -> nilParameters
stringname
RmlUi.Context:ProcessMouseMove (function)
Processes a mouse move event.
[source]
RmlUi.Context:ProcessMouseMove(RmlUi.Vector2f) -> booleanParameters
Returns
RmlUi.Context:ProcessMouseButtonDown (function)
Processes a mouse button down event.
[source]
RmlUi.Context:ProcessMouseButtonDown(RmlUi.MouseButton, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessMouseButtonUp (function)
Processes a mouse button up event.
[source]
RmlUi.Context:ProcessMouseButtonUp(RmlUi.MouseButton, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessMouseWheel (function)
Processes a mouse wheel event.
[source]
RmlUi.Context:ProcessMouseWheel((RmlUi.Vector2f|number), integer) -> booleanParameters
(RmlUi.Vector2f|number)deltaintegerkey_modifier_state
Returns
RmlUi.Context:ProcessMouseLeave (function)
Processes a mouse leave event.
[source]
RmlUi.Context:ProcessMouseLeave() -> booleanReturns
RmlUi.Context:IsMouseInteracting (function)
Returns true if the mouse is currently interacting with the context, false if not.
[source]
RmlUi.Context:IsMouseInteracting() -> booleanReturns
RmlUi.Context:ProcessKeyDown (function)
Processes a key down event.
[source]
RmlUi.Context:ProcessKeyDown(RmlUi.key_identifier, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessKeyUp (function)
Processes a key up event.
[source]
RmlUi.Context:ProcessKeyUp(RmlUi.key_identifier, integer) -> booleanParameters
Returns
RmlUi.Context:ProcessTextInput (function)
Processes a text input event.
[source]
RmlUi.Context:ProcessTextInput(string) -> booleanParameters
stringtext
Returns
RmlUi.Context:EnableMouseCursor (function)
Enables or disables the mouse cursor for the context.
[source]
RmlUi.Context:EnableMouseCursor(boolean) -> nilParameters
booleanenable
RmlUi.Context:ActivateTheme (function)
Activates a theme for the context.
[source]
RmlUi.Context:ActivateTheme(string, boolean) -> nilParameters
stringtheme_namebooleanactivate
RmlUi.Context:IsThemeActive (function)
Returns true if the theme is active, false if not.
[source]
RmlUi.Context:IsThemeActive(string) -> booleanParameters
stringtheme_name
Returns
RmlUi.Context:GetElementAtPoint (function)
Returns the element at the point specified by point.
[source]
RmlUi.Context:GetElementAtPoint(RmlUi.Vector2f, RmlUi.Element?) -> RmlUi.ElementParameters
Returns
RmlUi.Context:PullDocumentToFront (function)
Pulls the document to the front of the context.
[source]
RmlUi.Context:PullDocumentToFront(RmlUi.Document) -> nilParameters
RmlUi.Context:PushDocumentToBack (function)
Pushes the document to the back of the context.
[source]
RmlUi.Context:PushDocumentToBack(RmlUi.Document) -> nilParameters
Fields
RmlUi.Vector2idimensions- [source]
numberdp_ratio- [source]
RmlUi.Document[]documents- [source]
RmlUi.Elementfocus_element- [source]
RmlUi.Elementhover_element- [source]
stringname- [source]
RmlUi.Elementroot_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() -> nilRmlUi.Document:PushToBack (function)
Pushes the document behind other documents within its context with a similar z-index.
[source]
RmlUi.Document:PushToBack() -> nilRmlUi.Document:Show (function)
Shows the document.
[source]
RmlUi.Document:Show(RmlUi.RmlModalFlag?, RmlUi.RmlFocusFlag?) -> nilParameters
RmlUi.RmlModalFlag?modal- Defaults to Focus
RmlUi.RmlFocusFlag?focus
RmlUi.Document:Hide (function)
Hides the document.
[source]
RmlUi.Document:Hide() -> nilRmlUi.Document:Close (function)
Hides and closes the document, destroying its contents.
[source]
RmlUi.Document:Close() -> nilRmlUi.Document:CreateElement (function)
Instances an element with a tag of tag_name.
[source]
RmlUi.Document:CreateElement(string) -> RmlUi.ElementPtrParameters
stringtag_name
Returns
RmlUi.Document:CreateTextNode (function)
Instances a text element containing the string text.
[source]
RmlUi.Document:CreateTextNode(string) -> RmlUi.ElementPtrParameters
stringtext
Returns
RmlUi.Document:ReloadStyleSheet (function)
Reload the active style sheet.
[source]
RmlUi.Document:ReloadStyleSheet(boolean?) -> nilParameters
boolean?load
RmlUi.Document:LoadInlineScript (function)
Load scripts as if it were in the script tag.
[source]
RmlUi.Document:LoadInlineScript(string, string?, integer?) -> nilParameters
stringcontentstring?sourceinteger?source_line
RmlUi.Document:LoadExternalScript (function)
Load an external script.
[source]
RmlUi.Document:LoadExternalScript(string) -> nilParameters
stringsource_path
RmlUi.Document:UpdateDocument (function)
Update the Document.
[source]
RmlUi.Document:UpdateDocument() -> nilRmlUi.Document:AppendToStyleSheet (function)
Append text to style sheet.
[source]
RmlUi.Document:AppendToStyleSheet(string) -> nilParameters
stringcontent
Fields
stringtitle- [source]
RmlUi.Contextcontext- [source]
stringurl- [source]
booleanmodal- [source] Is it modal?
tablewidget- [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) -> nilParameters
stringevent(function|string)listenerbooleanin_capture_phase
RmlUi.Element:AppendChild (function)
Appends element as a child to this element.
[source]
RmlUi.Element:AppendChild(RmlUi.ElementPtr) -> RmlUi.ElementPtrParameters
Returns
RmlUi.Element:Blur (function)
Removes input focus from this element.
[source]
RmlUi.Element:Blur() -> nilRmlUi.Element:Click (function)
Fakes a click on this element.
[source]
RmlUi.Element:Click() -> nilRmlUi.Element:DispatchEvent (function)
Dispatches an event to this element.
[source]
RmlUi.Element:DispatchEvent(string, table, string) -> booleanParameters
stringeventtableparametersstringinterruptible
Returns
RmlUi.Element:Focus (function)
Gives input focus to this element.
[source]
RmlUi.Element:Focus() -> nilRmlUi.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) -> anyParameters
stringname
Returns
RmlUi.Element:GetElementById (function)
Returns the descendant element with an id of id.
[source]
RmlUi.Element:GetElementById(string) -> RmlUi.ElementParameters
stringid
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
stringtag_name
Returns
RmlUi.Element:QuerySelector (function)
Unsure what this does, but seems powerful?
[source]
RmlUi.Element:QuerySelector(string) -> RmlUi.ElementPtrParameters
stringquery
Returns
RmlUi.Element:QuerySelectorAll (function)
Unsure what this does, but seems powerful?
[source]
RmlUi.Element:QuerySelectorAll(string) -> nilParameters
stringselectors
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) -> booleanParameters
stringname
Returns
RmlUi.Element:HasChildNodes (function)
Returns True if the element has at least one child node, false if not.
[source]
RmlUi.Element:HasChildNodes() -> booleanReturns
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) -> booleanParameters
stringname
Returns
RmlUi.Element:RemoveAttribute (function)
Removes the attribute named name from the element.
[source]
RmlUi.Element:RemoveAttribute(string) -> nilParameters
stringname
RmlUi.Element:RemoveChild (function)
Removes the child element element from this element.
[source]
RmlUi.Element:RemoveChild(RmlUi.Element) -> booleanParameters
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) -> booleanParameters
Returns
RmlUi.Element:ScrollIntoView (function)
Scrolls this element into view if its ancestors have hidden overflow.
[source]
RmlUi.Element:ScrollIntoView(boolean) -> nilParameters
booleanalign_with_top
RmlUi.Element:SetAttribute (function)
Sets the value of the attribute named name to value.
[source]
RmlUi.Element:SetAttribute(string, string) -> nilParameters
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) -> nilParameters
RmlUi.Element:GetElementsByClassName (function)
[source]RmlUi.Element:GetElementsByClassName(string) -> RmlUi.Element[]Parameters
stringclass_name
Returns
RmlUi.Element:Clone (function)
[source]RmlUi.Element:Clone() -> RmlUi.ElementPtrReturns
RmlUi.Element:Closest (function)
[source]RmlUi.Element:Closest() -> RmlUi.Element?Returns
RmlUi.Element:SetPseudoClass (function)
[source]RmlUi.Element:SetPseudoClass(string) -> nilParameters
stringclass_name
RmlUi.Element:IsPseudoClassSet (function)
[source]RmlUi.Element:IsPseudoClassSet(string) -> booleanParameters
stringclass_name
Returns
RmlUi.Element:ArePseudoCLassesSet (function)
[source]RmlUi.Element:ArePseudoCLassesSet(string[]) -> booleanParameters
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) -> booleanParameters
Returns
RmlUi.Element:ProcessDefaultAction (function)
[source]RmlUi.Element:ProcessDefaultAction(RmlUi.Event) -> nilParameters
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
integerindex
Returns
Fields
stringclass_name- [source] Name of the class.
stringid- [source]
ID of this element, in the context of
<span id=“foo”>. stringinner_rml- [source] Gets or sets the inner RML (markup) content of the element.
integerscroll_left- [source] Gets or sets the number of pixels that the content of the element is scrolled from the left.
integerscroll_top- [source] Gets or sets the number of pixels that the content of the element is scrolled from the top.
RmlUi.ElementAttributesProxyattributes- [source] Read-only. Proxy for accessing element attributes.
RmlUi.ElementChildNodesProxychild_nodes- [source] Read-only. Proxy for accessing child nodes of the element.
integerclient_left- [source] Read-only. The width of the left border of the element in pixels.
integerclient_height- [source] Read-only. The inner height of the element in pixels, including padding but not the horizontal scrollbar height, border, or margin.
integerclient_top- [source] Read-only. The width of the top border of the element in pixels.
integerclient_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.
integeroffset_height- [source] Read-only. The height of the element including vertical padding and borders, in pixels.
integeroffset_left- [source] Read-only. The distance from the inner left edge of the offset parent, in pixels.
RmlUi.Elementoffset_parent- [source] Read-only. The closest positioned ancestor element.
integeroffset_top- [source] Read-only. The distance from the inner top edge of the offset parent, in pixels.
integeroffset_width- [source] Read-only. The width of the element including horizontal padding and borders, in pixels.
RmlUi.Documentowner_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.
integerscroll_height- [source] Read-only. The total height of the element’s content, including content not visible on the screen due to overflow.
integerscroll_width- [source] Read-only. The total width of the element’s content, including content not visible on the screen due to overflow.
RmlUi.ElementStyleProxystyle- [source] Read-only. Proxy for accessing and modifying the element’s style properties.
stringtag_name- [source] Read-only. The tag name of the element.
stringaddress- [source] Read-only. The address of the element in the document tree.
integerabsolute_left- [source] Read-only. The absolute left position of the element relative to the document.
integerabsolute_top- [source] Read-only. The absolute top position of the element relative to the document.
integerbaseline- [source] Read-only. The baseline position of the element.
integerline_height- [source] Read-only. The computed line height of the element.
booleanvisible- [source] Read-only. True if the element is visible, false otherwise.
integerz_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?) -> nilParameters
RmlUi.ElementFormControl (class)
Inherits RmlUi.Element
Fields
RmlUi.ElementFormControlInput (class)
Inherits RmlUi.Element RmlUi.ElementFormControl
Fields
booleanchecked- [source]
integermaxlength- [source]
integersize- [source]
integermax- [source]
integermin- [source]
integerstep- [source]
RmlUi.ElementFormControlSelect (class)
Inherits RmlUi.Element RmlUi.ElementFormControl
Members
RmlUi.ElementFormControlSelect:Add (function)
[source]RmlUi.ElementFormControlSelect:Add(RmlUi.Element, integer?) -> nilParameters
RmlUi.Elementelementinteger?before
RmlUi.ElementFormControlSelect:Remove (function)
[source]RmlUi.ElementFormControlSelect:Remove(integer) -> nilParameters
integerindex
RmlUi.ElementFormControlSelect:RemoveAll (function)
[source]RmlUi.ElementFormControlSelect:RemoveAll() -> nilRmlUi.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) -> nilParameters
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) -> nilParameters
RmlUi.ElementTabSet:RemoveTab (function)
[source]RmlUi.ElementTabSet:RemoveTab(integer) -> nilParameters
integerindex
Fields
integeractive_tab- [source]
integernum_tabs- [source]
RmlUi.ElementText (class)
Inherits RmlUi.Element
Fields
RmlUi.Event (class)
An event that happens to an element.
[source]
Fields
RmlUi.Elementcurrent_element- [source]
stringtype- [source]
RmlUi.Elementtarget_element- [source] What element it happened to
RmlUi.EventParametersProxyparameters- [source]
RmlUi.RmlEventPhaseevent_phase- [source]
booleaninterruptible- [source]
booleanpropagating- [source]
booleanimmediate_propagating- [source]
RmlUi.EventListener (class)
Event listener interface
[source]
Members
RmlUi.EventListener.OnAttach (function)
[source]RmlUi.EventListener.OnAttach(RmlUi.Element) -> nilParameters
RmlUi.EventListener.OnDetach (function)
[source]RmlUi.EventListener.OnDetach(RmlUi.Element) -> nilParameters
RmlUi.EventListener.ProcessEvent (function)
[source]RmlUi.EventListener.ProcessEvent(RmlUi.Event) -> nilParameters
RmlUi.EventParametersProxy (class)
Keyboard and mouse input data associated with an event.
[source]
Fields
RmlUi.EventParametersProxy.MouseButtonbuttonintegermouse_xintegermouse_yRmlUi.EventParametersProxy.TrueFalsescroll_lock_keyRmlUi.EventParametersProxy.TrueFalsemeta_keyRmlUi.EventParametersProxy.TrueFalsectrl_keyRmlUi.EventParametersProxy.TrueFalseshift_keyRmlUi.EventParametersProxy.TrueFalsecaps_lock_keyRmlUi.EventParametersProxy.TrueFalsealt_key
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) -> nilParameters
stringproperty
RmlUi.Vector2f (class)
Members
RmlUi.Vector2f.new (function)
[source]RmlUi.Vector2f.new(number, number) -> RmlUi.Vector2fParameters
Returns
Fields
RmlUi.Vector2i (class)
Two-dimensional integral vector.
[source]
Members
RmlUi.Vector2i.new (function)
[source]RmlUi.Vector2i.new(integer, integer) -> RmlUi.Vector2iParameters
Returns
Fields
Roster (class)
Contains data about a player
[source]
Fields
stringnameintegerplayerIDintegerteamIDintegerallyTeamIDbooleanspectatornumbercpuUsage- 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
numberpingTime- if -1, the player is pathfinding
RulesParams (class)
Inherits table<string,integer>
RulesSyncedCallins (class)
Inherits Callins UnsyncedCallins SyncedCallins
LuaRules/main.luaRulesUnsyncedCallins (class)
Inherits Callins UnsyncedCallins
LuaRules/draw.luaSaveImageOptions (class)
[source]Fields
booleanalpha- (Default:
false) booleanyflip- (Default:
true) booleangrayscale16bit- (Default:
false) GLreadbuffer- (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
stringsideNameReturned when getting arrays of side specifications.
Lowercase side name.
stringcaseName- Original case side name.
stringstartUnit
SoundDeviceSpec (class)
Contains data about a sound device.
[source]
Fields
stringname
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
numbertimenumberframenumbermetalUsednumbermetalProducednumbermetalExcessnumbermetalReceivednumbermetalSentnumberenergyUsednumberenergyProducednumberenergyExcessnumberenergyReceivednumberenergySentnumberdamageDealtnumberdamageReceivedintegerunitsProducedintegerunitsDiedintegerunitsReceivedintegerunitsSentintegerunitsCapturedintegerunitsOutCaptured
TexCoords (class)
[source]Fields
numberx0- left coordinate in the normalized range
numberx1- right coordinate in the normalized range
numbery0- top coordinate in the normalized range
numbery1- bottom coordinate in the normalized range
integer?atlasIndex- Means the atlas page number in case the texture is arrayed or points to another sequential texture in other rare cases
TextColorCode (class)
Indicator bytes representing color code operations during font renderingFields
stringColor- Indicates that the following bytes contain color code information
stringColorAndOutline- Indicates that the following bytes contain color code and outline information
stringReset- Indicates reset of the current color
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() -> nilUniformParam (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
numberheightnumberradiusnumbermidxnumberminxnumbermaxxnumbermidynumberminynumbermaxynumbermidznumberminznumbermaxz
UnitState (class)
[source]Fields
numberfirestatenumbermovestatebooleanrepeatbooleancloakbooleanactivebooleantrajectoryboolean?autolandnumber?autorepairlevelboolean?loopbackattack
VAO (class)
Vertex Array Object
[source]
Members
VAO:Delete (function)
[source]VAO:Delete() -> nilReturns
VAO:AttachVertexBuffer (function)
Attaches a VBO to be used as a vertex buffer
[source]
VAO:AttachVertexBuffer(VBO) -> nilParameters
Returns
VAO:AttachInstanceBuffer (function)
Attaches a VBO to be used as an instance buffer
[source]
VAO:AttachInstanceBuffer(VBO) -> nilParameters
Returns
VAO:AttachIndexBuffer (function)
Attaches a VBO to be used as an index buffer
[source]
VAO:AttachIndexBuffer(VBO) -> nilParameters
Returns
VAO:DrawArrays (function)
[source]VAO:DrawArrays(number, number?, number?, number?, number?) -> nilParameters
numberglEnum- primitivesMode
number?vertexCountnumber?vertexFirstnumber?instanceCountnumber?instanceFirst
Returns
VAO:DrawElements (function)
[source]VAO:DrawElements(number, number?, number?, number?, number?, number?) -> nilParameters
numberglEnum- primitivesMode
number?drawCountnumber?baseIndexnumber?instanceCountnumber?baseVertexnumber?baseInstance
Returns
VAO:AddUnitsToSubmission (function)
[source]VAO:AddUnitsToSubmission((number|number[])) -> numberParameters
(number|number[])unitIDs
Returns
numbersubmittedCount
VAO:AddFeaturesToSubmission (function)
[source]VAO:AddFeaturesToSubmission((number|number[])) -> numberParameters
(number|number[])featureIDs
Returns
numbersubmittedCount
VAO:AddUnitDefsToSubmission (function)
[source]VAO:AddUnitDefsToSubmission((number|number[])) -> numberParameters
(number|number[])unitDefIDs
Returns
numbersubmittedCount
VAO:AddFeatureDefsToSubmission (function)
[source]VAO:AddFeatureDefsToSubmission((number|number[])) -> numberParameters
(number|number[])featureDefIDs
Returns
numbersubmittedCount
VAO:RemoveFromSubmission (function)
[source]VAO:RemoveFromSubmission(number) -> nilParameters
numberindex
Returns
VAO:Submit (function)
[source]VAO:Submit() -> nilReturns
VBO (class)
Vertex Buffer Object
[source]
Members
VBO:Delete (function)
[source]VBO:Delete() -> nilReturns
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[])) -> nilParameters
numbersize- The maximum number of elements this VBO can have.
(number|VBOAttributeDef[])attribs
Returns
VBO:GetBufferSize (function)
[source]VBO:GetBufferSize() -> number, number, numberReturns
numberelementsCountnumberbufferSizeInBytesnumbersize
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
vboDatawill only be used to upload the data to this particular attribute.The whole
vboDatais 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 ofvboDataat which copying begins. integer?luaFinishIndex- (Default:
#vboData) The index ofvboDataat which copying ends.
Returns
number[]indexDataintegerelemOffset(integer|(integer,integer...))attrID
VBO:Download (function)
[source]VBO:Download(integer?, integer?, number?, boolean?) -> unknownParameters
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, integerParameters
(number|number[])unitDefIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
(number,number,number,number)instanceDataintegerelementOffsetintegerattrID
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, integerParameters
(number|number[])featureDefIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
(number,number,number,number)instanceDataintegerelementOffsetintegerattrID
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, integerParameters
(number|number[])unitIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
(number,number,number,number)instanceDataintegerelementOffsetintegerattrID
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, integerParameters
(number|number[])featureIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
(number,number,number,number)instanceDataintegerelementOffsetintegerattrID
VBO:MatrixDataFromProjectileIDs (function)
[source]VBO:MatrixDataFromProjectileIDs((integer|integer[]), integer, integer?, integer?) -> number[], integer, (integer|(integer,integer...))Parameters
(integer|integer[])projectileIDsintegerattrIDinteger?teamIdOptinteger?elementOffset
Returns
number[]matDataVec- 4x4 matrix
integerelemOffset(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?) -> integerParameters
integerindex- should be in the range between
5 < index < GL_MAX_UNIFORM_BUFFER_BINDINGSvalue (usually 31) integer?elementOffsetnumber?elementCountnumber?target- glEnum
Returns
integerbindingIndex- when successful, -1 otherwise
VBO:UnbindBufferRange (function)
[source]VBO:UnbindBufferRange(integer, integer?, number?, number?) -> numberParameters
integerindexinteger?elementOffsetnumber?elementCountnumber?target- glEnum
Returns
numberbindingIndex- when successful, -1 otherwise
VBO:DumpDefinition (function)
Logs the definition of the VBO to the console
[source]
VBO:DumpDefinition() -> nilReturns
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) -> booleanParameters
VBOdestVBOintegercopySizeInBytes
Returns
booleansuccess
VBO:GetID (function)
Gets the OpenGL Buffer ID
[source]
VBO:GetID() -> integerReturns
integerbufferID
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
rgbabsorbrgbbaseColorrgbminColorrgbsurfaceColorrgbdiffuseColorrgbspecularColorrgbplaneColorstringtexture- file
stringfoamTexture- file
stringnormalTexture- file
numberdamagenumberrepeatXnumberrepeatYnumbersurfaceAlphanumberambientFactornumberdiffuseFactornumberspecularFactornumberspecularPowernumberfresnelMinnumberfresnelMaxnumberfresnelPowernumberreflectionDistortionnumberblurBasenumberblurExponentnumberperlinStartFreqnumberperlinLacunaritynumberperlinAmplitudenumberwindSpeednumberwaveOffsetFactornumberwaveLengthnumberwaveFoamDistortionnumberwaveFoamIntensitynumbercausticsResolutionnumbercausticsStrengthintegernumTilesbooleanshoreWavesbooleanforceRenderingbooleanhasWaterPlane
WeaponDamages (class)
Parameters for damage
[source]
Fields
integerparalyzeDamageTimenumberimpulseFactornumberimpulseBoostnumbercraterMultnumbercraterBoostnumberdynDamageExpnumberdynDamageMinnumberdynDamageRangenumberdynDamageInverted- Set to
trueif a non-zero value is passed,falseis zero is passed. numbercraterAreaOfEffectnumberdamageAreaOfEffectnumberedgeEffectivenessnumberexplosionSpeed
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
SetUnitWeaponDamagesto change dynDamageRange as well. number?projectileSpeedinteger?burstnumber?burstRateinteger?projectilesinteger?salvoLeftinteger?nextSalvonumber?aimReady- Set to
trueif a non-zero value is passed,falseis zero is passed. integer?forceAiminteger?avoidFlagsinteger?collisionFlagsnumber?ttl- How many seconds the projectile should live
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]
128OPT_ALT- [source]
64OPT_CTRL- [source]
32OPT_SHIFT- [source]
16OPT_RIGHT- [source]
8OPT_INTERNAL- [source]
4OPT_META- [source]
-1MOVESTATE_NONE- [source]
0MOVESTATE_HOLDPOS- [source]
1MOVESTATE_MANEUVER- [source]
2MOVESTATE_ROAM- [source]
-1FIRESTATE_NONE- [source]
0FIRESTATE_HOLDFIRE- [source]
1FIRESTATE_RETURNFIRE- [source]
2FIRESTATE_FIREATWILL- [source]
3FIRESTATE_FIREATNEUTRAL- [source]
1WAITCODE_TIME- [source]
2WAITCODE_DEATH- [source]
3WAITCODE_SQUAD- [source]
4WAITCODE_GATHER- [source]
0STOPStop the current action and clear the unit’s command queue.
For factories, this will cancel the new unit orders queue. For units, this will cancel the current command and queue.
Accepts no parameters.
It won’t do anything if used with CMD.INSERT, or the
shiftoption.[source]
1INSERT- [source]
2REMOVERemove all commands from a unit’s queue matching specific cmdIDs or tags.
Modes of operation
Filter by tag
Removes any command with a tag matching those included in params.
params{tag1, tag2 …} an array of tags to look for.
This is the default mode of operation.
Filter by id
Removes any command with a
command idmatching those included in params.params{id1, id2 …} or {tag1, tag2, …} an array of ids tags to look for.
To use this mode you need to pass the
altoption.Command Options
altTag/Id switchctrlAlternative queue selection.- For factories alternative queue is the factory command queue, default queue is the rally queue.
- For other units no effect.
Examples
Delete all attack orders from unit, or factory rally queue if factory:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, CMD.ATTACK)Delete all attack and fight orders from unit, or factory rally queue if factory:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, {CMD.ATTACK, CMD.FIGHT}, CMD.OPT_ALT)Delete commands with specific tags:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, {tag1, tag2, tag3})Delete all commands to build units with UnitDef ids unitDefId1 and unitDefId2 from factory queue:
lua Spring.GiveOrderToUnit(unitID, CMD.REMOVE, {-unitDefId1, -unitDefId2}, CMD.OPT_ALT + CMD.OPT_CTRL)[source]
5WAITMakes the unit suspend processing its command queue until wait is removed.
Accepts no parameters.
[source]
6TIMEWAITMakes the unit suspend processing its command queue for a given duration.
params{duration} Time to wait in seconds.
[source]
7DEATHWAITMakes 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]
8SQUADWAITMakes 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]
9GATHERWAITMakes 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]
10MOVE- [source]
15PATROL- [source]
16FIGHT- [source]
20ATTACKAttack command. Gives an order to attack some target(s).
The command has different modes of operation, depending on the number of parameters and options used.
Modes of operation
Attack single target
params{unitID}: Attack a unit
The command will end once the target is dead or not valid any more.
Area attack
Will create a number of
single targetactions by finding targets in a circle.Note: this is different than CMD.AREA_ATTACK, since this initially finds the targets but then doesn’t consider the area any more.
params{x,y,z,r} when radius is greater than 0.- r: radius
- x,y,z: map position
Ground attack
params{x,y,z,0} or {x,y,z}- x,y,z: map position
Command Options
altAlso target stunned targets. Without this stunned targets will be skipped.metaOverridemanualFire, andnoAutoTargetweapon behaviours.
Other modifiers
modInfo.targetableTransportedUnits: Controls whether transported units are targetable.
Callins
- UnitCmdDone: Run when the command is finished.
Examples
Attack unit with id
targetID.lua Spring.GiveOrderToUnit(unitID, CMD.ATTACK, targetID)Area attack of radius 50 at map position 1000,1000 with height 100:
lua Spring.GiveOrderToUnit(unitID, CMD.ATTACK, {1000,100,1000,50})Ground attack at map position 1000,1000 with height 100:
lua Spring.GiveOrderToUnit(unitID, CMD.ATTACK, {1000,100,1000})[source]
21AREA_ATTACK- [source]
25GUARD- [source]
35GROUPSELECT- [source]
36GROUPADD- [source]
37GROUPCLEAR- [source]
40REPAIR- [source]
45FIRE_STATE- [source]
50MOVE_STATE- [source]
55SETBASE- [source]
60INTERNAL- [source]
65SELFD- [source]
75LOAD_UNITS- [source]
76LOAD_ONTO- [source]
80UNLOAD_UNITS- [source]
81UNLOAD_UNIT- [source]
85ONOFF- [source]
90RECLAIM- [source]
95CLOAK- [source]
100STOCKPILE- [source]
105MANUALFIRE- [source]
105DGUN- [source]
110RESTORE- [source]
115REPEAT- [source]
120TRAJECTORY- [source]
125RESURRECT- [source]
130CAPTURE- [source]
135AUTOREPAIRLEVEL- [source]
20LOOPBACKATTACK- [source]
145IDLEMODE- [source]
CMDTYPE (enum)
Command type constants
Note, the CMDTYPE[] table is bidirectional. That means: CMDTYPE[CMDTYPE.ICON] := “CMDTYPE_ICON”
[source]
integerICONExpect 0 parameters in return.
[source]
integerICON_MODEExpect 1 parameter in return (number selected mode).
[source]
integerICON_MAPExpect 3 parameters in return (mappos).
[source]
integerICON_AREAExpect 4 parameters in return (mappos+radius).
[source]
integerICON_UNITExpect 1 parameters in return (unitid).
[source]
integerICON_UNIT_OR_MAPExpect 1 parameters in return (unitid) or 3 parameters in return (mappos).
[source]
integerICON_FRONTExpect 3 or 6 parameters in return (middle and right side of front if a front was defined).
[source]
integerICON_UNIT_OR_AREAExpect 1 parameter in return (unitid) or 4 parameters in return (mappos+radius).
[source]
integerNEXTExpect command page used with
CMD_INTERNAL.[source]
integerPREVExpect command page used with
CMD_INTERNAL.[source]
integerICON_UNIT_FEATURE_OR_AREAExpect 1 parameter in return (unitid or Game.maxUnits+featureid) or 4 parameters in return (mappos+radius).
[source]
integerICON_BUILDINGExpect 3 parameters in return (mappos).
[source]
integerCUSTOMExpect with
CMD_INTERNAL.[source]
integerICON_UNIT_OR_RECTANGLEExpect 1 parameter in return (unitid) or 3 parameters in return (mappos) or 6 parameters in return (startpos+endpos).
[source]
integerNUMBERExpect 1 parameter in return (number).
[source]
COB (enum)
COB constants
[source]
integerACTIVATION- [source]
integerSTANDINGMOVEORDERS- [source]
integerSTANDINGFIREORDERS- [source]
integerHEALTH- [source]
integerINBUILDSTANCE- [source]
integerBUSY- [source]
integerPIECE_XZ- [source]
integerPIECE_Y- [source]
integerUNIT_XZ- [source]
integerUNIT_Y- [source]
integerUNIT_HEIGHT- [source]
integerXZ_ATAN- [source]
integerXZ_HYPOT- [source]
integerATAN- [source]
integerHYPOT- [source]
integerGROUND_HEIGHT- [source]
integerBUILD_PERCENT_LEFT- [source]
integerYARD_OPEN- [source]
integerBUGGER_OFF- [source]
integerARMORED- [source]
integerIN_WATER- [source]
integerCURRENT_SPEED- [source]
integerVETERAN_LEVEL- [source]
integerON_ROAD- [source]
integerMAX_ID- [source]
integerMY_ID- [source]
integerUNIT_TEAM- [source]
integerUNIT_BUILD_PERCENT_LEFT- [source]
integerUNIT_ALLIED- [source]
integerMAX_SPEED- [source]
integerCLOAKED- [source]
integerWANT_CLOAK- [source]
integerGROUND_WATER_HEIGHT- [source]
integerUPRIGHT- [source]
integerPOW- [source]
integerPRINT- [source]
integerHEADING- [source]
integerTARGET_ID- [source]
integerLAST_ATTACKER_ID- [source]
integerLOS_RADIUS- [source]
integerAIR_LOS_RADIUS- [source]
integerRADAR_RADIUS- [source]
integerJAMMER_RADIUS- [source]
integerSONAR_RADIUS- [source]
integerSONAR_JAM_RADIUS- [source]
integerSEISMIC_RADIUS- [source]
integerDO_SEISMIC_PING- [source]
integerCURRENT_FUEL- [source]
integerTRANSPORT_ID- [source]
integerSHIELD_POWER- [source]
integerSTEALTH- [source]
integerCRASHING- [source]
integerCHANGE_TARGET- [source]
integerCEG_DAMAGE- [source]
integerCOB_ID- [source]
integerPLAY_SOUND- [source]
integerKILL_UNIT- [source]
integerSET_WEAPON_UNIT_TARGET- [source]
integerSET_WEAPON_GROUND_TARGET- [source]
integerSONAR_STEALTH- [source]
integerREVERSING- [source]
integerFLANK_B_MODE- [source]
integerFLANK_B_DIR- [source]
integerFLANK_B_MOBILITY_ADD- [source]
integerFLANK_B_MAX_DAMAGE- [source]
integerFLANK_B_MIN_DAMAGE- [source]
integerWEAPON_RELOADSTATE- [source]
integerWEAPON_RELOADTIME- [source]
integerWEAPON_ACCURACY- [source]
integerWEAPON_SPRAY- [source]
integerWEAPON_RANGE- [source]
integerWEAPON_PROJECTILE_SPEED- [source]
integerMIN- [source]
integerMAX- [source]
integerABS- [source]
integerGAME_FRAME- [source]
LOG (enum)
[source]LosMask (enum)
[source]1INLOS- the unit is currently in the los of the allyteam
2INRADAR- the unit is currently in radar from the allyteam
4PREVLOS- the unit has previously been in los from the allyteam
8CONTRADAR- the unit has continuously been in radar since it was last inlos by the allyteam
ProjectileTargetType (enum)
[source]102feature- ASCII number for the character
f 112projectile- ASCII number for the character
p 117unit- ASCII number for the character
u
READY_MESSAGE (enum)
[source]"Waiting for players"WAITING"Waiting for players, press key to force start"HOST_WAITING- when waiting and currently the host, key is the first key bound to the action forcestart
"Choose start pos"CHOOSE_POS- when current player is not ready and is not a spectator
"Starting in n"STARTING- where n is the number of seconds
READY_STATE (enum)
[source]"missing"MISSING- when the player hasn’t joined yet (NETMSG_PLAYERNAME wasn’t received)
"ready"READY"notready"NOT_READY
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]integer0integer1integer2integer3integer4integer5integer6integer7integer8integer9integerUNKNOWN- [source]
integerSPACE- [source]
integerA- [source]
integerB- [source]
integerC- [source]
integerD- [source]
integerE- [source]
integerF- [source]
integerG- [source]
integerH- [source]
integerI- [source]
integerJ- [source]
integerK- [source]
integerL- [source]
integerM- [source]
integerN- [source]
integerO- [source]
integerP- [source]
integerQ- [source]
integerR- [source]
integerS- [source]
integerT- [source]
integerU- [source]
integerV- [source]
integerW- [source]
integerX- [source]
integerY- [source]
integerZ- [source]
integerOEM_1- [source]
integerOEM_PLUS- [source]
integerOEM_COMMA- [source]
integerOEM_MINUS- [source]
integerOEM_PERIOD- [source]
integerOEM_2- [source]
integerOEM_3- [source]
integerOEM_4- [source]
integerOEM_5- [source]
integerOEM_6- [source]
integerOEM_7- [source]
integerOEM_8- [source]
integerOEM_102- [source]
integerNUMPAD0- [source]
integerNUMPAD1- [source]
integerNUMPAD2- [source]
integerNUMPAD3- [source]
integerNUMPAD4- [source]
integerNUMPAD5- [source]
integerNUMPAD6- [source]
integerNUMPAD7- [source]
integerNUMPAD8- [source]
integerNUMPAD9- [source]
integerNUMPADENTER- [source]
integerMULTIPLY- [source]
integerADD- [source]
integerSEPARATOR- [source]
integerSUBTRACT- [source]
integerDECIMAL- [source]
integerDIVIDE- [source]
integerOEM_NEC_EQUAL- [source]
integerBACK- [source]
integerTAB- [source]
integerCLEAR- [source]
integerRETURN- [source]
integerPAUSE- [source]
integerCAPITAL- [source]
integerKANA- [source]
integerHANGUL- [source]
integerJUNJA- [source]
integerFINAL- [source]
integerHANJA- [source]
integerKANJI- [source]
integerESCAPE- [source]
integerCONVERT- [source]
integerNONCONVERT- [source]
integerACCEPT- [source]
integerMODECHANGE- [source]
integerPRIOR- [source]
integerNEXT- [source]
integerEND- [source]
integerHOME- [source]
integerLEFT- [source]
integerUP- [source]
integerRIGHT- [source]
integerDOWN- [source]
integerSELECT- [source]
integerPRINT- [source]
integerEXECUTE- [source]
integerSNAPSHOT- [source]
integerINSERT- [source]
integerDELETE- [source]
integerHELP- [source]
integerLWIN- [source]
integerRWIN- [source]
integerAPPS- [source]
integerPOWER- [source]
integerSLEEP- [source]
integerWAKE- [source]
integerF1- [source]
integerF2- [source]
integerF3- [source]
integerF4- [source]
integerF5- [source]
integerF6- [source]
integerF7- [source]
integerF8- [source]
integerF9- [source]
integerF10- [source]
integerF11- [source]
integerF12- [source]
integerF13- [source]
integerF14- [source]
integerF15- [source]
integerF16- [source]
integerF17- [source]
integerF18- [source]
integerF19- [source]
integerF20- [source]
integerF21- [source]
integerF22- [source]
integerF23- [source]
integerF24- [source]
integerNUMLOCK- [source]
integerSCROLL- [source]
integerOEM_FJ_JISHO- [source]
integerOEM_FJ_MASSHOU- [source]
integerOEM_FJ_TOUROKU- [source]
integerOEM_FJ_LOYA- [source]
integerOEM_FJ_ROYA- [source]
integerLSHIFT- [source]
integerRSHIFT- [source]
integerLCONTROL- [source]
integerRCONTROL- [source]
integerLMENU- [source]
integerRMENU- [source]
integerBROWSER_BACK- [source]
integerBROWSER_FORWARD- [source]
integerBROWSER_REFRESH- [source]
integerBROWSER_STOP- [source]
integerBROWSER_SEARCH- [source]
integerBROWSER_FAVORITES- [source]
integerBROWSER_HOME- [source]
integerVOLUME_MUTE- [source]
integerVOLUME_DOWN- [source]
integerVOLUME_UP- [source]
integerMEDIA_NEXT_TRACK- [source]
integerMEDIA_PREV_TRACK- [source]
integerMEDIA_STOP- [source]
integerMEDIA_PLAY_PAUSE- [source]
integerLAUNCH_MAIL- [source]
integerLAUNCH_MEDIA_SELECT- [source]
integerLAUNCH_APP1- [source]
integerLAUNCH_APP2- [source]
integerOEM_AX- [source]
integerICO_HELP- [source]
integerICO_00- [source]
integerPROCESSKEY- [source]
integerICO_CLEAR- [source]
integerATTN- [source]
integerCRSEL- [source]
integerEXSEL- [source]
integerEREOF- [source]
integerPLAY- [source]
integerZOOM- [source]
integerPA1- [source]
integerOEM_CLEAR- [source]
RmlUi.key_modifier (enum)
[source]integerCTRL- [source]
integerSHIFT- [source]
integerALT- [source]
integerMETA- [source]
integerCAPSLOCK- [source]
integerNUMLOCK- [source]
integerSCROLLLOCK- [source]
SFX (enum)
[source]integerSHATTERPiece flag for
Spring.UnitScript.Explode.[source]
integerEXPLODEPiece flag for
Spring.UnitScript.Explode.[source]
integerEXPLODE_ON_HITPiece flag for
Spring.UnitScript.Explode.[source]
integerFALLPiece flag for
Spring.UnitScript.Explode.[source]
integerSMOKEPiece flag for
Spring.UnitScript.Explode.[source]
integerFIREPiece flag for
Spring.UnitScript.Explode.[source]
integerNONEPiece flag for
Spring.UnitScript.Explode.[source]
integerNO_CEG_TRAILPiece flag for
Spring.UnitScript.Explode.[source]
integerNO_HEATCLOUDPiece flag for
Spring.UnitScript.Explode.[source]
integerRECURSIVEPiece flag for
Spring.UnitScript.Explode.[source]
integerVTOLPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerWAKEPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerREVERSE_WAKEPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerWHITE_SMOKEPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerBLACK_SMOKEPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerBUBBLEPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerCEGPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerFIRE_WEAPONPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerDETONATE_WEAPONPiece flag for
Spring.UnitScript.EmitSfx.[source]
integerGLOBALPiece 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
READY_MESSAGE (field)
[source]READY_STATE (field)
[source]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) -> stringParameters
stringtext- Text to decode
Returns
stringdecoded- Decoded text
Encoding.EncodeBase64 (function)
Encodes a base64 string
[source]
Encoding.EncodeBase64(string, boolean?) -> stringParameters
stringtext- Text to encode
boolean?stripPadding- Remove padding (
=characters) at the end when ’true’. Defaults totrue.
Returns
stringencoded- Encoded text
Encoding.IsValidBase64 (function)
Validates a base64 string
[source]
Encoding.IsValidBase64(string) -> booleanParameters
stringtext- Text to validate
Returns
booleanvalid- 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) -> stringParameters
stringtext- Text to decode
Returns
stringdecoded- Decoded text
Encoding.EncodeBase64Url (function)
Encodes a base64url string
[source]
Encoding.EncodeBase64Url(string) -> stringParameters
stringtext- Text to encode
Returns
stringencoded- Encoded text
Encoding.IsValidBase64Url (function)
Validates a base64url string
[source]
Encoding.IsValidBase64Url(string) -> booleanParameters
stringtext- Text to validate
Returns
booleanvalid- Whether the text is valid base64url
Engine (table)
Engine specific information.
[source]
Fields
stringversion- “Major.Minor.PatchSet” for releases, “Major.Minor.PatchSet-CommitNum-gHash branch” otherwise
stringversionFull- “Major.Minor.PatchSet” for releases, “Major.Minor.PatchSet-CommitNum-gHash branch” otherwise. Will also include (buildFlags), if there’re any.
stringversionMajor- Major part of the named release version
stringversionMinor- Minor part of the named release version
stringversionPatchSet- Build number of the named release version
stringcommitsNumber- Number of commits after the latest named release, non-zero indicates a “dev” build
stringbuildFlags- Gets additional engine buildflags, e.g. “Debug” or “Sync-Debug”
FeatureSupportfeatureSupport- Table containing various engine features as keys; use for cross-version compat
numberwordSize- Indicates the build type always 64 these days
numbergameSpeed- Number of simulation gameframes per second
TextColorCodetextColorCodes- Table containing keys that represent the color code operations during font rendering
Game (table)
Game specific information
[source]
Fields
numbermaxUnitsnumbermaxTeamsnumbermaxPlayersnumbersquareSize- Divide Game.mapSizeX or Game.mapSizeZ by this to get engine’s “mapDims” coordinates. The resolution of height, yard and type maps.
numbermetalMapSquareSize- The resolution of metalmap (for use in API such as Spring.GetMetalAmount etc.)
numbergameSpeed- Number of simulation gameframes per second
numberstartPosTypebooleanghostedBuildingsstringmapChecksumstringmodChecksumbooleanmapDamagestringmapNamestringmapDescription- = string Game.mapHumanName
numbermapHardnessnumbermapXnumbermapYnumbermapSizeX- in worldspace/opengl coords. Divide by Game.squareSize to get engine’s “mapDims” coordinates
numbermapSizeZ- in worldspace/opengl coords. Divide by Game.squareSize to get engine’s “mapDims” coordinates
numbergravitynumbertidalnumberwindMinnumberwindMaxnumberextractorRadiusnumberwaterDamagetableenvDamageTypes- Containing {def}IDs of environmental-damage sources
stringgameNamestringgameShortNamestringgameVersionstringgameMutatorstringgameDescbooleanrequireSonarUnderWaternumbertransportAirnumbertransportShipnumbertransportHovernumbertransportGroundnumberfireAtKillednumberfireAtCrashingbooleanconstructionDecaybooleanreclaimAllowEnemiesbooleanreclaimAllowAlliesnumberconstructionDecayTimenumberconstructionDecaySpeednumbermultiReclaimnumberreclaimMethodnumberreclaimUnitMethodnumberreclaimUnitEnergyCostFactornumberreclaimUnitEfficiencynumberreclaimFeatureEnergyCostFactornumberrepairEnergyCostFactornumberresurrectEnergyCostFactornumbercaptureEnergyCostFactortable<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, ... }TextColorCodetextColorCodes- Table containing keys that represent the color code operations during font rendering
booleannativeExcessSharing- [source] whether the engine handles excess resources overflow
Platform (table)
Platform specific information
[source]
Fields
stringgpu- [source] Full GPU device name
("Nvidia"|"Intel"|"ATI"|"Mesa"|"Unknown")gpuVendor- [source]
numbergpuMemorySize- [source] Size of total GPU memory in MBs; only available for “Nvidia”, (rest are 0)
stringglVersionShort- [source]
major.minor.buildNumber integerglVersionNum- [source]
stringglslVersionShort- [source]
major.minor stringglslVersionNum- [source]
stringglVersion- [source] Full version
stringglVendor- [source]
stringglRenderer- [source]
stringglslVersion- [source] Full version
stringgladVersion- [source]
stringglewVersion- [source]
numbersdlVersionCompiledMajor- [source]
numbersdlVersionCompiledMinor- [source]
numbersdlVersionCompiledPatch- [source]
numbersdlVersionLinkedMajor- [source]
numbersdlVersionLinkedMinor- [source]
numbersdlVersionLinkedPatch- [source]
PlatformVideoMode[]availableVideoModes- [source]
integernumDisplays- [source]
booleanglSupportNonPowerOfTwoTex- [source]
booleanglSupportTextureQueryLOD- [source]
booleanglSupportMSAAFrameBuffer- [source]
booleanglHaveAMD- [source]
booleanglHaveNVidia- [source]
booleanglHaveIntel- [source]
booleanglHaveGLSL- [source]
booleanglHaveGL4- [source]
numberglSupportDepthBufferBitDepth- [source]
booleanglSupportRestartPrimitive- [source]
booleanglSupportClipSpaceControl- [source]
booleanglSupportFragDepthLayout- [source]
booleanglSupportSeamlessCubeMaps- [source]
stringosName- [source] full name of the OS
stringosVersion- [source]
("Windows"|"Linux"|"MacOSX"|"FreeBSD"|"Unknown")osFamily- [source]
stringhwConfig- [source]
integercpuLogicalCores- [source]
integercpuPhysicalCores- [source]
stringcpuBrand- [source]
numbertotalRAM- [source] Total physical system RAM in MBs.
stringsysInfoHash- [source]
stringmacAddrHash- [source]
Script (table)
Members
Script.Kill (function)
[source]Script.Kill(string?) -> nilParameters
string?killMessage- Kill message.
Script.UpdateCallin (function)
[source]Script.UpdateCallin(string) -> nilParameters
stringname
Script.GetName (function)
[source]Script.GetName() -> stringReturns
stringname
Script.GetSynced (function)
[source]Script.GetSynced() -> booleanReturns
booleansynced
Script.GetFullCtrl (function)
[source]Script.GetFullCtrl() -> booleanReturns
booleanfullCtrl
Script.GetFullRead (function)
[source]Script.GetFullRead() -> booleanReturns
booleanfullRead
Script.GetCtrlTeam (function)
[source]Script.GetCtrlTeam() -> integerReturns
integerteamID
Script.GetReadTeam (function)
[source]Script.GetReadTeam() -> integerReturns
integerteamID
Script.GetReadAllyTeam (function)
[source]Script.GetReadAllyTeam() -> integerReturns
integerallyTeamID
Script.GetSelectTeam (function)
[source]Script.GetSelectTeam() -> integerReturns
integerteamID
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) -> nilParameters
integerframeDelayunknownfun
Script.IsEngineMinVersion (function)
[source]Script.IsEngineMinVersion(integer, integer?, integer?) -> booleanParameters
integerminMajorVerinteger?minMinorVer- (Default:
0) integer?minCommits- (Default:
0)
Returns
booleansatisfiesMintrueif the engine version is greater or equal to the specified version, otherwisefalse.
Script.GetWatchUnit (function)
Query whether any callins are registered for a unitDefID.
[source]
Script.GetWatchUnit(integer) -> booleanParameters
integerunitDefID
Returns
booleanwatched- Watch status.
Script.GetWatchFeature (function)
Query whether any callins are registered for a featureDefID.
[source]
Script.GetWatchFeature(integer) -> booleanParameters
integerfeatureDefID
Returns
booleanwatchedtrueif 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) -> booleanParameters
integerweaponDefID
Returns
booleanwatched- 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) -> booleanParameters
integerweaponDefID
Returns
booleanwatchedtrueif callins are registered, otherwisefalse.
Script.GetWatchProjectile (function)
Query whether projectile callins are registered for a weaponDefID.
[source]
Script.GetWatchProjectile(integer) -> booleanParameters
integerweaponDefID
Returns
booleanwatchedtrueif callins are registered, otherwisefalse.
Script.GetWatchAllowTarget (function)
Query whether weapon targeting callins are registered for a weaponDefID.
[source]
See Script.SetWatchAllowTarget
Script.GetWatchAllowTarget(integer) -> booleanParameters
integerweaponDefID
Returns
booleanwatchedtrueif callins are registered, otherwisefalse.
Script.SetWatchUnit (function)
Register or deregister unitDefID for expensive callins.
[source]
Script.SetWatchUnit(integer, boolean) -> nilParameters
Script.SetWatchFeature (function)
Register or deregister featureDefID for expensive callins.
[source]
See Callins:UnitFeatureCollision
Script.SetWatchFeature(integer, boolean) -> nilParameters
integerfeatureDefIDbooleanwatch- 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) -> nilParameters
integerweaponDefIDbooleanwatch- Whether to register or deregister.
Script.SetWatchExplosion (function)
Register or deregister weaponDefID for explosion callins.
[source]
Script.SetWatchExplosion(integer, boolean) -> nilParameters
integerweaponDefIDbooleanwatch- Whether to register or deregister.
Script.SetWatchProjectile (function)
Register or deregister weaponDefID for expensive projectile callins.
[source]
See Callins:ProjectileDestroyed
Script.SetWatchProjectile(integer, boolean) -> nilParameters
integerweaponDefID- weaponDefID for weapons or -1 to watch for debris.
booleanwatch- Whether to register or deregister.
Script.SetWatchAllowTarget (function)
Register or deregister weaponDefID for weapon targeting callins.
[source]
See SyncedCallins:AllowWeaponInterceptTarget
Script.SetWatchAllowTarget(integer, boolean) -> nilParameters
integerweaponDefIDbooleanwatch- Whether to register or deregister.
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.sdzandmaphelper.sdz. - Dependencies listed in your
modinfo.lua(ormodinfo.tdf), in the order listed. Note that they are loaded fully and recursively, i.e. all the deeper dependencies of the 1st base-level dependency are loaded before the 2nd base-level dependency. This breaks the usual “loaded later overrides loaded earlier” priority if a dependency comes from multiple places, since only the first time an archive is loaded counts. - Your mod archive.
Loose files (not within any archive) in the engine dir are also visible
as if under the VFS root if loading under the VFS.RAW mode, though you
can also use full FS path (i.e. C:/…/Spring/foo/bar.txt is visible
both as that and as just foo/bar.txt). Note that VFS.RAW is only
accessible to unsynced Lua, all synced states are limited to loaded archives.
Paths
Spring’s VFS is lowercase only. Also it is strongly recommended to
use linux style path separators, e.g. “foo/bar.txt” and not “foobar.txt”.
Engine read files
The engine access a few files directly, most of them are lua files which
access other files themselves. Here the list of files that must exist in the
VFS (some of them don’t have to be in the game/map archive cause there are
fallback solutions in springcontent.sdz & maphelper.sdz):
./- anims/
cursornormal.bmp/png- gamedata/
defs.luaexplosions.luaexplosion_alias.luaicontypes.luamessages.luamodrules.luaresources.luaresources_map.luasidedata.luasounds.lualuagaia/main.luadraw.lualuarules/main.luadraw.lualuaui/main.luashaders/?luaai.luamapinfo.luamapoptions.luamodinfo.luamodoptions.luavalidmaps.lua
[source]
Members
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?) -> anyParameters
stringfilenametable?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
nilto preserve the current env.If the provided, any non-local variables and functions defined in
filename.luaare 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.luawill see the contents of env in place of the normal global environment.string?mode
Returns
anymodule- 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?) -> booleanParameters
Returns
booleanexiststrueif 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
stringarchiveNameunknownfun
Returns
any ...Results- of the given function
VFS.CompressFolder (function)
Compresses the specified folder.
[source]
VFS.CompressFolder(string, string?, string?, boolean?, string?) -> nilParameters
stringfolderPathstring?archiveType- (Default:
“zip”)The compression type (can currently be only“zip”). string?compressedFilePath- (Default:
folderPath .. “.sdz”) boolean?includeFolder- (Default:
false) Whether the archive should have the specified folder as root. string?mode
VFS.ZlibCompress (function)
[source]VFS.ZlibCompress(string) -> string?Parameters
stringuncompressed- Data to compress.
Returns
string?compressed- Compressed data, or
nilon error.
VFS.ZlibDecompress (function)
[source]VFS.ZlibDecompress(string) -> string?Parameters
stringcompressed- Data to decompress.
Returns
string?uncompressed- Uncompressed data, or
nilon 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, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackU8 (function overload 1)
Convert unsigned 8-bit integer(s) to binary string.
[source]
VFS.PackU8(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackU16 (function)
Convert unsigned 16-bit integer(s) to binary string.
[source]
VFS.PackU16([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackU16 (function overload 1)
Convert unsigned 16-bit integer(s) to binary string.
[source]
VFS.PackU16(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackU32 (function)
Convert unsigned 32-bit integer(s) to binary string.
[source]
VFS.PackU32([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackU32 (function overload 1)
Convert unsigned 32-bit integer(s) to binary string.
[source]
VFS.PackU32(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackS8 (function)
Convert signed 8-bit integer(s) to binary string.
[source]
VFS.PackS8([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackS8 (function overload 1)
Convert signed 8-bit integer(s) to binary string.
[source]
VFS.PackS8(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackS16 (function)
Convert signed 16-bit integer(s) to binary string.
[source]
VFS.PackS16([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackS16 (function overload 1)
Convert signed 16-bit integer(s) to binary string.
[source]
VFS.PackS16(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackS32 (function)
Convert signed 32-bit integer(s) to binary string.
[source]
VFS.PackS32([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackS32 (function overload 1)
Convert signed 32-bit integer(s) to binary string.
[source]
VFS.PackS32(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.PackS32 (function overload 2)
Convert signed 32-bit float(s) to binary string.
[source]
VFS.PackS32([integer, ]*) -> stringParameters
integer...- Numbers to pack.
Returns
VFS.PackS32 (function overload 3)
Convert signed 32-bit float(s) to binary string.
[source]
VFS.PackS32(integer[]) -> stringParameters
integer[]numbers- Numbers to pack.
Returns
VFS.UnpackU8 (function)
Convert a binary string to an unsigned 8-bit integer.
[source]
VFS.UnpackU8(string, integer?) -> integerParameters
Returns
VFS.UnpackU16 (function)
Convert a binary string to an unsigned 16-bit integer.
[source]
VFS.UnpackU16(string, integer?) -> integerParameters
Returns
VFS.UnpackU32 (function)
Convert a binary string to an unsigned 32-bit integer.
[source]
VFS.UnpackU32(string, integer?) -> integerParameters
Returns
VFS.UnpackS8 (function)
Convert a binary string to a signed 8-bit integer.
[source]
VFS.UnpackS8(string, integer?) -> integerParameters
Returns
VFS.UnpackS16 (function)
Convert a binary string to a signed 16-bit integer.
[source]
VFS.UnpackS16(string, integer?) -> integerParameters
Returns
VFS.UnpackS32 (function)
Convert a binary string to a signed 32-bit integer.
[source]
VFS.UnpackS32(string, integer?) -> integerParameters
Returns
VFS.UnpackF32 (function)
Convert a binary string to a signed 32-bit float.
[source]
VFS.UnpackF32(string, integer?) -> integerParameters
Returns
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() -> booleanReturns
booleanhasArchive
VFS.GetLoadedArchives (function)
[source]VFS.GetLoadedArchives() -> string[]Returns
string[]archiveNames
VFS.GetArchivePath (function)
[source]VFS.GetArchivePath(string) -> string?Parameters
stringarchiveName
Returns
string?archivePath
VFS.GetArchiveInfo (function)
[source]VFS.GetArchiveInfo(string) -> ArchiveInfo?Parameters
stringarchiveName
Returns
VFS.GetArchiveDependencies (function)
[source]VFS.GetArchiveDependencies(string) -> string[]Parameters
stringarchiveName
Returns
string[]archiveNames
VFS.GetArchiveReplaces (function)
[source]VFS.GetArchiveReplaces(string) -> string[]Parameters
stringarchiveName
Returns
string[]archiveNames
VFS.GetArchiveChecksum (function)
[source]VFS.GetArchiveChecksum(string) -> string, stringParameters
stringarchiveName
Returns
stringsingleArchiveChecksumstringcompleteArchiveChecksum
VFS.GetNameFromRapidTag (function)
[source]VFS.GetNameFromRapidTag(string) -> stringParameters
stringrapidTag
Returns
stringarchiveName
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
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.ZoneBegin (function)
tracy.ZoneBegin(string) -> nilParameters
stringname
tracy.ZoneBeginN (function)
tracy.ZoneBeginN(string) -> nilParameters
stringname
tracy.ZoneBeginS (function)
tracy.ZoneBeginS(string) -> nilParameters
stringname
tracy.ZoneBeginNS (function)
tracy.ZoneBeginNS(string) -> nilParameters
stringname
tracy.ZoneEnd (function)
tracy.ZoneEnd() -> niltracy.ZoneText (function)
tracy.ZoneText(string) -> nilParameters
stringtext
tracy.ZoneName (function)
tracy.ZoneName(string) -> nilParameters
stringname
tracy.Message (function)
tracy.Message(string) -> nilParameters
stringtext
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?) -> nilParameters
stringplotName- name of the plot to customize
("Number"|"Percentage"|"Memory")?plotFormatType- (Default:
“Number”) boolean?stepwise- (Default:
true) stepwise chart boolean?fill- (Default:
false) whether to fill color integer?color- (Default:
0xFFFFFF) uint32 number as BGR color
tracy.LuaTracyPlot (function)
Update a Tracy plot with a value
[source]
tracy.LuaTracyPlot(string, number) -> nilParameters
ProjectileTargetType (field)
[source]LosMask (field)
[source]Aliases
- SoundChannel
("general"|"battle"|"sfx"|"unitreply"|"voice"|"userinterface"|"ui"|0...)- CameraMode
(0|1|2|3|4|5|6)- Heading
integer- RmlUi.EventParametersProxy.MouseButton
(0|1|2)- FacingInteger
(0|1|2|3)- CommandOptionBit
(4|8|16|32|64|128)- HashType
(0|1)- StorageName
("metalStorage"|"energyStorage"|"ms"|"es")- ResourceUsage
table<ResourceName,number>- RmlUi.SelectOptionsProxy
RmlUi.SelectOptionsProxyNode[]- RmlUi.ElementStyleProxy
{ [string]: string }- ModType
(0|1|3|4)- BuildOrderBlockedStatus
(0|1|2|3)- CreateCommandParams
(number[]|number)- CommandOptionName
("right"|"alt"|"ctrl"|"shift"|"meta")- float4
xyzw- GenericMoveTypeBooleanKey
("useWantedSpeed[0]"|"useWantedSpeed[1]")- DrawFlag
(0|1|2|4|8|16|32|128)- CreateCommandOptions
(CommandOptionName[]|table<CommandOptionName,boolean>|CommandOptionBit|integer)- RmlUi.SelectOptionsProxyNode
{ element: RmlUi.Element, value: string }- RmlUi.ElementAttributesProxy
{ [string]: (string|number|boolean) }- Facing
(0|1|2|3|"s"|"e"|"n"|"w"...)- TargetType
(0|1|2|3)- ResourceName
("metal"|"energy"|"m"|"e")- LosTable
table<("los"|"radar"|"prevLos"|"contRadar"),boolean>- GenericMoveTypeNumberKey
("maxSpeed"|"maxWantedSpeed"|"maneuverLeash"|"waterline")- Attachment
("depth"|"stencil"|"color0"|"color1"|"color2"|"color3"|"color4"|"color5"...)- float2
xy- RmlUi.MouseButton
(0|1|2)- MatrixName
("view"|"projection"|"viewprojection"|"viewinverse"|"projectioninverse"|"viewprojectioninverse"|"billboard"|"shadow"...)- RmlUi.EventID
(0|1|2|3|4|5|6|7...)- UniformArrayType
(1|2|3)- CameraName
("ta"|"spring"|"rot"|"ov"|"free"|"fps"|"dummy")- LogLevel
(integer|"debug"|"info"|"notice"|"warning"|"deprecated"|"error"|"fatal")- float3
xyz- RmlUi.ElementChildNodesProxy
RmlUi.Element[]- DrawMask
integer- RmlUi.StyleProxy
{ [string]: string }- RmlUi.EventParametersProxy.TrueFalse
(0|1)