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.
Model:
https://www.roblox.com/library/5728896486/
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.
Configuration
DataAutosaves
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.
SkipStageProductID
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.
DeathEffectDisabled
Making it’s value to true will disable the death/damage effect. (The red flash that appears on your screen)
MobileShiftlockEnabled
Enabling it will allow mobile/tablet players to use shiftlock by pressing a GUI button.
RespawnOnSelectedStage
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.
PlayerCollissionDisabled
If true, players will not be able to touch each other. They can go through each other. This is highly recommended.
NOTE: IF YOU TURN ON AUTOSAVE, AND THEN TURN OFF. THE DATA WILL NOT RESET. YOU HAVE TO RESET DATA BY OPENING “Scripts” FROM MODEL AND CHANGE THE DATASTORE NAME.
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!