|
|
| Line 1: |
Line 1: |
| [[Engine_Development|Development]] < [[Lua_Scripting|Lua Scripting]] < {{FULLPAGENAME}} | | [[Engine_Development|Development]] < [[Lua_Scripting|Lua Scripting]] < {{FULLPAGENAME}} |
| | =Unsynced Read= |
|
| |
|
| | == Replay/Spectating == |
| | '''Spring.IsReplay''' |
| | ( ) -> nil | boolean |
| | '''Spring.GetReplayLength''' {{new|92.0}} |
| | ( ) -> nil | number (in seconds) |
| | '''Spring.GetSpectatingState''' |
| | ( ) -> boolean spectating, boolean fullView, boolean fullSelect |
|
| |
|
| | == Game/Menu Name == |
| | '''Spring.GetGameName''' {{new|104.0}} |
| | ( ) -> string name |
|
| |
|
| <div class="note">
| | Apparently returns {{xtaglink|Modinfo.lua|name}} .. {{xtaglink|Modinfo.lua|version}} from [[Modinfo.lua]]. E.g. "Spring: 1944 test-5640-ac2d15b". |
| NOTE: Prior to 102.0, entries below marked <font color="red" style="font-weight:600">(needs ModUICtrl)</font> require the setting ModUICtrl to be enabled in the users [[springrc]], if you want to use them in unsynced LuaRules/LuaGaia. It is enabled by default in previous versions and removed in 102.0 so you generally don't need to care.</div>
| |
|
| |
|
| = UI =
| | '''Spring.GetMenuName''' {{new|104.0}} |
| | ( ) -> string name |
|
| |
|
| {{LuaCallout
| | == ModUI == |
| |prefix = Spring.
| | '''Spring.GetModUICtrl''' |
| |name = SetLastMessagePosition
| | ( ) -> boolean |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 = {{type|number}} z
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
|
| |
|
| = Ingame Console = | | == MyInfo == |
| | '''Spring.GetMyAllyTeamID''' |
| | ( ) -> number |
| | '''Spring.GetMyTeamID''' |
| | ( ) -> number |
| | '''Spring.GetMyPlayerID''' |
| | ( ) -> number |
|
| |
|
| {{LuaCallout
| | == Local Player,Team,Ally == |
| |prefix = Spring.
| | <span class="note">Redundant same as the GetMyXYZ functions!</span> |
| |name = Echo
| |
| |arg1 = {{type|arg1}} {{bracket}}
| |
| |arg2 = {{type|arg2}} {{bracket}}
| |
| |arg3 = {{type|...}} {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = Useful for debugging.<br> Prints values in the spring chat console.<br> Hint: the default print() writes to STDOUT.
| |
| }}
| |
|
| |
|
| | '''Spring.GetLocalPlayerID''' |
| | ( ) -> number playerID |
| | '''Spring.GetLocalTeamID''' |
| | ( ) -> number teamID |
| | '''Spring.GetLocalAllyTeamID''' |
| | ( ) -> number allyID |
|
| |
|
| {{LuaCallout
| | == Team/Player Info == |
| |prefix = Spring.
| | '''Spring.GetPlayerRoster''' |
| |name = Log | | ( [number sortType] | [number sortType], [bool showPathingPlayers] ) -> |
| |arg1 = {{type|string}} section | | nil | playerTable = { |
| |arg2 = {{type|number}} logLevel {{pipe}} {{type|string}} logLevel
| | [1] = { |
| |arg3 = {{type|string}} LogMessage1 {{bracket}}
| | string name, |
| |arg4 = {{type|string}} LogMessage2{{bracket}}
| | number playerID, |
| |arg5 = ... {{rbracket}}{{rbracket}}
| | number teamID, |
| |arg6 =
| | number allyTeamID, |
| |arg7 =
| | boolean spectator, |
| |arg8 =
| | number cpuUsage, |
| |arg9 =
| | number pingTime |
| |return = {{type|nil}}
| | }, |
| |info =
| | etc... |
| }}
| | } |
| <pre>Possible values for logLevel are: | | if pingTime is == -1, the player is pathfinding, in order to find the progress, use: |
| "debug" | LOG.DEBUG
| | cpuUsage&0x1 if it's PC or BO, cpuUsage& 0xFE to get path res, (cpuUsage>>8)*1000 |
| "info" | LOG.INFO
| | for the progress |
| "notice" | LOG.NOTICE (engine default) (new in Version 97)
| | <font color="#55ee99"> Sort codes: |
| "warning" | LOG.WARNING
| | 1 = Sort by allies (the default) |
| "error" | LOG.ERROR
| | 2 = Sort by teamID |
| "fatal" | LOG.FATAL</pre>
| | 3 = Sort by playerName |
| | 4 = Sort by CPU usage |
| | 5 = Sort by ping time</font> |
| | '''Spring.GetTeamColor''' |
| | ( number teamID ) -> nil | number r, number g, number b, number a |
| | '''Spring.GetTeamOrigColor''' |
| | ( number teamID ) -> nil | number r, number g, number b, number a |
| | '''Spring.GetPlayerTraffic''' |
| | ( number playerID [, number packetID] ) -> number |
|
| |
|
| | == Sound == |
| | '''Spring.GetSoundStreamTime''' |
| | ( ) -> number playedTime, number totalTime |
|
| |
|
| | == Camera == |
| | '''Spring.GetCameraNames''' |
| | ( ) -> { [camName] = number camNum, ... } |
| | '''Spring.GetCameraState''' |
| | ( ) -> { "name" = string, "mode" = number camIdx, state1 = number, state2 = number, ... } |
|
| |
|
| {{LuaCallout
| | See [[Lua_camState]] for details about Spring.GetCameraState output. |
| |prefix = Spring.
| |
| |name = SendCommands
| |
| |arg1 = {{type|string}} command1 {{bracket}}
| |
| |arg2 = {{type|string}} command2 {{bracket}}
| |
| |arg3 = {{type|...}} {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| or
| | '''Spring.GetCameraPosition''' |
| | ( ) -> number x, number y, number z |
| | '''Spring.GetCameraDirection''' |
| | ( ) -> number forward_x, number forward_y, number forward_z |
| | '''Spring.GetCameraFOV''' |
| | ( ) -> number vFov, number hFov |
| | '''Spring.GetCameraVectors''' |
| | ( ) -> vectorTable = { |
| | forward = { [1] = number x, [2] = number y, [3] = number z }, |
| | up = { [1] = number x, [2] = number y, [3] = number z }, |
| | right = { [1] = number x, [2] = number y, [3] = number z }, |
| | top = { [1] = number x, [2] = number y, [3] = number z }, |
| | bottom = { [1] = number x, [2] = number y, [3] = number z }, |
| | leftside = { [1] = number x, [2] = number y, [3] = number z }, |
| | rightside = { [1] = number x, [2] = number y, [3] = number z } |
| | } |
|
| |
|
| {{LuaCallout
| | === Inview === |
| |prefix = Spring.
| | '''Spring.GetVisibleUnits''' |
| |name = SendCommands
| | ( [number teamID = -1 [, number radius = 30 [, boolean Icons = true ]]] ) |
| |arg1 = { {{type|string}} command1, {{type|string}} command2, ... } | | -> nil | unitTable = { [1] = number unitID, ... } |
| |arg2 =
| | '''Spring.GetVisibleFeatures''' |
| |arg3 =
| | ( [number allyTeamID = -1 [, number radius = 30 [, boolean Icons = true [, boolean geos = true ]]]] ) |
| |arg4 =
| | -> nil | featureTable = { [1] = number featureID, ... } |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 = | |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| == GUI ==
| | '''Spring.IsAABBInView''' |
| | ( number minX, number minY, number minZ, |
| | number maxX, number maxY, number maxZ ) -> nil | boolean |
| | '''Spring.IsSphereInView''' |
| | ( number x, number y, number z [, number radius ] ) -> nil | boolean |
| | '''Spring.IsUnitIcon''' |
| | ( number unitID ) -> nil | boolean |
| | '''Spring.IsUnitInView''' |
| | ( number unitID ) -> nil | boolean |
| | '''Spring.IsUnitVisible''' |
| | ( number unitID [, number radius [, boolean checkIcons] ] ) -> nil | boolean |
|
| |
|
| {{LuaCallout
| | === Screen Trace === |
| |prefix = Spring.
| | '''Spring.WorldToScreenCoords''' |
| |name = SetActiveCommand
| | ( number x, number y, number z ) -> number x, number y, number z |
| |arg1 = {{type|string}} action {{bracket}}
| |
| |arg2 = {{type|string}} actionExtra {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} commandSet
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| or
| | '''Spring.TraceScreenRay''' |
|
| |
|
| {{LuaCallout
| | ( number mouseX, number mouseY [, boolean onlyCoords |
| |prefix = Spring.
| | [, boolean useMinimap [, boolean includeSky [, boolean ignoreWater [, number D] ] ] ] ] ) |
| |name = SetActiveCommand
| | -> nil | |
| |arg1 = {{type|number}} cmdIndex {{bracket}}
| | string "unit", number unitID | |
| |arg2 = {{type|number}} button = 1 {{bracket}}
| | string "feature", number featureID | |
| |arg3 = {{type|bool}} leftClick {{bracket}} | | string "ground", { [1] = number x, [2] = number y, [3] = number z } |
| |arg4 = {{type|bool}} rightClick {{bracket}} | |
| |arg5 = {{type|bool}} alt {{bracket}} | |
| |arg6 = {{type|bool}} ctrl {{bracket}}
| |
| |arg7 = {{type|bool}} meta {{bracket}}
| |
| |arg8 = {{type|bool}} shift {{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} commandSet
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| | {{new|101.0}} Exended 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 collission sphere. Per Piece collission and custom collission objects are not supported. The unit must be selectable, to appear to a screen trace ray. |
|
| |
|
| {{LuaCallout
| | to get map coordinates under mouse cursor: input mouse coordinates obtained via GetMouseState() and pass true for the onlyCoords parameter. Be careful as going off map will result in nil: |
| |prefix = Spring.
| | local mouseX, mouseY = Spring.GetMouseState() |
| |name = LoadCmdColorsConfig
| | print ("Mouse coordinates: (" .. mouseX .. ", " .. mouseY .. ")") |
| |arg1 = {{type|string}} config
| | local desc, args = Spring.TraceScreenRay(mouseX, mouseY, true) |
| |arg2 =
| | if nil == desc then return end -- off map |
| |arg3 =
| | local x = args[1] |
| |arg4 =
| | local y = args[2] |
| |arg5 =
| | local z = args[3] |
| |arg6 =
| | print ("World coordinates: (" .. x .. ", " .. y .. ", " .. z .. ")") |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
|
| |
|
| {{LuaCallout
| | '''Spring.GetPixelDir''' {{New|95.0}} |
| |prefix = Spring.
| | ( number x, number y ) -> number dirx, number diry, number dirz |
| |name = LoadCtrlPanelConfig
| |
| |arg1 = {{type|string}} config
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| | === Screen & Window Geometry === |
| | '''Spring.GetViewGeometry''' |
| | ( ) -> number viewSizeX, number viewSizeY, number viewPosX, number viewPosY |
| | '''Spring.GetWindowGeometry''' |
| | ( ) -> number winSizeX, number winSizeY, number winPosX, number winPosY |
| | '''Spring.GetScreenGeometry''' (is missing multiscreen support!) |
| | ( ) -> number screenSizeX, number screenSizeY, number ZERO, number ZERO |
|
| |
|
| | == Unit == |
| | '''Spring.IsUnitAllied''' |
| | ( number unitID ) -> nil | boolean |
| | '''Spring.GetUnitViewPosition''' |
| | ( number unitID [, boolean midPos = false ] ) -> nil | number x, number y, number z |
| | '''Spring.GetUnitTransformMatrix''' |
| | ( number unitID [, boolean invert = false] ) -> nil | number a11, number a12 ..., number a44 <span class=note>(4x4 matrix)</span> |
| | '''Spring.GetUnitSelectionVolumeData''' |
| | ( number unitID ) |
| | -> number scaleX, number scaleY, number scaleZ, |
| | number offsetX, number offsetY, number offsetZ, |
| | number volumeType, number testType, number primaryAxis, boolean disabled |
|
| |
|
| {{LuaCallout
| | === Selected Units === |
| |prefix = Spring.
| | '''Spring.GetSelectedUnits''' |
| |name = ForceLayoutUpdate
| | ( ) -> { [1] = unitID, ... } |
| |arg1 =
| | '''Spring.GetSelectedUnitsSorted''' |
| |arg2 =
| | ( ) -> { [number unitDefID] = { [1] = [number unitID], etc...}, ... } |
| |arg3 =
| | '''Spring.GetSelectedUnitsCounts''' |
| |arg4 =
| | ( ) -> { [number unitDefID] = number count, etc... } |
| |arg5 =
| | '''Spring.GetSelectedUnitsCount''' |
| |arg6 =
| | ( ) -> number count |
| |arg7 =
| | '''Spring.IsUnitSelected''' |
| |arg8 =
| | ( number unitID ) -> nil | boolean |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| | === Unit Groups === |
| | '''Spring.GetUnitGroup''' |
| | ( number unitID ) -> nil | number |
|
| |
|
| {{LuaCallout
| | '''Spring.GetGroupList''' |
| |prefix = Spring.
| | ( ) -> nil | { |
| |name = SetDrawSelectionInfo | | [number] = number unitCount, |
| |arg1 = {{type|bool}} enable
| | ... |
| |arg2 =
| | } |
| |arg3 =
| | '''Spring.GetSelectedGroup''' |
| |arg4 =
| | ( ) -> number |
| |arg5 =
| | '''Spring.GetGroupAIName''' |
| |arg6 =
| | ( number groupID ) -> string aiName |
| |arg7 =
| | '''Spring.GetGroupAIList''' |
| |arg8 =
| | ( ) -> { |
| |arg9 =
| | [1] = string aiName, ... |
| |return = {{type|nil}}
| | } |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font><br>Disables the "Selected Units x" box in the GUI.
| |
| }}
| |
|
| |
|
| == Mouse == | | '''Spring.GetGroupUnits''' |
| | ( number groupID ) -> nil | { |
| | [1] = number unitID, ... |
| | } |
| | '''Spring.GetGroupUnitsSorted''' |
| | ( number groupID ) -> nil | { |
| | [number unitDefID] = {number unitID, ...}, ... |
| | } |
| | '''Spring.GetGroupUnitsCounts''' |
| | ( number groupID ) -> nil | { |
| | [number unitDefID] = number count, ... |
| | } |
| | '''Spring.GetGroupUnitsCount''' |
| | ( number groupID ) -> nil | number count |
|
| |
|
| {{LuaCallout
| | == Feature == |
| |prefix = Spring.
| | '''Spring.GetFeatureSelectionVolumeData''' |
| |name = SetMouseCursor
| | ( number unitID ) |
| |arg1 = {{type|string}} cursorName {{bracket}}
| | -> number scaleX, number scaleY, number scaleZ, |
| |arg2 = {{type|number}} scale {{rbracket}}
| | number offsetX, number offsetY, number offsetZ, |
| |arg3 =
| | number volumeType, number testType, number primaryAxis, boolean disabled |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| | == Projectiles == |
| | '''Spring.GetVisibleProjectiles''' {{New|95.0}} |
| | ([ number allyTeamID = -1 |
| | [ , boolean addSyncedProjectiles = true |
| | [ , boolean addWeaponProjectiles = true |
| | [ , boolean addPieceProjectiles = true ]]]] |
| | ) --> nil | {[1] = projectileID, ...} |
|
| |
|
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = WarpMouse
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| == LOS Colors == | | == UI == |
| | '''Spring.GetUICommands''' {{new|101.0}} |
| | ( ) -> nil | { |
| | [1] = { |
| | command=string, |
| | description=string, |
| | synced=bool, |
| | cheat=bool, |
| | }, ... |
| | } |
| | Returns a list of available [[UI commands]]. |
|
| |
|
| {{LuaCallout
| | === GUI Settings === |
| |prefix = Spring.
| | '''Spring.IsGUIHidden''' |
| |name = SetLosViewColors
| | ( ) -> nil | boolean |
| |arg1 = {{type|table}} always = {r,g,b}
| | '''Spring.HaveShadows''' |
| |arg2 = {{type|table}} LOS = {r,g,b}
| | ( ) -> nil | boolean |
| |arg3 = {{type|table}} radar = {r,g,b}
| | '''Spring.HaveAdvShading''' |
| |arg4 = {{type|table}} jam = {r,g,b} | | ( ) -> nil | boolean |
| |arg5 = {{type|table}} radar2 = {r,g,b}
| | '''Spring.GetWaterMode''' |
| |arg6 = | | ( ) -> nil | number mode, string "mode" |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font><br>New arguments since 100.0 (radar2 is the inside of radar edge). Arguments for 99.0 and before:<br>
| |
| }}
| |
| <pre>( table reds = { number always, number LOS, number radar, number jam },
| |
| table greens = { number always, number LOS, number radar, number jam },
| |
| table blues = { number always, number LOS, number radar, number jam } ) -> nil</pre>
| |
|
| |
|
| == SendMessage == | | <font color="#55ee99"> mode numbers: |
| | 0 - basic |
| | 1 - reflective |
| | 2 - dynamic |
| | 3 - refractive |
| | 4 - bumpwater |
| | default - unknown</font> |
| | '''Spring.GetMapDrawMode''' |
| | ( ) -> nil | "normal" | "height" | "metal" | "pathTraversability" | "los" |
| | '''Spring.GetDrawSelectionInfo''' <font color="#55ee99">Returns whether "Selected units" text is displayed.</font> |
| | ( ) -> boolean |
|
| |
|
| {{LuaCallout
| | === Unit & Feature GUI States === |
| |prefix = Spring.
| | '''Spring.GetUnitLuaDraw''' |
| |name = SendMessage | | ( number unitID ) -> nil | boolean |
| |arg1 = {{type|string}} message
| | '''Spring.GetUnitNoDraw''' |
| |arg2 = | | ( number unitID ) -> nil | boolean |
| |arg3 =
| | '''Spring.GetUnitNoMinimap''' |
| |arg4 = | | ( number unitID ) -> nil | boolean |
| |arg5 =
| | '''Spring.GetUnitNoSelect''' |
| |arg6 = | | ( number unitID ) -> nil | boolean |
| |arg7 =
| | '''Spring.GetFeatureLuaDraw''' |
| |arg8 = | | ( number featureID ) -> nil | boolean |
| |arg9 =
| | '''Spring.GetFeatureNoDraw''' |
| |return = {{type|nil}}
| | ( number featureID ) -> nil | boolean |
| |info = | |
| }}
| |
|
| |
|
| | === Minimap === |
| | '''Spring.GetMiniMapGeometry''' |
| | ( ) -> number posX, number posY, number sizeX, number sizeY, |
| | boolean minimized, boolean maximized |
| | '''Spring.GetMiniMapDualScreen''' |
| | ( ) -> boolean false | string "left" | string "right" |
| | '''Spring.IsAboveMiniMap''' |
| | ( number x, number y ) -> nil | boolean |
|
| |
|
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SendMessageToPlayer
| |
| |arg1 = {{type|number}} playerID
| |
| |arg2 = {{type|string}} message
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
|
| |
|
| | === (Build-)Menu === |
| | '''Spring.GetActiveCommand''' |
| | ( ) -> nil | number index (, number cmd_id, number cmd_type, string cmd_name) |
| | '''Spring.GetDefaultCommand''' |
| | ( ) -> nil | number index (, number cmd_id, number cmd_type, string cmd_name) |
| | '''Spring.GetActiveCmdDescs''' |
| | ( ) -> nil | { |
| | [1] = { |
| | id=number, |
| | type=number, |
| | name=string, |
| | action=string, |
| | tooltip=string, |
| | texture=string, |
| | cursor=string, |
| | hidden=boolean, |
| | disabled=boolean, |
| | showUnique=boolean, |
| | onlyTexture=boolean, |
| | params = { [1] = string, .. } |
| | }, ... |
| | } |
| | '''Spring.GetActiveCmdDesc''' |
| | ( number index ) -> nil | { |
| | id=number, |
| | type=number, |
| | name=string, |
| | action=string, |
| | tooltip=string, |
| | texture=string, |
| | cursor=string, |
| | hidden=boolean, |
| | disabled=boolean, |
| | showUnique=boolean, |
| | onlyTexture=boolean, |
| | params = { [1] = string, .. } |
| | } |
| | '''Spring.GetCmdDescIndex''' |
| | ( number cmdID ) -> nil | number index |
| | '''Spring.GetActivePage''' |
| | ( ) -> nil | number pageNum, number maxPages |
|
| |
|
| {{LuaCallout
| | === Build Facing === |
| |prefix = Spring.
| | '''Spring.GetBuildFacing''' |
| |name = SendMessageToTeam
| | ( ) -> nil | number |
| |arg1 = {{type|number}} teamID
| | '''Spring.GetBuildSpacing''' |
| |arg2 = {{type|string}} message
| | ( ) -> nil | number |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 = | |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = | |
| }}
| |
|
| |
|
| | === GatherMode & InvertQueueKey === |
| | '''Spring.GetGatherMode''' |
| | ( ) -> nil | number |
| | '''Spring.GetInvertQueueKey''' |
| | ( ) -> nil | boolean |
|
| |
|
| | === Mouse States === |
| | '''Spring.GetMouseState''' |
|
| |
|
| {{LuaCallout
| | ( ) -> number X, number Y, |
| |prefix = Spring.
| | boolean leftPressed, boolean middlePressed, boolean rightPressed, |
| |name = SendMessageToAllyTeam
| | boolean offscreen |
| |arg1 = {{type|number}} allyID
| |
| |arg2 = {{type|string}} message
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
|
| |
|
| | X, Y are the screen coordinates, not world ones. This coordinate system starts in the lower left corner. |
|
| |
|
| {{LuaCallout | | {{new|104.0}} Sixth return value offscreen |
| |prefix = Spring. | |
| |name = SendMessageToSpectators
| |
| |arg1 = {{type|string}} message
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <PLAYER#> (with # being a playerid) inside the string will be replaced with the players name - i.e. :<br>Spring.SendMessage ("<PLAYER1> did something")<br>might display as "ProRusher did something"
| |
| }}
| |
|
| |
|
| == Markers ==
| | For world coordinates see Spring.TraceScreenRay |
|
| |
|
| | '''Spring.GetMouseCursor''' |
| | ( ) -> string name, number scale |
| | '''Spring.GetMouseStartPosition''' |
| | ( number mouseButton ) -> nil | number pressedX, number pressedY, |
| | number camPosX, number camPosY, number camPosZ, |
| | number dirX, number dirY, number dirZ |
|
| |
|
| {{LuaCallout
| | === (Hot-)Keys === |
| |prefix = Spring.
| | '''Spring.GetKeyState''' |
| |name = MarkerAddPoint
| | ( number key ) -> nil | boolean |
| |arg1 = {{type|number}} x
| | '''Spring.GetModKeyState''' |
| |arg2 = {{type|number}} y
| | ( ) -> boolean alt, boolean ctrl, boolean meta, boolean shift |
| |arg3 = {{type|number}} z {{bracket}}
| | '''Spring.GetPressedKeys''' |
| |arg4 = {{type|string}} text = "" {{bracket}} | | ( ) -> { |
| |arg5 = {{type|bool}} localOnly {{rbracket}}{{rbracket}}
| | [number code] = boolean, |
| |arg6 =
| | [string name] = boolean, {{new|99.0}} |
| |arg7 =
| | ... |
| |arg8 =
| | } |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
|
| |
|
| | '''Spring.GetKeyCode''' |
| | ( string keysym ) -> number |
| | '''Spring.GetKeySymbol''' |
| | ( number key ) -> string "keysym1", string "keysym2" |
| | '''Spring.GetKeyBindings''' |
| | ( string keyset ) -> nil | { |
| | [1] = { |
| | [string actionCmd] = string actionExtra, |
| | command = string actionCmd, {{new|97}} |
| | boundWith = string boundWith, {{new|97}} |
| | extra = string actionExtra, {{new|97}} |
| | }, ... |
| | } |
| | '''Spring.GetActionHotKeys''' |
| | ( string action ) -> nil | { [1] = string hotKey, ... } |
|
| |
|
| {{LuaCallout
| | === Console === |
| |prefix = Spring.
| | '''Spring.GetLastMessagePositions''' |
| |name = MarkerAddLine | | ( ) -> nil | { |
| |arg1 = {{type|number}} x1
| | [1] = { number X, number Y, number Z }, |
| |arg2 = {{type|number}} y1
| | ... |
| |arg3 = {{type|number}} z1
| | } |
| |arg4 = {{type|number}} x2
| | '''Spring.GetConsoleBuffer''' |
| |arg5 = {{type|number}} y2 | | ( [number maxLines] ) -> nil | { |
| |arg6 = {{type|number}} z2
| | [1] = { |
| |arg7 =
| | text = string, |
| |arg8 =
| | priority = number |
| |arg9 =
| | }, ... |
| |return = {{type|nil}}
| | } |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| | '''Spring.GetCurrentTooltip''' |
| }}
| | ( ) -> string |
|
| |
|
| | === LOS Colors === |
| | '''Spring.GetLosViewColors''' |
|
| |
|
| {{LuaCallout | | ( ) -> always = {r,g,b}, LOS = {r,g,b}, radar = {r,g,b}, jam = {r,g,b}, radar2 = {r,g,b} {{new|100}} |
| |prefix = Spring.
| |
| |name = MarkerErasePosition
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 = {{type|number}} z
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font> | |
| }} | |
|
| |
|
| = Sounds = | | == Config == |
| | '''Spring.GetConfigParams''' <span class="note">same information as <code>spring --list-config-vars</code></span> |
| | ( ) -> table { |
| | { |
| | name = string, |
| | type = string, |
| | [ description = string, ] |
| | [ defaultValue = string, ] |
| | [ minimumValue = string, ] |
| | [ maximumValue = string, ] |
| | [ safemodeValue = string, ] |
| | [ declarationFile = string, ] |
| | [ declarationLine = number, ] |
| | [ readOnly = bool, ] |
| | }, |
| | ... |
| | } |
|
| |
|
| {{LuaCallout
| | '''Spring.GetConfigInt''' |
| |prefix = Spring.
| | ( string name [, number default ] ) -> nil | number |
| |name = LoadSoundDef
| |
| |arg1 = {{type|string}} soundfile
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} success
| |
| |info = Loads a SoundDefs file, the format is the same as in `gamedata/sounds.lua`. | |
| }}
| |
|
| |
|
| | '''Spring.GetConfigFloat''' {{new|104.0}} |
| | ( string name [, number default ] ) -> nil | number |
|
| |
|
| {{LuaCallout
| | '''Spring.GetConfigString''' |
| |prefix = Spring.
| | ( string name [, string default ] ) -> nil | string |
| |name = PlaySoundFile
| |
| |arg1 = {{type|string}} soundfile {{bracket}}
| |
| |arg2 = {{type|number}} volume = 1.0 {{bracket}}
| |
| |arg3 = {{type|number}} posx {{bracket}}
| |
| |arg4 = {{type|number}} posy {{bracket}}
| |
| |arg5 = {{type|number}} posz {{bracket}}
| |
| |arg6 = {{type|number}} speedx{{bracket}}
| |
| |arg7 = {{type|number}} speedy{{bracket}}
| |
| |arg8 = {{type|number}} speedz{{bracket}}
| |
| |arg9 = {{type|number}} {{pipe}} {{type|string}} channel {{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} playSound
| |
| |info = Possible arguments for channel argument:
| |
| }}
| |
| <pre> "general" || 0 || nil (default)
| |
| "battle" || "sfx" | 1
| |
| "unitreply" || "voice" || 2
| |
| "userinterface" || "ui" || 3</pre>
| |
|
| |
|
| | == FPS & GetDrawFrame == |
| | '''Spring.GetFPS''' |
| | ( ) -> number |
| | '''Spring.GetDrawFrame''' |
| | ( ) -> number low 16bit, number high 16bit |
| | '''Spring.GetVideoCapturingMode''' {{new|104.0}} |
| | ( ) -> boolean videoCaptureAllowed |
|
| |
|
| {{LuaCallout
| | == Time == |
| |prefix = Spring.
| | '''Spring.GetGameSpeed''' {{new|98.0}} |
| |name = PlaySoundStream
| | ( ) -> number userSpeedFactor, number speedFactor, boolean paused |
| |arg1 = {{type|string}} oggfile {{bracket}}
| | '''Spring.GetGameState''' {{new|105.0}} |
| |arg2 = {{type|number}} volume = 1.0 {{bracket}}
| | ( ) -> boolean finishedLoading, boolean loadedFromSave, boolean locallyPaused, boolean laggingWrtExpectedFromSimtime |
| |arg3 = {{type|bool}} enqueue {{rbracket}}{{rbracket}} | | '''Spring.GetFrameTimeOffset''' |
| |arg4 =
| | ( ) -> nil | number |
| |arg5 = | | '''Spring.GetLastUpdateSeconds''' |
| |arg6 =
| | ( ) -> nil | number |
| |arg7 =
| | '''Spring.GetHasLag''' |
| |arg8 =
| | ( ) -> boolean |
| |arg9 =
| | '''Spring.GetTimer''' |
| |return = {{type|nil}} {{pipe}} {{type|bool}} true
| | ( ) -> timer |
| |info = Allows to play an Ogg Vorbis (.OGG) compressed sound file.<br> In 83.0 and up multiple sound streams may be played at once.
| | '''Spring.GetFrameTimer''' {{new|102.0}} |
| }}
| | ( ) -> timer |
| | <span class="note">Get a timer for the start of the frame, this should give better results for camera interpolations.</span> |
|
| |
|
| | '''Spring.DiffTimers''' |
| | ( timer cur, timer ago, [boolean inMilliseconds]) -> number seconds |
| | {{New|95.0}} optional third argument (boolean) to return dt in milliseconds |
|
| |
|
| {{LuaCallout
| | == Rendering == |
| |prefix = Spring.
| |
| |name = StopSoundStream
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = Terminates any SoundStream currently running.
| |
| }}
| |
|
| |
|
| | '''Spring.GetMapSquareTexture''' |
| | (number texSqrX, number texSqrY, number texMipLvl, string luaTexName) -> boolean success |
|
| |
|
| {{LuaCallout
| | == Logging == |
| |prefix = Spring.
| | '''Spring.GetLogSections''' |
| |name = PauseSoundStream
| | ( ) -> table { "KeyBindings" = LOG.INFO, "Font" = LOG.INFO, "Sound" = LOG.WARNING, ... } |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
|
| |
|
| | | == Misc == |
| {{LuaCallout
| | '''Spring.GetClipboard''' {{new|98.0}} |
| |prefix = Spring.
| | ( ) -> string text |
| |name = SetSoundStreamVolume
| |
| |arg1 = {{type|number}} volume
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| = SendLuaMessage =
| |
| <font color="#55ee99">Very important! (allows synced inter-lua-enviroment communications)</font>
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SendLuaUIMsg
| |
| |arg1 = {{type|string}} message
| |
| |arg2 = {{type|string}} mode
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font><br>Possible modes are:<br>"s"/"specs" & "a"/"allies"
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SendLuaGaiaMsg
| |
| |arg1 = {{type|string}} message
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SendLuaRulesMsg
| |
| |arg1 = {{type|string}} message
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| = AI =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SendSkirmishAIMessage
| |
| |arg1 = {{type|number}} aiTeam
| |
| |arg2 = {{type|string}} message
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} ai_processed, { {{bracket|1}} = {{type|string}} response1, ... }
| |
| |info = {{new|83.0}}<br>Note there is nothing in this table due to "limitations" of the AI interface.
| |
| }}
| |
| | |
| = Units =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitLeaveTracks
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|bool}} leavetracks
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|83.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitSelectionVolumeData
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} scaleX, {{type|number}} scaleY, {{type|number}} scaleZ
| |
| |arg3 = {{type|number}} offsetX, {{type|number}} offsetY, {{type|number}} offsetZ
| |
| |arg4 = {{type|number}} vType
| |
| |arg5 = {{type|number}} tType
| |
| |arg6 = {{type|number}} Axis
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}
| |
| }}
| |
| | |
| == Unit Selection ==
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SelectUnitMap
| |
| |arg1 = { {{bracket|unitID}} = anything, ... } {{bracket}}
| |
| |arg2 = {{type|bool}} append {{rbacket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SelectUnitArray
| |
| |arg1 = { {{bracket|1}} = unitID1, {{bracket|2}} = unitID2, ... } {{bracket}}
| |
| |arg2 = {{type|bool}} append {{rbacket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetDrawSelectionInfo
| |
| |arg1 = {{type|bool}} drawSelectionInfo
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| == Unit Group ==
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitGroup
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} groupID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| == Give Order ==
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GiveOrder
| |
| |arg1 = {{type|number}} cmdID
| |
| |arg2 = {{type|table}} params = {number, etc...}
| |
| |arg3 = {{type|table}} options = {"alt", "ctrl", "shift", "right"}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} true
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font><br>Gives order to all selected units.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GiveOrderToUnit
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} cmdID
| |
| |arg3 = {{type|table}} params = {number, etc...}
| |
| |arg4 = {{type|table}} options = {"alt", "ctrl", "shift", "right"}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} true
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GiveOrderToUnitMap
| |
| |arg1 = {{type|table}} unitMap = { {{bracket|unitID}} = arg1, etc... }
| |
| |arg2 = {{type|number}} cmdID
| |
| |arg3 = {{type|table}} params = {number, etc...}
| |
| |arg4 = {{type|table}} options = {"alt", "ctrl", "shift", "right"}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} true
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GiveOrderToUnitArray
| |
| |arg1 = {{type|table}} unitArray = { {{bracket|1}} = {{type|number}} unitID, etc... }
| |
| |arg2 = {{type|number}} cmdID
| |
| |arg3 = {{type|table}} params = {number, etc...}
| |
| |arg4 = {{type|table}} options = {"alt", "ctrl", "shift", "right"}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} true
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GiveOrderArrayToUnitMap
| |
| |arg1 = {{type|table}} unitMap = { {{bracket|unitID}} = arg1, etc... }
| |
| |arg2 = {{type|table}} orderArray = { {{type|number}} cmdID, {{type|table}} params = {number, etc...}, {{type|table}} options = {"alt", "ctrl", "shift", "right"} }
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} true
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GiveOrderArrayToUnitArray
| |
| |arg1 = {{type|table}} unitArray = { {{bracket|11}} = {{type|number}} unitID, etc... }
| |
| |arg2 = {{type|table}} orderArray = { {{type|number}} cmdID, {{type|table}} params = {number, etc...}, {{type|table}} options = {"alt", "ctrl", "shift", "right"} } {{bracket}}
| |
| |arg3 = {{type|bool}} pairwise {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} true
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font><br>"pairwise" paramater ({{new|89.0}}) is used to send multiple units a single individual command.
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetBuildFacing
| |
| |arg1 = {{type|number}} facing
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetBuildSpacing
| |
| |arg1 = {{type|number}} spacing
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| == Unit NoDraw,NoSelect,NoMinimap ==
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitNoDraw
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|bool}} noDraw
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">LuaGadgets only!</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitNoSelect
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|bool}} noSelect
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">LuaGadgets only!</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitNoMinimap
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|bool}} noMinimap
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">LuaGadgets only!</font>
| |
| }}
| |
| | |
| = Features =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetFeatureFade
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|bool}} allow
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|101.0}}<br>Control whether a feature will fade or not when zoomed out.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetFeatureNoDraw
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|bool}} noDraw
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">LuaGadgets only!</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetFeatureSelectionVolumeData
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} scaleX, {{type|number}} scaleY, {{type|number}} scaleZ
| |
| |arg3 = {{type|number}} offsetX, {{type|number}} offsetY, {{type|number}} offsetZ
| |
| |arg4 = {{type|number}} vType
| |
| |arg5 = {{type|number}} tType
| |
| |arg6 = {{type|number}} Axis
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}
| |
| }}
| |
| | |
| = Developers =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetDrawSky
| |
| |arg1 = {{type|bool}} drawSky
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetDrawWater
| |
| |arg1 = {{type|bool}} drawWater
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetDrawGround
| |
| |arg1 = {{type|bool}} drawGround
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetWaterParams
| |
| |arg1 = {{type|table}} params
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = As of 104.0 no longer needs cheating enabled.<br>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`. "Params" table contains:
| |
| }}
| |
| <pre> params = {
| |
| absorb = {number r, number g, number b},
| |
| baseColor = {number r, number g, number b},
| |
| minColor = {number r, number g, number b},
| |
| surfaceColor = {number r, number g, number b},
| |
| diffuseColor = {number r, number g, number b},
| |
| specularColor = {number r, number g, number b},
| |
| planeColor = {number r, number g, number b},
| |
| texture = string file,
| |
| foamTexture = string file,
| |
| normalTexture = string file,
| |
| damage = number value,
| |
| repeatX = number value,
| |
| repeatY = number value,
| |
| surfaceAlpha = number value,
| |
| ambientFactor = number value,
| |
| diffuseFactor = number value,
| |
| specularFactor = number value,
| |
| specularPower = number value,
| |
| fresnelMin = number value,
| |
| fresnelMax = number value,
| |
| fresnelPower = number value,
| |
| reflectionDistortion = number value,
| |
| blurBase = number value,
| |
| blurExponent = number value,
| |
| perlinStartFreq = number value,
| |
| perlinLacunarity = number value,
| |
| perlinAmplitude = number value,
| |
| numTiles = number value,
| |
| shoreWaves = boolean value,
| |
| forceRendering = boolean value,
| |
| hasWaterPlane = boolean value,
| |
| }</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetMapRenderingParams
| |
| |arg1 = {{type|table}} params
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}<br>Allows to change map rendering params at runtime.<br>"Params" table contains:
| |
| }}
| |
| <pre> params = {
| |
| splatTexMults = {number r, number g, number b, number a},
| |
| splatTexScales = {number r, number g, number b, number a},
| |
| voidWater = boolean value,
| |
| voidGround = boolean value,
| |
| splatDetailNormalDiffuseAlpha = boolean value,
| |
| }</pre>
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetLogSectionFilterLevel
| |
| |arg1 = {{type|string}} sectionName
| |
| |arg2 = {{type|string}} {{pipe}} {{type|number}} logLevel
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{New|95.0}}<br>See [[infolog.txt]] for possible log sections.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetDrawGroundDeferred
| |
| |arg1 = {{type|bool}} drawGroundDeferred {{bracket}}
| |
| |arg2 = {{type|bool}} drawGroundForward {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|101.0}} {{var|drawGroundForward}} allows disabling of the forward pass
| |
| }}
| |
| | |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetDrawModelsDeferred
| |
| |arg1 = {{type|bool}} drawUnitsDeferred
| |
| |arg2 = {{type|bool}} drawFeaturesDeferred {{bracket}}
| |
| |arg3 = {{type|bool}} drawUnitsForward {{bracket}}
| |
| |arg4 = {{type|bool}} drawFeaturesForward {{rbracket}}{{rbracket}}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|101.0}} {{var|drawFeaturesForward}}, {{var|drawUnitsForward}} allows disabling of the respective forward passes
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetVideoCapturingMode
| |
| |arg1 = {{type|bool}} allowCaptureMode
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}<br>This doesn't actually record the game in any way, it just regulates the framerate and interpolations.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetVideoCapturingTimeOffset
| |
| |arg1 = {{type|bool}} timeOffset
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}
| |
| }}
| |
| | |
| = GUI =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = DrawUnitCommands
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = DrawUnitCommands
| |
| |arg1 = {{type|table}} units = { {{bracket|1}} = unitID, ... } {{bracket}}
| |
| |arg2 = {{type|bool}} false
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = DrawUnitCommands
| |
| |arg1 = {{type|table}} units = { {{bracket|unitID}} = arg1, ... }
| |
| |arg2 = {{type|bool}} true
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetTeamColor
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 = {{type|number}} r
| |
| |arg3 = {{type|number}} g
| |
| |arg4 = {{type|number}} b
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AssignMouseCursor
| |
| |arg1 = {{type|string}} cmdName
| |
| |arg2 = {{type|string}} iconFileName {{bracket}}
| |
| |arg3 = {{type|bool}} overwrite = true {{bracket}}
| |
| |arg4 = {{type|bool}} hotSpotTopLeft = false {{rbracket}}{rbracket}}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} assigned
| |
| |info = Changes/creates the cursor of a single CursorCmd. Note, that iconFileName is not the full filename instead it is like this:<br/>Wanted filename: Anims/cursorattack_0.bmp<br/>=> iconFileName: cursorattack
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ReplaceMouseCursor
| |
| |arg1 = {{type|string}} oldFileName
| |
| |arg2 = {{type|string}} newFileName {{bracket}}
| |
| |arg3 = {{type|bool}} hotSpotTopLeft = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} assigned
| |
| |info = Mass replace all occurrence of the cursor in all CursorCmds.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetCustomCommandDrawData
| |
| |arg1 = {{type|number}} cmdID
| |
| |arg2 = {{type|number}} cmdID_cloneIcon {{pipe}} {{type|string}} iconname
| |
| |arg3 = {{type|table}} RGBA = { {{type|number}} r, {{type|number}} g, {{type|number}} b, {{type|number}} a } {{bracket}}
| |
| |arg4 = {{type|bool}} showArea {{rbracket}}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} assigned
| |
| |info = Register your custom cmd so it gets visible in the unit's cmd queue
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetCustomCommandDrawData
| |
| |arg1 = {{type|number}} cmdID
| |
| |arg2 = {{type|nil}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} assigned
| |
| |info = Register your custom cmd so it gets visible in the unit's cmd queue
| |
| }}
| |
| | |
| = Sharing =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetShareLevel
| |
| |arg1 = {{type|string}} metal {{pipe}} {{type|string}} energy
| |
| |arg2 = {{type|number}} shareLevel
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">LuaGadgets only!</font><br>Note: shareLevel is 0<= x <= 1 .
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ShareResources
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 = {{type|string}} units
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">LuaGadgets only!</font>
| |
| }}
| |
| | |
| or
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ShareResources
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 = {{type|string}} metal {{pipe}} {{type|string}} energy
| |
| |arg3 = {{type|number}} amount
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">LuaGadgets only!</font>
| |
| }}
| |
| | |
| = UnitDef RadarIcons & BuildPics =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AddUnitIcon
| |
| |arg1 = {{type|string}} iconName
| |
| |arg2 = {{type|string}} texFile {{bracket}}
| |
| |arg3 = {{type|number}} size {{bracket}}
| |
| |arg4 = {{type|number}} dist {{bracket}}
| |
| |arg5 = {{type|bool}} radAdjust {{rbracket}}{{rbracket}}{{rbracket}}
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} added
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = FreeUnitIcon
| |
| |arg1 = {{type|string}} iconName
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} freed
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitDefIcon
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 = {{type|string}} iconName
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font><br>Sets radar icon.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetUnitDefImage
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 = {{type|string}} luaTexture {{pipe}} {{type|string}} texFile
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font><br>Sets buildpic.
| |
| }}
| |
| | |
| = Camera =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetCameraState
| |
| |arg1 = {{type|table}} camState
| |
| |arg2 = {{type|number}} camTime
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} stateSet
| |
| |info = camState has the same format as the output of Spring.GetCameraState(). See [[Lua_camState]] for details about camState.<br>The camState's mode/name must fit the rest of the state. Getting a state, changing its mode/name and then passing it to SetCameraState will have undesired results. [https://springrts.com/mantis/view.php?id=5028#c15491] Also see #5028]
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetCameraTarget
| |
| |arg1 = {{type|number}} x, {{type|number}} y, {{type|number}} z {{bracket}}
| |
| |arg2 = {{type|number}} transTime {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = For Spring Engine XZ represents horizontal, from north west corner of map and Y vertical, from water level and rising.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetCameraOffset
| |
| |arg1 = {{type|number}} px = 0 {{bracket}}
| |
| |arg2 = {{type|number}} py = 0 {{bracket}}
| |
| |arg3 = {{type|number}} pz = 0 {{bracket}}
| |
| |arg4 = {{type|number}} tx = 0 {{bracket}}
| |
| |arg5 = {{type|number}} ty = 0 {{bracket}}
| |
| |arg6 = {{type|number}} tz = 0 {{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| = (Virtual-)FileSystem =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ExtractModArchiveFile
| |
| |arg1 = {{type|string}} modfile
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} extracted
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = CreateDir
| |
| |arg1 = {{type|string}} path
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} dirCreated
| |
| |info = <font color="maroon" style="font-weight:600">Needs ModUICtrl.</font>
| |
| }}
| |
| | |
| The full VFS API is available at [[Lua_VFS|link]].
| |
| | |
| = Engine Config =
| |
| | |
| The following functions read the engine configs saved in [[Springsettings.cfg]], a version-ed instance of these or a custom file supplied on the command line.
| |
| If ''*Overlay'' is ''true'', the value will only be set in memory, and not be restored for the next game.
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetConfigInt
| |
| |arg1 = {{type|string}} name
| |
| |arg2 = {{type|number}} value {{bracket}}
| |
| |arg3 = {{type|bool}} useOverlay = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetConfigFloat
| |
| |arg1 = {{type|string}} name
| |
| |arg2 = {{type|number}} value {{bracket}}
| |
| |arg3 = {{type|bool}} useOverlay = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetConfigString
| |
| |arg1 = {{type|string}} name
| |
| |arg2 = {{type|number}} value {{bracket}}
| |
| |arg3 = {{type|bool}} useOverlay = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|104.0}}
| |
| }}
| |
| | |
| = World Primitives =
| |
| <font color="red" style="font-weight:600">outdated! use opengl api instead!</font>
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AddWorldIcon
| |
| |arg1 = {{type|number}} cmdID
| |
| |arg2 = {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AddWorldText
| |
| |arg1 = {{type|string}} text
| |
| |arg2 = {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AddWorldUnit
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 = {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |arg3 = {{type|number}} team
| |
| |arg4 = {{type|number}} facing
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| = Sun =
| |
| The dynamic Sun must be invoked via /dynamicsun (Dynamic sun was removed in 104.0, use SetSunDirection, SetSunLighting & SetAtmosphere instead).
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetSunManualControl
| |
| |arg1 = {{type|bool}} setManualControl
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{removed|104.0}}
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetSunParameters
| |
| |arg1 = {{type|number}} dirX
| |
| |arg2 = {{type|number}} dirY
| |
| |arg3 = {{type|number}} dirZ
| |
| |arg4 = {{type|number}} dist
| |
| |arg5 = {{type|number}} startTime
| |
| |arg6 = {{type|number}} orbitTime
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{removed|104.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetSunDirection
| |
| |arg1 = {{type|number}} dirX
| |
| |arg2 = {{type|number}} dirY
| |
| |arg3 = {{type|number}} dirZ
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetSunLighting
| |
| |arg1 = {{type|table}} params
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|101.0}}<br>It can be used to modify the following sun lighting parameters:
| |
| }}
| |
| <pre> {ground,unit}{Ambient,Diffuse,Specular}Color and specularExponent
| |
| All Colourvalues have to in the Range from 0.0 to 1.0 for all colors and the alpha
| |
| Example usage: Spring.SetSunLighting({groundAmbientColor = {1, 0.1, 1}, groundDiffuseColor = {1, 0.1, 1} })</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetAtmosphere
| |
| |arg1 = {{type|table}} params
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|101.0}}<br>It can be used to modify the following atmosphere parameters:
| |
| }}
| |
| <pre> fog{Start,End}, {sun,sky,cloud}Color
| |
| Example usage: Spring.SetAtmosphere({ fogStart = 0, fogEnd = 0.5, fogColor = { 0.7, 0.2, 0.2, 1 }})</pre>
| |
| | |
| = Misc =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = Reload
| |
| |arg1 = {{type|string}} startscript
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = -
| |
| |info = {{new|99.0}}<br>start-script is the CONTENT of the [[script.txt]] spring should use to start.
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = Restart
| |
| |arg1 = {{type|string}} commandline_args
| |
| |arg2 = {{type|string}} startscript
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = -
| |
| |info = {{new|0.79}}<br>If this call returns, something went wrong.<br>''commandline_args'' are commandline arguments passed to spring executable.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = Start
| |
| |arg1 = {{type|string}} commandline_args
| |
| |arg2 = {{type|string}} startscript
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = -
| |
| |info = {{new|102.0}}<br>If this call returns, something went wrong.<br>Launches a new Spring instance without terminating the existing one.<br>start-script is 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''.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetWMIcon
| |
| |arg1 = {{type|string}} iconFileName
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|83.0}}<br>Sets the icon for the process which is seen in the OS task-bar and other places (default: spring-logo).<br/>Note: has to be 24bit or 32bit.<br/>Note: on windows, it has to be 32x32 pixels in size (recommended for cross-platform)<br/>Note: ''*.bmp'' images have to be in BGR format (default for m$ ones).<br/>Note: ''*.ico'' images are not supported.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetWMCaption
| |
| |arg1 = {{type|string}} title {{bracket}}
| |
| |arg2 = {{type|string}} titleShort = title {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|83.0}}<br>Sets the window ''title'' for the process (default: "Spring <version>").<br>The ''shortTitle'' is displayed in the OS task-bar (default: "Spring <version>").<br>'''NOTE:''' ''shortTitle'' is only ever possibly used under X11 (Linux & OS X), but not with QT (KDE) and never under Windows. See [http://www.gpwiki.org/index.php/SDL:Tutorials:Initializing_SDL_Libraries#About_the_icon_.28.22Icon_Title.22.29_parameter_on_different_window-managers this site] for more details.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ClearWatchDogTimer
| |
| |arg1 = {{bracket}} {{type|string}} threadName = main {{rbracket}}
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|83.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetClipboard
| |
| |arg1 = {{type|string}} text
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|98.0}}
| |
| }}
| |
| | |
| = Rendering =
| |
| == Preload ==
| |
| Allow the engine to load the unit's model (and texture) in a background thread. Wreckages and buildOptions of a unit are automatically preloaded.
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = PreloadUnitDefModel
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = PreloadFetureDefModel
| |
| |arg1 = {{type|number}} featureDefID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{{new|101.0}}
| |
| }}
| |
| | |
| == Lighting ==
| |
| <font color="red" style="font-weight:600">NOTE: these (0.83+) lighting callouts only work when called from unsynced gadgets!</font>
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AddMapLight
| |
| |arg1 = {{type|table}} lightParams
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} lightHandle
| |
| |info = (requires MaxDynamicMapLights > 0)
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AddModelLight
| |
| |arg1 = {{type|table}} lightParams
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} lightHandle
| |
| |info = (requires MaxDynamicMapLights > 0)
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = UpdateMapLight
| |
| |arg1 = {{type|number}} lightHandle
| |
| |arg2 = {{type|table}} lightParams
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} success
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = UpdateModelLight
| |
| |arg1 = {{type|number}} lightHandle
| |
| |arg2 = {{type|table}} lightParams
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} success
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetMapLightTrackingState
| |
| |arg1 = {{type|number}} lightHandle
| |
| |arg2 = {{type|number}} unitOrProjectileID
| |
| |arg3 = {{type|bool}} enableTracking
| |
| |arg4 = {{type|bool}} unitOrProjectile
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} success
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetModelLightTrackingState
| |
| |arg1 = {{type|number}} lightHandle
| |
| |arg2 = {{type|number}} unitOrProjectileID
| |
| |arg3 = {{type|bool}} enableTracking
| |
| |arg4 = {{type|bool}} unitOrProjectile
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} success
| |
| |info =
| |
| }}
| |
| | |
| | |
| '''lightParams''' is a table that should contain at least one of the following recognized key/value pairs:
| |
| | |
| lightParams = {
| |
| position = {px, py, pz},
| |
| direction = {dx, dy, dz},
| |
| ambientColor = {red, green, blue},
| |
| diffuseColor = {red, green, blue},
| |
| specularColor = {red, green, blue},
| |
| intensityWeight = {ambientWeight, diffuseWeight, specularWeight},
| |
| | |
| -- per-frame decay of ambientColor (spread over TTL frames)
| |
| ambientDecayRate = {ambientRedDecay, ambientGreenDecay, ambientBlueDecay},
| |
| -- per-frame decay of diffuseColor (spread over TTL frames)
| |
| diffuseDecayRate = {diffuseRedDecay, diffuseGreenDecay, diffuseBlueDecay},
| |
| -- per-frame decay of specularColor (spread over TTL frames)
| |
| specularDecayRate = {specularRedDecay, specularGreenDecay, specularBlueDecay},
| |
| -- *DecayType = 0.0 -> interpret *DecayRate values as linear, else as exponential
| |
| decayFunctionType = {ambientDecayType, diffuseDecayType, specularDecayType},
| |
| | |
| radius = number elmos,
| |
| fov = number degrees,
| |
| ttl = number frames,
| |
| priority = number,
| |
| ignoreLOS = boolean,
| |
| }
| |
| | |
| = Map =
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetSkyBoxTexture
| |
| |arg1 = {{type|string}} texName
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetMapShadingTexture
| |
| |arg1 = {{type|string}} texType
| |
| |arg2 = {{type|string}} texName
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} success
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| <div class="note">Example usage: Spring.SetMapShadingTexture("$ssmf_specular", "name_of_my_shiny_texture")</div>
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetMapSquareTexture
| |
| |arg1 = {{type|number}} texSqrX
| |
| |arg2 = {{type|number}} texSqrY
| |
| |arg3 = {{type|string}} luaTexName
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} success
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = SetMapShader
| |
| |arg1 = {{type|number}} standardShaderID
| |
| |arg2 = {{type|number}} deferredShaderID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = {{101.0}}
| |
| }}
| |
| | |
| <div class="note">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.</div>
| |
|
| |
|
| [[category: Lua]] | | [[category: Lua]] |
Development < Lua Scripting < User:Master-athmos
Unsynced Read
Replay/Spectating
Spring.IsReplay
( ) -> nil | boolean
Spring.GetReplayLength New in version 92.0
( ) -> nil | number (in seconds)
Spring.GetSpectatingState
( ) -> boolean spectating, boolean fullView, boolean fullSelect
Spring.GetGameName New in version 104.0
( ) -> string name
Apparently returns name .. version from Modinfo.lua. E.g. "Spring: 1944 test-5640-ac2d15b".
Spring.GetMenuName New in version 104.0
( ) -> string name
ModUI
Spring.GetModUICtrl
( ) -> boolean
MyInfo
Spring.GetMyAllyTeamID
( ) -> number
Spring.GetMyTeamID
( ) -> number
Spring.GetMyPlayerID
( ) -> number
Local Player,Team,Ally
Redundant same as the GetMyXYZ functions!
Spring.GetLocalPlayerID
( ) -> number playerID
Spring.GetLocalTeamID
( ) -> number teamID
Spring.GetLocalAllyTeamID
( ) -> number allyID
Team/Player Info
Spring.GetPlayerRoster
( [number sortType] | [number sortType], [bool showPathingPlayers] ) ->
nil | playerTable = {
[1] = {
string name,
number playerID,
number teamID,
number allyTeamID,
boolean spectator,
number cpuUsage,
number pingTime
},
etc...
}
if pingTime is == -1, the player is pathfinding, 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
Sort codes:
1 = Sort by allies (the default)
2 = Sort by teamID
3 = Sort by playerName
4 = Sort by CPU usage
5 = Sort by ping time
Spring.GetTeamColor
( number teamID ) -> nil | number r, number g, number b, number a
Spring.GetTeamOrigColor
( number teamID ) -> nil | number r, number g, number b, number a
Spring.GetPlayerTraffic
( number playerID [, number packetID] ) -> number
Sound
Spring.GetSoundStreamTime
( ) -> number playedTime, number totalTime
Camera
Spring.GetCameraNames
( ) -> { [camName] = number camNum, ... }
Spring.GetCameraState
( ) -> { "name" = string, "mode" = number camIdx, state1 = number, state2 = number, ... }
See Lua_camState for details about Spring.GetCameraState output.
Spring.GetCameraPosition
( ) -> number x, number y, number z
Spring.GetCameraDirection
( ) -> number forward_x, number forward_y, number forward_z
Spring.GetCameraFOV
( ) -> number vFov, number hFov
Spring.GetCameraVectors
( ) -> vectorTable = {
forward = { [1] = number x, [2] = number y, [3] = number z },
up = { [1] = number x, [2] = number y, [3] = number z },
right = { [1] = number x, [2] = number y, [3] = number z },
top = { [1] = number x, [2] = number y, [3] = number z },
bottom = { [1] = number x, [2] = number y, [3] = number z },
leftside = { [1] = number x, [2] = number y, [3] = number z },
rightside = { [1] = number x, [2] = number y, [3] = number z }
}
Inview
Spring.GetVisibleUnits
( [number teamID = -1 [, number radius = 30 [, boolean Icons = true ]]] )
-> nil | unitTable = { [1] = number unitID, ... }
Spring.GetVisibleFeatures
( [number allyTeamID = -1 [, number radius = 30 [, boolean Icons = true [, boolean geos = true ]]]] )
-> nil | featureTable = { [1] = number featureID, ... }
Spring.IsAABBInView
( number minX, number minY, number minZ,
number maxX, number maxY, number maxZ ) -> nil | boolean
Spring.IsSphereInView
( number x, number y, number z [, number radius ] ) -> nil | boolean
Spring.IsUnitIcon
( number unitID ) -> nil | boolean
Spring.IsUnitInView
( number unitID ) -> nil | boolean
Spring.IsUnitVisible
( number unitID [, number radius [, boolean checkIcons] ] ) -> nil | boolean
Screen Trace
Spring.WorldToScreenCoords
( number x, number y, number z ) -> number x, number y, number z
Spring.TraceScreenRay
( number mouseX, number mouseY [, boolean onlyCoords
[, boolean useMinimap [, boolean includeSky [, boolean ignoreWater [, number D] ] ] ] ] )
-> nil |
string "unit", number unitID |
string "feature", number featureID |
string "ground", { [1] = number x, [2] = number y, [3] = number z }
New in version 101.0 Exended 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 collission sphere. Per Piece collission and custom collission objects are not supported. The unit must be selectable, to appear to a screen trace ray.
to get map coordinates under mouse cursor: input mouse coordinates obtained via GetMouseState() and pass true for the onlyCoords parameter. Be careful as going off map will result in nil:
local mouseX, mouseY = Spring.GetMouseState()
print ("Mouse coordinates: (" .. mouseX .. ", " .. mouseY .. ")")
local desc, args = Spring.TraceScreenRay(mouseX, mouseY, true)
if nil == desc then return end -- off map
local x = args[1]
local y = args[2]
local z = args[3]
print ("World coordinates: (" .. x .. ", " .. y .. ", " .. z .. ")")
Spring.GetPixelDir New in version 95.0
( number x, number y ) -> number dirx, number diry, number dirz
Screen & Window Geometry
Spring.GetViewGeometry
( ) -> number viewSizeX, number viewSizeY, number viewPosX, number viewPosY
Spring.GetWindowGeometry
( ) -> number winSizeX, number winSizeY, number winPosX, number winPosY
Spring.GetScreenGeometry (is missing multiscreen support!)
( ) -> number screenSizeX, number screenSizeY, number ZERO, number ZERO
Unit
Spring.IsUnitAllied
( number unitID ) -> nil | boolean
Spring.GetUnitViewPosition
( number unitID [, boolean midPos = false ] ) -> nil | number x, number y, number z
Spring.GetUnitTransformMatrix
( number unitID [, boolean invert = false] ) -> nil | number a11, number a12 ..., number a44 (4x4 matrix)
Spring.GetUnitSelectionVolumeData
( number unitID )
-> number scaleX, number scaleY, number scaleZ,
number offsetX, number offsetY, number offsetZ,
number volumeType, number testType, number primaryAxis, boolean disabled
Selected Units
Spring.GetSelectedUnits
( ) -> { [1] = unitID, ... }
Spring.GetSelectedUnitsSorted
( ) -> { [number unitDefID] = { [1] = [number unitID], etc...}, ... }
Spring.GetSelectedUnitsCounts
( ) -> { [number unitDefID] = number count, etc... }
Spring.GetSelectedUnitsCount
( ) -> number count
Spring.IsUnitSelected
( number unitID ) -> nil | boolean
Unit Groups
Spring.GetUnitGroup
( number unitID ) -> nil | number
Spring.GetGroupList
( ) -> nil | {
[number] = number unitCount,
...
}
Spring.GetSelectedGroup
( ) -> number
Spring.GetGroupAIName
( number groupID ) -> string aiName
Spring.GetGroupAIList
( ) -> {
[1] = string aiName, ...
}
Spring.GetGroupUnits
( number groupID ) -> nil | {
[1] = number unitID, ...
}
Spring.GetGroupUnitsSorted
( number groupID ) -> nil | {
[number unitDefID] = {number unitID, ...}, ...
}
Spring.GetGroupUnitsCounts
( number groupID ) -> nil | {
[number unitDefID] = number count, ...
}
Spring.GetGroupUnitsCount
( number groupID ) -> nil | number count
Feature
Spring.GetFeatureSelectionVolumeData
( number unitID )
-> number scaleX, number scaleY, number scaleZ,
number offsetX, number offsetY, number offsetZ,
number volumeType, number testType, number primaryAxis, boolean disabled
Projectiles
Spring.GetVisibleProjectiles New in version 95.0
([ number allyTeamID = -1
[ , boolean addSyncedProjectiles = true
[ , boolean addWeaponProjectiles = true
[ , boolean addPieceProjectiles = true ]]]]
) --> nil | {[1] = projectileID, ...}
UI
Spring.GetUICommands New in version 101.0
( ) -> nil | {
[1] = {
command=string,
description=string,
synced=bool,
cheat=bool,
}, ...
}
Returns a list of available UI commands.
GUI Settings
Spring.IsGUIHidden
( ) -> nil | boolean
Spring.HaveShadows
( ) -> nil | boolean
Spring.HaveAdvShading
( ) -> nil | boolean
Spring.GetWaterMode
( ) -> nil | number mode, string "mode"
mode numbers:
0 - basic
1 - reflective
2 - dynamic
3 - refractive
4 - bumpwater
default - unknown
Spring.GetMapDrawMode
( ) -> nil | "normal" | "height" | "metal" | "pathTraversability" | "los"
Spring.GetDrawSelectionInfo Returns whether "Selected units" text is displayed.
( ) -> boolean
Unit & Feature GUI States
Spring.GetUnitLuaDraw
( number unitID ) -> nil | boolean
Spring.GetUnitNoDraw
( number unitID ) -> nil | boolean
Spring.GetUnitNoMinimap
( number unitID ) -> nil | boolean
Spring.GetUnitNoSelect
( number unitID ) -> nil | boolean
Spring.GetFeatureLuaDraw
( number featureID ) -> nil | boolean
Spring.GetFeatureNoDraw
( number featureID ) -> nil | boolean
Minimap
Spring.GetMiniMapGeometry
( ) -> number posX, number posY, number sizeX, number sizeY,
boolean minimized, boolean maximized
Spring.GetMiniMapDualScreen
( ) -> boolean false | string "left" | string "right"
Spring.IsAboveMiniMap
( number x, number y ) -> nil | boolean
Spring.GetActiveCommand
( ) -> nil | number index (, number cmd_id, number cmd_type, string cmd_name)
Spring.GetDefaultCommand
( ) -> nil | number index (, number cmd_id, number cmd_type, string cmd_name)
Spring.GetActiveCmdDescs
( ) -> nil | {
[1] = {
id=number,
type=number,
name=string,
action=string,
tooltip=string,
texture=string,
cursor=string,
hidden=boolean,
disabled=boolean,
showUnique=boolean,
onlyTexture=boolean,
params = { [1] = string, .. }
}, ...
}
Spring.GetActiveCmdDesc
( number index ) -> nil | {
id=number,
type=number,
name=string,
action=string,
tooltip=string,
texture=string,
cursor=string,
hidden=boolean,
disabled=boolean,
showUnique=boolean,
onlyTexture=boolean,
params = { [1] = string, .. }
}
Spring.GetCmdDescIndex
( number cmdID ) -> nil | number index
Spring.GetActivePage
( ) -> nil | number pageNum, number maxPages
Build Facing
Spring.GetBuildFacing
( ) -> nil | number
Spring.GetBuildSpacing
( ) -> nil | number
GatherMode & InvertQueueKey
Spring.GetGatherMode
( ) -> nil | number
Spring.GetInvertQueueKey
( ) -> nil | boolean
Mouse States
Spring.GetMouseState
( ) -> number X, number Y,
boolean leftPressed, boolean middlePressed, boolean rightPressed,
boolean offscreen
X, Y are the screen coordinates, not world ones. This coordinate system starts in the lower left corner.
New in version 104.0 Sixth return value offscreen
For world coordinates see Spring.TraceScreenRay
Spring.GetMouseCursor
( ) -> string name, number scale
Spring.GetMouseStartPosition
( number mouseButton ) -> nil | number pressedX, number pressedY,
number camPosX, number camPosY, number camPosZ,
number dirX, number dirY, number dirZ
(Hot-)Keys
Spring.GetKeyState
( number key ) -> nil | boolean
Spring.GetModKeyState
( ) -> boolean alt, boolean ctrl, boolean meta, boolean shift
Spring.GetPressedKeys
( ) -> {
[number code] = boolean,
[string name] = boolean, New in version 99.0
...
}
Spring.GetKeyCode
( string keysym ) -> number
Spring.GetKeySymbol
( number key ) -> string "keysym1", string "keysym2"
Spring.GetKeyBindings
( string keyset ) -> nil | {
[1] = {
[string actionCmd] = string actionExtra,
command = string actionCmd, New in version 97
boundWith = string boundWith, New in version 97
extra = string actionExtra, New in version 97
}, ...
}
Spring.GetActionHotKeys
( string action ) -> nil | { [1] = string hotKey, ... }
Console
Spring.GetLastMessagePositions
( ) -> nil | {
[1] = { number X, number Y, number Z },
...
}
Spring.GetConsoleBuffer
( [number maxLines] ) -> nil | {
[1] = {
text = string,
priority = number
}, ...
}
Spring.GetCurrentTooltip
( ) -> string
LOS Colors
Spring.GetLosViewColors
( ) -> always = {r,g,b}, LOS = {r,g,b}, radar = {r,g,b}, jam = {r,g,b}, radar2 = {r,g,b} New in version 100
Config
Spring.GetConfigParams same information as spring --list-config-vars
( ) -> table {
{
name = string,
type = string,
[ description = string, ]
[ defaultValue = string, ]
[ minimumValue = string, ]
[ maximumValue = string, ]
[ safemodeValue = string, ]
[ declarationFile = string, ]
[ declarationLine = number, ]
[ readOnly = bool, ]
},
...
}
Spring.GetConfigInt
( string name [, number default ] ) -> nil | number
Spring.GetConfigFloat New in version 104.0
( string name [, number default ] ) -> nil | number
Spring.GetConfigString
( string name [, string default ] ) -> nil | string
FPS & GetDrawFrame
Spring.GetFPS
( ) -> number
Spring.GetDrawFrame
( ) -> number low 16bit, number high 16bit
Spring.GetVideoCapturingMode New in version 104.0
( ) -> boolean videoCaptureAllowed
Time
Spring.GetGameSpeed New in version 98.0
( ) -> number userSpeedFactor, number speedFactor, boolean paused
Spring.GetGameState New in version 105.0
( ) -> boolean finishedLoading, boolean loadedFromSave, boolean locallyPaused, boolean laggingWrtExpectedFromSimtime
Spring.GetFrameTimeOffset
( ) -> nil | number
Spring.GetLastUpdateSeconds
( ) -> nil | number
Spring.GetHasLag
( ) -> boolean
Spring.GetTimer
( ) -> timer
Spring.GetFrameTimer New in version 102.0
( ) -> timer
Get a timer for the start of the frame, this should give better results for camera interpolations.
Spring.DiffTimers
( timer cur, timer ago, [boolean inMilliseconds]) -> number seconds
New in version 95.0 optional third argument (boolean) to return dt in milliseconds
Rendering
Spring.GetMapSquareTexture
(number texSqrX, number texSqrY, number texMipLvl, string luaTexName) -> boolean success
Logging
Spring.GetLogSections
( ) -> table { "KeyBindings" = LOG.INFO, "Font" = LOG.INFO, "Sound" = LOG.WARNING, ... }
Misc
Spring.GetClipboard New in version 98.0
( ) -> string text