Встроенный MCP-сервер Roblox Studio позволяет совместимому ИИ-клиенту читать DataModel, создавать объекты, править Luau и запускать playtest. Мы включим соединение, дадим агенту узкое задание и соберём GlowingPad: неоновую платформу, которая подбрасывает персонажа и меняет цвет при касании.
Агент получает структурированный доступ к открытому place и связывает запрос с объектами Explorer. Но результат ещё не готовая игра: ИИ может выбрать неверного родителя, перепутать Script и LocalScript или создать дубликат. Поэтому работаем циклом: план, изменение, проверка путей, playtest, Output и сохранение версии.
В Studio включаем MCP server и соединяем разрешённый MCP-клиент.
Просим создать одну механику с точными путями и без публикации.
Смотрим Explorer, Luau-код, Output и поведение в playtest.
Что MCP разрешает делать в открытом place
Откройте копию Baseplate. В Assistant выберите меню, Manage MCP Servers и включите Enable Studio as MCP server. Добавьте Studio в MCP-клиенте способом из текущего интерфейса Roblox. После подключения сначала запросите имя place и корневые сервисы без изменений. Только когда чтение работает, создавайте объект.
| Возможность | Что можно поручить | Что проверить вручную |
|---|---|---|
| Чтение DataModel | Найти Workspace и ServerScriptService | Агент не перепутал place |
| Создание Instances | Добавить Part с заданными свойствами | Имя, размер, позиция, Anchored |
| Правка Luau | Создать Script для касания | Родитель, тип скрипта, проверки |
| Playtest | Запустить и коснуться платформы | Output и повторное касание |
| Изменение place | Исправить конкретный дефект | Нет лишних объектов и дубликатов |
Первый запрос на изменение должен быть маленьким и обратимым. Не просите «сделай игру целиком». Хороший тест MCP помещается в одном экране Explorer и имеет наблюдаемый результат за минуту.

Каждое изменение заканчивается проверкой. Следующий запрос начинается только после проверки
Включаем соединение и ставим точное задание
Попросите создать в Workspace Anchored Neon Part GlowingPad размером 12, 1, 12 и обычный Script внутри. При касании платформа подбрасывает HumanoidRootPart, меняет цвет и имеет cooldown для персонажа. Запретите публикацию, потребуйте пути и playtest. Ниже ожидаемое ядро Workspace/GlowingPad/JumpPad.server.luau. Сравните его с результатом.
local TweenService = game:GetService("TweenService")
local pad = script.Parent
local readyAt = {}
local baseColor = pad.Color
pad.Anchored = true
pad.CanCollide = true
pad.Material = Enum.Material.Neon
local function flash()
pad.Color = Color3.fromRGB(255, 255, 255)
TweenService:Create(pad, TweenInfo.new(0.35),
{Color = baseColor}):Play()
end
pad.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
if not character then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local root = character:FindFirstChild("HumanoidRootPart")
if not humanoid or humanoid.Health <= 0 or not root then return end
local now = time()
if (readyAt[character] or 0) > now then return end
readyAt[character] = now + 1
local velocity = root.AssemblyLinearVelocity
root.AssemblyLinearVelocity = Vector3.new(velocity.X, 72, velocity.Z)
flash()
end)- В Explorer существует ровно один Workspace/GlowingPad и один Script внутри него.
- Part закреплён, сталкивается с персонажем и остаётся на месте после запуска.
- Касание подбрасывает персонажа, а горизонтальная скорость сохраняется.
- Частые события Touched не создают серию неконтролируемых прыжков.
- В Output нет красных ошибок во время двух последовательных тестов.

