Большинство того, что дети пытаются сделать кодом в Roblox Studio, на самом деле делается одной галочкой в панели свойств. Деталь проваливается сквозь пол, платформа не держит игрока, стекло ведёт себя как стена — всё это не ошибки скрипта, а настройки самой детали.
Свойств у детали около сотни, и большинство из них не понадобятся никогда. Ниже — те пятнадцать, которые действительно используются, с объяснением, что каждое делает, и разбором четырёх ситуаций, где они подводят чаще всего.
Где их вообще видно
Панель свойств открывается во вкладке View, пункт Properties. Рядом обычно держат Explorer — дерево всех объектов сцены. Выделили деталь в дереве или мышкой на сцене — справа появился её полный список настроек, сгруппированный по разделам.
Если панель пропала, это не поломка проекта: окна в Studio закрываются крестиком и возвращаются из того же меню. На занятиях первую неделю половина вопросов — именно про исчезнувшие панели.
Физика: две главные галочки
| Свойство | Что делает | Когда меняют |
|---|---|---|
Anchored | закрепляет деталь в воздухе | включать почти всегда |
CanCollide | можно ли наткнуться | выключать для декора |
CanTouch | срабатывает ли касание | выключать, чтобы не ловить лишнее |
Massless | не добавляет веса модели | для мелких деталей на механизмах |
Locked | защищает от случайного выделения | для пола и стен |
Anchored — важнейшее свойство во всей игре, и именно его забывают. Новая деталь создаётся незакреплённой, то есть подчинённой физике: она падает, её толкает игрок, она съезжает с места. Дом, собранный без этой галочки, складывается на глазах через секунду после запуска. Правило простое: всё, что должно стоять неподвижно, закрепляется сразу, а не когда рассыпалось.
CanCollide отвечает за твёрдость. Выключите её — и сквозь деталь можно будет пройти насквозь, хотя выглядеть она будет так же. Нужно это постоянно: трава, которая не должна мешать ходить, декоративные ветки, зоны входа, невидимые границы наоборот. Важно, что это свойство ничего не делает с видом, а прозрачность ничего не делает с твёрдостью — это разные вещи, и путают их постоянно.
Внешний вид
| Свойство | Что делает |
|---|---|
Transparency | от 0 (плотная) до 1 (невидимая) |
Color | цвет точным значением |
BrickColor | цвет из готовой палитры |
Material | материал: дерево, металл, стекло, неон |
Reflectance | насколько деталь отражает окружение |
CastShadow | отбрасывает ли тень |
Два цвета в списке — это один и тот же цвет, записанный по-разному. BrickColor — палитра с именами вроде Bright red, удобная для быстрого выбора. Color — точное значение, нужное, когда цвет задаёт скрипт или когда надо попасть в конкретный оттенок. Изменили одно — второе обновилось само.
Отдельно стоит сказать про материал Neon. Он игнорирует освещение сцены и светится собственным цветом, поэтому на нём делают лампы, кнопки, подсвеченные дорожки. Для ребёнка это самый заметный визуальный эффект, доступный одним кликом, и первый проект обычно сразу обрастает неоном во всех местах.
Размер и место
| Свойство | Что задаёт |
|---|---|
Size | размеры по трём осям |
Position | координаты центра детали |
Orientation | поворот в градусах |
CFrame | место и поворот вместе |
Shape | форма: куб, шар, цилиндр, клин |
Position указывает на центр детали, а не на её низ. Из-за этого платформа толщиной два стада, поставленная на высоту ноль, наполовину тонет в земле. Чтобы поставить её «на пол», нужна высота в половину толщины. Простой факт, который экономит ребёнку четверть часа на первом же уровне.
CFrame — это место и поворот в одном значении. Пока деталь не крутится, удобнее Position, он проще. Но если надо поставить объект и сразу развернуть, или двигать закреплённую платформу, работают именно через CFrame: два отдельных присваивания дают заметный рывок, одно — плавное движение.
Имя и место в дереве
Два свойства не меняют ничего на вид, но решают, найдёт ли скрипт нужную деталь. Name — это имя в Explorer, по которому к ней обращаются. Новые детали все называются Part, и когда их тридцать, скрипт берёт первую попавшуюся с одинаковым именем. Переименовать ту, с которой работаешь, — привычка, экономящая больше времени, чем любая другая.
Parent — это то, внутри чего деталь лежит. Изменить родителя означает перенести объект в другое место дерева, и именно так в коде прячут и возвращают предметы: деталь, которой назначили пустое значение родителя, исчезает со сцены, но остаётся в памяти и может вернуться. Полное удаление делается отдельной командой.
Побочным эффектом здесь является порядок: скрипт, который ищет деталь сразу после запуска, может её не найти просто потому, что сцена ещё не доложилась. Надёжнее просить подождать, пока объект появится, чем обращаться вслепую.
Когда деталей много
Свойства меняются не только по одному. Выделите в Explorer несколько деталей с зажатым Ctrl — панель покажет общие свойства, и изменение применится сразу ко всем. Поставить Anchored тридцати блокам дома это одно действие, а не тридцать.
Тот же подход в коде выглядит циклом по содержимому модели:
for _, ch in ipairs(model:GetChildren()) do
if ch:IsA('BasePart') then
ch.Anchored = true
end
end
Проверка на тип здесь обязательна: внутри модели лежат не только детали, но и скрипты, звуки, точки крепления, и попытка закрепить звук даёт ошибку. Эта конструкция — первая, где ребёнок видит практическую пользу цикла вне учебной задачи, поэтому её стоит показать именно на своём проекте, а не на абстрактном примере.
Как это выглядит из кода
Любое свойство из панели можно изменить скриптом — пишется оно ровно так, как называется:
local chast = script.Parent
chast.Anchored = true
chast.CanCollide = false
chast.Transparency = 0.5
chast.Material = Enum.Material.Neon
chast.Size = Vector3.new(4, 1, 4)
Две последние строки отличаются от остальных: материал и размер — не простое число и не галочка, а значение особого вида. Материалы перечислены в Enum.Material, а размер и координаты записываются через Vector3.new с тремя числами. Попытка написать chast.Size = 4 даёт ошибку, и это самый частый вопрос после первых скриптов.
Чего в панели нет
Часть того, что дети ищут среди свойств, детали не принадлежит вовсе. Свечение вокруг объекта, частицы, подпись над головой, звук — это отдельные объекты, которые вкладывают внутрь детали через плюсик в Explorer. Деталь при этом остаётся деталью, просто внутри неё теперь лежит ещё что-то со своим собственным списком настроек.
Понимание этой границы снимает много бесплодных поисков. Если нужной галочки в длинном списке нет — почти наверняка нужен не параметр, а вложенный объект. Поиск в верхней строке панели помогает убедиться быстро: название свойства вводится частично, и список сразу сужается.
Четыре ловушки
Невидимая, но твёрдая. Прозрачность единица делает деталь незаметной, и игрок врезается в пустоту. Для настоящего прохода нужно ещё выключить CanCollide. Обратный случай тоже бывает полезным: невидимая стена на краю карты — это именно прозрачность без выключенной твёрдости.
Касание срабатывает само. Незакреплённая деталь, лежащая на полу, постоянно мелко движется под физикой и сама вызывает событие касания. Монеты раздаются без игрока, ловушка срабатывает пустой. Закрепить — и всё прекращается.
Деталь исчезла после запуска. Обычно она не исчезла, а упала: незакреплённая, ничем не подпёртая, провалилась за пределы карты. Остановите игру и посмотрите в Explorer — если деталь в дереве на месте, дело в Anchored.
Скрипт меняет, а ничего не происходит. Серверный скрипт меняет свойство — видят все; клиентский — только тот, у кого он выполняется. Для декоративных эффектов это нормально, для игровой механики — источник расхождений между игроками.
Когда свойства перестали удивлять, пора делать детали реагирующими. Как это делается, разобрано в справочнике событий Roblox Studio, а сам синтаксис — в материале про базовый Lua. Что ломает первый проект чаще всего, собрано в ошибках новичков.