Публичные инструменты разработчика и примеры для создания Lua-плагинов SA-MP Android.
Этот репозиторий не содержит исходный код клиента SA-MP Android. Клиент имеет закрытый исходный код, а плагины взаимодействуют с ним исключительно через документированный Lua API.
samp-plugin— кроссплатформенная CLI-утилита на Go для проверки проектов плагинов и создания пакетов.splug.api/schema.json— машиночитаемый снимок текущего контракта Plugin API 1.1.examples/— независимые примеры плагинов, которые можно проверять, упаковывать и устанавливать.
Загрузите архив для своей операционной системы и архитектуры из последнего GitHub Release:
- Выберите архив с подходящим обозначением платформы, например
windows_amd64,linux_arm64илиdarwin_arm64. - Извлеките
samp-pluginилиsamp-plugin.exe. - Переместите исполняемый файл в каталог из
PATHлибо запускайте его по полному пути.
В Release публикуются сборки для Windows, Linux и macOS на amd64 и arm64. Для проверки целостности загрузки используйте файл checksums.txt.
Версию установленной CLI-утилиты можно узнать командой samp-plugin version.
Проверка каталога с исходным кодом:
samp-plugin validate examples/fps-counterПроверка готового пакета:
samp-plugin validate fps-counter-1.0.0.splugПроверяются типы и ограничения полей manifest, SemVer, совместимость API, разрешения, контексты, входной Lua-файл, переносимость и безопасность путей, количество файлов, а также ограничения размера пакета, применяемые клиентом.
samp-plugin pack examples/fps-counterПо умолчанию пакет создаётся в родительском каталоге исходного проекта с именем <plugin-id>-<version>.splug. При необходимости укажите другой путь:
samp-plugin pack --output dist/fps-counter.splug examples/fps-counterУтилита не перезаписывает существующие файлы. Она использует отсортированные переносимые пути, фиксированные временные метки и права доступа, поэтому одинаковые входные данные создают одинаковые байты и SHA-256. manifest.json всегда находится в корне архива.
Минимальная структура проекта:
my-plugin/
├── manifest.json
└── main.lua
Дополнительно можно использовать каталоги modules/, assets/ и locales/. Пути внутри пакета всегда используют / и не могут содержать абсолютные пути, обратные косые черты, пустые сегменты, . или ...
Полное описание Lua API, аргументов событий, разрешений и ограничений среды выполнения находится в официальной документации SA-MP Android. api/schema.json представляет контракт конкретного выпуска клиента; его изменения должны сопровождаться обновлением тестов и примеров.
Для разработки требуется Go 1.24 или новее. CLI использует только стандартную библиотеку Go.
go test ./...
go vet ./...
go build -o bin/samp-plugin ./cmd/samp-pluginСгенерированные исполняемые файлы и пакеты .splug не добавляются в репозиторий. Отправка тега, соответствующего шаблону v*, запускает workflow выпуска: он тестирует проект, собирает архивы для всех поддерживаемых платформ, создаёт контрольные суммы SHA-256 и публикует GitHub Release.
Репозиторий распространяется по лицензии MIT.