here's the scripts u can copy and paste: script 1 add in Frame: local plr = script.Parent.Parent.Parent.Parent local currentStage = plr.CurrentStage currentStage.Changed:Connect(function() local stages = game.Workspace:FindFirstChild(currentStage.Value) if stages then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = (stages.CFrame * CFrame.new(0,3,0)) end end end) script 2 add in next: local plr = script.Parent.Parent.Parent.Parent.Parent script.Parent.MouseButton1Down:Connect(function() if plr.CurrentStage.Value == plr.leaderstats.Stages.Value then plr.CurrentStage.Value = 1 else plr.CurrentStage.Value += 1 end end) script 3 add in Previous: local plr = script.Parent.Parent.Parent.Parent.Parent script.Parent.MouseButton1Down:Connect(function() if plr.CurrentStage.Value == 1 then plr.CurrentStage.Value = plr.leaderstats.Stage.Value.Value else plr.CurrentStage.Value -= 1 end end) edited: sorry i forgot leaderstats but u can write it urself xD
Handler Scipt: local player = script.Parent.Parent.Parent.Parent local currentStage = player.CurrentStage currentStage.Change:Connect(function() local stages = game.Workspace:FindFirstChild(currentStage.Value) if stages then local hrp = player.Character:FindFirstChild(HumanoidRootPart) if hrp then hrp.CFrame = (stages.CFrame*CFrame.new(0,3,0)) end end end)
ALL SCRIPTS HERE !!!!!!!!!!! -//Handler: local player = script.Parent.Parent.Parent.Parent local currentstage = player.CurrentStage currentstage.Changed:Connect(function() local stages = game.Workspace.Stages:FindFirstChild(currentstage.Value) if stages then local hrp = player.Character:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = (stages.CFrame * CFrame.new(0, 3, 0)) end end end) --//Next Button: local player = script.Parent.Parent.Parent.Parent.Parent script.Parent.MouseButton1Click:Connect(function() if player.CurrentStage.Value == player.leaderstats.Stage.Value then player.CurrentStage.Value = 1 else player.CurrentStage.Value += 1
end end) --//Previous Button: local player = script.Parent.Parent.Parent.Parent.Parent script.Parent.MouseButton1Click:Connect(function() if player.CurrentStage.Value == 1 then player.CurrentStage.Value = player.leaderstats.Stage.Value else player.CurrentStage.Value -=1 end end) --//My leaderstats with datastore: local Players = game:GetService("Players") local DataStoreService = game:GetService("DataStoreService") local SaveDataStore = DataStoreService:GetDataStore("SaveData") local function SavePlayerData(player) local success,errormsg = pcall(function() local SaveData = {} for i,stats in pairs(player.leaderstats:GetChildren()) do SaveData[stats.Name] = stats.Value end SaveDataStore:SetAsync(player.UserId,SaveData) end) if not success then return errormsg end end Players.PlayerAdded:Connect(function(player) local Stats = Instance.new("Folder") Stats.Name = "leaderstats" Stats.Parent = player local Stage = Instance.new("IntValue") Stage.Name = "Stage" Stage.Parent = Stats Stage.Value = 1
local CurrentStage = Instance.new("IntValue") CurrentStage.Name = "CurrentStage" CurrentStage.Parent = player CurrentStage.Value = Stage.Value local Data = SaveDataStore:GetAsync(player.UserId) if Data then print(Data.Stage) for i,stats in pairs(Stats:GetChildren()) do stats.Value = Data[stats.Name] CurrentStage.Value = Data[CurrentStage.Name] end else print(player.Name .. " has no data.") end player.CharacterAdded:Connect(function(character) local Humanoid = character:WaitForChild("Humanoid") local Torso = character:WaitForChild("HumanoidRootPart") wait() if Torso and Humanoid then if Stage.Value >= 0 then local StagePart = workspace.Stages:FindFirstChild(Stage.Value) Torso.CFrame = StagePart.CFrame + Vector3.new(0,1,0) end end end) end) Players.PlayerRemoving:Connect(function(player) local errormsg = SavePlayerData(player) if errormsg then warn(errormsg) end end) game:BindToClose(function() for i,player in pairs(Players:GetPlayers()) do local errormsg = SavePlayerData(player) if errormsg then warn(errormsg) end end wait(2) end)
How did it work for you? It doesn’t work for me. Whenever I press the arrows it doesn’t do anything. Whenever I touch the checkpoints it doesn’t even change the stage variable
(test in in the real roblox so u see if it works or outdated) put a script in serverscriptservice name it "saving Script" copy this: local Players = game:GetService("Players") local DataStoreService = game:GetService("DataStoreService") local SaveDataStore = DataStoreService:GetDataStore("SaveData") local function SavePlayerData(player) local success,errormsg = pcall(function() local SaveData = {} for i,stats in pairs(player.leaderstats:GetChildren()) do SaveData[stats.Name] = stats.Value end SaveDataStore:SetAsync(player.UserId,SaveData) end) if not success then return errormsg end end Players.PlayerAdded:Connect(function(player) local Stats = Instance.new("Folder") Stats.Name = "leaderstats" Stats.Parent = player local Stage = Instance.new("StringValue") Stage.Name = "Stage" Stage.Parent = Stats Stage.Value = 1 local Data = SaveDataStore:GetAsync(player.UserId) if Data then print(Data.Stage) for i,stats in pairs(Stats:GetChildren()) do stats.Value = Data[stats.Name] end else print(player.Name .. " has no data.") end player.CharacterAdded:Connect(function(character) local Humanoid = character:WaitForChild("Humanoid") local Torso = character:WaitForChild("HumanoidRootPart") wait() if Torso and Humanoid then if Stage.Value ~= 0 then local StagePart = workspace.Stages:FindFirstChild(Stage.Value) Torso.CFrame = StagePart.CFrame + Vector3.new(0,1,0) end end end) end) Players.PlayerRemoving:Connect(function(player) local errormsg = SavePlayerData(player) if errormsg then warn(errormsg) end end) game:BindToClose(function() for i,player in pairs(Players:GetPlayers()) do local errormsg = SavePlayerData(player) if errormsg then warn(errormsg) end end wait(2) end)
@@MimoROBLOX What do I do to the "has no data" part, it spawns me on the checkpoint but the checkpoints don't work, the leader stats aren't changing, and is staying at 0.
Next Script: local player = script.Parent.Parent.Parent.Parent.Parent script.Player.MouseButton1Down:Connect(function() if player.CurrentStage.Value == player.leaderstats.Stage.Value then player.CurrentStage.Value = 1 else player.CurrentStage.Value += 1 end end
Back Script: local player = script.Parent.Parent.Parent.Parent.Parent script.Player.MouseButton1Down:Connect(function() if player.CurrentStage.Value == 1 then player.CurrentStage.Value = player.leaderstats.Stage.Value else player.CurrentStage.Value -= 1 end end)
Like reset the players data for stages that's simple just make the leaderstats = 1 in a server script if you want it in a touched part then script.Parent.Touched:Connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") then local player = game.Players:GetPlayerFromCharacter(hit.Parent) player.leaderstats.Stage = 1 end end)
And I heard Roblox is expanding the market place so u can sell scripts and models legit with no scams like how they make u pay first then they send u the free model. Stuff like that. I think you should put this up for like 50 robux or something. It’s great and I think a lot of ppl would search it up.
*For StarterGUI> StageSelect> Frame> Handler (watch the entire video to understand what im talking about* local player = script.Parent.Parent.Parent.Parent local currentStage = player.CurrentStage currentStage.Changed:Connect(function() local stages = game.Workspace:FindFirstChild(currentStage.Value) if stages then local hrp = player.Character:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = (stages.CFrame * CFrame.new(0,3,0)) end end end) *Next script*
Hello acksel, can you make a stage selector because the youtuber named Tyler codes isn't making one, and I used his scripts to make the stages and stuff
Previous Script: local player = script.Parent.Parent.Parent.Parent.Parent script.Player.MouseButton1Down:Connect(function() if player.CurrentStage.Value == 1 then player.CurrentStage.Value = player.leaderstats.Stage.Value else player.CurrentStage.Value -= 1 end end)
Got a Problem! My idea is making a thousand stages and changing stages with a textbox or the two imagebuttons left and right. If you would be so kindly and help me with the problem, I have just started learning the new programming language and made my own obby.
what do i do if my first checkpoint is named "1" and not "0", thats why its probaly not working for me, i also tried to name my checkpoint "0" but it still not working
is it possible to use this when ive already got stages and a saving script because i dont know if i should delete the old stage script and make this one
Will yall support me if i comeback to roblox??
no
@TheAlexzGamer lol
yess ofc
@@arifpambudi9459 lil noob 🤬🤜
f u all
here's the scripts u can copy and paste:
script 1 add in Frame:
local plr = script.Parent.Parent.Parent.Parent
local currentStage = plr.CurrentStage
currentStage.Changed:Connect(function()
local stages = game.Workspace:FindFirstChild(currentStage.Value)
if stages then
local hrp = plr.Character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = (stages.CFrame * CFrame.new(0,3,0))
end
end
end)
script 2 add in next:
local plr = script.Parent.Parent.Parent.Parent.Parent
script.Parent.MouseButton1Down:Connect(function()
if plr.CurrentStage.Value == plr.leaderstats.Stages.Value then
plr.CurrentStage.Value = 1
else
plr.CurrentStage.Value += 1
end
end)
script 3 add in Previous:
local plr = script.Parent.Parent.Parent.Parent.Parent
script.Parent.MouseButton1Down:Connect(function()
if plr.CurrentStage.Value == 1 then
plr.CurrentStage.Value = plr.leaderstats.Stage.Value.Value
else
plr.CurrentStage.Value -= 1
end
end)
edited: sorry i forgot leaderstats but u can write it urself xD
love u bro
tysm!
TYSMM
Handler Scipt:
local player = script.Parent.Parent.Parent.Parent
local currentStage = player.CurrentStage
currentStage.Change:Connect(function()
local stages = game.Workspace:FindFirstChild(currentStage.Value)
if stages then
local hrp = player.Character:FindFirstChild(HumanoidRootPart)
if hrp then
hrp.CFrame = (stages.CFrame*CFrame.new(0,3,0))
end
end
end)
ty
you forgot to put " " on HumanoidRootPart
ALL SCRIPTS HERE !!!!!!!!!!!
-//Handler:
local player = script.Parent.Parent.Parent.Parent
local currentstage = player.CurrentStage
currentstage.Changed:Connect(function()
local stages = game.Workspace.Stages:FindFirstChild(currentstage.Value)
if stages then
local hrp = player.Character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = (stages.CFrame * CFrame.new(0, 3, 0))
end
end
end)
--//Next Button:
local player = script.Parent.Parent.Parent.Parent.Parent
script.Parent.MouseButton1Click:Connect(function()
if player.CurrentStage.Value == player.leaderstats.Stage.Value then
player.CurrentStage.Value = 1
else
player.CurrentStage.Value += 1
end
end)
--//Previous Button:
local player = script.Parent.Parent.Parent.Parent.Parent
script.Parent.MouseButton1Click:Connect(function()
if player.CurrentStage.Value == 1 then
player.CurrentStage.Value = player.leaderstats.Stage.Value
else
player.CurrentStage.Value -=1
end
end)
--//My leaderstats with datastore:
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local SaveDataStore = DataStoreService:GetDataStore("SaveData")
local function SavePlayerData(player)
local success,errormsg = pcall(function()
local SaveData = {}
for i,stats in pairs(player.leaderstats:GetChildren()) do
SaveData[stats.Name] = stats.Value
end
SaveDataStore:SetAsync(player.UserId,SaveData)
end)
if not success then
return errormsg
end
end
Players.PlayerAdded:Connect(function(player)
local Stats = Instance.new("Folder")
Stats.Name = "leaderstats"
Stats.Parent = player
local Stage = Instance.new("IntValue")
Stage.Name = "Stage"
Stage.Parent = Stats
Stage.Value = 1
local CurrentStage = Instance.new("IntValue")
CurrentStage.Name = "CurrentStage"
CurrentStage.Parent = player
CurrentStage.Value = Stage.Value
local Data = SaveDataStore:GetAsync(player.UserId)
if Data then
print(Data.Stage)
for i,stats in pairs(Stats:GetChildren()) do
stats.Value = Data[stats.Name]
CurrentStage.Value = Data[CurrentStage.Name]
end
else
print(player.Name .. " has no data.")
end
player.CharacterAdded:Connect(function(character)
local Humanoid = character:WaitForChild("Humanoid")
local Torso = character:WaitForChild("HumanoidRootPart")
wait()
if Torso and Humanoid then
if Stage.Value >= 0 then
local StagePart = workspace.Stages:FindFirstChild(Stage.Value)
Torso.CFrame = StagePart.CFrame + Vector3.new(0,1,0)
end
end
end)
end)
Players.PlayerRemoving:Connect(function(player)
local errormsg = SavePlayerData(player)
if errormsg then
warn(errormsg)
end
end)
game:BindToClose(function()
for i,player in pairs(Players:GetPlayers()) do
local errormsg = SavePlayerData(player)
if errormsg then
warn(errormsg)
end
end
wait(2)
end)
the end text label: local player = game.Players.LocalPlayer
while wait() do
script.Parent.Text=player.CurrentStage.Value
end
bro i looked through all the comments and could not find this script to copy n paste, thx
V2 IS OUT!
DAMN IM FINDING THIS LOL! I WAS SEARCHING FOR "HOW TO MAKE STAGE GUI BACK TELEPORT" cz Idk what is it call;ed :/
lol me too
me three I spend 2 months to search and finally I found it! Imma like the video! :)
I searched "how to create a stage tranfer in roblox"
Can they skip stage even if they didn’t play it or nah?
lol i searched "how to make GUI that shows your stage -_-"
Thanks Bro This Help Me So Muchhh❤❤❤❤❤❤❤❤
Can you make it so that you have to reach the stage first before you can ever click next?
yes, plss i seach it
THANK YOU I WAS LOOKING FOR THIS
Because I’m a lazy asshole can you put the script in the description or something so I can literally copy it and do nothing
**windows 7 vibe**
Miaw ini gua babypenzii
tysm been looing for one like this
looking* lol
Thank you so much for this! I needed this to solve one of my jobs in the devforum, definitely subscribing
How did it work for you? It doesn’t work for me. Whenever I press the arrows it doesn’t do anything. Whenever I touch the checkpoints it doesn’t even change the stage variable
it doesnt work for me pls help it says CurrentStage is not valid member of player
sameee
Bro I was trying to find this for a month
Maybe don’t speed up a TUTORIAL
not hard to follow, cry
cant you just use playback speed to slow it down
Hey, i have one question
So, im currently using some other checkpoints so will it still work on them? Pls reply asap
Pls
@@Robertisindian Yes
@@lobat344 didnt for me :/
YES I DID IT! but how to make savable checkpopints? please respond asap
Next tutorial soon ?
(test in in the real roblox so u see if it works or outdated)
put a script in serverscriptservice
name it "saving Script"
copy this:
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local SaveDataStore = DataStoreService:GetDataStore("SaveData")
local function SavePlayerData(player)
local success,errormsg = pcall(function()
local SaveData = {}
for i,stats in pairs(player.leaderstats:GetChildren()) do
SaveData[stats.Name] = stats.Value
end
SaveDataStore:SetAsync(player.UserId,SaveData)
end)
if not success then
return errormsg
end
end
Players.PlayerAdded:Connect(function(player)
local Stats = Instance.new("Folder")
Stats.Name = "leaderstats"
Stats.Parent = player
local Stage = Instance.new("StringValue")
Stage.Name = "Stage"
Stage.Parent = Stats
Stage.Value = 1
local Data = SaveDataStore:GetAsync(player.UserId)
if Data then
print(Data.Stage)
for i,stats in pairs(Stats:GetChildren()) do
stats.Value = Data[stats.Name]
end
else
print(player.Name .. " has no data.")
end
player.CharacterAdded:Connect(function(character)
local Humanoid = character:WaitForChild("Humanoid")
local Torso = character:WaitForChild("HumanoidRootPart")
wait()
if Torso and Humanoid then
if Stage.Value ~= 0 then
local StagePart = workspace.Stages:FindFirstChild(Stage.Value)
Torso.CFrame = StagePart.CFrame + Vector3.new(0,1,0)
end
end
end)
end)
Players.PlayerRemoving:Connect(function(player)
local errormsg = SavePlayerData(player)
if errormsg then
warn(errormsg)
end
end)
game:BindToClose(function()
for i,player in pairs(Players:GetPlayers()) do
local errormsg = SavePlayerData(player)
if errormsg then
warn(errormsg)
end
end
wait(2)
end)
i have 2 words to say. Alvin Blox: ruclips.net/video/vobF8wCyl6U/видео.html
@@MimoROBLOX What do I do to the "has no data" part, it spawns me on the checkpoint but the checkpoints don't work, the leader stats aren't changing, and is staying at 0.
@@Chr1salo outdated, 2 months ago
Next Script:
local player = script.Parent.Parent.Parent.Parent.Parent
script.Player.MouseButton1Down:Connect(function()
if player.CurrentStage.Value == player.leaderstats.Stage.Value then
player.CurrentStage.Value = 1
else
player.CurrentStage.Value += 1
end
end
add a ) after last end
Thank you 😍
it didnt work for me :(
Just add the script to paste bin i took me 1 hour to write the whole script
Hi GUYS SHOULD I COME BACK TO ROBLOX ?
idk but u can
Yess
Yes it dont work I just wasted my time
HELLO, Can You Make Video About How To Make Roblox Obby Progress Bar?
Back Script:
local player = script.Parent.Parent.Parent.Parent.Parent
script.Player.MouseButton1Down:Connect(function()
if player.CurrentStage.Value == 1 then
player.CurrentStage.Value = player.leaderstats.Stage.Value
else
player.CurrentStage.Value -= 1
end
end)
YES THANK YOU FOR MAKING ME NOT TYPE A SCRIPT FOR 10HOURS
LewisNotPog No Problem (BTW I am Summer Gaming)
THXXXXXXXXXXXXXXXXXXX
tysm
TYSM
putting the video on 0.25x speed cuz how good he is at doing it.
can you paste the script into the comment section?
To HowToStudio, make another tutorial on how to make a 10+ or 10- stage selector thing instead of 1+ or 1-
it would be the same script, but just change 1 to 10 and make it a different gui i guess
@@onetrue_dream im pretty sure you do more scripting than that
@@sprayguyroblox You don't I just copied the script and changed it to 10
please make a model
pls make a reset stages for obbys...
Like reset the players data for stages that's simple just make the leaderstats = 1 in a server script if you want it in a touched part then
script.Parent.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
player.leaderstats.Stage = 1
end
end)
How should i make a saving checkpoints?
gam esettings > security > API Services = on
this odes not make any sense i need help on my game and its annoying doing it by myself ;-;
Hello im fake minitoon is there any possible way to make it so we dont teleport to the checkpoints that we didnt unlock?
Ya
Then show it to us
How to do it so when you are at stage 1, you can't click anymore ?
yoo my fav song
Omg I was looking for this forever hope this works
A year of searching paid off, finally!
Great video! Does it work with other checkpoint scripts as long as “stage” is connected?
And I heard Roblox is expanding the market place so u can sell scripts and models legit with no scams like how they make u pay first then they send u the free model. Stuff like that. I think you should put this up for like 50 robux or something. It’s great and I think a lot of ppl would search it up.
Rffd
dude hearted your comment but didnt anwser you 😭
this was good but I rly hated the part where you did not put the script in description. This is a huge mistake.
I don't serve lazy person, sorry.
@@acksel8231 sorry, I dont watch youtubers too lazy to just copy and paste the scripts into the description.
@@imsomeone2263 who's the lazy guy here who"s only wanted to copy and paste the script then write them theirself???
@@acksel8231 you just copied off an article but you did it wrong becuase your eyes are too lazy to read correctly!
@@acksel8231 also, only good youtubers actually do the scripts correctly and put it in the description so its not a time eater for the viewers.
5:03 its so i know where i came off the vid
When you go to a new stage the stage text on top (not the leaderboard) does not update help
that happens to me too
the
opposite happens to me, the text changes but not the stage
bro can you at least paste the script in the description? bruhh
Can you make a rebirth shop
It didn't teleport me. That's strange..
*For StarterGUI> StageSelect> Frame> Handler (watch the entire video to understand what im talking about*
local player = script.Parent.Parent.Parent.Parent
local currentStage = player.CurrentStage
currentStage.Changed:Connect(function()
local stages = game.Workspace:FindFirstChild(currentStage.Value)
if stages then
local hrp = player.Character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = (stages.CFrame * CFrame.new(0,3,0))
end
end
end)
*Next script*
Please send a copy and paste, im too lazy to do it ;-;
never mind i did it lol
What if I want to make a go to first stage or go to your last stage, so if the obby is 3k stages, u don't have to click through?
it doesnt work.
He even added a heart to ur comment lol 🤣🤣
Not works and copied every second. Maybe need an updated version?
My player isn't teleporting. Can anyone help me?
dont work when i tp i flop on my side
It didnt work. All of this for nothing
i dont think it worked because i had diffrent stages and other things
Hello acksel, can you make a stage selector because the youtuber named Tyler codes isn't making one, and I used his scripts to make the stages and stuff
Previous Script:
local player = script.Parent.Parent.Parent.Parent.Parent
script.Player.MouseButton1Down:Connect(function()
if player.CurrentStage.Value == 1 then
player.CurrentStage.Value = player.leaderstats.Stage.Value
else
player.CurrentStage.Value -= 1
end
end)
I hate why you dont cut your mistakes
to make sure people didn't do the same mistake
but my leaderstats does not work
can you give me model?
why when I leave and join I spawn at stage 0
HOW DDO I MAKE THE BTTONS TELEPOR THE PLAYER PLEASE MAKE AN ACTUALL TUTORIAL AND REMOVE THE FUCKING ANNOYING MUSIC
I dont understand nothing all is fast i lose my time
how to do music board plisssssss
Idk why but mine goes on forever
Stage script:
local player = game.Players.LocalPlayer
while wait() do
Script.Parent.Text = player.CurrentStage.Value
end
il wippin tout frr
does this have saving checkpoint
Not working 👎👎
The video was way too sped up and It didn't work. Maybe next time try slowing it down.
Maybe use your brain to learn Lua with Roblox API Forum?
@@azouwastaken im lazzzzzzzzzzzzy
Use the playblack speed to slow it down
Got a Problem!
My idea is making a thousand stages and changing stages with a textbox or the two imagebuttons left and right.
If you would be so kindly and help me with the problem, I have just started learning the new programming language and made my own obby.
Didn't work.
Doesn't work
How do I make it so they can’t teleport to the next stage if they are not on it?
That's what the script does if it's not unlocked they don't get teleported to it.
its didnt work for me
same
OMG DUDE THANKS ALOT!!!!!!!!
lol i rlly think he couldve done a paste script in the desc like it'd be so much easier
why im not work?
Way to fast and confusing bro.
i agree
wait it dont work for me why?
Next time can u put the script in the description?
That is true
Bro ur too fast i can barely see what ur doing
For me everything works except for the checkpoints
its not working!!!!!!
Dosent work anyway
it does in 7:43 you prob putted the +1 script in previous or you putted local script instead of script
it didnt work.
didn’t work
Did not work :/
Text Script:
local player = game.Players.LocalPlayer
while wait() do
script.Parent.Text = player.CurremtStage.Value
end
what do i do if my first checkpoint is named "1" and not "0", thats why its probaly not working for me, i also tried to name my checkpoint "0" but it still not working
i give up on this thing, it doesin;t work for me....anyways here is all the scripts(may not work):
Leaderstats script-
is it possible to use this when ive already got stages and a saving script because i dont know if i should delete the old stage script and make this one
no
how come this has 36 dislikes
its not working
it didn't worked :(
ca u give me scripy?
what is the classname of CurrentStage on players??
bruh it dont work
The only problem I have value can go to like -2 for example
yeah, you need to do more buttons and change the value in the scripts
Dosnt work