Как подключить свой модуль
Геймод грузит файлы напрямую через include/AddCSLuaFile в init.lua/cl_init.lua (см. структуру геймода), а не автоматическим сканированием папок.
1. Структура папки
2. Подключение в init.lua / cl_init.lua
Добавьте вызовы рядом с существующими модулями, порядок важен, если модуль зависит от netvars.lua/config.lua:
Клиентские и общие файлы нужно явно прописать в обоих файлах: AddCSLuaFile в init.lua, чтобы сервер отправил файл клиенту, и include в cl_init.lua, чтобы клиент его выполнил.
Если не хочется дублировать список в двух файлах, можно подключить модуль через file.AutoInclude — библиотека сама выберет реалм по префиксу имени файла. Так раньше был устроен весь геймод, но сейчас init.lua/cl_init.lua перечисляют файлы напрямую.
3. Методы PLAYER/ENTITY
Геймод кеширует метатаблицы в глобальные PLAYER и ENTITY (sh_init.lua), поэтому новые методы объявляются напрямую:
4. Хуки с дефолтной реализацией
Для блокирующих хуков (On*) регистрируйте дефолт в GM:, как это сделано для дверей и экономики, чтобы поведение работало без сторонних аддонов:
