Revision Difference
Addon_Creation#568325
<cat>Dev.Workshop</cat>
<title>Addon Creation</title>
# What are Addons?
Addons are modifications (mods) that Garry's Mod automatically loads during the process of loading a map or connecting to a server. Addons can add things like maps, sounds, and enemies. They might also change existing parts of Garry's Mod or even other Addons.
# Creating a New Addon
All Addons, even those downloaded from the Steam Workshop, start as a folder placed in the `garrysmod/addons/` folder of the Garry's Mod installation.
Your Addon's folder should be named using lowercase letters, numbers, underscores, and dashes.
| Addon Folder Path | Issues |
|-------------------------------------|-------------------------------------------------------|
| `garrysmod/addons/cool_space_laser` | None! |
| `garrysmod/addons/1990s_nostalgia` | None! |
| `garrysmod/addons/My Cool Addon!` | Capital letters, spaces, and special characters (`!`) |
| `garrysmod/rocket_car` | Placed outside of the `addons/` folder |
| `garrysmod/addons/rocket_car` | None! |
## Where is Garry's Mod installed?
You can find your Garry's Mod installation location using the `Manage > Browse local files` context (right click) menu option on Garry's Mod in the Steam library.
<image src="b2b4c/8df14ed8fb8f4ab.png" size="117380" name="BrowseLocalFiles.png" />
# Addon Folder Structure
Addons must follow a predefined folder structure in order to work properly.
Each Addon's folder structure mimics the folder structure of the core game's files which can be seen in the `garrysmod/` folder. Files in Addons (and in the core game files) are grouped together into folders based on file type.
The folders you can add to your Addon folder are:
| Folder Name | Note |⤶
|-------------------------|-------------------------------------------------------------------------------------------|⤶
| `backgrounds` | |⤶
| `data_static` | |
| `gamemodes` | For more information, see <page text="Gamemode Creation">Gamemode_Creation</page> |
| `lua` | For more information, see <page text="Lua Folder Structure">Lua_Folder_Structure</page> |
| `maps` | |
| `materials` | |
| `models` | |
| `particles` | |
| `resource` | |
| `resource/fonts` | For more information, see <page text="Font Usage Guide">Finding_the_Font_Name</page> |
| `resource/localization` | For more information, see <page text="Addon Localization">Addon_Localization</page> |
| `scenes` | |
| `scripts` | |
| `scripts/vehicles` | For more information, see <page text="Vehicle Scripts">Vehicle_Scripts_Information</page> |
| `sound` | Unlike other folder names, `sound` is not plural and does not end in an "s" |
| Folder Name | Note | File Types | Tools ⤶
|-------------------------|-------------------------------------------------------------------------------------------|--------------------|⤶
| `backgrounds` | Startup images on main menu | png, jpg | Any graphic tool⤶
| `data_static` | Files that contains data for your script that won't change | <page text="Allowed Files">file.Write#arguments</page> |
| `gamemodes` | For more information, see <page text="Gamemode Creation">Gamemode_Creation</page> | |
| `lua` | For more information, see <page text="Lua Folder Structure">Lua_Folder_Structure</page> | lua | <page text="Code Editors">Lua_Editors</page> |
| `maps` | Game Levels | bsp, nav, txt, lmp | hammer and hammer++ |
| `materials` | Textures and materials for your maps, UI and models | vmt, vtf, tga, png | Photoshop, Gimp, VTFEdit |
| `models` | Model assets | mdl, vtx, phy | Blender, 3Ds Max |
| `particles` | Particle Effects | pcf | Particle Editor (-tools) |
| `resource` | | |
| `resource/fonts` | For more information, see <page text="Font Usage Guide">Finding_the_Font_Name</page> | ttf |
| `resource/localization` | For more information, see <page text="Addon Localization">Addon_Localization</page> | txt |
| `scenes` | | vcd |
| `scripts` | | |
| `scripts/vehicles` | For more information, see <page text="Vehicle Scripts">Vehicle_Scripts_Information</page> | txt |
| `sound` | Unlike other folder names, `sound` is not plural and does not end in an "s" | wav, ogg, mp3 |
<note>
Addons only need to include the folders that they actually have files in.
Empty folders don't serve a purpose and should be removed.
</note>
# Publishing Addons to the Steam
A full guide on Steam Workshop publishing <page text="can be found here">Workshop_Addon_Creation</page>
Garry's Mod
Rust
Steamworks
Wiki Help