Luau vs Lua: в чём разница
Luau — диалект Lua, разработанный Roblox. Отличия: типы (string, number, boolean прямо в объявлении), дженерики, оптимизации для игрового движка. Синтаксис совместим с Lua 5.1, поэтому большинство Lua-туториалов работают в Roblox.
Для начинающих разница незначительна: учите стандартный Lua — в Roblox всё будет работать.
Script, LocalScript, ModuleScript: зачем три типа
- Script — выполняется на сервере. Видит всех игроков, управляет игровой логикой, хранит данные. Кладётся в ServerScriptService. Пример: начисление очков, управление волнами врагов
- LocalScript — выполняется на клиенте (у каждого игрока своя копия). Обрабатывает ввод, анимации интерфейса. Кладётся в StarterPlayerScripts или StarterCharacterScripts. Пример: кнопки UI, обработка нажатий клавиш
- ModuleScript — библиотека функций, которую вызывают другие скрипты. Кладётся в ReplicatedStorage. Пример: общие функции расчёта урона, работа с данными
Часто используемые Roblox API
-- Получить игрока
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Получить объект по имени
local part = workspace:FindFirstChild("MyPart")
-- Изменить свойство
part.BrickColor = BrickColor.new("Bright red")
part.Transparency = 0.5
-- Уничтожить объект
part:Destroy()
-- Создать копию объекта
local clone = part:Clone()
clone.Parent = workspace
-- Событие
part.Touched:Connect(function(hit)
local character = hit.Parent
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health -= 10 -- урон
end
end) RemoteEvents: сервер ↔ клиент
Для многопользовательских игр скрипты на сервере и клиенте общаются через RemoteEvents:
-- LocalScript: игрок нажал кнопку "Купить"
local buyEvent = game.ReplicatedStorage:WaitForChild("BuyItem")
buyEvent:FireServer("sword")
-- Script: сервер получил запрос
buyEvent.OnServerEvent:Connect(function(player, item)
if player.leaderstats.Coins.Value >= 50 then
player.leaderstats.Coins.Value -= 50
-- выдать предмет
end
end) Это критически важный паттерн — без него невозможно сделать честную многопользовательскую игру. Все денежные операции должны проверяться на сервере!
Курс для детей
Roblox Studio — Lua на практике
Дети 10–16 лет учатся программировать на Lua через создание реальных игр в Roblox. Script/LocalScript, RemoteEvents, DataStore — всё на практических проектах.
Подробнее о курсе