Revision Difference
Lua_Folder_Structure#522315
<cat>Dev.GettingStarted</cat>
The structure of the Lua folder can be confusing. This page tries to layout where script files should go.
If a folder is not mentioned here, you should put your scripts into it unless you know what you are doing.
If a folder is not mentioned here, you should not put your scripts into it unless you know what you are doing.
> `lua/` (Same as `addons/<addonName>/lua/`)
>> `autorun/` - all files are automatically loaded on Lua start, both clientside and serverside.
>>> `client/` - Clientside only autorun scripts.
>>> `server/` - Serverside only scripts.
>> `postprocess/` - Run by client on startup, typically contains Sandbox Post Processing effects
>> `skins/` - Derma skins
>> `drive/` - <page>drive</page> system classes
>> `matproxy/` - <page>matproxy</page> stuff
>> `weapons/` - Scripts placed here will be automatically attempted to be loaded as weapons (<page>Structures/SWEP</page>)
>>> `gmod_tool/stools/` - (Sandbox only) Scripts placed here will be automatically attempted to be loaded as tools (<page>Structures/TOOL</page>)
>> `entities/` - Scripts placed here will be automatically attempted to be loaded as SENTs (<page>Structures/ENT</page>)
>> `effects/` - Scripts placed here will be automatically attempted to be loaded as Lua effects (<page>util.Effect</page>)
>> `vgui/` - Clientside folder for UI panels
> `gamemodes/`
>> `<gamemodename>/` - A folder containing gamemode files
>>> `gamemode/` - Folder contains all gamemode files. `init.lua` and `cl_init.lua` __must__ exist in it.
>>> `entities/` - Basically Lua folder that is only loaded when the gamemode is. Subfolders are exactly the same as mentioned above.