Garry's Mod Wiki

include

include

vararg include( string fileName )

Description

Executes a Lua script.

Addon files (.gma files) do not support relative parent folders (.. notation).
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.
If the file you are including is clientside or shared, it must be AddCSLuaFile'd or this function will error saying the file doesn't exist.
This function will try to load local client file if sv_allowcslua is 1.
pcalling this function will break autorefresh.

Issue Tracker: 1976

Arguments

1 string fileName
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).

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.

Returns

1 vararg
Anything that the executed Lua script returns.

Example

Demonstrates correct and incorrect usage.

-- Correct usage: -- 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" ) include( "addons/MyAddon/lua/myLuaFolder/myLuaFile.lua" ) include( "MyAddon/lua/myLuaFolder/myLuaFile.lua" )

Example

Specify a base folder and recursively include cl, sh and sv files without having to specify them.

local rootDir = "vac-events" local function AddFile(File, dir) local fileSide = string.lower(string.Left(File , 3)) if SERVER and fileSide == "sv_" then include(dir..File) print("[AUTOLOAD] SV INCLUDE: " .. File) elseif fileSide == "sh_" then if SERVER then AddCSLuaFile(dir..File) print("[AUTOLOAD] SH ADDCS: " .. File) end include(dir..File) print("[AUTOLOAD] SH INCLUDE: " .. File) elseif fileSide == "cl_" then if SERVER then AddCSLuaFile(dir..File) print("[AUTOLOAD] CL ADDCS: " .. File) elseif CLIENT then include(dir..File) print("[AUTOLOAD] CL INCLUDE: " .. File) end end end local function IncludeDir(dir) dir = dir .. "/" local File, Directory = file.Find(dir.."*", "LUA") for k, v in ipairs(File) do if string.EndsWith(v, ".lua") then AddFile(v, dir) end end for k, v in ipairs(Directory) do print("[AUTOLOAD] Directory: " .. v) IncludeDir(dir..v) end end IncludeDir(rootDir)

Special Pages


Wikis

?

Render Time: 24ms

DB GetPage 3
Generate Html 7
SaveChanges (1) 5
Render Body 0
Render Sidebar 6