Облачные модули · arctic.*
Модуль — текстовый файл Luau с функцией on_update(). Клиент вызывает её в фоновом потоке примерно четыре раза в секунду. Скрипты читают сцену и создают метки поверх игры; сервер хранит исходники и не исполняет их.
Эта страница описывает только скрипты, сохранённые на сайте. Во вкладке клиента Luau VM действует другой API; функции game, Drawing, HTTP, файлов и памяти здесь нет.
Первый модуль
- Откройте «Мои скрипты» → «Создать модуль».
- Задайте имя, вставьте код и сохраните.
- Нажмите «Включить». Запустите клиент через лоадер с активной подпиской. Он обновляет библиотеку каждые 10 секунд; переносить .lua в папку клиента не требуется.
- Статус и ошибки видны в клиенте: Configs → Info → Cloud scripts. Кнопка Manage Scripts открывает библиотеку в браузере. После исправления ошибки выключите и включите модуль.
function on_update()
local players = arctic.players()
arctic.label(24, 100, 'Players: ' .. #players, 0x70ffb0ff)
for _, player in ipairs(players) do
local p = player.position
if p and not player.is_local then
arctic.text(p.x, p.y, p.z, player.name, 0xffffffff)
end
end
endФункции API
| Вызов | Результат |
|---|---|
arctic.root() | Handle Workspace. Начинает новый обход и делает старые handles недействительными. |
arctic.children(handle) | Массив handles дочерних объектов, максимум 2048 за вызов. |
arctic.info(handle) | Таблица: name, class; у деталей position, size, right, forward — векторы {x,y,z}; у Sound — playing. Проверяйте наличие необязательных полей. |
arctic.players() | Массив игроков: name, is_local, position. Первый — местный игрок, если доступен. Максимум 128. |
arctic.text(x,y,z,text,color) | Текст в мировой точке. Скрывается, если точка не проецируется на экран. |
arctic.line(x1,y1,z1,x2,y2,z2,color) | Отрезок между мировыми точками. |
arctic.label(x,y,text,color) | Текст в пикселях относительно окна игры. |
arctic.time() | Монотонное время в секундах для интервалов и анимации. |
arctic.contains(text,needle) | Поиск буквальной подстроки, без шаблонов. |
Цвет: целое 0xRRGGBBAA. Мировые координаты — единицы Roblox. Состояние в локальных переменных верхнего уровня сохраняется между вызовами. Handles действуют до следующего root(); адреса памяти API не возвращает. Команды рисования нужно выдавать каждый вызов.
Ограничения и защита
- До 128 КБ исходника, 8 МБ памяти VM, проверяемый бюджет 40 мс на вызов. Выполнение идёт отдельно от отрисовки.
- До 4096 вызовов API, 8192 handles и 512 команд рисования; надпись до 256 байт. Одновременно включаются до 4 модулей.
- Доступны базовые операции Luau и библиотеки math, table, string. Функции require, load, loadfile, dofile, pcall, xpcall, setmetatable и getmetatable недоступны. Используйте только описанный ниже arctic.* API для работы со сценой.
- Нет функций доступа к сети, файлам, процессам, DLL, вводу клавиатуры, токенам аккаунта, произвольной памяти или записи в игру. Загружается только текст Luau, байткод запрещён.
- Ошибка или превышение лимита останавливает модуль. Изменение исходника выключает его до повторного включения. При потере связи библиотека отключается до восстановления.
Это ограниченная среда выполнения, а не гарантия отсутствия любых уязвимостей в интерпретаторе или клиенте. Не устанавливайте EXE/DLL из описаний чужих модулей: для облачного модуля нужен только текст .lua или .luau.
Публикация и примеры
В библиотеке нажмите «Опубликовать», укажите описание и цену. Скрипты проходят модерацию. Покупатель добавляет приобретённый скрипт из профиля в библиотеку и включает его самостоятельно.
DoorsESP.lua · BuildABarrierAdvisor.lua
Настройки примеров находятся в таблице settings в начале исходника. Advisor предназначен для Build A Barrier 1v1: направление цели определяется на стартовых краях, остатки стен вводятся вручную. Это эвристические подсказки, а не автоматические ходы. При изменении структуры игры модуль нужно адаптировать.