Garry's Mod Wiki

Revision Difference

Global.include#528549

<function name="include" parent="Global" type="libraryfunc"> <description> Executes a Lua script. ⤶ <note>Addon files (.gma files) do not support relative parent folders (`..` notation).</note> ⤶ <warning>The file you are attempting to include MUST NOT be empty or the include will fail. Files over a certain size may fail as well.</warning> ⤶ <warning>If the file you are including is clientside or shared, it **must** be <page>Global.AddCSLuaFile</page>'d or this function will error saying the file doesn't exist.</warning> ⤶ <note>This function will try to load local client file if `sv_allowcslua` is **1**</note>⤶ ⤶ <bug issue="1976"><page>Global.pcall</page>ing this function will break autorefresh.</bug> Executes a Lua script. ⤶ <note>Addon files (.gma files) do not support relative parent folders (`..` notation).</note> ⤶ <warning>The file you are attempting to include MUST NOT be empty or the include will fail. Files over a certain size may fail as well.</warning> ⤶ <warning>If the file you are including is clientside or shared, it **must** be <page>Global.AddCSLuaFile</page>'d or this function will error saying the file doesn't exist.</warning> ⤶ <note>This function will try to load local client file if `sv_allowcslua` is **1**.</note>⤶ ⤶ <bug issue="1976"><page>Global.pcall</page>ing this function will break autorefresh.</bug> </description> <realm>Shared and Menu</realm> <args> <arg name="fileName" type="string">The name of the script to be executed. The path must be either relative to the current file, or be an absolute path (relative to and excluding the lua/ folder). <arg name="fileName" type="string">The name of the script to be executed. The path must be either relative to the current file, or be an absolute path (relative to and excluding the **lua/** folder). <note>Please make sure your file names are unique, the filesystem is shared across all addons, so a file named "lua/config.lua" in your addon may be overwritten by the same file in another addon.</note></arg> </args> <rets> <ret name="" type="vararg">Anything that the executed Lua script returns.</ret> </rets> </function> <example> <description>Demonstrates correct and incorrect usage.</description> <code> -- Correct usage: -- Will look for "lua/myLuaFolder/myLuaFile.lua" in all addons and then the base game lua/ folder⤶ -- Will look for "lua/myLuaFolder/myLuaFile.lua" in all addons and then the base game **lua/** folder.⤶ include( "myLuaFolder/myLuaFile.lua" ) -- This is incorrect, and will NOT work⤶ include( "lua/myLuaFolder/myLuaFile.lua" ) include( "addons/lua/myLuaFolder/myLuaFile.lua" ) -- This is incorrect, and will NOT work.⤶ include( "lua/myLuaFolder/myLuaFile.lua" ) include( "addons/lua/myLuaFolder/myLuaFile.lua" ) include( "addons/MyAddon/lua/myLuaFolder/myLuaFile.lua" ) include( "MyAddon/lua/myLuaFolder/myLuaFile.lua" ) include( "MyAddon/lua/myLuaFolder/myLuaFile.lua" ) </code> ⤶ </example>⤶ ⤶ <example>⤶ <description>How to use the include in autorun while using AddCSLuaFile.</description>⤶ <code>⤶ if SERVER then⤶ AddCSLuaFile(client file)⤶ include(client file)⤶ ⤶ include(server file)⤶ end⤶ if Client then⤶ include(client file)⤶ end⤶ </code>⤶ ⤶ </example></example>