Документация
Скрипты
К скриптам
Начало

Введение

Скрипт — это модуль клиента, который вы пишете сами. Он получает те же данные, что и встроенные модули, и рисует поверх игры теми же средствами.

Что такое скрипт

Каждый скрипт появляется в клиенте как отдельный модуль в категории Miscellaneous. У него есть своё имя, бинд и настройки, он включается и выключается как любой другой модуль. Пока модуль выключен, код не выполняется.

Скрипты хранятся в облаке и подтягиваются клиентом автоматически: сохранили в редакторе — клиент перезагрузил модуль. Перезаходить в игру не нужно.

Как он устроен

Файл выполняется один раз при загрузке. В этот момент создаются настройки и подписки на события. Дальше работают только колбэки.

local show = ui.checkbox("Показывать", true)

events.on("render2d", function()
    if not player.exists() or not show.get() then return end
    render.font_text("привет", 10, 10, 0xFFFFFFFF, 7, "medium")
end)

Здесь ui.checkbox создаёт настройку в панели модуля, а events.on подписывает функцию на кадр отрисовки. Функция вызывается каждый кадр, пока модуль включён.

Язык и окружение

Lua 5.2table.unpack вместо unpack, goto, bit32
string, table, math, coroutineстандартные библиотеки доступны полностью
io, os, debug, require, loadотключены: скрипт не читает файлы и не грузит чужой код
250 мспредел на один вызов колбэка, дальше скрипт выгружается
20 раз в секундучастота события tick

Ошибки

Если внутри колбэка происходит ошибка, клиент выгружает скрипт и показывает причину поверх игры. Модуль остаётся выключенным, пока вы не исправите код и не сохраните его заново.