🧱 Luau
Диалект Lua для Roblox: статические типы, задачи, сервисы.
Шпаргалки · Программирование · #luau #roblox #lua
IDE и запуск
Roblox Studio (встроенный редактор), VS Code + Rojo + Luau LSP. Код живёт в Script (сервер), LocalScript (клиент), ModuleScript (общие модули).
Типы данных
Как в Lua плюс необязательные аннотации:
local n: number = 1
local s: string = "a"
local maybe: number? = nil
local t: {number} = {1, 2, 3}
type User = { id: number, name: string }
Типы Roblox: Vector3, CFrame, Color3, Instance, UDim2.
Операторы
Как в Lua, плюс составные присваивания += -= *= /= ..= и if x then a else b как выражение.
Циклы
for i = 1, 10 do end
for i, v in ipairs(t) do end
for k, v in t do end -- итерация без pairs
Функции
local function add(a: number, b: number): number return a + b end
part.Touched:Connect(function(hit) print(hit.Name) end)
Встроенные и сервисы
game:GetService("Players"), workspace, task.wait(), task.spawn(), task.delay(), Instance.new("Part"), :Destroy(), :WaitForChild(), print, warn.
Асинхронность
task.spawn(function() task.wait(1); print("готово") end)
local ok, err = pcall(function() end)
RunService.Heartbeat:Connect(function(dt) end)
Коллекции
table.insert, table.remove, table.find, table.clone, table.freeze, #t.
Библиотеки по задачам
Rojo (синхронизация с файлами), Wally (пакеты), Roact / React-lua (UI), Knit (фреймворк), ProfileService (данные игрока), TestEZ (тесты).