Ваш первый Lua-мод
Десять минут от нуля до команды /hello на вашем сервере.
1. Установите инструмент
Rust нужен один раз, чтобы установить bhmod:
cargo install --git https://github.com/Blockheads-Club/mod-sdk bhmod2. Создайте мод
bhmod new my-mod
cd my-modПоявятся mod.toml и server/main.luau. Откройте server/main.luau:
local mod = {}
function mod.on_enable()
bh.events.on("player-join", function(ev)
ev.player:send_chat(`Welcome, {ev.player:alias()}!`)
end)
bh.commands.register({ name = "hello", description = "Says hello." }, function(sender, label, args)
return { handled = true, reply = { "Hello from my-mod!" } }
end)
end
return modon_enableвызывается, когда мир загрузился. Подписывайтесь на события и регистрируйте команды там.- Всё, что умеет игра, лежит в глобальной таблице
bh: справочник API. - Редакторы с поддержкой Luau подсказывают код по файлу
bh.d.luau.
3. Проверьте его
bhmod check .Команда сообщает об ошибках в mod.toml и файлах, например об отсутствующем входном файле или неизвестном разрешении.
4. Упакуйте его
bhmod pack .Получится my-mod-0.1.0.bhmod. Одни и те же исходные данные всегда дают один и тот же файл.
5. Запустите на локальном сервере
Один раз запустите сборку для разработки Blockheads Server, чтобы он создал папку данных.
Скопируйте
my-mod-0.1.0.bhmod(или всю папкуmy-mod) в<папка данных>/mods/.Шаблон просит
players:chat, так что выдайте его в<папка данных>/mods/mods.toml:toml[my-mod] grant = ["players:chat"]Запустите сервер и зайдите. В логе будет
loaded 1 mod(s): my-mod 0.1.0, вы получите приветствие, а/helloответит.
Цикл быстрее
Укажите серверу прямо вашу рабочую папку через BLOCKHEADS_MODS_DIR=/path/to/folder-with-my-mod и перезапускайте его после каждого изменения. Упаковывать не нужно.
Дальше
- Больше примеров:
hello-lua,chat-filter,scheduler-lua. - События · Команды и таймеры · Хранилище