GAME DEVELOPMENT
  • Here is a youtube video that explains how to make a basic obby from start to finish.
  • Please try to make the obby challenging but not too challenging where others cannot get through it.
  • You must be able to get to the end at least once for others to be able to do so as well 🙂
Game Testing Form:

If your obby is completed and you have followed the instructions above then it is ready to be tested. It should be tested by at least two people. While you are testing you should be taking notes that you will explain to the game developer.

 

Scripts for Advanced Obby

📋 Scripts -[ 1️⃣ Checkpoint Script: script.Parent.Touched:Connect(function(hit) if game.Players:FindFirstChild(hit.Parent.Name) then local plr = game.Players:FindFirstChild(hit.Parent.Name) if plr:FindFirstChild(“leaderstats”) and plr.leaderstats:FindFirstChild(“Stage”) then plr.leaderstats.Stage.Value = script.Parent.Stage.Value end end end)

 

2️⃣ Leaderstats Script: game.Players.PlayerAdded:Connect(function(plr) local l = Instance.new(“Folder”,plr) l.Name = “leaderstats” local s = Instance.new(“IntValue”,l) s.Name = “Stage” s.Value = 1 end)

 

3️⃣ Respawn Script: game.Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function(char) local stage = plr.leaderstats.Stage.Value for i,v in pairs(workspace:WaitForChild(“Spawns”):GetChildren()) do if v.Stage.Value == stage then task.wait(.5) local hrp = char:WaitForChild(“HumanoidRootPart”) char:SetPrimaryPartCFrame(CFrame.new(v.Position + Vector3.new(0,3,0))) end end end) end)

 

4️⃣ Dev Product Script Local: local mps = game:GetService(“MarketplaceService”) local devProductId = 00000000 –your id here script.Parent.MouseButton1Up:Connect(function() mps:PromptProductPurchase(game.Players.LocalPlayer,devProductId) end)

 

5️⃣ Developer Product Server Script: local mps = game:GetService(“MarketplaceService”) local id = 1711128944 mps.PromptProductPurchaseFinished:Connect(function(userId,Product,isPurchased) local plr = game.Players:GetPlayerByUserId(userId) if isPurchased then if Product == id then for i,v in pairs(workspace.Spawns:GetChildren()) do if v.Stage.Value == plr.leaderstats.Stage.Value + 1 then plr.leaderstats.Stage.Value += 1 if plr.Character then plr.Character:SetPrimaryPartCFrame(CFrame.new(v.Position + Vector3.new(0,3,0))) end return Enum.ProductPurchaseDecision.PurchaseGranted end end end end end)