Веселий Obby

 

🎮 Як створити "Веселий Obby" у Roblox Studio


🟢 Крок 1: Відкрий Roblox Studio

  1. Відкрий Roblox Studio.

  2. Натисни "New", обери шаблон "Obby Template" або "Baseplate" (порожня сцена, якщо хочеш все з нуля).


🟠 Крок 2: Побудуй перешкоди

  1. В меню зліва в Explorer знайди Workspace.

  2. Натисни "Model" → "Part" – створиться новий блок.

  3. Зміни розмір і колір у вкладці "Home".

  4. Розмісти блок вище землі — це буде перша платформа.

Ідеї платформ:

  • Веселкова платформа 🌈

  • М'який зефір 🍬

  • Гаряча лава (kill part) 🔥

  • Стрибаючі плитки (jump pads) 🟩

  • Телепорт або рухома платформа ⚙️


🟡 Крок 3: Додай Kill Part (плитка, що "вбиває")

  1. Вибери блок → вкладка "View" → відкрити Properties.

  2. У Properties, натисни + і додай Script.

  3. Встав цей код:

script.Parent.Touched:Connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") then hit.Parent.Humanoid.Health = 0 end end)

💡 Зміни колір плитки на червоний — щоб гравці знали, що це небезпечно.


🟣 Крок 4: Додай Checkpoint (точка збереження)

  1. Створи новий блок → назви його "Checkpoint".

  2. Додай Script:

script.Parent.Touched:Connect(function(hit) local player = game.Players:GetPlayerFromCharacter(hit.Parent) if player then player:SetAttribute("Checkpoint", script.Parent.Position) end end)
  1. Також потрібно додати скрипт на старті гри, щоб гравець міг з’являтися на останньому чекпоінті — ми це зробимо трішки пізніше.


🔵 Крок 5: Додай фініш

  1. Створи фінальну платформу.

  2. Додай табличку з текстом: "Вітаємо! Ти пройшов Obby!"

  3. Можна зробити, щоб після фінішу гра давала бейдж чи музику.


🔧 Крок 6: Протестуй гру

  1. Натисни Play (F5), щоб перевірити, чи працюють платформи, kill parts, чекпоінти.

  2. Виправ помилки, якщо щось не працює.


🌟 Ідеї для веселого дизайну:

  • Використовуй MeshParts (наприклад, печиво, зірки, фрукти).

  • Додай веселу музику (вставити Sound у Workspace).

  • Додай анімації або звуки при стрибку або смерті.

  • Прикрась світ: небо, хмари, кольорові світильники.


Щоб гравець відновлювався на останньому чекпоінті після загибелі — потрібно зробити збереження та встановлення його позиції під час спавну.


🧠 🔧 Що ми зробимо:

  1. Гравець торкається чекпоінту — зберігається позиція.

  2. Коли гравець помирає і знову з’являється — він спавниться на цьому місці.


✅ 1. Скрипт для збереження чекпоінта

(додаємо в Checkpoint — тобто в саму плитку-чекпоінт)

script.Parent.Touched:Connect(function(hit) local character = hit.Parent local player = game.Players:GetPlayerFromCharacter(character) if player then player:SetAttribute("Checkpoint", script.Parent.Position) end end)

✅ 2. Скрипт, що ставить гравця на чекпоінт під час появи

(додаємо в ServerScriptService — як Script, не LocalScript!)

  1. У Explorer знайди ServerScriptService.

  2. Клікни правою кнопкою → Insert Object → Script.

  3. Встав:

game.Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(character) wait(0.1) -- трохи почекати, щоб Character прогрузився -- Отримуємо чекпоінт, якщо є local checkpoint = player:GetAttribute("Checkpoint") if checkpoint then character:WaitForChild("HumanoidRootPart").CFrame = CFrame.new(checkpoint + Vector3.new(0, 3, 0)) end end) end)

🔄 Що це робить:

  • Зберігає позицію чекпоінта в атрибутах гравця.

  • При відродженні, ставить гравця на цей чекпоінт.

  • Додає трохи "зверху" по Y, щоб не застрягнути в платформі.


