Techy's Obby System - All your obby needs in one! [Includes Stage Selector]

For a few months, I have been working on Techy’s Difficulty Chart Obby and recently I was trying to make a Stage Selector UI like this
I couldn’t find any open-sourced one, so I decided to script it myself and open-source my whole obby system. Many popular difficulty chart obby games such as Pyroz Difficulty Chart Obby uses this obby system. The features of this obby system are mentioned below,

  • Toggle Autosave, you can select if you want it to autosave or no.
  • Stage selector, allows you to teleport to stages you have passed already. It can also be called as Checkpoint/Stage Selector or Changer.
  • You automatically respawn on the selected stage.
  • Awesome Spectate System, includes Q & E keyboard press system to change player view.
  • Stage teleported from input text
  • Togglable Mobile Shiftlock
  • Togglable Player Collission
  • Easily Configurable. ONE script handles ALL.
  • Progress easily resettable
  • And many more! Get all your obby needs in one!

This is how the Stage Selector works,

(Pressing Lobby button makes you teleport to Stage 1, and Pressing Last Checkpoint button makes you teleport to last stage)

If you want to test the obby system, you can test it in this game here. Autosave is disabled.

Note: This model uses some free scripts, but they are fully checked and safe to use.

Set Up

Firstly, make sure to turn the following settings shown in this GIF so the datastore can work perfectly.

Once you have taken the model from the link above, you should see this
Now, you can delete “DeleteMe” and “ThumbnailCamera” if you want. Then move The models to their places and ungroup. And you are done. Keep “Scripts”, “Configuration” inside the model and Don’t change the name of the model.

If you have a lobby, find “1” in “Stages” folder and use it as your spawn. Players will spawn here. So move it to your lobby. And move “Fake_1” from “Stage” folder, to the first stage. This stage is fake, but players will think it’s Stage no. 1

If you already have an obby system, and you only need the “Stage Selector”, then,

copy the name of the datastore from SavingScript. Then delete every existing scripts and GUIs, put the new ones. In the model, open “Scripts” script and in line 40, change the datastoreName to the name you just copied so you don’t lose data.

Skip Stage Setup

Open your game’s gamepage, Press 3 dots and configure game. Find the “Developer Products” tab and press the create new button. Fill up the information, set a price. Press save. It should show you an ID. Copy the ID and paste it inside “SkipStageProductID”'s value which is located inside Configuration of the model.




If it’s enabled, player’s data will autosave. If they leave, and rejoin - they will respawn on the last stage they played on. If it’s disabled, they have to start it again.


Create a skip stage DevProduct from gamepage and paste the product ID in it. Whenever player presses Skip Stage button, the product will be prompted and if they buy, they will be moved to the next stage.


Making it’s value to true will disable the death/damage effect. (The red flash that appears on your screen)


Enabling it will allow mobile/tablet players to use shiftlock by pressing a GUI button.


If true, players will respawn on the stage they had selected with the Stage Selector UI. If false, players will respawn on the last checkpoint when they die. If player selects last stage already, they will respawn on the last stage.


If true, players will not be able to touch each other. They can go through each other. This is highly recommended.


Thank you for using my model in your game. If you want more from me, please let me know through messages. If you have any questions/feedback, please message me here or add me in discord, Techy#2213. Also please let me know if there are any updates i could bring to the model.

Thank you! Have a great day!

Got any problem? Not working? Any questions? Check the FAQ [Marked as solution] & see if your problem is listed and has a fix:


Hello, this sounds great! I think it’d be a great idea if you allowed players to buy skips directly from the stage selector!

EDIT: I forgot to ask, does this support mobile shiftlock?


Thanks for you suggestion. I was thinking the same. I have planned to add Skip Stage, Spectate & Reset Progress Button.

Replying to EDIT: Yes, it does. Tho it doesn’t have a shiftlock yet, I will add it soon. But I tested on my game and it worked fine.


