UI Designer
On this page
- What they cost
- Switch them on
- Where the files land
- Change the settings later
- On the website
- In Studio (GameData)
- Extras and your own code
- Every Extra
- Core Extras
- Data Saving
- HUD Bindings
- Main Menu & Loading Flow
- Rebindable Controls
- Settings That Really Work
- Gameplay Extras
- Battle Royale Zone
- Boss Fights
- Challenges & Time Trials
- Click to Earn
- Emotes
- Fighter Roster
- Flashlight & Battery
- Health, Stamina & Ammo HUD
- Horror Director
- Kill Feed & Scoreboard
- Live Minimap
- Melee Combat
- Obby Stages
- Racing Kit
- Roleplay: Jobs & Homes
- Rounds & Match Flow
- Security Office
- Sports Match
- Squad Status
- Survival Needs
- Team Select
- Teleports & Zones
- Tower Defense Waves
- Tycoon Plots
- Weapon System
- Monetization Extras
- Battle Pass
- Dev Products Helper
- Eggs & Crates
- Game Passes
- Gifting
- Premium Benefits
- Robux Products
- Rotating Shop
- Spin Wheel
- Starter Pack
- Timed Boosts
- VIP Pass
- Progression Extras
- Achievements
- Collectibles & Journal
- Collection Index
- Cosmetics In The World
- Crafting
- Daily Rewards
- Inventory & Backpack
- Levels & XP
- Loadout
- Offline Earnings
- Pets
- Playtime Rewards
- Quest Tracker HUD
- Quests
- Rebirths
- Stat Tracker
- Upgrades
- Zone Progress
- Social Extras
- Chat Tags
- Global Leaderboards
- Group Rewards
- Invite Rewards
- Parties & Matchmaking
- Trading
- Live ops Extras
- Live Events
- Redeem Codes
- Admin & safety Extras
- Admin Panel
- Anti-Exploit
- Bans
- Data Tools
- Economy Analytics
- Soft Shutdown
Extras: saving, Robux, passes and more
Extras are ready-made game systems that come inside your UI's export, already wired to it: data saving, Robux products, game passes, daily rewards, codes, admin tools and more. You switch them on for a design and fill in a short form. The code is written for you, in plain Luau with a comment on every setting.
Making a simulator or tycoon? The Simulator and tycoon kit walks through the systems behind its HUD, one page each.
What they cost#
- Studio plan: every Extra is included.
- Other plans: an Extra costs 1 export on the design you switch it on for, from the same exports maps and UIs use (then export credits). You pay once: exporting, downloading or sending that design again never charges for it again, and switching it off and on again is free. On another design it counts again.
- Extras that need other Extras switch those on too (most need Data Saving). Each one counts as an Extra.
- Already exported the design? Adding Extras later only costs the new ones: the export box shows an Add Extras button with the price.
See Plans, credits and exports for the plans themselves.
Switch them on#
- Open your design on the UI Designer and sign in.
- Open the Extras panel and switch on the ones you want. The toast tells you what it costs and which other Extras came on with it.
- Fill in the settings that appear under it, then press Save settings. They start from sensible defaults and from your design: for example, every Robux item in your shop gets its own row in Robux Products, and currency pickers list your UI's currencies.
- Export the design (or press Add Extras if it is exported already).
- Install it like any export (Getting started): Send to Studio, the
.rbxmx, or the starter place. Press Play: the Extras run with your settings.
Where the files land#
ServerScriptService
└── BloxGame
├── Main Script: starts every Extra, in order (you don't need to change it)
├── GameData ModuleScript: settings, Robux ids and prices (safe to edit)
├── Core ModuleScripts: the shared toolbox (saving, purchases, remotes)
└── Services one ModuleScript per Extra (RebirthsService...)
StarterPlayer
└── StarterPlayerScripts
└── BloxGame
├── ClientMain LocalScript: starts the parts that run on the player's device
└── Controllers the device half of the Extras that have one
ReplicatedStorage
└── BloxGame shared modules, and the remotes made while the game runs- Every file is tagged with your UI's name, like the hook scripts. Send to Studio adds and updates them in the same undo step as the UI, keeps any file you've edited, and removes the files of Extras you switched off (unless you edited them).
- From the
.rbxmx,BloxUI_Setupmoves them into place when the game runs, folder by folder, and never replaces what is already there. - Extras share the UI's saving: their data goes in the same save as the UI's currencies, one server at a time, so a game never runs two save systems.
Change the settings later#
Two ways, pick one:
On the website#
Change the settings in the design's Extras panel and press Save settings, then download or send the design again. That's free: only switching on a new Extra costs anything. With Send to Studio, GameData is replaced with the new values, unless you have edited it in Studio (then yours is kept).
In Studio (GameData)#
Open ServerScriptService > BloxGame > GameData. It's the one file you edit: your currencies, items, Robux products and passes, and every Extra's settings, each with a comment saying what it does. Change a number or a word, press Play, and the game uses it. No website needed.
GameData.Features.daily_rewards = {
Enabled = true, -- false = this system is off
-- New day starts at (UTC hour): When the next reward unlocks. 0 = midnight UTC. (a whole
-- number from 0 up to 23)
resetHourUtc = 0,
}Each Extra has its own table in GameData.Features, with Enabled first and then one line per setting from the website's form. Enabled = false switches it off (it stops running; its saved data is kept).
- Keep the commas and the curly brackets
{ }where they are. Text goes "in quotes"; numbers andtrue/falsedon't. - Robux ids go in
GameData.Products(developer products) andGameData.Passes(game passes): the long numbers from the Creator Hub, pasted instead of the 0. When the server starts, they're written into your UI's buttons too. - GameData only runs on the server, so secrets like codes are safe there. Players only get the parts they need.
- Once you've edited it, sending the design again keeps your copy. To go back to the website's values, delete your
GameDataand send the design again. - Exported before GameData existed? Your place has a
GameSettingsfile instead. Export the design again to get GameData.
Extras and your own code#
- Robux purchases: an Extra that sells a developer product (like Robux Products) delivers it itself, saving the gift and the purchase id together before Roblox hears it worked. A
UI.Server.onReceiptstub for the same product in<Name>_ServerHooksis ignored, and Output says so. Never setMarketplaceService.ProcessReceiptyourself:UI.Serverowns it. - Product and pass ids: paste each id once, in
GameData.ProductsorGameData.Passes. When the server starts, GameData writes the ids into your UI's buttons, so a button and the Extra that sells it always use the same product. How to make the ids: Robux ids. - Don't rebuild what an Extra does. If you ask an AI for help, the Copy AI prompt text lists the Extras already in the game so it doesn't write them again (Vibe-code it with AI).
- Problems: each Extra prints to Output with a
[BloxGame]prefix, and if one fails the others keep going. If Output saysThis game's BloxUI is too old for the game systems, install the UI again from the website so the place gets the newest runtime.
Every Extra#
74 Extras, by kind. Each one lists the settings the website's form shows, with their starting values.
- Core: Data Saving, HUD Bindings, Main Menu & Loading Flow, Rebindable Controls, Settings That Really Work
- Gameplay: Battle Royale Zone, Boss Fights, Challenges & Time Trials, Click to Earn, Emotes, Fighter Roster, Flashlight & Battery, Health, Stamina & Ammo HUD, Horror Director, Kill Feed & Scoreboard, Live Minimap, Melee Combat, Obby Stages, Racing Kit, Roleplay: Jobs & Homes, Rounds & Match Flow, Security Office, Sports Match, Squad Status, Survival Needs, Team Select, Teleports & Zones, Tower Defense Waves, Tycoon Plots, Weapon System
- Monetization: Battle Pass, Dev Products Helper, Eggs & Crates, Game Passes, Gifting, Premium Benefits, Robux Products, Rotating Shop, Spin Wheel, Starter Pack, Timed Boosts, VIP Pass
- Progression: Achievements, Collectibles & Journal, Collection Index, Cosmetics In The World, Crafting, Daily Rewards, Inventory & Backpack, Levels & XP, Loadout, Offline Earnings, Pets, Playtime Rewards, Quest Tracker HUD, Quests, Rebirths, Stat Tracker, Upgrades, Zone Progress
- Social: Chat Tags, Global Leaderboards, Group Rewards, Invite Rewards, Parties & Matchmaking, Trading
- Live ops: Live Events, Redeem Codes
- Admin & safety: Admin Panel, Anti-Exploit, Bans, Data Tools, Economy Analytics, Soft Shutdown
Core Extras#
Data Saving#
Every player's coins, items, upgrades and settings come back when they rejoin.
- Saves the UI's currencies, upgrades and settings, plus every game system's data
- Locks each player's data to one server, so hopping servers never loses progress
- Saves every minute, when a player leaves and when the server shuts down
- Tries again when Roblox is busy, and tells you in Studio if saving is switched off
- Includes the delete-my-data tool Roblox asks for (Right to Erasure)
Settings in GameData: GameData.Features.saving.
| Setting | What it is | Starts as |
|---|---|---|
| Data store name | Text (up to 50 characters). Where player data is saved. Changing it starts every player from zero! | "BloxUI_Data" |
| Autosave every (seconds) | Whole number (30 to 600). Changed data is saved this often (and always when a player leaves). | 60 |
| Wait for another server (seconds) | Whole number (5 to 120). When a player joins while another server still has their data, wait this long for it to let go, then take over. | 30 |
| Show currencies on the player list | On / off. Off: currencies are still saved, but kept as player attributes instead of the leaderboard in the top right. | On |
| What new players start with | A list: Currency, Amount per row. Only for a player's very first visit. | one row per currency of your design |
| Delete the data of these players | A list: User id per row. When Roblox emails you a Right to Erasure request, add the user id here: their data is deleted when a server starts. | empty |
HUD Bindings#
One line of code drives any HUD widget: player:SetAttribute("Hud_Objective", "Find the key").
- Every Objective, Counter, Meter, Timer, Compass and Stats row of your design listens to one attribute
- Set it from any script (server or client) and the design updates on that player's screen
- Set it on workspace instead and every player sees it (a round timer, a server goal)
- Or bind a widget to a leaderstat, attribute or stat right here, with no code at all
- The Output lists every widget of your design and the attribute that drives it
Has a part on the player's device. Settings in GameData: GameData.Features.hud_bindings. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Widgets fed from a stat (no code) | A list: Widget (id, type, or a Stats row's label), Comes from (empty = only the Hud_ attribute), Shown as per row. Every HUD widget already follows the player attribute Hud_<widget id or type> (Hud_Objective, Hud_Counter, Hud_Counter2, Hud_Meter, Hud_Timer, Hud_Compass) and every Stats / Profile row follows Hud_<its label without spaces> (Hud_BestTime). A row here copies a leaderstat, attribute, currency or stat ("clicks", "machines_built", "playtime") into a widget every second. Press Play: the Output lists y | one row per item of your design |
| workspace:SetAttribute("Hud_...") shows on every player's screen | On / off. A player's own attribute wins over the workspace one. | On |
| Stats and Profile rows follow Hud_<label> | On / off | On |
| List the design's widgets in the Output (Studio only) | On / off | On |
| Copy the rows' sources every (seconds) | Number (0.25 to 30) | 1 |
| Boost chips (the HUD's attribute icons: +150%, Friend Boost, Luck...) | A list: Chip id in the design, Tooltip text, Shows, Fixed text (when it shows fixed text), Clicking it, Click target (see Clicking it) per row. Each chip shows a live number, a tooltip on hover / long press, and does something when clicked. Every boost in the game counts once: VIP and pass boosts, the Friend Boost, timed boosts, rebirths, the Index boost. Cash starts at 100%: a chip showing the total says +150% when the player earns 2.5x. A chip missing from the design is skipped. | 5 rows |
| The cash the boost chips measure | One of your currencys. The chips show exactly what this currency's earnings are multiplied by (the same number clicking, tycoons and offline earnings pay with), also in the player attribute BloxGame_CashBoost (250 = +150%). | your first currency |
Main Menu & Loading Flow#
Players wait behind your main menu with a cinematic camera and spawn when they press Play; the loading bar shows real loading.
- The character spawns when the player presses Play, not behind the menu
- A slow camera fly-over of your map behind the menu (or your own camera spots)
- The loading screen waits until your UI's images and sounds have really loaded, with a real progress bar
- Settings and every other menu button open their windows on top of the menu
- Respawns keep working, and players whose device never shows the menu still spawn
Has a part on the player's device. Settings in GameData: GameData.Features.menu_flow.
| Setting | What it is | Starts as |
|---|---|---|
| Players spawn when they press Play | On / off. Only when the design starts on its main menu (or a loading screen before it). | On |
| Respawn after dying (seconds) | Number (0 to 60) | 5 |
| Spawn anyway if a device never shows the menu (seconds) | Whole number (5 to 120) | 15 |
| Tag on parts the menu camera looks from | Text (up to 40 characters). One tagged part: the camera sits there. Several: it glides between them (an Order attribute sets the order). None: it circles your spawn. | "MenuCamera" |
| Seconds from one camera spot to the next | Number (1 to 60) | 8 |
| Seconds for one circle around the map (no tagged parts) | Number (5 to 600) | 60 |
| The loading screen waits for the UI's images and sounds | On / off | On |
| Also wait for everything in Workspace | On / off. Slower on phones. Tag single things "Preload" instead. | Off |
| Build every screen while loading (smoother first opens) | On / off | On |
| Show the loading screen at least (seconds) | Number (0 to 30) | 2 |
| Never wait longer than (seconds) | Whole number (3 to 120) | 20 |
| Hide the backpack and player list behind the menu | On / off | On |
Rebindable Controls#
Your Controls screen really rebinds keys and controller buttons, saved per player, with the right keys shown in the HUD.
- Every action in the design's Controls screen and key hints works on keyboard, mouse and controller
- Players rebind a key by clicking it; the new key is saved and comes back next time they play
- Two actions on one key? They swap, so nothing gets lost (or block it, your choice)
- The HUD's key hints show each player's own keys
- Other game systems (weapons, sprint, abilities) add their actions by name in one line
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.keybinds.
| Setting | What it is | Starts as |
|---|---|---|
| When a key is already used by another action | One of: Swap: the other action gets the old key, Block: keep the old key and say which action uses it, Allow: both actions share the key | Swap: the other action gets the old key |
| Actions may use W A S D and the arrow keys | On / off. Off keeps walking keys free, so nobody breaks their own movement. | Off |
| Keys nobody may bind (comma separated) | Text (up to 200 characters). Escape, Slash (chat), Backquote, F9, F11, F12 and the controller Start / Select buttons are always kept for Roblox. | empty |
| Touch buttons for actions other systems add with touch = true | On / off. The design's own mobile buttons already cover its actions. | On |
| Tell the player what changed after a rebind | On / off | On |
| Controls pause while the Controls screen is open | On / off | On |
| Most actions a player can save | Whole number (5 to 100) | 40 |
Settings That Really Work#
Every switch on your Settings screen changes the real game: hide players and pets, trades, aim assist, speed units, sound and graphics.
- Hide Other Players and Show Other Pets hide them on that player's screen only
- Aim assist for controller and touch players, speed units on the HUD speedometer
- Music, sound effect and ambience sliders turn your game's own sounds up and down
- Low Detail also dims shadows, glow and particles for weak phones
- Trade Requests and Auto-equip Best tell your other game systems what each player wants
Has a part on the player's device. Settings in GameData: GameData.Features.game_toggles.
| Setting | What it is | Starts as |
|---|---|---|
| Hide Other Players also hides their name tags | On / off | On |
| Tag your pet models carry | Text (up to 40 characters). Show Other Pets hides models with this CollectionService tag that belong to someone else (an OwnerUserId or Owner attribute, or a pet inside another player's character). | "Pet" |
| Aim assist strength (%) | Whole number (0 to 100) | 35 |
| Aim assist cone (degrees) | Number (1 to 30). Only targets this close to the middle of the screen pull the camera. | 6 |
| Aim assist range (studs) | Whole number (10 to 2,000) | 250 |
| Who gets aim assist | One of: Controller and touch players, Everyone (mouse players too) | Controller and touch players |
| Aim assist only while holding a weapon or tool | On / off | On |
| SoundGroup for your game's music | Text (up to 40 characters). A SoundGroup in SoundService with this name follows the Music setting (made for you if it's missing). | "Music" |
| SoundGroup for sound effects | Text (up to 40 characters) | "SFX" |
| SoundGroup for ambience | Text (up to 40 characters) | "Ambience" |
| SoundGroup for vehicle engines | Text (up to 40 characters) | "Vehicles" |
| Put game sounds without a SoundGroup into those groups | On / off. Looped music-like sounds go to Music, wind and rain to Ambience, the rest to SFX. | On |
| Low Detail also turns off glow, sun rays and shadows | On / off | On |
| Particles kept in Low Detail (%) | Whole number (0 to 100) | 30 |
| Drive the HUD speed counter in the player's units | On / off. A HUD Counter or Meter labelled MPH, KM/H or Speed shows the player's real speed. | On |
| Speed meter full at (in the player's units) | Whole number (10 to 1,000) | 120 |
| Auto-equip Best also puts the best new Tool in the player's hand | On / off | On |
Gameplay Extras#
Battle Royale Zone#
The battle royale loop: drop in from the sky, outrun a shrinking storm, be the last one standing, then spectate the rest.
- A storm circle that shrinks in phases you set, with a glowing wall and damage outside it
- Players pick a drop zone on the design's Drop Zones screen and glide down there
- The design's storm timer and players-left counter run live; eliminations reach the kill feed
- Last one standing wins: results, rewards, wins and eliminations saved for leaderboards
- Eliminated players spectate the survivors until the next match
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.battle_royale.
| Setting | What it is | Starts as |
|---|---|---|
| Players needed to start | Whole number (1 to 100) | 2 |
| In Studio, start with 1 player (to test) | On / off. Alone in Studio the match still runs: the storm closes all the way and you win if you survive it. | On |
| Lobby time before a match (seconds) | Whole number (3 to 300) | 20 |
| Results time (seconds) | Whole number (3 to 60) | 10 |
| How players arrive | One of: Drop from the sky and glide, Spawn on the ground | Drop from the sky and glide |
| Drop height above the ground (studs) | Whole number (20 to 2,000) | 220 |
| Gliding fall speed (studs/s) | Number (5 to 200) | 30 |
| How far apart players land in one drop zone (studs) | Number (0 to 500) | 40 |
| Storm start radius (0 = from the map) | Whole number (0 to 20,000). 0 uses the BloxMaps ZoneCenter marker, else the map's Bounds, else 400 studs. | 0 |
| Storm phases | A list: Wait (seconds), Shrink time (seconds), Size after (% of the start), Damage per second outside per row. Each phase: wait, then shrink to its size (% of the start radius) over its shrink time. Damage is per second outside the circle. | 6 rows |
| Storm wall height (studs) | Whole number (20 to 5,000) | 400 |
| Storm wall colour (#RRGGBB) | Text (up to 7 characters) | "#A24BFF" |
| Reward currency | One of your currencys | your first currency |
| Reward for the winner | Whole number (0 to 1,000,000,000) | 300 |
| Reward per player you outlasted | Whole number (0 to 1,000,000,000) | 5 |
| Reward per elimination | Whole number (0 to 1,000,000,000) | 25 |
| Eliminated players spectate until the match ends | On / off. Off: they respawn normally (they're still out of the match). | On |
| Mark the storm centre with a beam when the map has no markers | On / off | On |
| Let the Rounds system start matches (when it's on) | On / off | On |
Boss Fights#
A real boss with phases and a slam attack drives the design's BossBar live, shares its rewards by damage dealt, and comes back on a timer.
- Spawns your boss model (or a ready-made placeholder) that chases and hits players
- Gets angrier at low health: faster, stronger, with a telegraphed ground slam
- The design's BossBar shows its real name and health to everyone nearby
- Rewards are split by how much damage each player did, plus an item for the top damager
- Counts 'Bosses Slain' for leaderboards, quests, achievements and the profile screen
Has a part on the player's device. Settings in GameData: GameData.Features.boss_fights.
| Setting | What it is | Starts as |
|---|---|---|
| Bosses | A list: Name (empty = the design's BossBar name), Model in ServerStorage > BloxGame > Bosses (empty = placeholder), Health, Extra health per extra player nearby (%), Damage per hit, Reach (studs), Seconds between hits, Walk speed, Notices players within (studs), Spawns at (a Part's name; empty = a part named or tagged BossSpawn), Comes back after (seconds), Currency shared by damage dealt, Reward currency, Item for the top damager (a GameData.Items name; empty = none), Angry at this much health (%; 0 = never), Furious at this much health (%; 0 = never), Ground slam damage (when angry), Ground slam radius (studs), Seconds between slams per row. One row per boss. Put your boss Model (with a Humanoid) in ServerStorage > BloxGame > Bosses. | 1 row |
| Seconds after the server starts before the first boss appears | Whole number (0 to 3,600) | 5 |
| The BossBar shows when a player is this close (studs) | Whole number (20 to 5,000) | 250 |
| Damage share needed for a reward (%) | Number (0 to 100). Players who did less than this much of the damage get nothing (stops tag-and-leave). | 1 |
| The boss heals back to full after this long with nobody near (seconds) | Whole number (3 to 600) | 20 |
| Toasts when a boss appears, gets angry and is defeated | On / off | On |
| Show 'Bosses Slain' on the player list | On / off. Leaderboards with the stat 'Bosses Slain' rank it too. | On |
| Battle pass XP for each boss a player helps defeat (0 = none) | Whole number (0 to 1,000,000). Needs the Battle Pass Extra. | 0 |
Challenges & Time Trials#
Time trials from a start line to a finish line, timed by the server, with medals, best times and a global leaderboard.
- A start part and a finish part (or your BloxMaps obby) make a time trial; the server keeps the time
- Gold, silver and bronze par times with rewards, and every player's personal best is saved
- A global leaderboard of the fastest times
- A challenge of the day with a twist: no jumping, low gravity, super speed...
- Fills your design's Challenges screen and shows a live stopwatch
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.challenges.
| Setting | What it is | Starts as |
|---|---|---|
| Challenges | A list: Id (letters, keep it once live), Name, Gold par (seconds), Silver par (seconds), Bronze par (seconds), Reward currency, Gold reward, Silver reward, Bronze reward, Fastest possible time (seconds) per row. Tag a part "ChallengeStart" and one "ChallengeFinish", each with a text attribute Challenge = the id (or a Workspace folder Challenges/<id> with parts Start and Finish). The first challenge also runs on a BloxMaps obby: from checkpoint 1 to the finish line. | 1 row |
| Challenge of the day twists | A list: Twist per row. Each day one challenge gets one twist (the same on every server). Runs with the twist have their own daily leaderboard. | 5 rows |
| Challenge of the day bonus: currency | One of your currencys | your first currency |
| Challenge of the day bonus (beat the bronze par, once a day) | Whole number (0 to 1,000,000,000) | 300 |
| Leaderboard rows | Whole number (3 to 50) | 10 |
| Fastest a runner may move (studs per second) | Whole number (30 to 5,000). Moving faster (a teleport) cancels the run. | 200 |
| Start tag | Text (up to 40 characters) | "ChallengeStart" |
| Finish tag | Text (up to 40 characters) | "ChallengeFinish" |
| Checkpoint tag (optional; attribute Order = 1, 2, 3...) | Text (up to 40 characters). When a challenge has checkpoints, a run must touch them all, in order. | "ChallengeCheckpoint" |
| No start / finish parts: time the obby (checkpoint 1 to the finish line) | On / off | On |
| Show the best time on the player list | On / off | Off |
| Show the "Challenge of the day" button | On / off | On |
Click to Earn#
Makes your design's big CLICK button pay for real: server-checked clicks, boosts, and an auto-clicker pass.
- Every tap on the Clicker pays the currency it shows, saved on the server
- Rebirths, boosts, pets and VIP multiply what a click pays
- Stops click-spam cheats with a speed limit (auto-clickers allowed or not, your choice)
- Sell an Auto Clicker game pass: it clicks for the player, even while they explore
- No Clicker in your design? A CLICK button appears so it works right away
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.click_to_earn.
| Setting | What it is | Starts as |
|---|---|---|
| Currency a click pays | One of your currencys. Used when the Clicker in your design doesn't name a currency of its own. | your first currency |
| Paid per click (before boosts) | Number (0 to 1,000,000,000,000). 0 = the amount your design's Clicker shows (1 when it shows none). | 0 |
| Most clicks counted per second | Whole number (1 to 60). Faster clicks are ignored. 20 is faster than any human can tap. | 20 |
| Allow auto-clicker programs | On / off. true = they only get the speed limit above. false = staying at the limit for a while pauses that player's clicks. | On |
| Seconds at the limit that count as an auto-clicker | Whole number (3 to 120). Only when auto-clickers aren't allowed. | 10 |
| Pause after an auto-clicker is spotted (seconds) | Whole number (5 to 600). Only when auto-clickers aren't allowed. | 30 |
| Auto Clicker game pass | A Roblox pass id. Empty = a game pass in GameData.Passes whose name says Auto Click (or whose perks have autoClick = true). | not set |
| Auto Clicker: clicks per second | Number (1 to 20) | 5 |
| Boosts multiply click earnings | On / off. Rebirths, timed boosts, pets, VIP and 2x passes all multiply what a click pays. | On |
| Pay clicks every (seconds) | Number (0.1 to 2). Smaller = the counter moves sooner. Bigger = less work for the server in full servers. | 0.25 |
| Show a CLICK button when the design has no Clicker | On / off | On |
| Show Clicks on the player list | On / off | Off |
Emotes#
The design's emote wheel and emote window play real animations, with optional paid emotes through game passes or items.
- Every emote on the design's wheel and in its emote window really plays
- Starts with Roblox's own public emotes (wave, point, three dances, laugh, cheer, salute)
- Paste any animation id to add your own; loops keep going until the player moves
- Sell emotes: lock one behind a game pass (the buy prompt opens) or an item
- Works on phones, R15 and R6 characters
Has a part on the player's device. Settings in GameData: GameData.Features.emotes.
| Setting | What it is | Starts as |
|---|---|---|
| Emotes | A list: Name, Other names in the design (with commas), Animation id (R15), Animation id (R6 characters; empty = none), Catalog emote id (optional, R15; played with Humanoid:PlayEmote), Keeps playing until the player moves, Needs this game pass (a GameData.Passes name or id; empty = free), Needs this item (a GameData.Items name; empty = free) per row. The design's emote names are matched to a row by its name or one of its other names. | 8 rows |
| Moving or jumping stops an emote | On / off | On |
| Seconds between two emotes | Number (0 to 10) | 0.5 |
| Pressing a locked emote opens its game pass's buy prompt | On / off | On |
Fighter Roster#
Pick a fighter, then best-of-3 duels with a 99-second round clock, real knockouts, round pips and results.
- The fighters screen really picks your fighter: health, speed, power, defence and moves
- 1v1 duels in an arena: ROUND 1, FIGHT!, K.O., first to 2 round wins
- Punch, kick, block, dash and an ultimate on keys, gamepad and the design's touch buttons
- Knockouts decided on the server (Humanoid creator tag), ring-outs count, the timer decides the rest
- Wins, KOs and win streaks saved; a practice bot in Studio so you can test alone
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.fighter_roster.
| Setting | What it is | Starts as |
|---|---|---|
| Fighters | A list: Fighter name, Health, Walk speed, Punch damage, Kick damage, Ultimate damage, Power (% extra damage), Defence (% less damage taken), Free for everyone per row. Names match the design's fighters screen. Punch / kick / ultimate are damage; power is a damage bonus in %, defence cuts damage taken in %. Fighters that aren't free must be owned (a crate, the shop, the inventory). | 10 rows |
| Round wins needed (2 = best of 3) | Whole number (1 to 5) | 2 |
| Round length (seconds, 0 = the design's Round timer) | Whole number (0 to 600) | 99 |
| "ROUND 1... FIGHT!" countdown (seconds) | Whole number (0 to 10) | 3 |
| Pause after a knockout (seconds) | Whole number (1 to 10) | 3 |
| Results screen time before the next fight (seconds) | Whole number (3 to 60) | 8 |
| Players join the fight queue by themselves | On / off | On |
| Practice bot when nobody else is waiting | One of: In Studio only, Always, Never | In Studio only |
| Seconds alone in the queue before the bot comes | Whole number (1 to 300) | 15 |
| Bot damage (% of its fighter's) | Number (0 to 200) | 60 |
| Who starts fights | One of: The duel queue, unless a Rounds Extra is on, Always the duel queue, A Rounds Extra (round_started queues everyone, round_ended ends the fights) | The duel queue, unless a Rounds Extra is on |
| Moves | One of: Built-in moves, unless the Melee Combat Extra is on, Always the built-in moves, The Melee Combat Extra's moves (through the event bus) | Built-in moves, unless the Melee Combat Extra is on |
| Seconds between punches | Number (0.1 to 5) | 0.45 |
| Seconds between kicks | Number (0.1 to 10) | 0.9 |
| Seconds between ultimates | Number (1 to 120) | 15 |
| Seconds between dashes | Number (0.2 to 10) | 1.2 |
| Blocking stops this much damage (%) | Number (0 to 100) | 70 |
| Reward currency | One of your currencys | your first currency |
| Reward for a win | Whole number (0 to 1,000,000,000) | 100 |
| Reward for a loss | Whole number (0 to 1,000,000,000) | 25 |
| Reward per knockout | Whole number (0 to 1,000,000,000) | 10 |
| Show Wins and KOs on the player list | On / off | On |
| Open the design's Results screen after a fight | On / off | On |
Flashlight & Battery#
A real flashlight that runs out: the battery drains on the design's battery meter, pickups and spare batteries refill it.
- A flashlight tool that lights the way (F, the design's Flashlight button, or a click)
- The battery drains while it's on and shows on the design's Battery meter, flickering when it's low
- Battery pickups in the world (parts tagged Battery) and spare batteries from your shop
- Night vision and zoom when your design has them
- Saved: the battery level comes back after a rejoin
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.flashlight.
| Setting | What it is | Starts as |
|---|---|---|
| Tool name | Text (up to 40 characters). A Tool in ServerStorage > BloxGame > Tools with this name (else a placeholder). Empty = an item named like Flashlight, Lighter or Torch in GameData, else "Flashlight". | empty |
| Give every player the tool | On / off | On |
| A full battery lasts (seconds of light) | Number (5 to 3,600) | 150 |
| Night vision drains this many times faster | Number (1 to 20) | 2 |
| Battery for new players (%) | Number (0 to 100) | 100 |
| A battery pickup gives (%) | Number (1 to 100) | 50 |
| Pickups come back after (s, 0 = never) | Number (0 to 3,600) | 60 |
| Spare batteries are this currency | One of your currencys. When the battery dies, one spare is used up automatically. Empty = a currency named like "Batteries", or the item "Battery" in the backpack. | not set |
| Low battery warning at (%) | Number (0 to 50) | 15 |
| Night vision | One of: When the design has a Night Vision button, Always, Never | When the design has a Night Vision button |
| Zoom | One of: When the design has a Zoom button, Always, Never | When the design has a Zoom button |
| Zoomed field of view | Number (10 to 69) | 35 |
| Light range (studs) | Number (5 to 60) | 60 |
| Light brightness | Number (0.5 to 10) | 3 |
| Make placeholder batteries when the map has none | On / off | On |
Health, Stamina & Ammo HUD#
The design's health, stamina, ammo and readout bars show the real numbers, with an optional sprint system.
- The hotbar equips your real Tools and shows each one's ammo; ammo counters follow the equipped Tool
- Hold Shift (or tap Sprint on phones) to run: stamina drains, recovers and is checked by the server
- Counters, meters, the compass and a boss bar come alive from simple attributes your scripts set
- Weapon makers just set the Tool attributes Ammo, MaxAmmo and Reserve; everything else is automatic
Has a part on the player's device. Settings in GameData: GameData.Features.hud_stats.
| Setting | What it is | Starts as |
|---|---|---|
| Sprint with stamina | One of: When the design has a stamina bar or a Sprint button, Always, Never. The server owns stamina: it sets the player attributes Stamina and MaxStamina and the walk speed. | When the design has a stamina bar or a Sprint button |
| Sprint walk speed | Number (8 to 100). Roblox's normal walk speed is 16. A faster base speed (upgrades) sprints 1.3x its own speed instead. | 26 |
| Stamina | Number (1 to 100,000). Your scripts can give one player more by setting their MaxStamina attribute (upgrades, perks). | 100 |
| Stamina used per second of sprinting | Number (0 to 10,000). 100 stamina / 20 per second = 5 seconds of sprinting. Standing still while holding sprint uses none. | 20 |
| Stamina recovered per second | Number (0 to 10,000) | 16 |
| Rest before stamina recovers (seconds) | Number (0 to 30) | 1 |
| Stamina needed to start sprinting | Number (0 to 100,000). Stops tired players from stuttering: run out and you wait until you have this much again. | 15 |
| Sprint key | Text (up to 20 characters). A KeyCode name. Controllers use the left stick click; phones get a Sprint button. | "LeftShift" |
| Add a Sprint button on phones | On / off. Only when the design's mobile controls have no Sprint button of their own. | On |
| Hide Roblox's own backpack bar | On / off. Only when the design has a Hotbar (it takes over the 1-9 keys and shows the same Tools). | On |
| Equip the first hotbar slot on spawn | On / off. The design shows slot 1 selected, so the player holds that Tool when they spawn. | On |
| The design's Reload button reloads the Tool | On / off. Fires a RemoteEvent (or BindableEvent) called Reload inside the equipped Tool, if it has one. | On |
| Counters and meters show attributes of the same name | On / off. A Counter labelled "Kills" shows the player attribute Kills (or leaderstats.Kills, or a Workspace attribute). Meters use 0-1, or Name / MaxName. | On |
| The design's compass follows the camera | On / off | On |
| Boss bar follows models tagged | Text (up to 40 characters). The nearest model with this tag and a Humanoid (within 300 studs) fills the design's boss bar. Empty = off. | "Boss" |
Horror Director#
A monster that really hunts your players: it patrols, sees, hears, chases, catches, and your gameover screen works.
- A monster that patrols, spots players, listens for running and chases with real pathfinding
- The Fear meter and vignette rise as it gets close; a jumpscare when it catches you
- Hide in closets and lockers (parts tagged HidingSpot) to lose it
- The design's gameover screen works: Retry, Revive (Robux or your revive currency) and Spectate
- Easy to Nightmare difficulty; drop your own monster model in ServerStorage > BloxGame > Monsters
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.horror_director.
| Setting | What it is | Starts as |
|---|---|---|
| Difficulty | One of: Easy, Normal, Hard, Nightmare. Scales the monster's speed, how far it sees and hears, how quickly it re-plans and how long it keeps hunting. | Normal |
| Monster model name | Text (up to 60 characters). A Model in ServerStorage > BloxGame > Monsters. Empty = the first model there, or a creepy placeholder. | empty |
| Monsters at once | Whole number (1 to 5) | 1 |
| Patrol speed (studs/s) | Number (1 to 40) | 9 |
| Chase speed (studs/s) | Number (1 to 60). Players walk at 16. Below that they can outrun it; above it they must hide. | 15 |
| How far it sees (studs) | Number (5 to 500) | 70 |
| Field of view (degrees) | Whole number (30 to 360) | 120 |
| How far it hears running (studs) | Number (0 to 300). Sprinting is heard this far away, walking about a third of it, crouching not at all. | 40 |
| Catch distance (studs) | Number (1.5 to 20) | 4.5 |
| Keeps hunting after losing sight (s) | Number (0 to 60) | 4 |
| Re-plans its path every (s) | Number (0.25 to 5). Lower = smarter but more server work. 0.8 is fine for phones. | 0.8 |
| Wander radius without patrol points (studs) | Number (10 to 1,000) | 80 |
| Monsters wait after the server starts (s) | Number (0 to 600) | 10 |
| Safe seconds after spawning or reviving | Number (0 to 60) | 5 |
| Fear starts at (studs) | Number (5 to 500). The Fear meter and vignette start rising when a monster is this close. | 60 |
| Jumpscare when caught | On / off | On |
| Jumpscare length (s) | Number (0.3 to 5) | 1.4 |
| Jumpscare image (rbxassetid, optional) | Text (up to 80 characters). Empty = glaring red eyes lunge out of the dark. | empty |
| Jumpscare sound (rbxassetid, optional) | Text (up to 80 characters) | empty |
| Objective text while chased | Text (up to 60 characters). Shown on the HUD's Objective while a monster chases you. Empty = leave the objective alone. | "RUN! Find somewhere to hide." |
| Max time in one hiding spot (0 = no limit) | Number (0 to 600) | 0 |
| Revive costs this currency | One of your currencys. Empty = a currency named like "Revives" if the design has one. | not set |
| Revive price in that currency | Whole number (0 to 1,000,000,000) | 1 |
| Revive product (GameData.Products name) | Text (up to 60 characters). Empty = the product whose name has "revive" in it, or the one that gives the revive currency. | empty |
| Or a revive product id | A Roblox product id | not set |
| Revives per life (0 = no limit) | Whole number (0 to 50) | 1 |
| Gameover waits (s) before an automatic Retry | Number (5 to 600) | 45 |
| Spectate button while down | On / off | On |
| Make placeholders when something is missing | On / off. A creepy placeholder monster and two wardrobes to hide in, so it works the moment you press Play. | On |
Kill Feed & Scoreboard#
Real kills from any weapon fill the design's kill feed, scoreboard and team score, and tell your other systems.
- Works with any weapon that sets Roblox's standard "creator" tag (most kits already do)
- The design's kill feed, Tab scoreboard (kills, deaths, streaks, teams) and team score go live
- Kill streak shout-outs, a kill marker on your crosshair, optional coins per kill
- Levels, Quests, Achievements and Rounds hear every kill through the event bus
Has a part on the player's device. Settings in GameData: GameData.Features.kill_feed.
| Setting | What it is | Starts as |
|---|---|---|
| Kills of NPCs (zombies, bosses) | One of: Count them like player kills, Show them in the feed only, Ignore them. An NPC is any model with a Humanoid that isn't a player. | Count them like player kills |
| Count kills of teammates | On / off. Off: a team kill shows in the feed but gives no kill (and breaks nobody's streak but the victim's). | Off |
| On the Roblox player list | One of: Kills, Kills and Deaths, Nothing | Kills |
| Start kills from 0 every round (with the Rounds extra) | On / off. The scoreboard and team score show the current round. Lifetime totals are saved either way. | On |
| Announce kill streaks of (0 = never) | Whole number (0 to 100). Everyone gets a toast at 5, 10, 15... kills without dying. | 5 |
| Kill reward currency | One of your currencys | your first currency |
| Coins per kill (0 = none) | Whole number (0 to 1,000,000,000). The Rounds extra pays its own per-kill reward inside rounds; keep this at 0 when you use both. | 0 |
| Add a small kill feed when the design has none | On / off | On |
| Kill marker on the design's crosshair | On / off | On |
Live Minimap#
The design's minimap shows the real map, your team and every point of interest, and opens into a full-screen map.
- A top-down view of YOUR map, drawn live (terrain, parts and meshes), that follows the player
- Markers for you, your team and friends, spawns, shops, zones, quest targets, a battle royale storm and anything you tag
- Tap the minimap (or press M) for a full-screen map with zoom, pan and a waypoint beam
- Works on any map, with or without BloxMaps markers; huge maps just get a coarser picture
- Phone friendly: a light 3D block model in a ViewportFrame that only redraws when you move
Has a part on the player's device. Settings in GameData: GameData.Features.minimap.
| Setting | What it is | Starts as |
|---|---|---|
| Minimap view (studs across) | Whole number (60 to 2,000). How much of the map the small minimap shows, edge to edge. Smaller = more zoomed in. | 240 |
| Minimap size (%) | Whole number (60 to 160). 100 = the size the design gave it. Big values can overlap other HUD pieces next to it. | 100 |
| Turn the minimap with the camera | On / off. Off = north is always up (the design's N stays on top). On = the way you look is always up. | Off |
| How the map is drawn | One of: Scan (terrain + everything, works on any map), Copy the real parts (prettiest on small maps). Scan: the server looks down on the map once and sends a light block model (works with terrain and StreamingEnabled). Copy: each player copies the big anchored parts near them. | Scan (terrain + everything, works on any map) |
| Map detail | One of: Low (fastest), Medium, High (sharpest). How finely the scan looks at the map. High is sharper but sends more blocks to phones. | Medium |
| Biggest map area to scan (studs) | Whole number (256 to 20,000). Maps bigger than this are cut to this size around their centre (the rest still gets markers). | 4,096 |
| Map area size (0 = find it by itself) | Whole number (0 to 20,000). 0 = use the BloxMaps Bounds marker, or else everything anchored in Workspace. Set it for terrain-only maps. | 0 |
| Scan the map again every (minutes, 0 = never) | Number (0 to 120). Only for maps that change while the game runs. A new BloxMap folder is always picked up by itself. | 0 |
| Other players on the map | One of: Teammates and friends, Friends only, Everyone (casual games), Nobody. Only these positions are ever sent to a player, so enemies can't be seen by cheaters either. | Teammates and friends |
| BloxMaps markers to show | Text (up to 200 characters). Comma-separated BloxMap marker kinds. Parts you tag "MinimapIcon" always show (attributes: Icon, Label, Color, Team). | "Spawn, Checkpoint, Finish, Teleport, WorldPortal, Zone, Gate, Shop, Chest, Objective, POI, Egg, Upgrades, DailyReward" |
| Most markers at once | Whole number (10 to 400). Keeps the minimap readable and fast on phones. | 120 |
| Keep far markers on the minimap's edge | On / off. On = markers outside the view sit on the rim, pointing the way. Off = they disappear. | On |
| Full-screen map (tap the minimap) | On / off | On |
| Key that opens the full-screen map | Text (up to 20 characters). A KeyCode name (M, N, Tab...). Skipped when a screen of your design already uses that key. | "M" |
| Tap the big map to set a waypoint beam | On / off | On |
| Add a minimap when the design has none | On / off. A small round minimap in the top-right corner. | On |
Melee Combat#
The design's Attack, Block, Dodge, Dash, Ability and Ultimate buttons really fight: server hitboxes, combos, parries, knockback and cooldowns on the buttons.
- Punches and slashes with combos, blocks and perfect-timing parries, dashes with dodge frames
- Abilities: shockwaves, fireballs and heals, each with its own cooldown shown on the Hotbar and buttons
- The server finds who got hit (hitboxes, walls, distance), so nobody can hit from across the map
- Knockback, a combo counter, damage numbers, and the standard 'creator' tag so kills count
- Works on phones with the design's buttons; moves can cost stamina when a stamina system is on
Has a part on the player's device. Settings in GameData: GameData.Features.melee_combat.
| Setting | What it is | Starts as |
|---|---|---|
| Moves | A list: Move name, Buttons that do it (the design's names, with commas), Type, Damage (heal: health; block: % of damage blocked), Range in studs (reach, radius, distance), Cooldown (seconds), Stamina it costs (when a stamina system is on), Knockback (speed in studs/second), Time window (dash: can't be hit; block: parry window), seconds, Keyboard key (empty = the design's key hints / the usual key), Animation (empty = the built-in one) per row. One row per move. 'Buttons' are the design's event names (and Hotbar slot names) that do it. | 8 rows |
| Seconds between hits to keep a combo going | Number (0.2 to 5) | 1.2 |
| Extra damage per combo hit (%) | Whole number (0 to 100). 10 = the 3rd hit of a combo does 20% more. Capped at 50%. | 10 |
| Every Nth combo hit is a finisher (1.5x damage, 2x knockback; 0 = off) | Whole number (0 to 10) | 3 |
| Seconds an attacker is stunned after being parried | Number (0 to 5) | 1 |
| Teammates can hit each other | On / off | Off |
| Moves hurt NPCs (any model with a Humanoid) | On / off | On |
| Extra reach for laggy players (studs) | Number (0 to 10) | 3 |
| Moves cost stamina when a stamina system is on | On / off. Works with the HUD Extra's sprint stamina, or any script that keeps a 'Stamina' attribute on the character. | On |
| Show the combo counter | On / off | On |
| Clicking (with nothing in your hand) does the first melee move | On / off | On |
Obby Stages#
Obby checkpoints that save: players come back to their stage, can skip a stage for Robux and get a prize at the finish.
- Works with BloxMaps obby checkpoints, or any part tagged "Checkpoint" with a Stage number
- Saves each player's stage; returning players spawn right where they left off
- A "Skip Stage" Robux product (plus Skip 5) from GameData, the most common obby purchase
- Stage counter on the player list, back-to-any-stage teleports and a finish reward
- Cooperates with BloxMaps kill bricks and moving parts instead of replacing them
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.obby_stages.
| Setting | What it is | Starts as |
|---|---|---|
| Checkpoint tag (parts need a Stage number attribute) | Text (up to 40 characters). BloxMaps checkpoints and parts in a Workspace folder named Checkpoints (named 1, 2, 3...) work too. | "Checkpoint" |
| Finish tag | Text (up to 40 characters). Touching a part with this tag finishes the obby. BloxMaps finish lines work by themselves. | "Finish" |
| Respawn at the player's stage | On / off | On |
| Stages must be reached in order | On / off. A player can't jump more than one stage past the best stage they reached (stops teleport cheats). | On |
| Show the stage on the player list | On / off | On |
| Player list column | Text (up to 20 characters) | "Stage" |
| Skip 1 stage product (its name in GameData.Products) | Text (up to 60 characters) | "Skip 1 Stage" |
| Skip 5 stages product (its name in GameData.Products) | Text (up to 60 characters) | "Skip 5 Stages" |
| Skips can jump onto the last stage | On / off. Off: the finale has to be beaten. Skips that can't be used yet are saved for later. | Off |
| Players can go back to any stage they reached | On / off | On |
| Finish reward: currency | One of your currencys | your first currency |
| Finish reward: amount (0 = none) | Whole number (0 to 1,000,000,000) | 500 |
| Finish reward: item (optional) | Text (up to 60 characters) | empty |
| Finish badge (optional) | A Roblox badge id | not set |
| Give the finish reward on every full run | On / off. Off: once per player. On: again after starting over from stage 1. | Off |
| Kill brick tag (for maps without BloxMaps) | Text (up to 40 characters) | "KillBrick" |
| Tell returning players their stage | On / off | On |
Racing Kit#
A complete race loop: grid, 3-2-1-GO, checkpoints and laps that can't be cut, live positions, nitro, drifting and a garage that tunes every car.
- Laps and checkpoints from your track (BloxMaps gates or Parts tagged RaceCheckpoint), passed in order: no shortcuts
- Live position and lap on the HUD, a countdown start, results with best laps, rewards and leaderboards
- Nitro and drift meters, respawn to the last checkpoint, and a placeholder car and track until you add yours
- A real garage: every car keeps its own tuning (Engine, Turbo, Tyres...) bought in the design's Upgrades screen
- Works on its own or inside the Rounds system; the server decides every lap, position and reward
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.racing_kit.
| Setting | What it is | Starts as |
|---|---|---|
| Laps per race | Whole number (1 to 20). Circuits only. A point-to-point track (a Start and a Finish line) is always one run. | 3 |
| Racers needed to start | Whole number (1 to 30). The race waits in the lobby until this many players are in the server. | 1 |
| Most racers in one race | Whole number (1 to 30) | 12 |
| Lobby time before a race (seconds) | Whole number (3 to 300) | 15 |
| Countdown (seconds) | Whole number (1 to 10) | 3 |
| Longest race (seconds) | Whole number (30 to 3,600). Racers still driving when this runs out finish as DNF. | 420 |
| Time to finish after the winner (seconds) | Whole number (5 to 300) | 30 |
| Results screen time (seconds) | Whole number (3 to 60) | 10 |
| Reward currency | One of your currencys | your first currency |
| Reward for 1st place | Whole number (0 to 1,000,000,000) | 500 |
| Reward for 2nd place | Whole number (0 to 1,000,000,000) | 300 |
| Reward for 3rd place | Whole number (0 to 1,000,000,000) | 200 |
| Reward for finishing (4th and later) | Whole number (0 to 1,000,000,000) | 100 |
| Bonus per 1,000 drift points | Whole number (0 to 1,000,000) | 10 |
| Nitro tank (seconds of boost) | Number (0.5 to 30). A full tank boosts this long. Tuning (Nitro Tank) makes it bigger. | 3 |
| Start every race with a full tank | On / off | Off |
| Nitro refill per second (while driving) | Number (0 to 5). Seconds of boost gained every second. Drifting adds more. | 0.08 |
| Nitro gained per second of drifting | Number (0 to 10) | 0.5 |
| Nitro speed boost (x top speed) | Number (1 to 3) | 1.35 |
| Drift: slowest speed that counts (studs/s) | Number (1 to 500) | 30 |
| Drift: smallest slide angle (degrees) | Number (3 to 80) | 14 |
| Drift points per second of drifting | Whole number (0 to 1,000,000) | 250 |
| Spawn a car for every racer | On / off. Uses a Model named after the car in ServerStorage > RacingCars (it needs a VehicleSeat), else the built-in placeholder car. | On |
| Placeholder car: top speed (studs/s) | Number (20 to 600) | 95 |
| Tuning: boost per upgrade level (%) | Number (0 to 50). Each level of Engine, Turbo, Tyres, Nitro Tank... adds this much to that stat of the selected car. | 4 |
| Starter car (free, everyone owns it) | Text (up to 60 characters). A car name from GameData.Items or the garage. Empty: the first car of the garage. | empty |
| Anti-cheat: fastest believable speed (studs/s) | Number (50 to 5,000). A car moving faster than this between two checks is ignored at that checkpoint (teleports, speed hacks). | 450 |
| Respawn button cooldown (seconds) | Number (0 to 60) | 3 |
| Respawn when this far below the track (studs) | Whole number (10 to 1,000) | 60 |
| Build a placeholder track when the map has none | On / off | On |
| Let the Rounds system start races (when it's on) | On / off | On |
| Speed shown in | One of: km/h, mph, studs/s | km/h |
Roleplay: Jobs & Homes#
Real jobs with uniforms and paychecks, homes that give a plot with a lockable door, a wardrobe that dresses you and vehicles.
- The Jobs screen's buttons start a job: uniform, team, chat tag and a paycheck every few minutes
- Buying a home in the Homes screen builds it on a plot, one per player, with a door only you can open
- The wardrobe's Wear really changes your avatar, and it's still on when you come back
- Optional job tasks and vehicles; Tag parts "HousePlot", "JobTask" and "VehicleSpawner", or use the placeholders
- Paychecks only while you're active, nothing a client can fake, and everything saved
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.roleplay.
| Setting | What it is | Starts as |
|---|---|---|
| Paycheck currency | One of your currencys | your first currency |
| Minutes between paychecks | Number (0.5 to 120). The design's "Next paycheck" timer counts this down. | 5 |
| No pay after this many minutes without moving (0 = off) | Number (0 to 60) | 5 |
| Seconds before a player can change job again | Whole number (0 to 600) | 5 |
| Each job is a team on the player list | On / off | On |
| Show the job as a chat tag | On / off | On |
| Players keep their job when they come back | On / off | On |
| Jobs | A list: Job name (as on the button), Pay per paycheck, Colour (#RRGGBB), Uniform shirt id (optional), Uniform pants id (optional), Tool name (optional), Reward per job task per row. The design's job buttons are matched by name. Uniform ids are optional (without them the job's colour is used). Tool = a Tool in ServerStorage > BloxGame > Tools. | 9 rows |
| Seconds between job tasks at the same spot | Whole number (1 to 600) | 20 |
| Homes (the design's Homes screen) | A list: Home name (as in the design), Model name (optional), Free (claim it at an empty plot) per row. Prices come from the design's Homes screen. Model = a Model in ServerStorage > BloxGame > Homes (empty = the home's name; none = a placeholder house). Free homes can be claimed at an empty plot. | 6 rows |
| Homes a player can own (0 = any number; they live in one at a time) | Whole number (0 to 20) | 0 |
| Plots to build when the map has none tagged "HousePlot" | Whole number (0 to 40) | 8 |
| Wardrobe (Wear) | A list: Item name (as in the design), Slot, Asset id (optional), Placeholder colour (#RRGGBB) per row. Asset ids from the Roblox catalog (a hat's id, a shirt / pants template id). Without an id the colour is used, so Wear works before you pick real items. | 20 rows |
| Wearing needs the item in the inventory (off = dress-up for everyone) | On / off | Off |
| Vehicles | A list: Vehicle name, Top speed (studs/s), Colour (#RRGGBB), Model name (optional) per row. Spawned from the design's vehicle / garage screen, a SpawnVehicle button, or a part tagged "VehicleSpawner" (attribute Vehicle = the name). Model = a Model in ServerStorage > BloxGame > Vehicles with a VehicleSeat (none = a placeholder car). | 2 rows |
| Seconds between vehicle spawns | Whole number (1 to 120) | 5 |
Rounds & Match Flow#
A real round loop: lobby, intermission countdown, the round on your map, and the design's results screen with real stats and rewards.
- Lobby, intermission countdown, 3-2-1-GO, the round, then results, on repeat
- Win by last one standing, most kills, first to the finish line, or surviving the timer (teams too)
- Players are teleported to the map's spawn markers and back to the lobby afterwards
- The design's timer and objective show the countdown; its Victory screen shows placement, kills, time and rewards
- The server decides everything: kills, finishes, placements and the coins it pays out
Has a part on the player's device. Settings in GameData: GameData.Features.rounds.
| Setting | What it is | Starts as |
|---|---|---|
| How a round is won | One of: Pick from the game (obby = finish line, fps = kills, battle royale = last standi, Last one (or team) standing, Most kills when time runs out, First to reach the finish, Survive until the timer ends. Auto: a map with a Finish marker races to it; fps / shooter designs play for kills; battle royale for last standing; anything else survives the timer. | Pick from the game (obby = finish line, fps = kills, battle royale = last standi |
| Players needed to start | Whole number (1 to 50) | 2 |
| Let one player test rounds in Studio | On / off. In Studio a round starts with just you, so you can test it by pressing Play. | On |
| Intermission (seconds) | Whole number (3 to 600) | 15 |
| Round length (seconds) | Whole number (10 to 7,200) | 180 |
| Results shown for (seconds) | Whole number (2 to 120) | 8 |
| Kills that win right away (most kills; 0 = off) | Whole number (0 to 1,000) | 0 |
| Time left for the others after the first finish (seconds) | Whole number (0 to 600). First to finish: the round ends when everyone finished, or this long after the winner. | 20 |
| Teleport players to the map's spawns at the start | On / off. Uses parts tagged RoundSpawn, else the BloxMaps Spawn markers (team spawns for team players). Without either, players play where they stand. | On |
| Send everyone back to the lobby after the round | On / off. They respawn at your lobby SpawnLocation (or a part tagged LobbySpawn). | On |
| Hold players still during 3-2-1 | On / off | On |
| Rewards are paid in | One of your currencys | your first currency |
| 1st place | Whole number (0 to 1,000,000,000) | 100 |
| 2nd place | Whole number (0 to 1,000,000,000) | 50 |
| 3rd place | Whole number (0 to 1,000,000,000) | 25 |
| Everyone who plays the round | Whole number (0 to 1,000,000,000) | 10 |
| Per kill in the round | Whole number (0 to 1,000,000,000) | 5 |
| Show Wins on the player list | On / off. A saved Wins value in leaderstats (the Roblox player list and leaderboards read it). | On |
| Toasts for the round's big moments | On / off | On |
Security Office#
A real night shift: doors, lights and cameras on a failing power supply, animatronics that creep closer, nights 1-5.
- The design's doors, lights, mask and camera panel really work; each one uses power
- Animatronics move from camera to camera and try to get in; the server decides every move
- Survive until 6 AM on the night clock; nights 1-5 get harder, winning pays and unlocks the next
- Cameras show parts tagged SecurityCam; the Nights screen shows what's unlocked
- A placeholder office and camera rooms are built so it plays the moment you press Play
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.security_office.
| Setting | What it is | Starts as |
|---|---|---|
| Nights | Whole number (1 to 7) | 5 |
| Length of a night (12 AM to 6 AM, seconds) | Number (30 to 1,800) | 360 |
| Power at the start of a night (%) | Number (10 to 100) | 100 |
| Power used per bar of usage (% per second) | Number (0.01 to 5). Usage is 1 bar, plus 1 for each closed door, light, open camera and sealed vent. | 0.1 |
| Extra drain per night after the first (% per second) | Number (0 to 1) | 0.02 |
| Animatronics try to move every (s) | Number (1 to 60) | 5 |
| Seconds of darkness before the power-out attack | Number (1 to 120) | 12 |
| Animatronics | A list: Name, Path (cameras, then where it attacks), How active on nights 1-7 (0-20 each), Model name (ServerStorage > BloxGame > Animatronics) per row | 4 rows |
| Start night 1 by itself when a player joins | On / off | On |
| Seconds before a night starts | Number (0 to 120) | 6 |
| Winning a night pays | One of your currencys | your first currency |
| Pay x night number | Whole number (0 to 10,000,000) | 50 |
| Cameras can fail (the Reboot button fixes them) | On / off. Only when the design has a Reboot button, from night 3. | On |
| Build a placeholder office and camera rooms when the map has none | On / off | On |
Sports Match#
A real football match: a server-owned ball, pass, shoot and tackle, goals on the score bug, a match clock and results.
- Pass, charged power shots and tackles on keys, gamepad and the design's touch buttons
- Goals, kick-offs, the match clock and the score bug all run on the server
- Kit loadouts with pace, shooting, passing and stamina bonuses
- End-of-match results with goals, assists, shots and pass accuracy, plus coin rewards
- Tag parts "Goal", "Ball" and "TeamSpawn", or press Play and use the placeholder pitch
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.sports_match.
| Setting | What it is | Starts as |
|---|---|---|
| Match length (seconds, 0 = the design's match timer) | Whole number (0 to 3,600). 0 uses the seconds on the design's Match timer (or 300 if it has none). | 0 |
| First to this many goals wins (0 = play the whole clock) | Whole number (0 to 50). 0 also reads the design's score bug ("First to 5"). | 0 |
| Team 1 name (empty = the design's score bug) | Text (up to 16 characters) | empty |
| Team 2 name (empty = the design's score bug) | Text (up to 16 characters) | empty |
| Players needed to start a match | Whole number (1 to 50). In Studio a match always starts with 1 player, so you can test alone. | 2 |
| Who starts matches | One of: This Extra, unless a Rounds Extra is on, Always this Extra (a new match after each results screen), A Rounds Extra (its round_started / round_ended events) | This Extra, unless a Rounds Extra is on |
| Ball size (studs, for the placeholder ball) | Number (1 to 8) | 2.5 |
| A goal's Team attribute is | One of: The team that defends that goal (their net), The team that scores in it | The team that defends that goal (their net) |
| Kick-off countdown (seconds) | Whole number (0 to 15) | 3 |
| Goal celebration (seconds) | Whole number (1 to 15) | 4 |
| Results screen time (seconds) | Whole number (3 to 60) | 10 |
| Pass speed (studs/s) | Number (10 to 200) | 60 |
| Weakest shot (studs/s) | Number (10 to 200) | 55 |
| Full-power shot (studs/s) | Number (20 to 300) | 125 |
| Seconds to charge a full-power shot | Number (0.2 to 5) | 1.2 |
| Lift of a full-power shot (0 = along the ground) | Number (0 to 1) | 0.4 |
| Ball pick-up range (studs) | Number (1 to 12) | 4 |
| Tackle range (studs) | Number (2 to 20) | 8 |
| Seconds between tackles | Number (0.5 to 10) | 2 |
| Tackle success chance (%) | Whole number (1 to 100) | 85 |
| Tackled players are slowed for (seconds) | Number (0 to 5) | 1 |
| Walk speed | Number (4 to 60) | 16 |
| Sprint speed | Number (4 to 80) | 24 |
| Seconds of sprint on a full stamina bar | Number (1 to 60) | 5 |
| Seconds to refill stamina | Number (1 to 60) | 8 |
| Reward currency | One of your currencys | your first currency |
| Reward for a win | Whole number (0 to 1,000,000,000) | 100 |
| Reward for a draw | Whole number (0 to 1,000,000,000) | 50 |
| Reward for a loss | Whole number (0 to 1,000,000,000) | 25 |
| Reward per goal | Whole number (0 to 1,000,000,000) | 20 |
| Colour players in their team's colour | On / off | On |
| Show Goals and Wins on the player list | On / off | On |
| Kit (the design's kit screen) | A list: Item name (as in the design), Slot, Pace %, Shooting %, Passing %, Stamina %, Free for everyone, Shirt template id (Kit slot, optional), Pants template id (Kit slot, optional) per row. Stats are percent bonuses: pace = run speed, shooting = shot power, passing = pass speed, stamina = sprint time. Items that aren't free must be owned (from packs, the shop or the inventory). | 9 rows |
| Shoot key (hold to charge) | Text (up to 20 characters) | "F" |
| Pass key | Text (up to 20 characters) | "E" |
| Tackle key | Text (up to 20 characters) | "Q" |
| Sprint key (hold) | Text (up to 20 characters) | "LeftShift" |
| Open the design's Results screen after a match | On / off | On |
Squad Status#
The design's team widget shows your real teammates: their names, live health and whether they're alive, downed, escaped or out, with hold-to-revive.
- Your team (or everyone, in co-op games) fills the design's TeamStatus portraits
- Live health bars, and Alive / Downed / Dead / Escaped / Caught states
- Downed players can be revived by a teammate holding E (or tapping and holding on a phone)
- Round and horror Extras report downed and escaped players; scripts can too
Has a part on the player's device. Settings in GameData: GameData.Features.squad_status.
| Setting | What it is | Starts as |
|---|---|---|
| Who shows up | One of: My team (everyone when there are no teams), Only my team, Everyone in the server | My team (everyone when there are no teams) |
| Show myself too (first) | On / off | On |
| Show a health bar on each teammate | On / off | On |
| Teammates can revive a downed player (hold E) | On / off | On |
| Seconds to hold for a revive | Number (0.5 to 20) | 3 |
| Health after a revive (% of max) | Whole number (1 to 100) | 30 |
| How close the reviver must be (studs) | Number (3 to 30) | 10 |
Survival Needs#
Hunger and thirst that drain, food and water that fix them, a day/night cycle and storage chests that keep your stuff.
- Hunger and thirst meters on the design's HUD drain over time; starving hurts
- Eat and Drink use food from the backpack, bushes and wells in the world (tagged Food / Water)
- A day/night cycle drives the design's timer, the day counter and the sky
- Storage chests (tagged StorageChest) keep items safe: per player or shared, saved, no duplicates
- Bandages and herbs heal through the design's Heal button
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.survival_needs.
| Setting | What it is | Starts as |
|---|---|---|
| Full to empty hunger (seconds, 0 = off) | Number (0 to 36,000) | 600 |
| Full to empty thirst (seconds, 0 = off) | Number (0 to 36,000) | 420 |
| Sprinting drains this many times faster | Number (1 to 5) | 1.5 |
| Damage per second when a meter is empty | Number (0 to 100) | 2 |
| Meters after a respawn (%) | Number (1 to 100) | 75 |
| Food and drink | A list: Item name, Fills, Amount (% or health) per row. Items the design's GameData lists with food words (meat, fish, bread...) or drink words (water, juice...) work too. | 7 rows |
| Food pickups grow back after (s) | Number (0 to 3,600) | 45 |
| Day length (s) | Number (30 to 7,200) | 300 |
| Night length (s) | Number (30 to 7,200) | 180 |
| Move the sun and moon (Lighting.ClockTime) | On / off | On |
| Objective text at night | Text (up to 60 characters) | "Survive until dawn" |
| Storage chests are | One of: Private: each player has their own contents, Shared: everyone uses the same contents | Private: each player has their own contents |
| Different items a chest holds | Whole number (1 to 100) | 24 |
| Make a berry bush, a well and a chest when the map has none | On / off | On |
Team Select#
The design's team screen puts players on real Roblox Teams, kept fair, with VIP-only teams and team spawns.
- Join Blue / Join Red / Auto-Assign buttons really assign Roblox Teams (the player list shows them)
- Auto-balance: nobody can stack a team; auto-assign picks the smallest
- Optional game-pass teams (a VIP squad), with the purchase prompt built in
- Each team spawns at its own BloxMaps team spawn; other Extras (sports, rounds, kill feed) follow the teams
Has a part on the player's device. Settings in GameData: GameData.Features.teams.
| Setting | What it is | Starts as |
|---|---|---|
| Teams (empty = from your place, your design or BloxMaps) | A list: Team name, Colour (#RRGGBB), Game pass needed (empty = anyone), Most players (0 = no limit) per row. Empty: the Teams already in your place, else the design's "Join ..." buttons, else the BloxMaps map's team spawns, else Red and Blue. | empty |
| New players | One of: Pick on the team screen (auto-assigned without one), Auto-assign when they join, Stay neutral until they pick | Pick on the team screen (auto-assigned without one) |
| Seconds to pick before being auto-assigned | Whole number (0 to 600). 0 = wait forever. | 25 |
| Most extra players a team may have | Whole number (0 to 50). 1 = a team can have at most one player more than the smallest team (after the switch). | 1 |
| Seconds between team switches | Whole number (0 to 3,600) | 10 |
| No switching during a round (Rounds extra) | On / off | On |
| Respawn at the team's spawn after joining | On / off | On |
| Put players back on their last team when they rejoin | On / off | Off |
| Colour the BloxMaps team spawns for these teams | On / off. Spawn markers with Team = 1 belong to the first team, 2 to the second... BloxMaps' placeholder teams are replaced by yours while the game runs. | On |
Teleports & Zones#
The design's worlds screen and teleport buttons really move players, with zones locked behind coins or a level.
- World cards and teleport buttons go to BloxMaps zones, teleport markers or parts tagged TeleportPoint
- Lock zones behind a price or a level: the server checks it, takes the coins and saves the unlock
- Simulator gates get an Unlock prompt and open for their owners; walk-in portals just work
- Other places too: paste a place id and the card teleports there with TeleportService
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.teleports. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Destinations (optional: the design and the map are used by themselves) | A list: Name (a world card, teleport button or marker name), Where (a TeleportPoint / marker name or a zone number; empty = same as the name), Another place's id (empty = this place), Price currency, Price to unlock (0 = free), Level needed (0 = none) per row. Leave empty to start: world cards find the BloxMaps zone (or TeleportPoint part) with the same name, or zone 1, 2, 3 in order. Add a row to set a price, a level or another place's id. | empty |
| BloxMaps zone prices are in | One of your currencys. Zone and gate markers carry their cost. Used when the gate doesn't name a currency of your design. | your first currency |
| Read prices from the design's locked world cards | On / off. A card saying "5,000 Coins" or "Level 10" costs that, unless a row above or a zone marker says otherwise. | On |
| Walk-in portals | On / off. BloxMaps Teleport / WorldPortal markers and parts tagged TeleportPad (attribute To = a destination) teleport whoever steps in. | On |
| Zone gates: an Unlock prompt, open for owners | On / off. BloxMaps simulator gates. The barrier disappears (only for players who unlocked the zone). | On |
| Send players out of zones they haven't unlocked | On / off. The server checks every second, so walking through a gate with a cheat doesn't help. | On |
| Seconds between teleports | Number (0 to 60) | 2 |
Tower Defense Waves#
A full tower defense loop: waves of enemies down your path, towers you place, upgrade and sell, a base to protect and a results screen.
- Waves you configure (enemy types, counts, HP, speed, rewards) walking a path of Parts tagged TDPath, or your BloxMaps waypoints
- Place towers on TDSpot parts or an automatic grid; upgrade, sell and pick targeting (First, Last, Strongest...)
- Cash per kill and per wave, base health on the design's health bar, Skip Wave votes, a boss bar for bosses
- Victory or game over opens the Results screen; highest wave, wins and towers placed are saved for leaderboards
- Placeholders for the path, the base, the spots, enemies and towers, so it plays the moment you press Play
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.tower_defense.
| Setting | What it is | Starts as |
|---|---|---|
| Waves to win | Whole number (1 to 200) | 20 |
| Players needed to start | Whole number (1 to 30) | 1 |
| Lobby time before a match (seconds) | Whole number (3 to 300) | 10 |
| Time to build before wave 1 (seconds) | Whole number (3 to 300) | 25 |
| Break between waves (seconds) | Whole number (0 to 120) | 12 |
| Results screen time (seconds) | Whole number (3 to 60) | 12 |
| Base health | Whole number (1 to 1,000,000) | 100 |
| Match cash at the start | Whole number (0 to 1,000,000,000) | 600 |
| Match cash currency id (empty = automatic) | Text (up to 40 characters). A design currency used ONLY in matches (it is reset every match), like "cash"; the design's currency bar shows it. Empty: a currency named Cash if the design has one, else a HUD Counter labelled cash / money shows the match cash (no separate money display is drawn). | empty |
| Cash for every player when a wave is cleared | Whole number (0 to 1,000,000,000) | 100 |
| Extra wave cash per wave number | Whole number (0 to 1,000,000) | 10 |
| Selling gives back (% of what was spent) | Whole number (0 to 100) | 60 |
| Reward currency (kept after the match) | One of your currencys | your first currency |
| Reward per wave survived | Whole number (0 to 1,000,000,000) | 25 |
| Extra reward for a victory | Whole number (0 to 1,000,000,000) | 500 |
| Most towers per player | Whole number (1 to 200) | 20 |
| Smallest gap between towers (studs) | Number (1 to 40) | 4 |
| Automatic grid: cell size (studs) | Number (2 to 40). Only when the map has no TDSpot parts or BloxMaps tower zones. | 6 |
| Path width (studs; towers can't stand on it) | Number (2 to 60) | 10 |
| Upgrade: extra damage per level (%) | Whole number (0 to 500) | 40 |
| Upgrade: extra range per level (%) | Whole number (0 to 100) | 8 |
| New towers target | One of: First (closest to the base), Last, Strongest, Weakest, Closest | First (closest to the base) |
| Towers | A list: Name, Cost (match cash), Damage per hit, Range (studs), Hits per second, Splash radius (0 = one enemy), Slows enemies by (%), Cash every wave (farms), First upgrade cost, Highest level, Placeholder colour (#RRGGBB) per row. Towers named like the design's hotbar slots use these numbers. Other hotbar towers get numbers from their name (farm, freeze, sniper, flame...). | 7 rows |
| Enemy types | A list: Name, Health, Speed (studs/s), Cash per kill, Damage to the base, Placeholder size (studs), Placeholder colour (#RRGGBB) per row | 5 rows |
| Waves (one row per group of enemies) | A list: Wave, Enemy (name from Enemy types), How many, Seconds between them, Start after (seconds into the wave) per row. Rows with the same wave number make up that wave. Waves after the last one listed repeat the list, tougher each time (see below). | 17 rows |
| Later waves: extra enemy health per wave (%) | Whole number (0 to 200) | 15 |
| Later waves: extra enemies per wave (%) | Whole number (0 to 200) | 8 |
| Later waves: a boss every N waves (0 = never) | Whole number (0 to 100) | 10 |
| Skip Wave: % of players who must vote | Whole number (1 to 100) | 50 |
| Skip Wave: allowed when this % of the wave is left | Whole number (0 to 100) | 30 |
| Skip Wave: cash for each voter | Whole number (0 to 1,000,000,000) | 50 |
| Build a placeholder path, base and spots when the map has none | On / off | On |
| Let the Rounds system start matches (when it's on) | On / off | On |
Tycoon Plots#
A real tycoon: claim a plot, buy droppers from your Build window, watch cash flow down the conveyor. Saved and rebuilt on every visit.
- Players claim a plot (one each). It's released when they leave and rebuilt from their save when they come back
- Every machine bought in the design's Build window appears on the plot, in order: droppers, upgraders, conveyors, buildings
- Drops ride the conveyor into the collector and pay the owner, multiplied by upgrades, rebirths and boosts
- Use your own models (ServerStorage > BloxGame > Tycoon) or the built-in placeholders; works on BloxMap tycoon maps
- Shows the next goal on the HUD, counts machines for leaderboards and pays offline earnings at your tycoon's rate
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.tycoon_plot.
| Setting | What it is | Starts as |
|---|---|---|
| Currency the tycoon earns | One of your currencys. Drops, buildings and offline earnings pay this currency. | your first currency |
| Build window (screen id) | Text (up to 60 characters). The screen whose shop items are your machines, in the order they're built. Empty = find it by itself. | "build" |
| Machines (empty = the Build window's items) | A list: Name, Build window item, Kind, Price (0 = the design's price), Value (0 = worked out from the price), Model name (empty = same as Name) per row. Leave empty to use the Build window's items in order. Add rows to set a machine's kind, numbers or model yourself. | empty |
| Machines must be built in order | On / off. true = only the next machine can be bought (the classic tycoon). false = any machine, any time. | On |
| The first money-making machine is free | On / off. New players get it (and anything before it) when they claim, so nobody is ever stuck without income. | On |
| Seconds a machine takes to pay for itself | Number (5 to 3,600). Used when a machine's Value is 0. Smaller = a faster game. | 60 |
| A dropper drops every (seconds) | Number (0.5 to 30) | 2 |
| Upgraders multiply a drop's value by | Number (1 to 100). Used when an upgrader's Value is 0. | 1.5 |
| Each conveyor makes every drop worth this many times more | Number (1 to 100). Used when a conveyor's Value is 0. Conveyors also make the belt faster. | 1.25 |
| Belt speed (studs per second) | Number (1 to 60) | 8 |
| Drops | One of: Real drops ride the belt into the collector (classic), No drops: droppers pay straight away (lightest for big servers) | Real drops ride the belt into the collector (classic) |
| Most drops on one plot at once | Whole number (5 to 200). More drops than this pay straight away instead, so phones stay smooth. | 25 |
| A drop disappears after (seconds) | Number (5 to 120) | 20 |
| How players get a plot | One of: Step on a plot's claim pad, Given one as soon as they join | Step on a plot's claim pad |
| Give a free plot to players who haven't claimed after (seconds) | Whole number (0 to 600). 0 = never. Only with the claim pads. | 20 |
| Players spawn at their own plot | On / off | On |
| Plots to make when the map has none | Whole number (1 to 12). Tag your own Parts or Models "TycoonPlot" and these aren't made. | 4 |
| Size of those plots (studs) | Whole number (40 to 300) | 80 |
| A buy pad on the plot for the next machine | On / off. The classic tycoon button: step on it to buy. The Build window works as well. | On |
| Rebirths reset the plot | On / off. Needs the Rebirths extra. The free first machine comes back straight away. | On |
| Each "Dropper Speed" upgrade level: faster drops (%) | Number (0 to 100). Upgrades in your design whose name says speed / drop rate. | 5 |
| Each "Value" upgrade level: drops worth more (%) | Number (0 to 100). Upgrades in your design whose name says value / income / price. | 5 |
| Offline earnings pay the tycoon's income | On / off. Offline earnings (the Offline Earnings extra, or the design's own screen) pay your tycoon's real income. | On |
| HUD widget that shows the next goal | Text (up to 60 characters). A widget id or type (Objective). Empty = don't show it. | "Objective" |
| HUD widget that counts machines built | Text (up to 60 characters). auto = the first Counter whose label says machines / built / buildings. Empty = none. | "auto" |
| Show "Build your tycoon" in the Quest Tracker | On / off. Needs the Quest Tracker HUD extra. | On |
Weapon System#
Ready-made guns, grenades and knives that work with the design's crosshair, ammo counter and hit markers, with every hit checked by the server.
- Guns, shotguns, snipers, grenades and knives, with ammo, reload, aim zoom and crouch
- The design's Hotbar weapons become real Tools, and its crosshair shows hit and kill markers
- Every hit is checked by the server (fire rate, walls, distance, lag), so cheaters can't one-shot anyone
- Headshots, damage falloff and the standard 'creator' tag, so kill feeds and leaderboards count kills
- Change any number here or in GameData.Items; drop your own gun models in ServerStorage > BloxGame > Tools
Has a part on the player's device. Settings in GameData: GameData.Features.weapon_system.
| Setting | What it is | Starts as |
|---|---|---|
| Weapons | A list: Weapon name (the Tool's name), Type, Damage per hit (per pellet for shotguns), Headshot damage (x) (knives: backstab), Shots (or throws, stabs) per second, Hold to keep firing, Magazine size (grenades: how many you carry), Spare ammo, Reload time (seconds), Range in studs (grenades: throw distance), Full damage up to (studs), Damage left at max range (%), Spread (degrees), Bullets per shot (shotguns: 6 to 10), Aim zoom (field of view; 70 = no zoom), Blast radius (grenades, studs), Fuse (grenades, seconds), Fire sound (empty = the built-in one), Everyone gets it when they spawn per row. One row per weapon. A Tool with the same name in ServerStorage > BloxGame > Tools uses these numbers. | 6 rows |
| Weapons in the design's Hotbar become real weapons | On / off. They're the starter loadout (with the Hotbar's ammo numbers), and the Hotbar's number keys pick them. | On |
| Give the starter weapons when a player spawns | One of: Yes, unless a Loadout Extra hands out weapons, Always, Never (my own scripts or StarterPack give them) | Yes, unless a Loadout Extra hands out weapons |
| Make simple placeholder guns when a weapon has no Tool yet | On / off. Your own Tool named like the weapon in ServerStorage > BloxGame > Tools always wins. | On |
| Teammates can hurt each other | On / off | Off |
| Weapons hurt NPCs (zombies, bosses: any model with a Humanoid) | On / off | On |
| Extra room for lag when checking a hit (studs) | Number (0 to 20). Bigger = kinder to laggy players, smaller = stricter on cheaters. | 4 |
| Most lag a hit check makes up for (milliseconds) | Whole number (0 to 1,000) | 350 |
| Currency for each kill (0 = none) | Whole number (0 to 1,000,000) | 0 |
| Kill reward currency | One of your currencys | your first currency |
| Spare ammo never runs out | On / off | Off |
| Walking speed while crouched (%) | Whole number (10 to 100) | 55 |
| Walking speed while aiming (%) | Whole number (10 to 100) | 80 |
| Aim assist on phones and controllers (pixels; 0 = off) | Whole number (0 to 200). Shots bend toward an enemy this close to the crosshair. Players can switch it off with the design's aimAssist setting. | 60 |
| Show bullet tracers | On / off | On |
| First person while holding a gun | On / off | Off |
| Hide Roblox's own backpack bar when the design has a Hotbar | On / off | On |
Monetization Extras#
Battle Pass#
A season battle pass with a free and a premium reward track that players level up by playing.
- 30+ tiers of free and premium rewards: currency, items and 2x boosts
- Season XP from quests, minutes played, wins and a daily login bonus
- Premium unlocks with a game pass or a Robux product from GameData, plus an optional Buy Tier product
- Seasons end on a UTC date and the next one starts by itself; unclaimed rewards are delivered
- Fills your design's pass screen, with Claim All, tier-up toasts and a live countdown
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.season_pass.
| Setting | What it is | Starts as |
|---|---|---|
| Season name ({n} = season number) | Text (up to 40 characters) | "Season {n}" |
| Current season ends (UTC date, YYYY-MM-DD) | Text (up to 10 characters). The season ends at 00:00 UTC on this day. Leave empty for automatic seasons: the first starts the first time your game runs. | empty |
| Days in each next season | Whole number (3 to 180) | 30 |
| Number of the current season | Whole number (1 to 999) | 1 |
| Tiers | Whole number (5 to 100) | 30 |
| Season XP for each tier | Whole number (10 to 1,000,000) | 300 |
| Extra XP each tier needs (0 = every tier costs the same) | Whole number (0 to 100,000) | 0 |
| XP for each quest claimed | Whole number (0 to 100,000) | 50 |
| XP for each minute played | Whole number (0 to 10,000) | 2 |
| Most XP from playtime per day | Whole number (0 to 1,000,000) | 240 |
| XP for the first visit of the day | Whole number (0 to 100,000) | 100 |
| XP for each win | Whole number (0 to 100,000). A win is the event "win", an obby finish or a finished challenge. Your scripts can also call BattlePass.addXp. | 25 |
| Premium game pass (its name in GameData.Passes) | Text (up to 60 characters). Empty = your design's own premium pass entry. Owners get premium every season. | empty |
| Premium product, one season (its name in GameData.Products) | Text (up to 60 characters). Optional. A developer product that unlocks premium for the current season only. | empty |
| Buy Tier product (its name in GameData.Products) | Text (up to 60 characters). Optional. Each purchase jumps to the next tier. Not in GameData = no Buy Tier button. | "Battle Pass Tier" |
| Rewards (empty = an automatic track) | A list: Tier, Track, Reward, Currency (currency and boost rewards), Amount (or item count), Item name (item rewards), Boost minutes per row. Each row replaces the automatic reward of one tier on one track. Tiers you don't list keep the automatic reward. | empty |
| Give unclaimed rewards when a season ends | On / off | On |
| Show a toast on every new tier | On / off | On |
Dev Products Helper#
Checks every Robux button in your game: which ids are missing, which system gives what, and test purchases in Studio.
- Lists every Robux-priced thing in your design with its GameData entry and whether its id is pasted
- Asks Roblox if each id is real and if its price matches
- Prints one clear setup checklist to the Output when the game starts
- An admin-only in-game Monetization check panel that test-prompts each product (free in Studio)
Has a part on the player's device. Settings in GameData: GameData.Features.product_helper.
| Setting | What it is | Starts as |
|---|---|---|
| Key that opens the Monetization check panel (admins) | Text (up to 20 characters). A key name like F4, M or RightBracket. Admins can also type /monetization in chat. | "F4" |
| In Studio, whoever is testing may use the panel | On / off | On |
| More people who may use the panel | A list: User id per row. The game's owner (and the Admin Panel's admins, when it's on) may always use it. | empty |
| Ask Roblox whether each id is real and its price matches | On / off | On |
| Print the whole checklist in live servers too | On / off. Off: live servers only print a one-line warning when ids are missing. | Off |
Eggs & Crates#
Eggs and crates that roll on the server, show their odds, guarantee a rare with a pity counter and sell for coins or Robux.
- Your design's crate and egg shop gives real items, rolled fairly on the server
- Every egg shows its odds before anyone pays (Roblox rules for paid random items)
- A pity counter guarantees a Legendary after a run of bad luck
- 2x Luck boosts really do make rare drops likelier
- Sell eggs for coins, for Robux, or on egg stands in your world
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.eggs.
| Setting | What it is | Starts as |
|---|---|---|
| Power the crates / eggs in my design | On / off. The design's Cases sections give real items (with pity, luck and the open limit). Their prices and odds stay the design's. | On |
| Extra eggs (egg stands, Robux eggs, or a design crate to take over) | A list: Egg id (letters, digits, _), Name, Icon, Paid with, Price (0 = not sold for currency), Developer product (Robux, optional), Take over this design crate (its id, optional) per row | 2 rows |
| What the extra eggs drop | A list: Egg id, Item id (goes into the player's items), Name on screen (optional), Rarity, Weight (bigger = more likely), Icon per row | 9 rows |
| Pity: guaranteed drop after this many opens without one (0 = off) | Whole number (0 to 10,000) | 50 |
| Pity guarantees at least | One of: Common, Uncommon, Rare, Epic, Legendary, Mythic, ... | Legendary |
| 2x Luck boosts drops from this rarity up | One of: Common, Uncommon, Rare, Epic, Legendary, Mythic, .... Luck multiplies the weight of these drops (needs Timed Boosts or VIP). | Epic |
| Seconds between opens (per player) | Number (0 to 60). Stops spam-opening and gives the reveal time to play. | 1.5 |
Game Passes#
Sell VIP, 2x coins and more: perks switch on the moment a pass is bought.
- Connects each game pass in your shop to a perk
- Perks: more currency (2x coins), a free item, a chat tag like [VIP] or extra slots
- Checks ownership with Roblox when players join and right after they buy
- Works without rejoining: the perk turns on the second the purchase goes through
- Your own scripts can read the Pass_<name> attribute for anything else
Needs: Data Saving. Settings in GameData: GameData.Features.passes.
| Setting | What it is | Starts as |
|---|---|---|
| Game passes | A list: Game pass id, Perk, Currency it multiplies, Multiplier, Item it gives, Chat tag, Chat tag colour, Extra slots per row | one row per game pass in the shop of your design |
Gifting#
Players buy Robux gifts for friends in the server, and every gift arrives, even if the friend already left.
- Pick a player in the server or a friend, then everything bought in the shop is theirs
- The friend sees who it's from the moment it arrives
- Left the game already? The gift waits safely and arrives when they next play, in any server
- Gifts can be currency, items or timed boosts
- Every gift is delivered exactly once, even if Roblox retries the purchase
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.gifting. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Gifts for sale | A list: Gift id (letters, digits, _), Name, Developer product (Robux), What the friend gets, Currency, Item id (items) / boost id (boosts), Amount (minutes for boosts), Icon per row | 2 rows |
| Players may also "gift" themselves | On / off | Off |
| Gift anything from the shop: pick a player, then every Robux product bought goes to them | On / off. The Gift picker lists players in the server first, then the player's friends, with a search box. While a gift target is set, every developer product bought (from the systems below) is filed for that player instead, even if they left or play in another server. | On |
| Whose products can be gifted (system ids, comma separated) | Text (up to 100 characters). products = GameData.Products (gem packs, cash packs), boosts = Timed Boosts. Things for yourself (Skip Rebirth, offline claims) are never gifted. | "products, boosts" |
| A picked gift target stays for (minutes) | Whole number (1 to 240) | 30 |
| The design's Gift picker (screen or element id) | Text (up to 60 characters). Its search box is GiftSearch, its rows GiftRow1, GiftRow2..., the Shop's label GiftTarget and its clear button GiftTargetClear. Missing? The built-in picker opens instead. | "GiftPicker" |
| Show a Gift button on screen | On / off | On |
| Or open it from this design element (element id) | Text (up to 100 characters). Clicking any button in your design with this id opens the gift picker. | empty |
Premium Benefits#
Roblox Premium players earn more and get a daily gift, and everyone else sees why they should upgrade.
- Roblox Premium players earn a bonus on your currency
- A free daily gift for Premium players, every UTC day
- A "Get Premium" button opens Roblox's own Premium window
- Upgrading mid-game turns the perks on at once
- More Premium playtime means more Premium Payouts for you
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.premium.
| Setting | What it is | Starts as |
|---|---|---|
| Currency | One of your currencys | your first currency |
| Premium players earn (x) | Number (1 to 5). 1.2 = 20% more of this currency. | 1.2 |
| Daily gift for Premium players | Whole number (0 to 1,000,000,000) | 100 |
| Design button that opens Roblox Premium | Text (up to 60 characters). An Event action name or element id in your design. | "BuyPremium" |
| Tell non-Premium players about the perks after (minutes) | Number (0 to 120). One toast per visit. 0 = never. | 10 |
Robux Products#
Sell gem packs, coin bundles and more for Robux, delivered safely every time.
- Connects each Robux item in your shop to its developer product
- Gives currency or an item the moment Roblox confirms the purchase
- Saves every purchase before it counts, so nobody pays without getting it
- Never gives twice, even when Roblox retries after a crash or a rejoin
- Thanks the player with a message on their screen
Needs: Data Saving. Settings in GameData: GameData.Features.products.
| Setting | What it is | Starts as |
|---|---|---|
| Robux products | A list: Developer product id, Gives currency, Amount of currency, Gives item (optional), How many items per row. What each Robux item gives. Items without an id show "Not for sale yet!". | one row per Robux item in the shop of your design |
| Thank-you message | Text (up to 80 characters) | "Thanks for your purchase!" |
Rotating Shop#
A daily shop with new items every day, the same in every server, limited stock and a countdown to the next refresh.
- New items every day: players come back to see what's in stock
- Every server shows the same shop, so friends can compare
- Limited stock per player per day makes every item feel rare
- A live countdown to the next refresh
- Optional Robux refresh for players who can't wait
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.rotating_shop.
| Setting | What it is | Starts as |
|---|---|---|
| Items that can show up | A list: Item id (goes into the player's items), Name on screen (optional), Icon, Rarity, Paid with, Price, Stock per player per day, How often it shows up (weight) per row | 8 rows |
| Items in the shop each day | Whole number (1 to 12) | 4 |
| New items at (UTC hour) | Whole number (0 to 23) | 0 |
| Shop seed (change it to reshuffle every future day) | Text (up to 30 characters) | "blox" |
| Developer product for a Robux refresh (optional) | A Roblox product id. Buying it gives that player a fresh set of items for the rest of the day. | not set |
| Most Robux refreshes per player per day | Whole number (1 to 50) | 3 |
| Show a Daily Shop button on screen | On / off | On |
| Or open it from this design element (element id) | Text (up to 100 characters) | empty |
Spin Wheel#
A prize wheel with a free spin every few hours and Robux spins, rolled fairly on the server with the odds on the wheel.
- A free spin every few hours brings players back
- Out of free spins? Buy another one for Robux, any time
- Prizes can be currency, items or timed boosts, each with its own odds
- The odds are on the wheel, and big wins are announced to the whole server
- Uses your design's spin screen: its wheel, buttons and countdown
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.spin_wheel.
| Setting | What it is | Starts as |
|---|---|---|
| Hours between free spins | Number (0 to 168). 0 = no free spins (Robux spins only). | 12 |
| Developer product for a paid spin (Robux) | A Roblox product id. Make a developer product (e.g. 25 Robux) and paste its id. 0 = free spins only. | not set |
| Prizes (wedges) | A list: Type, Currency, Item id (items) / boost id (boosts), Amount (minutes for boosts), Name on the wheel (optional), Icon, Rarity, Weight (bigger = more likely) per row | 8 rows |
| 2x Luck boosts prizes from this rarity up | One of: Common, Uncommon, Rare, Epic, Legendary, Mythic, ... | Epic |
| Spin section in the design (its id) | Text (up to 100 characters). Empty = the design's first Spin section. Without one, a small SPIN button shows instead. | empty |
| Tell the whole server about Legendary+ wins | On / off | On |
Starter Pack#
A one-time, limited-time bundle for new players that pops up on join and is never sold twice.
- New players get a big bundle offer with a countdown from their first visit
- It pops up by itself on join, in your design's Offer screen (or as a toast with a buy button)
- Bought once, it's gone for good; when the timer ends, it disappears
- Fill it with any currency, items and boosts
- Each purchase is delivered exactly once, even if Roblox retries it
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.starter_pack.
| Setting | What it is | Starts as |
|---|---|---|
| Developer product (Robux) | A Roblox product id. Make a developer product for the pack on the Creator Dashboard and paste its id here. | not set |
| Offer lasts (hours from the first visit) | Whole number (1 to 720) | 24 |
| What's inside | A list: Type, Currency, Item id (items) / boost id (boosts), Amount (minutes for boosts), Name on the offer (optional) per row | 2 rows |
| Offer screen (its id, optional) | Text (up to 100 characters). Empty = your design's first Offer screen. Without one, a toast with a buy button shows instead. | empty |
| Pop up on every visit while it lasts | On / off. Off = it only pops up on the very first visit (it can still be opened from the lobby banner). | On |
| Seconds after joining before it pops up | Number (0 to 120) | 5 |
Timed Boosts#
2x Coins, 2x Luck and 2x XP boosts that tick down on screen and sell for Robux again and again.
- Players buy 2x Coins, 2x Luck or 2x XP for a few minutes, as often as they like
- Buying again adds more time on top, so boosts stack
- A live countdown on screen shows how long each boost has left
- Other systems (spin wheel, starter pack, gifts, VIP) can hand out boosts too
- Count down only while playing (fair) or in real time: your choice
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.boosts.
| Setting | What it is | Starts as |
|---|---|---|
| Boosts | A list: Boost id (letters, digits, _), Name on screen, What it boosts, Only this currency (its id, optional), Multiplier, Minutes per purchase, Developer product (Robux), Also sold by this design shop item (its id, optional), Icon per row | 3 rows |
| Boost timers count down | One of: Only while the player is in the game, In real time (even while offline). "Only while playing" is fairer: nobody loses a boost by logging off. | Only while the player is in the game |
| Most minutes a boost can stack up to | Whole number (5 to 10,080). Free boosts from other systems stop adding time here. Paid time always counts in full. | 720 |
| XP currency (its id, optional) | Text (up to 50 characters). Empty = a currency named xp / exp / experience, if the design has one. | empty |
| Show a toast when a boost starts or ends | On / off | On |
VIP Pass#
One game pass, a whole VIP package: more coins, a daily VIP bonus, a gold chat tag and a VIP-only area.
- VIPs earn more of every currency, for good
- A daily VIP bonus lands automatically, every day they play
- A gold [VIP] tag in front of their chat messages
- VIP-only doors: VIPs walk through, everyone else gets the VIP offer
- Works the moment the pass is bought, no rejoin needed
Needs: Data Saving. Settings in GameData: GameData.Features.vip.
| Setting | What it is | Starts as |
|---|---|---|
| VIP game pass | A Roblox pass id. Make a game pass on the Creator Dashboard and paste its id here. | not set |
| Currency multiplier for VIPs | Number (1 to 10). 2 = VIPs earn double. It stacks with boosts. | 2 |
| Only this currency (its id; empty = every currency) | Text (up to 50 characters) | empty |
| Daily VIP bonus: currency | One of your currencys | your first currency |
| Daily VIP bonus: amount (0 = none) | Whole number (0 to 1,000,000,000) | 500 |
| Daily VIP bonus: boost id (needs Timed Boosts, optional) | Text (up to 24 characters) | empty |
| Daily VIP bonus: boost minutes | Whole number (1 to 1,440) | 15 |
| New day starts at (UTC hour) | Whole number (0 to 23) | 0 |
| Chat tag (empty = none) | Text (up to 12 characters) | "VIP" |
| Chat tag colour (hex) | Text (up to 7 characters) | "#FFD54A" |
| Tag of VIP-only parts (CollectionService) | Text (up to 40 characters). Tag doors or walls with this: VIPs walk through them, others bump into them and see the VIP offer. | "VIPOnly" |
| Offer VIP when a non-VIP touches a VIP-only part | On / off | On |
Progression Extras#
Achievements#
Long-term milestones with rewards and real Roblox badges, so players always have something to chase.
- Milestones for currency earned, level, rebirths, time played, quests, streaks and purchases
- Each one pays a reward, claimed from the Achievements screen or given at once
- Optional Roblox badge per achievement, awarded safely with retries
- A welcome badge for joining
- Your scripts add custom stats with one line: Achievements.addStat(player, "kills", 1)
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.achievements.
| Setting | What it is | Starts as |
|---|---|---|
| Achievements | A list: Id (keep it the same once live), Title, Goal, Currency (total earned only), Custom stat name, Goal amount, Reward type, Reward currency, Reward amount, Reward item id (item rewards only), Roblox badge (optional) per row. Achievements that need an Extra you haven't switched on (Levels, Rebirths, Quests, Daily Rewards) are hidden. | 12 rows |
| Rewards | One of: Claimed from the Achievements screen, Given the moment it's unlocked. Without an Achievements screen in the design, rewards are always given at once. | Claimed from the Achievements screen |
| Welcome badge for joining (optional) | A Roblox badge id | not set |
| Show a toast when an achievement unlocks | On / off | On |
Collectibles & Journal#
Pages, tapes and notes hidden in your map fill the design's journal and counter; ghost hunts with a real evidence board.
- Parts tagged Collectible (with a Name) become things to find; each player's finds are saved
- The HUD counter (Pages 3/8) and the journal's notes and grid fill in as you find them
- Evidence board: inspect evidence spots, rule ghosts in or out, and the server checks your guess
- Carry things in your left and right hands and deliver them where they belong
- Rewards for every find and for finding everything
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.collectibles.
| Setting | What it is | Starts as |
|---|---|---|
| Who finds what | One of: Every player finds every collectible (saved per player), The server shares them: once found, gone for everyone | Every player finds every collectible (saved per player) |
| Rewards pay | One of your currencys | your first currency |
| Reward for each find | Whole number (0 to 10,000,000) | 5 |
| Reward for finding everything | Whole number (0 to 100,000,000) | 100 |
| Objective text when everything is found | Text (up to 60 characters) | "You found them all!" |
| Placeholder collectibles when the map has none | Whole number (0 to 30) | 6 |
| Evidence board (ghost hunt) | One of: When the design has ghost-type buttons (GuessGhost), On, Off | When the design has ghost-type buttons (GuessGhost) |
| Evidence types (comma separated) | Text (up to 200 characters). Empty = the rows of the design's Evidence board, else EMF Level 5, Spirit Box, Fingerprints, Ghost Orbs, Ghost Writing, Freezing Temps, D.O.T.S. | empty |
| Ghost types | A list: Ghost, Its 3 evidence types (comma separated) per row. Empty = the design's ghost buttons, each given three evidence types. | empty |
| Reward for naming the ghost | Whole number (0 to 10,000,000) | 150 |
| A ghost hunt ends after (s) | Number (30 to 7,200) | 600 |
| Carrying in two hands | One of: When the design has Left Hand / Right Hand buttons, On, Off | When the design has Left Hand / Right Hand buttons |
| Make placeholders when the map has none | On / off | On |
Collection Index#
A collection book that fills itself: every item a player finds is marked, with rewards at 25, 50, 75 and 100%.
- Items are discovered the first time a player owns them, from anywhere in the game
- The design's Index screen shows found items in colour and the completion bar
- Milestone rewards at 25 / 50 / 75 / 100% (or any percent you pick)
- A bonus for every completed set (all the Legendaries, a whole world...)
- Checked and paid by the server, once per player, saved
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.index. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Milestone rewards | A list: At % found, Reward type, Currency, Amount, Item name (item rewards only) per row. The design's milestone chests show these rewards. A percent the design doesn't have is paid automatically. | 4 rows |
| How milestone rewards are collected | One of: Players claim them in the Index screen, Paid automatically when reached. Without an Index screen in the design they're always paid automatically. | Players claim them in the Index screen |
| What a 'set' is | One of: Every item of one rarity, Every item of one kind (pets, tools...), The `set` (or `world`) written on each item in GameData, The `mutation` written on each item (Normal, Golden, Diamond...). Sets are also the Index's categories (its tabs): each one can pay a Cash Boost below. | Every item of one rarity |
| Category rewards: "Collect n/N [category] for a n% Cash Boost!" | A list: Category (a set name, or * for every category), Cash Boost (%), Found needed (% of the category), Also pays (currency), Amount (0 = only the boost) per row. When a player has found `need` % of a category (a set / tab), they claim a permanent Cash Boost (+percent %) and an optional currency reward with the Index footer's Claim button. category = "*" is every category that has no row of its own. The boost counts everywhere cash is earned. | 1 row |
| The Cash Boost multiplies | One of your currencys | your first currency |
| The Index footer's Claim button (design element id) | Text (up to 60 characters). Clicking it claims every category reward that's ready. Its text element IndexFooter ("Collect 3/4 Golden for a 5% Cash Boost!") follows the player's progress. | "IndexClaim" |
| Give a reward for every completed set | On / off | On |
| Set reward currency | One of your currencys | your first currency |
| Set reward amount | Whole number (1 to 1,000,000,000,000) | 500 |
| Item kinds that don't count (comma separated) | Text (up to 100 characters) | "Boost, Currency" |
| Show a toast when something new is found | On / off | On |
Cosmetics In The World#
Trails, auras, titles, outfits and weapon skins players equip really show on their character, for everyone.
- Equip from the design's wardrobe, locker or trails screen and everyone sees it at once
- Trails behind the character, glowing auras, a title over the head, outfits and weapon skins
- Only items the player owns can be equipped: the server checks every time
- Saved: equipped cosmetics come back after a respawn and the next time they play
- Works right away with good-looking placeholders; drop in your own Trail, particles or outfit later
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.cosmetics.
| Setting | What it is | Starts as |
|---|---|---|
| Cosmetics | A list: Item (a GameData.Items name or the design's item), What it is, Colour (#RRGGBB, empty = its rarity colour), Second colour (#RRGGBB), Trail / aura texture (asset id), Title text (empty = the item's name), Outfit shirt (asset id), Outfit pants (asset id), Outfit accessories (asset ids, commas), Skin: only on this Tool (empty = every tool) per row. Optional. Items in your wardrobe / locker / trails screens and GameData.Items skins are cosmetics already; a row sets how one looks. | empty |
| Cosmetics the design shows unlocked and nobody sells are free starters | On / off. Anything with a price, in a crate or locked in the design must be owned (ctx.items). | On |
| Trail length (seconds it lasts) | Number (0.1 to 5) | 0.6 |
| Trail width | Number (0.1 to 5) | 1 |
| Aura particles per second (keep it low for phones) | Whole number (1 to 100) | 12 |
| Aura particle size | Number (0.05 to 5) | 0.5 |
| Titles are seen from (studs) | Whole number (10 to 500) | 60 |
| The title also shows as a chat tag | On / off | On |
| Other players' aura particles kept in Low Detail (%) | Whole number (0 to 100) | 40 |
Crafting#
Real recipes: gathered materials and items go in, tools and gear come out, checked by the server and saved.
- The design's crafting screen crafts for real: inputs are taken, the item goes to the backpack
- Recipes use currencies (Wood, Stone) and items (Rope), with craft times and stations (a Workbench)
- The screen shows each recipe's real cost and what's craftable right now
- Crafts in progress are saved, so leaving mid-craft never loses anything
- Edit recipes in GameData: inputs, output, time, station
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.crafting.
| Setting | What it is | Starts as |
|---|---|---|
| Recipes | A list: Id (keep it the same once live), Makes (item name, or a currency), How many, Needs, Craft time (s, 0 = instant), Station tag (empty = anywhere) per row | 4 rows |
| Recipes for everything on the design's crafting screen | On / off. Items on the crafting screen that no recipe above makes become recipes that cost their shown price. | On |
| How close to a station (studs) | Number (2 to 100) | 12 |
| Crafts that can wait in line | Whole number (1 to 50) | 5 |
| Most items in one craft | Whole number (1 to 100) | 10 |
Daily Rewards#
A login-streak calendar that pays out every day and makes players come back tomorrow.
- A reward every day that grows with the streak, with a big final day
- Miss a day and the streak starts over (with an optional grace window)
- A toast and the Daily screen pop up as soon as today's reward is ready
- Pick each day's reward: any currency amount or an item
- The server checks every claim, so the calendar can't be cheated
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.daily_rewards.
| Setting | What it is | Starts as |
|---|---|---|
| New day starts at (UTC hour) | Whole number (0 to 23). When the next reward unlocks. 0 = midnight UTC. | 0 |
| Grace window after a missed day (hours) | Whole number (0 to 48). 0 = strict. 12 = a player who missed a day keeps the streak if they come back within 12 hours of the next reset. | 0 |
| Rewards by day | A list: Reward type, Currency, Amount, Item id (item rewards only), Label (optional) per row. Day 1 is the first reward. After the last day the calendar starts again (see below). | 7 rows |
| After the last day | One of: Start again at day 1, Keep giving the last day's reward | Start again at day 1 |
| Show a toast when it's ready | On / off | On |
| Open the Daily screen when a reward is ready | On / off. Once per session, a few seconds after joining. Without a Daily screen a reward popup shows instead. | On |
Inventory & Backpack#
The design's inventory and backpack screens show what each player really owns, with equip, sort, filter and sell.
- Shows every owned item (from eggs, shops, rewards...) in the design's own inventory screens
- Equip and unequip: a Tool goes into the player's backpack, and comes back after every respawn
- Sort by rarity, filter chips by rarity, favourite items so they can't be sold by mistake
- Sell items for currency (or just delete them), checked by the server so nothing sells twice
- Equip slots saved per player, with an optional Robux 'more slots' product
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.inventory.
| Setting | What it is | Starts as |
|---|---|---|
| Items a player can equip at once | Whole number (1 to 50). Skins, trails and auras don't use a slot: equipping one swaps it for the last one. | 3 |
| 'More slots' product (a GameData.Products name or its id) | Text (up to 60 characters). Empty = the first product in GameData.Products with 'slot' in its name (not pet slots), if any. | empty |
| Slots each purchase adds | Whole number (1 to 20) | 1 |
| Most equip slots a player can have | Whole number (1 to 100) | 10 |
| What players can do with items they don't want | One of: Sell them for currency, Delete them (no money back), Nothing (keep everything) | Sell them for currency |
| Sell price (% of the shop price) | Whole number (1 to 100). Items without a shop price sell by rarity: 5 / 15 / 50 / 150 / 500 / 2000 / 5000 (Common to Secret). | 40 |
| Currency for items without a shop price | One of your currencys | your first currency |
| Ask 'are you sure?' before selling this rarity or rarer | One of: Common, Uncommon, Rare, Epic, Legendary, Mythic, ... | Epic |
| Sort the inventory by | One of: Rarity (rarest first), Name (A to Z), How many they have | Rarity (rarest first) |
| Show rarity filter chips over the grid | On / off. Switches the design's plain grid to its Filters look. Showcase and Team grids stay as they are. | On |
| Equipping a Tool puts it in the player's backpack | On / off. Put your Tools in ServerStorage > BloxGame > Tools, named like the item. | On |
| Use a simple placeholder when a Tool model is missing | On / off | On |
| Items bought with in-game currency go into the inventory | On / off. For the design's shop items that are in GameData.Items (not currency packs, crates or upgrades). | On |
Levels & XP#
Players earn XP from everything they do and level up with rewards, shown on the leaderboard and above their heads.
- XP from earning currency, time played, quests and daily rewards
- A smooth XP curve you set with two numbers
- Rewards on every level-up, plus big milestone rewards
- Level in the leaderboard, a tag above each head and the HUD's XP bar
- Other scripts give XP with one line: Levels.addXp(player, 50)
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.levels.
| Setting | What it is | Starts as |
|---|---|---|
| XP to reach level 2 | Whole number (1 to 1,000,000,000) | 100 |
| Each level needs this much more XP (%) | Number (0 to 100). 15 = every level needs 15% more XP than the one before. | 15 |
| Highest level | Whole number (2 to 10,000) | 100 |
| Earning this currency gives XP | One of your currencys | your first currency |
| Currency earned for 1 XP (0 = off) | Number (0 to 1,000,000,000) | 10 |
| XP per minute played (0 = off) | Number (0 to 1,000,000) | 5 |
| XP per quest claimed (0 = off) | Number (0 to 1,000,000). Needs the Quests Extra. | 50 |
| XP per daily reward claimed (0 = off) | Number (0 to 1,000,000). Needs the Daily Rewards Extra. | 25 |
| Level-up reward currency | One of your currencys | your first currency |
| Level-up reward (times the new level; 0 = off) | Whole number (0 to 1,000,000,000). 50 = reaching level 10 pays 500. | 50 |
| Milestone rewards | A list: At level, Reward type, Currency, Amount, Item id (item rewards only) per row | 4 rows |
| Show Level on the player list | On / off | On |
| Show "Lv. 12" above each player's head | On / off | On |
| Show a toast on level-up | On / off | On |
Loadout#
The design's loadout screen picks the primary, secondary, melee and skin a player spawns with.
- Primary, secondary, melee and skin slots (or your own), filled from what each player owns
- The picked Tools are given on every spawn, in slot order (1, 2, 3 on the hotbar)
- Quick-switch: Q swaps back to the last weapon
- The server checks you own it and that it fits the slot
- Saved per player, with placeholder Tools until you add your own models
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.loadout.
| Setting | What it is | Starts as |
|---|---|---|
| Loadout slots | A list: Slot name, Item kinds that fit (comma separated), Name words that belong here (comma separated) per row. An item fits a slot of its kind. The words decide the slot it goes to first; items with a `slot` in GameData only fit that slot. | 4 rows |
| Give the loadout's Tools on every spawn | On / off. Tools come from ServerStorage > BloxGame > Tools, named like the item. | On |
| Fill empty slots with the best item the player owns | On / off | On |
| Q (or the gamepad's Y) swaps back to the last weapon | On / off | On |
| Use a simple placeholder when a Tool model is missing | On / off | On |
Offline Earnings#
Players earn while they're away, up to a cap, and collect it (or 2x it for Robux) in the welcome-back popup.
- Idle income while away: a share of what the player earns per second, up to a few hours
- The design's 'Welcome back!' popup shows the real amount and time on join
- A 'claim 2x' developer product that doubles it (given once per purchase)
- Time is measured with the server's clock only: changing a device's clock does nothing
- Offline upgrades from the Upgrades system make it bigger
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.offline_earnings. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Most hours counted while away | Number (1 to 72) | 8 |
| Minutes away before anything is earned | Whole number (1 to 240) | 5 |
| What players earn per second while away | One of: Their income (Upgrades / BloxGame_IncomePerSecond), else the fixed rate, Only their income per second, Always the fixed rate below | Their income (Upgrades / BloxGame_IncomePerSecond), else the fixed rate |
| Share of their income paid while away (%) | Whole number (1 to 100) | 50 |
| Fixed rate (per minute away) | Number (0 to 1,000,000,000,000). Used when a player has no income yet (and rateSource is auto), and by 'fixed'. The design's popup rate is used instead when it has one. | 10 |
| Paid in | One of your currencys | your first currency |
| 'Claim 2x' product (a GameData.Products name or its id) | Text (up to 60 characters). Empty = the GameData product marked builtIn = "offline", or one with 'offline' and '2x' in its name. | empty |
| 'Claim x3' product (a GameData.Products name or its id) | Text (up to 60 characters). The blue Claim x3 button (Robux): pays 3 times what's waiting. Paste the developer product id into GameData.Products.OfflineClaimX3. Given once per purchase. | "OfflineClaimX3" |
| 'Claim x10' product (a GameData.Products name or its id) | Text (up to 60 characters). The purple Claim x10 button (Robux): pays 10 times what's waiting. Paste the id into GameData.Products.OfflineClaimX10. Given once per purchase. | "OfflineClaimX10" |
| Rebirths, pets and passes also multiply offline earnings | On / off | Off |
| Without a popup in the design, pay it on join with a message | On / off | On |
Pets#
Equipped pets follow the player around and multiply what they earn, with Equip Best and golden crafting.
- Equip up to N pets (more with a pets pass); they float along behind the player
- Every pet boosts earnings by its rarity, or by the value you set in GameData
- Equip Best, and Craft Golden: 5 of a pet become a stronger golden one
- Fills the design's pets screen: the grid, the team slots and the boost stats
- Your own pet models from ServerStorage, or cute placeholders until you add them
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.pets.
| Setting | What it is | Starts as |
|---|---|---|
| Pets a player can equip at once | Whole number (1 to 30) | 3 |
| Game passes that add pet slots | A list: Game pass id, Extra pet slots per row. GameData passes and products with 'pet' in their name and a slots perk (or '+3' in the name) count by themselves. | empty |
| Boost per pet, by rarity | A list: Rarity, Multiplier (x) per row. A pet with `multiplier = 4` in GameData.Items uses that instead. | 7 rows |
| How pets' boosts add up | One of: Added: x1.5 and x2 make x2.5, Multiplied: x1.5 and x2 make x3 | Added: x1.5 and x2 make x2.5 |
| Pets boost this currency | One of your currencys | your first currency |
| Boost every currency instead | On / off | Off |
| Craft Golden: turn identical pets into a golden one | On / off | On |
| Pets needed for a golden one | Whole number (2 to 20) | 5 |
| A golden pet's boost is its normal boost times | Number (1.1 to 20) | 2.5 |
| Pet storage shown in the stats (0 = don't show a limit) | Whole number (0 to 10,000). Display only: pets from eggs are never thrown away. | 0 |
| How far behind the player pets float (studs) | Number (2 to 20) | 5 |
| Use cute placeholder pets when a model is missing | On / off. Put your models in ServerStorage > BloxGame > Pets, named like the pet. | On |
Playtime Rewards#
Free gifts that unlock the longer a player stays: the retention trick behind every top simulator.
- Gift boxes unlock after 5, 10, 15, 30 and 60 minutes of play
- Ready gifts shake in the Rewards screen and a toast tells the player
- Claim one or all at once; the server times every gift
- Pick each gift's reward: any currency amount or an item
- Gifts start over every session, or once a day if you prefer
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.playtime_rewards. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Gifts | A list: Unlocks after (minutes), Reward type, Currency, Amount, Item id (item rewards only), Label (optional) per row. Minutes of play in this session before each gift opens. | 5 rows |
| Gifts start over | One of: Every time the player joins, Once a day (claimed gifts stay claimed until the next day) | Every time the player joins |
| New day starts at (UTC hour) | Whole number (0 to 23). Only used when gifts start over once a day. | 0 |
| Show a toast when a gift is ready | On / off | On |
| Skip All: developer product | A Roblox product id. The Rewards screen's "Skip All!" button opens every gift at once for Robux. Make a developer product and paste its id here (or in GameData.Products.PlaytimeSkipAll). Empty: the button says "Not for sale yet!". | not set |
Quest Tracker HUD#
Makes the quest list on your HUD real: today's quests with live progress bars that tick off as players play.
- Shows the player's real quests from the Quests extra, with bars that fill as they play
- Finished quests jump to the top so players remember to claim them
- Any other system can add its own goals (tycoon progress, season challenges...)
- Optional starter goals of your own ("Collect 100 Coins") when you don't use Quests
- Hides itself when there's nothing to show, instead of fake sample quests
Has a part on the player's device. Settings in GameData: GameData.Features.quest_tracker_hud.
| Setting | What it is | Starts as |
|---|---|---|
| Most quests shown at once | Whole number (0 to 8). 0 = as many rows as the design's quest tracker has. It never shows more rows than the design has room for. | 3 |
| Show weekly quests too | On / off | On |
| Keep claimed quests on the list | On / off | Off |
| Tracker title (empty = the design's) | Text (up to 28 characters) | empty |
| Hide the tracker when there's nothing to show | On / off | On |
| Update the bars at most every (seconds) | Number (0.25 to 10). Smaller = snappier bars. Bigger = fewer messages in full servers. | 1 |
| Starter goals of your own | A list: Text, Stat, Goal, Icon per row. Shown in order, the first unfinished ones first. Progress comes from a stat (a currency id, "clicks", "machines_built", "playtime", a Stat Tracker stat...). | empty |
| Show those goals | One of: Only when there are no quests to show, Always, before the quests | Only when there are no quests to show |
Quests#
Daily and weekly missions that give players a reason to log in and a goal every session.
- Fresh daily and weekly quests, the same set for every player
- Earn, spend, play time, open eggs or cases, press a button, or your own custom goals
- Progress bars fill live; finished quests glow until claimed
- A bonus for finishing every daily quest
- Other scripts can add progress with one line: Quests.progress(player, "custom", 1, "zombies")
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.quests.
| Setting | What it is | Starts as |
|---|---|---|
| Daily quests at a time | Whole number (0 to 6) | 3 |
| Weekly quests at a time | Whole number (0 to 6) | 3 |
| New day starts at (UTC hour) | Whole number (0 to 23). When the daily quests change. Weekly quests change on the chosen day at this hour. | 0 |
| New week starts on | One of: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, ... | Monday |
| Quest pool | A list: Id (keep it the same once live), Title, Daily or weekly, Goal, Currency (earn / spend), Event name, custom key or case id, Goal amount, Reward type, Reward currency, Reward amount, Reward item id (item rewards only) per row. The daily and weekly quests are picked from here each day / week, the same for every player. Quests the game can't do (no eggs or cases to open, nothing to buy) are left out. | 11 rows |
| Bonus for finishing every daily quest: currency | One of your currencys | your first currency |
| Bonus amount (0 = no bonus) | Whole number (0 to 1,000,000,000) | 500 |
| Show a toast when a quest is done | On / off | On |
Rebirths#
The simulator staple: trade your currency for a permanent multiplier and climb again, faster.
- Reset a currency for a permanent earnings multiplier
- A cost that climbs with every rebirth (straight or steep curve)
- Optional rebirth tokens: a second currency paid on every rebirth
- Fills the Rebirth screen: count, multiplier before and after, cost and progress
- Rebirths show in the player list and every system can read the multiplier
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.rebirths. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Currency that resets (and pays for it) | One of your currencys | your first currency |
| Cost of the first rebirth | Whole number (1 to 1,000,000,000,000,000) | 10,000 |
| How the cost grows | One of: Straight: first cost x (rebirths + 1), Steep: multiplied by the growth below each time | Straight: first cost x (rebirths + 1) |
| Steep curve: cost multiplier per rebirth | Number (1.01 to 10) | 1.5 |
| Multiplier added per rebirth | Number (0.01 to 100). 0.5 = x1.5 after one rebirth, x2 after two, x3 after four. | 0.5 |
| The multiplier boosts | One of your currencys | your first currency |
| Boost every currency instead | On / off | Off |
| Pay rebirth tokens | On / off | Off |
| Token currency | One of your currencys | your first currency |
| Tokens per rebirth | Whole number (1 to 1,000,000,000) | 1 |
| Most rebirths (0 = no limit) | Whole number (0 to 1,000,000) | 0 |
| Show Rebirths on the player list | On / off | On |
| Ask before rebirthing from a button outside the Rebirth screen | On / off | On |
| Rebirth rewards (what the Rebirth screen's reward tiles show) | A list: Which rebirth (0 = every rebirth), Name on the reward tile, Currency given, Amount of currency (0 = none), Item given (a GameData.Items name, empty = none), How many of the item, Permanent extra boost (0.1 = +10%, 0 = none) per row. Extra rewards on top of the multiplier. at = 0: every rebirth; at = 5: only the 5th rebirth (a milestone). Each row can give currency, an item and a permanent boost (0.1 = +10% more on top of the rebirth multiplier). Skip Rebirth gives them too. | 1 row |
| Skip Rebirth: developer product (Robux) | A Roblox product id. The Rebirth screen's Skip Rebirth button rebirths for Robux: the player KEEPS the currency a rebirth would reset, gets the rebirth (count, multiplier) and every reward above. No cost needed. Make a developer product and paste its id here (or in GameData.Products.SkipRebirth). | not set |
| Skip Rebirth button (design element id) | Text (up to 60 characters) | "SkipRebirth" |
| Rebirth button (design element id) | Text (up to 60 characters). A design button with this id rebirths (a Rebirth Event / Remote action works too). | "RebirthButton" |
Stat Tracker#
Counts the stats your design shows (Wins, Best Time, Eggs Hatched, Coins Earned, Playtime...) and saves them.
- Records wins, kills, best times, eggs hatched, currency earned, playtime, clicks and machines built
- Finds the stats your Leaderboards and Stats screens show and starts counting them by itself
- Saved with the player; each stat is also a player attribute that Global Leaderboards can rank
- Fills your design's Stats and Profile rows with the real numbers
- Any script or system adds to a stat with one line
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.stat_tracker.
| Setting | What it is | Starts as |
|---|---|---|
| Stats to record | A list: Name (empty = a name from the source), Counts, Event name(s), comma separated, Currency (earned / spent), Keeps, Show on the player list per row. Each stat is saved, becomes the player attribute <Name without spaces> (Wins, BestTime, EggsHatched) for leaderboards and scripts, and Hud_<Name> (the text your Stats rows show). Scripts add to one with ctx.events.emit("stat", player, "Wins", 1) or require(ServerScriptService.BloxGame.Services.StatTrackerService).add(player, "Wins", 1). | 6 rows |
| Also count the stats my design shows | On / off. Leaderboard boards and Stats / Profile rows named like a stat above ("Machines Built", "Rebirths", "Money Earned") are counted too. | On |
| Record the totals other systems report | On / off. Racing, Tower Defense and others announce stats like BestLap or HighestWave; each becomes a stat here too. | On |
| Update attributes and rows every (seconds) | Number (0.25 to 30) | 1 |
Upgrades#
Tycoon and simulator upgrades that really do something: speed, income per second, capacity, luck, multipliers.
- Each upgrade has levels, a max, and a cost that climbs with every level
- Real effects on the server: walk speed, jump, passive income, capacity, luck, earnings boosts
- Income upgrades pay currency every second while the player is in the game
- The design's upgrade cards show the level, the next cost and MAX, and buy through the server
- Everything is set here: names, effects, prices, curves and max levels
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.upgrades.
| Setting | What it is | Starts as |
|---|---|---|
| Upgrades | A list: Name (matches a design card with the same name), What it does, Effect per level, Max level, Cost of level 1, Cost growth per level, Cost curve, Paid with per row. The design's cards with the same name (or the same kind of effect) use these rows. Other cards keep their own prices and work as Custom. | 5 rows |
| The design's upgrade cards follow these upgrades | On / off | On |
| Passive income pays | One of your currencys | your first currency |
| Income per second before any upgrade | Number (0 to 1,000,000,000,000) | 0 |
| Pay the income every (seconds) | Whole number (1 to 60) | 1 |
| Boosts (rebirths, pets, passes) multiply the income | On / off | On |
| Earnings multiplier upgrades boost | One of your currencys | your first currency |
| Walk speed before upgrades | Number (1 to 200) | 16 |
| Jump power before upgrades | Number (1 to 500) | 50 |
| Capacity before upgrades | Number (0 to 1,000,000,000) | 10 |
Zone Progress#
Your worlds in a row (Spawn Meadow > Crystal Caves..., or Common > Rare > Epic...): players unlock the next one and the HUD's zone strip shows where they are.
- The zones are your design's worlds, in order, with what unlocks each (from the world cards)
- Unlock by reaching an amount (cash, rebirths, wins...) or by buying the next zone
- The HUD's zone strip lights up the unlocked zones and puts the player's avatar head on the one they're in
- Tap a zone to teleport to its spawn part (only unlocked ones), with a cooldown
- Saved: a zone once unlocked stays unlocked, even if the cash is spent
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.zone_progress. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Zones, first to last | A list: Zone name, Colour on the zone strip (#RRGGBB), How it unlocks, Stat to reach (empty = the price currency), Amount to reach, or the price, Price currency (buy), Spawn part (a part's name in Workspace) per row. The first zone is always open. The others unlock in order: a zone opens once every zone before it is open. | 5 rows |
| The HUD's zone strip (element id) | Text (up to 60 characters). A design element with this id shows the zones. Not in the design? Everything still works, only the strip is missing. | "ZoneStrip" |
| Players respawn in the furthest zone they unlocked | On / off | Off |
| Seconds between zone teleports | Number (0 to 60) | 3 |
| Show a toast when a new zone unlocks | On / off | On |
Social Extras#
Chat Tags#
Coloured [VIP], [DEV], [Lv.25] tags in front of names in chat, decided by the server.
- Tags for the developer, admins, VIPs, Roblox Premium, group ranks, levels and rebirths
- Each tag has its own colour; {n} shows the player's level or rebirths
- Rules in the order you choose, up to a few tags per player
- Updates live when someone levels up or buys VIP, with a toast for new tags
- Tags make VIP and group ranks something players want to show off
Has a part on the player's device. Settings in GameData: GameData.Features.chat_tags.
| Setting | What it is | Starts as |
|---|---|---|
| Tag rules | A list: Who gets it, Value, Tag text, Colour (#RRGGBB) per row. Checked from top to bottom; a player shows the first matching tags (up to "Tags per player"). | 6 rows |
| Tags per player | Whole number (1 to 3). Chat shows 3 tags at most, counting tags from other extras (a VIP pass, a group rank). | 2 |
| Tell players when they unlock a new tag | On / off | On |
Global Leaderboards#
All-time and weekly top players from every server, live on your leaderboard screen and on in-world boards.
- Top 10 boards for any currency, level, rebirths, playtime or your own stat (best times rank fastest first)
- Weekly boards reset by themselves every week, so new players can win too
- Fills the Leaderboard screen of your design with real names and avatars
- Tag any Part "BloxLeaderboard" and it becomes a glowing board in your map
- Stays inside Roblox's DataStore limits, even in full servers
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.leaderboards.
| Setting | What it is | Starts as |
|---|---|---|
| Boards | A list: Stat, Currency, Leaderstat or attribute name, Name on the board, All-time board, Weekly board, Best score per row. One row per stat. Each row can have an all-time board, a weekly board, or both. | 2 rows |
| Players per board | Whole number (3 to 50). How many top players each board shows. | 10 |
| Refresh every (seconds) | Whole number (30 to 600). Boards refresh at most this often. In small servers they may refresh a little slower to stay inside Roblox's limits. | 60 |
| Weekly boards reset on | One of: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, .... At 00:00 UTC on this day. | Monday |
| Currency boards count | One of: What they have now, Everything they ever earned. Weekly boards always count what was earned this week. | What they have now |
| Show display names | On / off. Off = show @usernames. | On |
| Build boards on Parts tagged BloxLeaderboard | On / off | On |
| Announce a new #1 (needs Live Events) | On / off | On |
Group Rewards#
A one-time gift and a permanent boost for joining your Roblox group, checked again every time they play.
- Players who join your group get a one-time reward
- Members earn more forever (a permanent multiplier), for as long as they stay
- Membership is checked again on every join, so leaving the group ends the boost
- Optional chat tags by group rank, like [Owner] or [Member]
- Grows your group, so every update reaches more players
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.group_rewards.
| Setting | What it is | Starts as |
|---|---|---|
| Your group | A Roblox group id. The number in your group's link: roblox.com/communities/<this number>/... | not set |
| Currency | One of your currencys | your first currency |
| One-time reward for joining | Whole number (0 to 1,000,000,000) | 500 |
| Members earn (x) | Number (1 to 5). 1.1 = 10% more of this currency, for as long as they stay in the group. | 1.1 |
| Remind non-members after (minutes) | Number (0 to 120). A friendly toast about the group perks. 0 = never. | 5 |
| Design button that opens "Join group" | Text (up to 60 characters). An Event action name or element id in your design. | "JoinGroup" |
| Chat tags by group rank | On / off | On |
| Chat tags | A list: Rank at least, Tag, Colour (#RRGGBB) per row. The highest row a member's rank reaches is their tag (rank 255 = the owner). | 2 rows |
Invite Rewards#
Players earn a reward for every friend they bring in, and earn more while playing together.
- An Invite button opens Roblox's invite-friends window
- The inviter gets a reward when an invited friend joins and plays, even from another server
- The new friend gets a welcome gift too
- Playing with friends in the same server boosts everyone's earnings
- Built-in limits stop alt accounts and fake invites from farming rewards
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.invite_rewards. Setup guide.
| Setting | What it is | Starts as |
|---|---|---|
| Reward currency | One of your currencys | your first currency |
| Reward per friend who joins | Whole number (0 to 1,000,000,000) | 250 |
| Welcome gift for the invited friend | Whole number (0 to 1,000,000,000) | 100 |
| Friend must play (minutes) | Number (0 to 60). The reward only comes once the new friend has played this long. | 3 |
| Friend's account at least (days old) | Whole number (0 to 365). Stops brand-new alt accounts from paying out. | 7 |
| Only Roblox friends count | On / off | On |
| Rewards per player per day | Whole number (1 to 100) | 5 |
| Rewards per player, ever | Whole number (1 to 1,000) | 50 |
| Friend Boost per friend in the server (%) | Number (0 to 100). Everyone earns this much more for each Roblox friend playing in the same server. The HUD's Friend Boost line shows it. | 10 |
| Friend Boost at most (%) | Number (0 to 500) | 50 |
| HUD element that shows the Friend Boost | Text (up to 60 characters). The design element (id) whose text becomes "Friend Boost: +20%". Clicking it (or its "+" button, id FriendBoostPlus) opens Roblox's invite window. Missing from the design? Nothing happens. | "FriendBoost" |
| Friend Boost text ({percent} = the bonus) | Text (up to 40 characters) | "Friend Boost: +{percent}%" |
| Design button that opens the invite | Text (up to 60 characters). An Event action name or element id in your design. The Party panel and Social rewards work by themselves. | "InviteFriends" |
| Add an Invite button if the design has none | On / off | On |
| Invite message | Text (up to 100 characters) | "Come play with me!" |
Parties & Matchmaking#
Players team up in the design's Party window, pick a mode and teleport into a match together.
- Invite players in the server (or friends through Roblox) into a party; members show in the Party window
- The party leader picks a mode tile: parties queue together and are never split up
- Teleports the whole party to your match place, with private servers for private or custom modes
- Party chat with /p, and friends who join from an invite land in your party
- Clear messages when a mode has no place id yet, and spam-proof buttons
Has a part on the player's device. Settings in GameData: GameData.Features.matchmaking_party.
| Setting | What it is | Starts as |
|---|---|---|
| Match place (every mode goes here unless its row says otherwise) | A Roblox place id. The place id of your match place (Creator Hub > your experience > Places). It must be in the same experience. | not set |
| Modes | A list: Mode name or button id, Place id (empty = the match place above), Private server just for these players, Players needed to start, Players per match per row. Optional. Every Matchmake tile in the design is a mode already; a row changes one (match its name or button id). | empty |
| Tiles whose name has one of these words get a private server | Text (up to 200 characters). For tiles without a row. Other tiles teleport into a public server of the match place, together. | "private,custom,friends" |
| Most players in a party (0 = the design's Party slots) | Whole number (0 to 50) | 0 |
| Seconds to wait for more parties before a match starts | Number (0 to 120) | 5 |
| Give up searching after (seconds) | Whole number (10 to 1,800) | 120 |
| An invite lasts (seconds) | Whole number (5 to 300) | 30 |
| Seconds before inviting the same player again | Number (0 to 120) | 5 |
| Seconds between two mode clicks | Number (0 to 30) | 2 |
| Teleport tries before giving up | Whole number (1 to 10) | 3 |
| Friends who join from your invite land in your party | On / off | On |
| Party chat (type /p message) | On / off | On |
| The Party window's invite also lists players in this server | On / off | On |
Trading#
Safe player-to-player trades of items and currency that can never duplicate anything.
- Request a trade by walking up to a player or from the Trade button
- Both players add items (and coins), accept, then a 5-second countdown that restarts on any change
- The server swaps everything at once, with a trade journal: no duplicates after crashes or leaves
- Trade history, playtime / level / account-age gates against alts, untradeable items in GameData
- Fills your design's Trade screen
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.trading.
| Setting | What it is | Starts as |
|---|---|---|
| Players can add currency to a trade | On / off | On |
| Tradeable currency | One of your currencys | your first currency |
| Most currency in one trade | Whole number (0 to 1,000,000,000,000) | 1,000,000 |
| Most different items per side | Whole number (1 to 18) | 12 |
| Countdown after both accept (seconds) | Whole number (3 to 15). Any change to either offer stops it; both players must accept again. | 5 |
| A trade request expires after (seconds) | Whole number (10 to 120) | 30 |
| Wait before asking the same player again (seconds) | Whole number (0 to 600) | 10 |
| Minutes played before a player can trade | Whole number (0 to 100,000). Stops brand-new alt accounts from being used to move items. | 15 |
| Level needed to trade (0 = any; needs a level system) | Whole number (0 to 100,000) | 0 |
| Roblox account age needed (days) | Whole number (0 to 3,650) | 0 |
| Check the playtime / level / age rules in Studio too | On / off | Off |
| Only items listed in GameData.Items can be traded | On / off. Items with untradeable = true (or tradeable = false) in GameData.Items are never tradeable. Game pass perk items never are. | On |
| Trades kept in each player's history | Whole number (0 to 100) | 20 |
| Show a "Trade" prompt when you walk up to a player | On / off | On |
Live ops Extras#
Live Events#
Scheduled "2x Coins Weekend" style events with a live banner, plus server-wide shout-outs for rare moments.
- Weekly or one-time events that multiply a currency while they run
- A banner counts down to the next event and shows when one is live
- Start a surprise event in every server at once from your own scripts
- Rare moments ("Alex hatched a Mythic Dragon!") are announced in every server
- Gives players a reason to come back at the same time every week
Has a part on the player's device. Settings in GameData: GameData.Features.live_events.
| Setting | What it is | Starts as |
|---|---|---|
| Events | A list: Name, Multiplier (x), Every currency, Currency (when not every currency), Repeats, Weekly: starts on, Weekly: at (UTC hour), Weekly: lasts (hours), Once: starts (UTC), Once: ends (UTC) per row. All times are UTC. Events that overlap multiply together. | 1 row |
| Show the event banner | On / off | On |
| Count down this many hours before | Number (0 to 168). The banner shows "starts in" this long before an event. 0 = only while it runs. | 24 |
| Toast when an event starts and ends | On / off | On |
| Announce rare moments in every server | On / off. Other extras and your scripts call LiveEvents.announce(text). | On |
Redeem Codes#
Promo codes for currency, items and boosts, with expiry dates, use limits and guess protection.
- Players type a code on your Codes screen and get coins, items or a timed boost
- Codes can expire on a date and can be limited to the first N players
- Each code works once per player, whatever the capitals or spaces
- Guessing is blocked: too many wrong codes locks the box for a while
- Drop a new code for every update to bring players back
Needs: Data Saving. Has a part on the player's device. Settings in GameData: GameData.Features.codes.
| Setting | What it is | Starts as |
|---|---|---|
| Codes | A list: Code, Currency, Amount, Item id to give (optional), How many items, Boost (2 = 2x the currency), Boost length (minutes), Expires (UTC), Total uses (all players) per row. Capitals and spaces around the code don't matter: "release " works for RELEASE. | 2 rows |
| Wrong codes allowed per minute | Whole number (3 to 20). One more and the Redeem box locks for a while. | 5 |
| Lock for (seconds) | Whole number (10 to 3,600). Doubles every time they get locked again, up to an hour. | 60 |
Admin & safety Extras#
Admin Panel#
A private admin panel and chat commands to give, kick, ban, teleport and announce, with every action logged.
- A clean in-game panel (a key, a button or :panel) that only admins ever see
- Chat commands: :give, :item, :kick, :ban, :unban, :tp, :announce, :data, :boost
- Admins by user id or group rank, and the game owner is always one
- Every command is checked by the server and saved in a log: who, what and when
- Everyone else gets silence: the remotes do nothing for them and are rate-limited
Has a part on the player's device. Settings in GameData: GameData.Features.admin.
| Setting | What it is | Starts as |
|---|---|---|
| Admins (user ids) | A list: User id per row. The game owner is always an admin. Add your moderators here. | empty |
| Admin group (optional) | A Roblox group id. Members of this group at or above the rank below are admins. Empty = no group. | not set |
| Lowest group rank that is admin | Whole number (1 to 255). Group ranks go from 1 to 255 (255 = the group owner). | 254 |
| Command prefix | One of: :give, ;give, !give | :give |
| Key that opens the panel | One of: F2, F3, F4, ' (quote), ; (semicolon), No key | F2 |
| Show a small ADMIN button to admins (for phones) | On / off | On |
| Hide commands from chat | On / off. Other players don't see ':kick bob' in the chat (TextChatService). | On |
| Everyone is an admin in Studio tests | On / off. Only in Studio, so you can try the panel right away. Live servers never do this. | On |
| Biggest amount one :give can add | Number (1 to 1,000,000,000,000,000) | 1,000,000,000 |
| Biggest :boost multiplier | Number (1 to 100) | 10 |
Anti-Exploit#
Lenient server-side checks for speed hacks, teleports, remote spam and impossible currency jumps, with admin alerts.
- Catches speed hacks and teleports on the server, where cheaters can't switch it off
- Flags players who spam your remotes or fire server-only ones
- Spots impossible currency jumps (like a million coins in a minute)
- Alerts admins on the Admin Panel; you choose log, pull back or kick
- Lenient by default and never bans, so honest players are safe
Settings in GameData: GameData.Features.anti_exploit.
| Setting | What it is | Starts as |
|---|---|---|
| When movement looks hacked | One of: Only log it and alert admins, Pull the player back, Kick the player | Only log it and alert admins |
| Fastest normal speed (studs per second) | Number (20 to 2,000). Walking is 16. Raise this if your game has vehicles without seats, launch pads or dashes. | 100 |
| A jump this far at once is a teleport (studs) | Number (30 to 10,000) | 150 |
| Suspicious moves (within 20 s) before acting | Whole number (1 to 20). Higher = more forgiving of lag. | 3 |
| Remote spam: messages per second per remote | Whole number (10 to 1,000) | 60 |
| When a player spams a remote | One of: Only log it and alert admins, Kick the player | Only log it and alert admins |
| Remotes to ignore | A list: Remote name per row. For remotes your game fires very often on purpose (like mouse aim every frame). | empty |
| Alert on impossible currency jumps | On / off | On |
| Currency jump: more than this in one minute... | Number (1 to 1,000,000,000,000,000,000) | 1,000,000 |
| ...and more than this many times their balance | Number (2 to 1,000,000). Both must be true, so rich players earning a lot aren't flagged. | 100 |
Bans#
Real Roblox bans with lengths, reasons and alt-account blocking, plus a backup ban list for bad days.
- Uses Roblox's official ban API: one ban blocks every server (and alt accounts)
- Timed or permanent bans, with a message the banned player sees
- A saved backup ban list, checked on join, if Roblox's ban service fails
- Works from the Admin Panel (:ban, :unban, :baninfo, :bans) or one line of code
Settings in GameData: GameData.Features.bans.
| Setting | What it is | Starts as |
|---|---|---|
| Default ban length | One of: 1 hour, 1 day, 7 days, 30 days, Permanent. Used when a ban doesn't say how long (like :ban bob). | Permanent |
| Let a banned player's alt accounts in | On / off. Off (recommended): Roblox also blocks the alt accounts it links to the banned player. | Off |
| Message a banned player sees | Text (up to 400 characters). Used when a ban has no reason of its own. | "You are banned from this game." |
| Use Roblox's ban API | On / off. Off = only the saved ban list, checked when players join. Studio always uses only the saved list. | On |
Data Tools#
Undo button for player data: snapshots, one-command rollbacks, readable data views and GDPR erasure.
- Snapshots of a player's data on join and before every admin change
- :rollback puts a player back to any snapshot (and can be undone)
- :data shows a readable summary of everything a player has
- Right to Erasure in one command: :erase <userId> confirm
- Scripts can snapshot before risky changes (trades, resets) with one line
Needs: Admin Panel. Settings in GameData: GameData.Features.data_tools.
| Setting | What it is | Starts as |
|---|---|---|
| Snapshot players when they join | On / off | On |
| At most one join snapshot every (hours) | Whole number (1 to 168). So players who rejoin a lot don't push older snapshots out. | 12 |
| Snapshots kept per player | Whole number (1 to 20) | 5 |
| Your own DataStores to erase too | A list: DataStore name per row. Only for DataStores your own scripts made, keyed by the user id (123 or u_123). Game systems' stores are found automatically. | empty |
| Your own OrderedDataStores (leaderboards) to erase too | A list: OrderedDataStore name per row | empty |
| Message when a player's data is being erased | Text (up to 200 characters) | "Your saved data is being deleted, as you asked. You can rejoin in a minute." |
Economy Analytics#
See where every coin comes from and goes, where new players drop off, and how your shop converts, on the Creator Dashboard.
- Every currency change becomes a source or sink on Roblox's Economy dashboard
- An onboarding funnel (first join, first minutes, shop, first purchase, first rebirth)
- Shop and Robux-prompt funnels show how many players go from looking to buying
- Custom events from your scripts or from the design's buttons
- Safe: nothing is sent from Studio, and failures never break the game
Has a part on the player's device. Settings in GameData: GameData.Features.analytics.
| Setting | What it is | Starts as |
|---|---|---|
| Onboarding funnel steps (in order) | A list: Step name, Happens when, Custom event name (custom only) per row. Only brand-new players are tracked, each step once. Put the steps in the order most players do them. | 6 rows |
| Shop screens | A list: Screen per row. Empty = any screen whose name has 'shop' or 'store' in it. | empty |
| Currency reasons not to log (comma separated) | Text (up to 500 characters). Extras that already log their own economy events, and admin fixes that would muddy the numbers. | "daily_reward, level_up, playtime_gift, quest, quest_bonus, admin_give, admin_take, rollback" |
| Design events to log as custom events | A list: Event name per row. Names of the design's Remote actions, like Rebirth or ClaimQuest. | empty |
| Add up small currency changes for (seconds) | Whole number (5 to 300). +1 coin per click becomes one event every 30 seconds, staying inside Roblox's limits. | 30 |
| In Studio, print what would be logged | On / off | On |
Soft Shutdown#
Update your game without kicking anyone: players see an 'Updating...' screen and land in a fresh server.
- Shut down servers for an update and nobody gets kicked
- Players wait a few seconds on a friendly 'Updating...' screen, then come back
- They arrive together in a new server running your latest version
- Teleport errors are retried; Studio is skipped automatically
- Admins can also restart one laggy server with :restartserver
Has a part on the player's device. Settings in GameData: GameData.Features.soft_shutdown.
| Setting | What it is | Starts as |
|---|---|---|
| Message on the updating screen | Text (up to 120 characters) | "The game is updating. You'll be back in a few seconds!" |
| Message when players are back | Text (up to 120 characters) | "The game was updated. Welcome back!" |
| Seconds to wait before sending players back | Whole number (3 to 25). Gives Roblox time to start servers with the new version. | 8 |
| Players in private (VIP) servers | One of: Kick with a friendly message (they rejoin their private server), Move them together to a public server | Kick with a friendly message (they rejoin their private server) |
| Add the :restartserver admin command | On / off. Needs the Admin Panel. Moves everyone in one server to a fresh one. | On |