Lua run: Difference between revisions
Jump to navigation
Jump to search
Noruzenchi86 (talk | contribs) m (specify these are lua strings, not hammer strings.) |
Gtamike TSGK (talk | contribs) No edit summary |
||
(24 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
{{entity|lua_run| | {{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.}} | ||
{{ | :{{Hammer quote warning}} | ||
:{{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 == | ||
{{Fl|1|Run code on spawn}} | |||
== Inputs == | == Inputs == | ||
{{ | {{I|RunCode|Run Code that was defined in the entity.}} | ||
{{ | {{I|RunPassedCode|param=string|Run code that was passed as a variable.}} | ||
== | == Example Code == | ||
'''Lua_run Chat Message''' | |||
*<code>RunConsoleCommand('say', 'Hello World')</code> | |||
'''lua_run parents a spark to the player, the spark then starts, stops after 10 seconds and removes itself for clean up''' | |||
*<code>for k,v in pairs(ents.FindInSphere(Entity(1):GetPos(), 50)) do if v:IsPlayer() then local spark = ents.Create('env_spark'); spark:SetKeyValue('MaxDelay', '0.1'); spark:SetKeyValue('TrailLength', '3'); spark:SetKeyValue('Magnitude', '8'); spark:SetPos(v:GetPos() + Vector(0,0,45)); spark:SetParent(v); spark:Spawn(); spark:Fire('StartSpark'); spark:Fire('Kill', '', 10); end end</code> | |||
== External links == | |||
'''Map example .VMF and .BSP (x3 lua_run functioning) - By gtamike_TSGK''' | |||
* http://gtamike.tsgk.com/gtamike_TSGK/test_area_lua_run_v2.zip | |||
'''Advanced Map example .VMF and .BSP (x3 lua_run parenting a spark to the player) - By gtamike_TSGK''' | |||
* http://gtamike.tsgk.com/gtamike_TSGK/lua_run_spark_on_player_v2.zip |
Latest revision as of 16:33, 11 September 2025

lua_run
is a logical entity available in 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
ortarget
).
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 variablesACTIVATOR
andCALLER
may be used in the code, as well asTRIGGER_PLAYER
if !activator resolves to a player. Warning: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.Workaround:You should instead use either an apostrophe (single quote)
'
or brackets[[]]
to contain strings in your lua code.
Tip: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 namedMyMapScript.lua
at\GarrysMod\garrysmod\addons\mapcontent\lua\MyMapScript.lua
, which could then be run in Hammer withinclude('MyMapScript.lua')
.
Flags
- Run code on spawn : [1]
Inputs
- RunCode
- Run Code that was defined in the entity.
- RunPassedCode <string >
- Run code that was passed as a variable.
Example Code
Lua_run Chat Message
RunConsoleCommand('say', 'Hello World')
lua_run parents a spark to the player, the spark then starts, stops after 10 seconds and removes itself for clean up
for k,v in pairs(ents.FindInSphere(Entity(1):GetPos(), 50)) do if v:IsPlayer() then local spark = ents.Create('env_spark'); spark:SetKeyValue('MaxDelay', '0.1'); spark:SetKeyValue('TrailLength', '3'); spark:SetKeyValue('Magnitude', '8'); spark:SetPos(v:GetPos() + Vector(0,0,45)); spark:SetParent(v); spark:Spawn(); spark:Fire('StartSpark'); spark:Fire('Kill', , 10); end end
External links
Map example .VMF and .BSP (x3 lua_run functioning) - By gtamike_TSGK
Advanced Map example .VMF and .BSP (x3 lua_run parenting a spark to the player) - By gtamike_TSGK