Posted about this game before, it’s just a difficulty chart. we made all the parts slippery to be unique but other than that it is pretty normal.
We created a very complicated stage transfer system that is over 3000 lines of code, lol. However, if you die while on a different stage, it teleports you to your highest stage.
We tried adding another value for the artificial stage, but that just made the game really slow and didn’t even work. the value stayed at 0 no matter what we tried.
Any ideas on how to fix this?
code:
local checkpoints = workspace:WaitForChild("Checkpoints")
local coinremote = game.ReplicatedStorage:WaitForChild("CoinGet")
local ms = game:GetService("MarketplaceService")
local vip = 25751808
local mvp = 25751816
local dc = 25751830
game.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 = "0"
stage.Parent = leaderstats
local coins = Instance.new("IntValue")
coins.Name = "Coins"
coins.Value = "0"
coins.Parent = leaderstats
player.CharacterAdded:Connect(function(char)
local hum = char:WaitForChild("Humanoid")
wait()
char:MoveTo(checkpoints[stage.Value].Position)
hum.Touched:Connect(function(hit)
if hit.Parent == checkpoints then
if tonumber(hit.Name) == stage.Value + 1 then
stage.Value = stage.Value + 1
if not ms:UserOwnsGamePassAsync(player.UserId,vip) and not ms:UserOwnsGamePassAsync(player.UserId,mvp) and not ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 5 -- none
elseif ms:UserOwnsGamePassAsync(player.UserId,vip) and not ms:UserOwnsGamePassAsync(player.UserId,mvp) and not ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 6 -- vip
elseif not ms:UserOwnsGamePassAsync(player.UserId,vip) and not ms:UserOwnsGamePassAsync(player.UserId,mvp) and ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 10 -- dc
elseif not ms:UserOwnsGamePassAsync(player.UserId,vip) and ms:UserOwnsGamePassAsync(player.UserId,mvp) and not ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 7 -- mvp
elseif ms:UserOwnsGamePassAsync(player.UserId,vip) and ms:UserOwnsGamePassAsync(player.UserId,mvp) and not ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 7 -- vip,mvp
elseif ms:UserOwnsGamePassAsync(player.UserId,vip) and ms:UserOwnsGamePassAsync(player.UserId,mvp) and ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 10 -- vip,mvp,dc
elseif not ms:UserOwnsGamePassAsync(player.UserId,vip) and ms:UserOwnsGamePassAsync(player.UserId,mvp) and ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 10 -- mvp,dc
elseif ms:UserOwnsGamePassAsync(player.UserId,vip) and not ms:UserOwnsGamePassAsync(player.UserId,mvp) and ms:UserOwnsGamePassAsync(player.UserId,dc) then
coins.Value = coins.Value + 10 -- vip,dc
end
coinremote:FireAllClients()
end
end
end)
end)
end)