Цель
Собрать одну короткую полностью работающую часть игры.
Подготовка
Создай отдельную Baseplate; включи Explorer, Properties, Output.
Пошаговая работа
- Создай в Workspace Part с именем FinishPad и Anchored=true; добавь SpawnLocation и 5–8 платформ.
- Добавь на FinishPad обычный Script из примера ниже.
- Настрой Material и цвета так, чтобы безопасные и опасные платформы различались.
- Нажми Play, достигни FinishPad и проверь уведомление о победе в Output.
- Перезапусти игру и повтори прохождение: победа должна засчитываться после нового запуска.
- Удаляй лишние элементы, пока один маршрут не займёт 30–60 секунд.
- Сохрани копию проекта как VerticalSlice_v1.
Пример Luau
local Players = game:GetService("Players")
local pad = script.Parent
local finished = {}
pad.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
local player = character and Players:GetPlayerFromCharacter(character)
if not player or not humanoid or humanoid.Health <= 0 then return end
if finished[player] then return end
finished[player] = true
print(player.Name .. " достиг финиша!")
end)
Players.PlayerRemoving:Connect(function(player)
finished[player] = nil
end)Результат
Работает один полноценный короткий маршрут: движение → препятствия → завершение.
Как проверить
При первом касании финиша появляется одна запись в Output; повторные касания не спамят.
Ошибка и ограничения
Скрипт должен находиться внутри FinishPad, а не в ServerScriptService; здесь проверяется только касание финиша, не честность маршрута.
Задание со звёздочкой
Добавь контрольную точку и разрешай финиш только после её прохождения. Продумай сброс при новом раунде.
Перед публикацией проверь примеры в Roblox Studio, добавь собственные скриншоты и вопросы для теста.
