[ PROMPT_NODE_25876 ]
addon-structure
[ SKILL_DOCUMENTATION ]
# Lua 文件夹结构
Garry's Mod 的主游戏目录是位于游戏可执行文件 `hl2.exe` 旁边的 `garrysmod` 文件夹,其中包含了你在玩游戏时看到的大部分内容。这包括 Lua 脚本、音效、3D 模型等。每个 Garry's Mod 插件都需要在 `garrysmod/addons/` 中拥有自己的文件夹来存放其所有内容。
插件和游戏模式(Gamemodes)的文件夹结构与 `garrysmod` 文件夹几乎完全相同。制作插件时,所有文件夹都是可选的,为了保持插件文件夹结构整洁且易于导航,只需创建插件所需的文件夹即可。
由于此文件夹结构适用于多种情况,此处使用通用术语 `{Root}` 来表示游戏、插件或游戏模式的根文件夹。
主要供 Garry's Mod 内部使用的文件夹标记为 `[I]`,意为“内部”,除非有充分理由,否则不应修改。请记住,不建议在插件或游戏模式之外添加或修改文件,因为这可能导致文件冲突和意外行为。除极少数例外,对 Garry's Mod 的任何更改或添加都应使用插件或游戏模式来完成。
**请注意:** 这**不是**一份详尽的列表。此列表主要旨在提供与 Lua 脚本相关的游戏文件夹结构概览,并在与游戏模式和插件创建相关的地方提供更详细的信息。
` {Root} `
` ├── lua`
` │ ├── autorun` - 此文件夹中的脚本会在 [客户端](https://wiki.facepunch.com/gmod/States#client) 和 [服务器](https://wiki.facepunch.com/gmod/States#server)(称为 ["共享"](https://wiki.facepunch.com/gmod/States#sharedisntastate))领域中自动运行。
` │ │ ├── client` - 在 [客户端](https://wiki.facepunch.com/gmod/States#client) 领域自动运行其内容。
` │ │ ├── server` - 在 [服务器](https://wiki.facepunch.com/gmod/States#server) 领域自动运行其内容。
` │ │ └── properties` - 存放 properties 中使用的默认属性,这些属性由 `lua/autorun/properties.lua` 加载。
` │ ├── bin` - 存放 Creating_Binary_Modules(一种高级功能)的地方。
` │ ├── derma` - Derma 工具脚本应放置的位置。