12 November 2026
Tutorial Roblox

Cara Membuat Map Obby (Obstacle Course) Lengkap dengan Checkpoint Otomatis di Roblox Studio

Cara Membuat Map Obby (Obstacle Course) Lengkap dengan Checkpoint Otomatis di Roblox Studio
Tutorial merancang map Obby dan script Checkpoint otomatis di Roblox Studio

Genre Obby (Obstacle Course) atau parkour rintangan merupakan salah satu jenis permainan paling populer dan paling cocok dijadikan proyek belajar pertama di Roblox Studio. Dalam sebuah game Obby, pemain harus melewati berbagai rintangan dari satu Stage ke Stage berikutnya.

1. Menyusun Folder Checkpoints di Workspace

  1. Di dalam jendela Explorer, klik kanan pada Workspace dan tambahkan sebuah Folder baru dengan nama Checkpoints.
  2. Buat beberapa balok pijakan (Part), beri properti Anchored = true, lalu beri nama secara berurutan sesuai nomor stage: 1, 2, 3, dan seterusnya.
  3. Masukkan semua balok checkpoint tersebut ke dalam folder Checkpoints.

2. Script Sistem Stage dan Respawn di Checkpoint

Buat sebuah Script di dalam ServerScriptService dan tuliskan kode berikut:

local Players = game:GetService("Players")
local checkpointsFolder = workspace:WaitForChild("Checkpoints")

Players.PlayerAdded:Connect(function(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player

    local stage = Instance.new("IntValue")
    stage.Name = "Stage"
    stage.Value = 1
    stage.Parent = leaderstats

    player.CharacterAdded:Connect(function(character)
        task.wait(0.1)
        local rootPart = character:WaitForChild("HumanoidRootPart")
        local cp = checkpointsFolder:FindFirstChild(tostring(stage.Value))
        if cp then
            rootPart.CFrame = cp.CFrame + Vector3.new(0, 4, 0)
        end
    end)
end)

for _, cp in ipairs(checkpointsFolder:GetChildren()) do
    if cp:IsA("BasePart") then
        cp.Touched:Connect(function(hit)
            local player = Players:GetPlayerFromCharacter(hit.Parent)
            if player then
                local stage = player.leaderstats.Stage
                local nomorCp = tonumber(cp.Name)
                if nomorCp and nomorCp == stage.Value + 1 then
                    stage.Value = nomorCp
                end
            end
        end)
    end
end

3. Membuat Balok Rintangan Berbahaya (Hazard Block)

Untuk membuat rintangan yang mengembalikan pemain ke checkpoint terakhir saat tersentuh, buat sebuah Part berwarna merah menyala (Material Neon) dan tambahkan Script yang mengubah Humanoid.Health = 0 ketika tersentuh.

R
Editor Utama & Praktisi Web

Redaksi SemogaBermanfaat

Tim penulis dan praktisi teknologi di SemogaBermanfaat.com yang berfokus membagikan tutorial blogging, optimasi SEO, pemrograman web, dan literasi digital secara mendalam dan terstruktur.

Komentar Pembaca (0)

Belum ada komentar. Jadilah yang pertama memberikan tanggapan pada artikel ini!