Lua run: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Updated the example map with an extra lua_run for studying.)
 
(21 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{Language subpage}}
{{LanguageBar}}
{{entity|lua_run|type=e0|game=Garry's Mod|sprite=1}}
{{this is a|logical entity|name=lua_run|notext=1|game=Garry's Mod|sprite=1}} It runs raw [http://en.wikipedia.org/wiki/Lua_%28programming_language%29 Lua] code given to it in its keyvalues.
It runs raw [http://en.wikipedia.org/wiki/Lua_%28programming_language%29 Lua] code given to it in its keyvalues.
{{clr}}
{{clr}}
== Keyvalues ==
== Keyvalues ==
{{KV Targetname}}
{{KV|Code|intn=Code|string|Lua code to run when triggered.</br>The lua variables {{Code|ACTIVATOR}} and {{Code|CALLER}} may be used in the code, as well as {{Code|TRIGGER_PLAYER}} if '''!activator''' resolves to a player.}}
{{KV|Code|intn=Code|string|Lua code to run when triggered.</br>The lua variables {{Code|ACTIVATOR}} and {{Code|CALLER}} may be used in the code, as well as {{Code|TRIGGER_PLAYER}} if '''!activator''' resolves to a player.}}
{{Bug|In Hammer, using double quotes {{Code|"}} as string arguments will corrupt the [[VMF]] file's structure, making the file unviewable for the next Hammer session.{{Workaround|You should instead use either an apostrophe (single quote) {{Code|'}} or brackets {{Code|[[]]}} to contain your strings.}}{{Fix|To fix an unreadable .vmf broken in this way, remove the double quote manually with a text editor.}}}}
:{{Hammer quote warning}}
{{KV Targetname}}
:{{Workaround|You should instead use either an apostrophe (single quote) {{Code|'}} or brackets {{Code|[[]]}} to contain strings in your lua code.}}
 
:{{tip|Using {{code|include()}} you can run external lua files. The function looks for files in {{path|\GarrysMod\garrysmod\addons\mapcontent\lua}}.<br>For example you could create a file named {{code|MyMapScript.lua}} <!-- I wonder wheres this file name came from? The answer is a steam guide, I didn't figure this shit out myself. -Wisdurm --> at {{path|\GarrysMod\garrysmod\addons\mapcontent\lua\MyMapScript.lua}}, which could then be run in Hammer with {{code|include('MyMapScript.lua')}}.
}}


== Flags ==
== Flags ==
*1: Run code on spawn
{{Fl|1|Run code on spawn}}
 
== Inputs ==
== Inputs ==
{{IO|RunCode|Run Code that was defined in the entity.}}
{{I|RunCode|Run Code that was defined in the entity.}}
{{IO|RunPassedCode|param=string|Run code that was passed as a variable.}}
{{I|RunPassedCode|param=string|Run code that was passed as a variable.}}
{{I Targetname}}
 
== Outputs ==
== Example Code ==
{{O Targetname}}
RunConsoleCommand('say', 'Hello World')
[[Category:English]]
 
== External links ==
'''Map example .VMF and .BSP (lua_run functioning x3) - By gtamike_TSGK'''
* http://gtamike.tsgk.com/gtamike_TSGK/test_area_lua_run_v2.zip

Latest revision as of 12:46, 30 August 2025

English (en)Русский (ru)Translate (Translate)
Lua run.png

lua_run is a logical entity available in Garry's Mod Garry's Mod. It runs raw Lua code given to it in its keyvalues.

Keyvalues

Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Code (Code) <string>
Lua code to run when triggered.
The lua variables ACTIVATOR and CALLER may be used in the code, as well as TRIGGER_PLAYER if !activator resolves to a player.
Warning.pngWarning:Using the quote symbol " in any text field of a Hammer Object Properties Dialog will lead to VMF corruption, fixable only by editing the VMF directly with a text editor and removing the added quote symbol.
PlacementTip.pngWorkaround:You should instead use either an apostrophe (single quote) ' or brackets [[]] to contain strings in your lua code.
Tip.pngTip:Using include() you can run external lua files. The function looks for files in 🖿\GarrysMod\garrysmod\addons\mapcontent\lua.
For example you could create a file named MyMapScript.lua at 🖿\GarrysMod\garrysmod\addons\mapcontent\lua\MyMapScript.lua, which could then be run in Hammer with include('MyMapScript.lua').

Flags

Run code on spawn : [1]

Inputs

RunCode
Run Code that was defined in the entity.
RunPassedCode <stringRedirectInput/string>
Run code that was passed as a variable.

Example Code

RunConsoleCommand('say', 'Hello World')

External links

Map example .VMF and .BSP (lua_run functioning x3) - By gtamike_TSGK