Don’t mind me if I bookmark this post hehe :slight_smile: and also thank you very much for a basic skip stage UI I really needed it long ago but I can’t script those datastores very well and efficient, so thanks again :smiley: , have a great day


This is great! Thank you for releasing this - sorry, I couldn’t really help

UPDATE 1.0.1
  • Added “Configuration” folder inside model, to help you configure easily. Do not rename or delete the model.
  • Added an spectate system.
  • Added skip stage system.

What’s next?

  • Reset Progress UI

Any suggestions are appreciated!

Already using previous version? Then just delete all existing scripts from ServerScriptService and get the model, put the new scripts. And delete the old UI from StarterGui, place in the new UI. Delete everything from model EXCEPT “Configuration”

Thank you for using my model in your game.


I suggest that you add non-copyright music that plays and a music ON-OFF button and also mobile shiftlock. EDIT: You should also add the feature no that you can click on your stage number and type in a stage and you can teleport to the stage you typed in.


Thanks for your suggestions. I’ll try to include all of the features.
There is a bug that you sometimes spawn on the first stage instead of the last one, which will be fixed soon.


When you die, you don’t respawn at the last stage, but at 0,0.
Everything else is awesome, great job!


Hello, slmot everything we needed was introduced in the latest update! However, mobile shiftlock is not available yet. Also, I tried the spectating system. It is nice, but I am prompted to purchase a skip when clicking the Spectate button. Can you fix this please?


I have added the shiftlock system on the upcimg update and it’s scripting is done. A bit of work is pending. When it will be done, i will update.

And also, i fixed the spectate thing too. Please wait for the next update.

UPDATE 1.0.2
  • Added togglable Mobile Shiftlock
  • Added stage teleporter from text input
  • Added toggle “respawn on selected stage/last stage”
  • Added a togglable death effect (enable/disable)
  • Bug fixes & many more

What’s next?

  • Reset Progress UI (i forgot about it this time lol)

Any suggestions are appreciated!

Already using previous version? Then just delete all existing things except your Stages folder and insert the model again. Then put everything into it’s place.

Thank you for using my model in your game.


Alright, here are some things you can include in the next update:

  • Player to Player collisions disable script (I have one already, but add it for others that don’t)
  • The ability to remove the stage selector text input GUI, since it could be confusing for some players
  • A reset character button, together with the “R” shortcut, which is already introduced in many difficulty chart obby games.
  • Maybe a shop where creators can sell products such as gravity coils, etc.
  • The ability to remove the force field

I haven’t encountered any bug with the new version yet, I am happy to see you fixed them all! Thanks for providing this kit and I am looking forward to seeing even more epic updates!

EDIT: Discovered a bug:

Repro steps:

  1. Touch the next checkpoint.
  2. Then, touch the previous one without the level navigator.

You will see that by using the level navigator, you can’t get to the level you were previously on.

It’d b greatly appreciated if this was fixed!


Some of those features are fairly easy to apply yourself: I’m not criticising for asking lol : )

Hmm a shop would be nice, but afterall it’s an obby.

I’m pretty sure you can remove the forcefield through the settings by setting the duration to 0. I’m not sure where it’s but I cant seem to find it…

Anyways, this is awesome. I look forward to updates, and this a helpful resource and perfect way to kill time when bored :slightly_smiling_face:


If you’re talking about the spawning duration, I’ve already done that. Couldn’t find anything else.

Yes, but obbies still sell products, such as gravity coils, speed coils, etc.


Where exactly did you find that. I swear it just magically disappeared or maybe I’m blind.

I know, just sayin.


You can easily remove forcefield by setting all the “SpawnLocation”'s forcefield time to 0.


Is it possible to add area music, so the harder it is, different music plays, also gamepasses for speed/jump coils (for the weaklings), really good system overall
here is a full feature list actually
gamepass for in-game gear
area music
“elevator parts” - very crude script if you want
spinning parts - again, crude
falling parts, I know how to do this, but I don’t think others do
no collisions between players
and a few more.


There is a resource about the area music, check it out:


that is what im currently using, i was just looking for a way for it maybe to be built in