Размер задачи определяет качество контроля. Узкая задача легче и модели, и разработчику
Разбираем Luau-код прыжковой платформы
Событие Touched может сработать для нескольких частей одного персонажа почти одновременно. Поэтому код ищет общий Model, проверяет Humanoid и HumanoidRootPart, а затем хранит время следующего допустимого срабатывания для этого персонажа. Вместо добавления силы каждый кадр мы один раз меняем вертикальную компоненту AssemblyLinearVelocity и сохраняем горизонтальные X и Z. Tween возвращает исходный цвет независимо от частоты кадров. Скрипт находится внутри Part и выполняется на сервере, поэтому эффект движения видят все клиенты, а игрок не сообщает серверу желаемую силу через RemoteEvent.
| Строка или объект | Зачем нужен | Частая ошибка агента |
|---|---|---|
| Anchored=true | Платформа не падает | Part улетает вместе с игроком |
| FindFirstAncestorOfClass | Находит модель персонажа | hit принимается за Character |
| HumanoidRootPart | Меняется скорость сборки | Сила задаётся случайной конечности |
| readyAt[character] | Cooldown для каждого игрока | Один общий debounce блокирует всех |
| AssemblyLinearVelocity | Предсказуемый импульс | BodyVelocity создаётся и не удаляется |
Клиент может читать и менять DataModel, скрипты, Instances и запускать playtest. Перед запросом назовите область: Workspace/GlowingPad, один Script, без публикации. Получите список путей, но проверьте Explorer сами. Отчёт ИИ не является доказательством. Для первой механики достаточно базовых Instances и кода, который вы читаете целиком.
Проводим playtest как разработчик, а не зритель
Проведите три теста. В Solo коснитесь центра и края Part, затем быстро прыгните на него снова. В режиме Start Server с двумя клиентами убедитесь, что cooldown одного игрока не блокирует второго. После этого попросите агента изменить только BOOST с 72 на 55 и цвет на голубой. Если он пересоздал Part, добавил второй Script или изменил другие объекты, откатите действие и уточните запрос. Завершите проверкой Output по словам error, infinite yield и attempt to index.
- Сохраните копию Baseplate и включите MCP server в текущем интерфейсе Studio.
- Проверьте read-only запросом, что клиент видит Workspace и ServerScriptService.
- Отправьте точный промпт на один Part и один Script без публикации.
- Сравните свойства GlowingPad и Luau-код с ожидаемой структурой статьи.
- Проведите Solo test, два быстрых касания и тест с двумя клиентами.
- Попросите одно точечное изменение и убедитесь, что дифф не расширился.
- MCP-клиент подключается только к открытому тестовому place.
- Агент перечисляет изменённые пути, а вы находите их в Explorer.
- Платформа работает для двух игроков независимо.
- Повторный запрос меняет только названные свойства.

Красивого первого прыжка недостаточно. Только после четырёх проверок сохраняйте версию
Строим безопасный рабочий процесс с ИИ
Следом поручите рефакторинг: вынесите BOOST и COOLDOWN в Attributes. Сначала получите план и ожидаемые пути, затем разрешите изменение. Для RemoteEvent, DataStore, покупок и наград отдельно проверяйте сервер. Не публикуйте place только из-за удачного playtest. Сверьте объекты и скрипты, проверьте мобильное управление, сохранение и повторный вход.
Как изучить тему в Кодике
В Кодике MCP стоит изучать поверх базового Roblox-разработчика, а не вместо него. Вам нужно распознавать Part, Script, события, Humanoid и серверную ответственность. Тогда агент становится быстрым помощником, а не единственным человеком в комнате, который якобы понимает созданный код.
| Шаг | Что изучить | Практический результат |
|---|---|---|
| 1 | Explorer, Properties и BasePart | Создать GlowingPad вручную |
| 2 | События и функции Luau | Обработать Touched без ИИ |
| 3 | Сервер и клиент | Объяснить, почему Script, а не LocalScript |
| 4 | Output и playtest | Найти ошибку по строке |
| 5 | MCP-процесс | Проверить один узкий дифф агента |
Пройдите в Кодике уроки Lua / Luau до событий и таблиц, затем повторите механику вручную. После этого попросите ИИ собрать второй вариант с Attributes и сравните решения. Цель не в скорости первого результата, а в способности заметить лишний объект, неверный контекст исполнения и небезопасную проверку.
Область изменений невозможно проверить. Давайте одну механику и точные пути.
Перед подключением сохраните копию place или отдельную версию.
Откройте Explorer, код и Output, затем проведите playtest самостоятельно.
Движение и правила должны подтверждаться сервером, если влияют на общий игровой мир.
Что получится в итоге

Агент создал один проверяемый объект и серверный Luau-скрипт, а playtest подтвердил прыжок, визуальную реакцию и независимый cooldown игроков.
Что умеет Studio MCP server?
Он даёт совместимому клиенту доступ к DataModel, созданию и правке объектов и скриптов, а также playtest в рамках возможностей Studio.
Почему первый запрос должен быть маленьким?
Один Part и один Script можно проверить по путям, свойствам, коду и поведению. Большой дифф легко скрывает ошибку.
Зачем cooldown хранится по Character?
Событие Touched шумное, но один игрок не должен блокировать платформу для остальных.
Как понять, что проект действительно работает?
Проверьте основной сценарий, ошибочный ввод, повторный запуск и один граничный случай. Затем объясните вслух, где появляются данные, кто принимает решение и где хранится состояние.
Можно ли начать с готового кода из статьи?
Да. После первого запуска измените один параметр, добавьте одну проверку и повторите проект без подсказки. Так пример превращается в собственный навык.
События, функции и таблицы закрепите в курсе Lua / Luau. Если Explorer и Output пока непривычны, начните со статьи про первую игру в Roblox Studio.
Для проверки ошибок используйте разбор Output, а перед импортом чужих объектов прочитайте как проверять модели Roblox. В Кодике повторите прыжковую платформу без MCP, затем сравните с агентским вариантом.