✅ Поради:

  • Назви всі чекпоінти однаково (наприклад Checkpoint) або зроби кожен унікальним.

  • Якщо буде кілька рівнів — можна зберігати рівень, а не просто позицію.


🌈 1. Веселкова платформа

  1. Створи Part у вікні Model.

  2. Увімкни Properties (View → Properties).

  3. Натисни + на Part → додай Script і встав:

local colors = { Color3.fromRGB(255, 0, 0), -- червоний Color3.fromRGB(255, 165, 0), -- помаранчевий Color3.fromRGB(255, 255, 0), -- жовтий Color3.fromRGB(0, 255, 0), -- зелений Color3.fromRGB(0, 127, 255), -- блакитний Color3.fromRGB(75, 0, 130), -- індиго Color3.fromRGB(139, 0, 255) -- фіолетовий } local part = script.Parent local index = 1 while true do part.Color = colors[index] index = index % #colors + 1 wait(0.3) -- швидкість зміни end

🎨 Платформа буде переливатися кольорами веселки.


🍬 2. М’який зефір

  1. Створи Part і зроби її розмір 4, 1, 4 (широкий і низький блок).

  2. У Properties:

    • Color → білий або рожевий.

    • Material → SmoothPlastic.

    • Shape → Cylinder або Block.

    • Reflectance = 0.1 або 0.2 — буде трохи блискучий.

    • Anchored = true (щоб не падав).

  3. Для краси можна додати кілька різних “зефірок” поруч.


🔥 3. Гаряча лава (kill part)

  1. Створи Part і зроби її червоною/помаранчевою.

  2. Встанови Material = Neon, Anchored = true.

  3. Додай Script в цю платформу:

script.Parent.Touched:Connect(function(hit) local humanoid = hit.Parent:FindFirstChild("Humanoid") if humanoid then humanoid.Health = 0 end end)

🔥 Тепер, хто ступить на лаву — "згорає"!


🟩 4. Стрибаючі плитки (Jump Pads)

  1. Створи Part, зроби зеленою.

  2. Назви її наприклад JumpPad.

  3. Додай Script:

script.Parent.Touched:Connect(function(hit) local character = hit.Parent local humanoid = character:FindFirstChild("Humanoid") local hrp = character:FindFirstChild("HumanoidRootPart") if humanoid and hrp then local jumpForce = Instance.new("BodyVelocity") jumpForce.Velocity = Vector3.new(0, 100, 0) jumpForce.MaxForce = Vector3.new(0, 4000, 0) jumpForce.Parent = hrp game.Debris:AddItem(jumpForce, 0.3) -- автоматично видаляє через 0.3 сек end end)

💥 Коли гравець торкається — його підкидає вгору.


⚙️ 5. Телепорт або рухома платформа

🌀 Телепорт

  1. Створи 2 платформи — "Вхід" і "Вихід".

  2. Назви їх, наприклад, TeleIn і TeleOut.

  3. В TeleIn додай Script:

function onTouch(part) local humanoid = part.Parent:FindFirstChild("Humanoid") if (humanoid~=nil) then humanoid.Parent:MoveTo(script.Parent.Parent.TeleOut.Position) -- Teleporter это блок куда мы телепортируемся если вы хотите сделать несколько порталов то поменяйте название блока в скрипте и на самом блоке end end script.Parent.Touched:connect(onTouch)

🔄 Після дотику до TeleIn — гравець телепортується на TeleOut.


🚛 Рухома платформа

  1. Створи Part, розмісти як платформу.

  2. Назви її MovingPlatform.

  3. Додай Script:

local part = script.Parent local startPos = part.Position local endPos = startPos + Vector3.new(0, 0, 20) -- рух вперед на 20 local speed = 2 local goingToEnd = true while true do local target = goingToEnd and endPos or startPos part.Position = part.Position:Lerp(target, 0.05) if (part.Position - target).magnitude < 1 then goingToEnd = not goingToEnd wait(1) end wait(0.03) end

↔ Платформа буде їздити вперед-назад!