How to Make a Game Pass on Roblox and Sell It for Robux: A Complete Creator Guide
A game pass is the simplest way for a Roblox creator to earn Robux: a one-time purchase that gives players a permanent perk. This guide covers creating it, pricing it, and scripting it so it actually works.
In this guide
What a Game Pass Actually Is Before You Start: The One Requirement Step 1: Create the Pass in the Creator Dashboard Step 2: Put It On Sale and Set the Price Step 3: Make It Actually Do Something — The Script Pricing: What Actually Sells Testing Checklist Before You Announce a Pass Common Mistakes That Leave Passes Unsold Frequently Asked Questions Does creating a game pass cost Robux? Do I need DevEx to sell game passes? Can a player buy the same game pass twice? Can I change a pass's price or take it off sale later? Why does my pass show in the dashboard but not in my game?Every Roblox creator reaches the same moment: the game works, friends play it, and someone asks how to support it. A game pass is the answer most creators reach first. It is a one-time purchase inside your game — a player pays Robux once and keeps the perk forever. No subscriptions to manage, no inventory system to build. But a pass only earns Robux when three things are all done: it is created, it is put on sale, and your game is scripted to recognise it. New creators constantly finish only one or two of those steps, then wonder why nothing sells. This guide does all three, in order.
What a Game Pass Actually Is
A game pass is a product tied to one specific experience. A player buys it with Robux, and from then on your game can check whether they own it and give them something: faster walk speed, a VIP area, double coins, a special tool, or a cosmetic effect. Because the purchase is permanent, players see passes as good value — which is why they are the most common first purchase in small games.
Passes are often confused with two other products. The differences matter, because each one is built for a different job:
| Product | Can a player buy it more than once? | Best for |
|---|---|---|
| Game Pass | No — one purchase, owned forever | Permanent perks: VIP areas, 2x boosts, special tools |
| Developer Product | Yes — bought again and again | Consumables: coins, potions, revives, skips |
| Private Server | Monthly subscription | Playing alone or with chosen friends |
The rule of thumb: if the player should keep it forever, make a pass. If they should run out of it and buy more, that is a Developer Product instead. Mixing the two up is the most common monetisation mistake in beginner games — a "100 coins" pass can only ever be bought once, and a "VIP forever" Developer Product is a perk players accidentally buy five times.
Before You Start: The One Requirement
Your experience must be published before you can create a pass for it — the step that trips up more people than any other, because Studio lets you build for weeks without ever publishing. Publishing does not mean going public: a private experience can have passes. It only means the place exists on Roblox's servers under your account, which is what the pass attaches to.
If you have never published, use File > Publish to Roblox in Studio. Creating the pass itself is free, and you do not need DevEx — that programme only matters later, if you want to convert earned Robux into real money.
Step 1: Create the Pass in the Creator Dashboard
Passes are created on the website, not inside Studio. The path is:
- Go to create.roblox.com/dashboard and sign in with the account that owns the experience.
- Open Creations, select your experience, then open Monetization and choose Passes.
- Click Create Pass.
- Upload a square icon image for the pass — a clear picture of what it gives, not your game's logo. A "2x Coins" pass should show coins, not a landscape.
- Give it a clear name and a short description that says exactly what the buyer gets. "VIP Access — enter the VIP lounge and get a golden name tag" sells; "Cool Pass" does not, because nobody knows what it does.
- Save it. Your pass now exists — but it is not for sale yet, and it does nothing in your game yet.
When the pass is created, note down its Pass ID from the Passes page. You will need that number for the script in Step 3 — copy it by selecting the digits, not by retyping them.
Step 2: Put It On Sale and Set the Price
A pass sits off-sale by default, and this is the step most beginners forget. On the same Passes page, select your pass, open Sales, switch on Item for Sale, set a price in Robux, and save. Until that switch is on, no player can buy it.
On every sale, the split is fixed: you keep 70% and Roblox keeps 30%. So a pass priced at 100 Robux earns you 70 Robux — price for what you keep, not for the sticker number. Do not panic if your balance does not jump the second someone buys: Robux from sales first shows as pending and becomes available after Roblox's holding period. That is normal, not a bug.
You can change the price or take a pass off sale at any time — but you cannot delete a pass once it exists. A bad idea is retired by switching it off sale, so name passes carefully: the name stays in your game's catalogue forever.
Step 3: Make It Actually Do Something — The Script
Creating and pricing the pass means nothing on its own. Your game must check ownership and hand over the perk. That takes one short server script, following the same pattern for almost every pass:
- Put a Script in ServerScriptService.
- Use MarketplaceService to check whether the joining player owns your pass, and give the perk if they do.
- Add a purchase prompt so players who do not own it yet can buy it from inside the game — from a shop button, a sign, or a part they touch.
Here is the core pattern, using a "2x WalkSpeed" perk as the example. Replace the number with your own Pass ID:
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local GAMEPASS_ID = 123456789 -- your Pass ID
local function givePerk(player)
local character = player.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = 32 -- normal speed is 16
end
end
end
Players.PlayerAdded:Connect(function(player)
-- grant the perk on join
local ownsPass = false
pcall(function()
ownsPass = MarketplaceService:UserOwnsGamePassAsync(player.UserId, GAMEPASS_ID)
end)
if ownsPass then
player.CharacterAdded:Connect(function()
givePerk(player)
end)
if player.Character then
givePerk(player)
end
end
end)
-- buy prompt when a player touches the part
workspace.BuySpeedPass.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
pcall(function()
MarketplaceService:PromptGamePassPurchase(player, GAMEPASS_ID)
end)
end
end)
-- grant the perk after a successful purchase
MarketplaceService.PromptGamePassPurchaseFinished:Connect(function(player, gamePassId, wasPurchased)
if wasPurchased and gamePassId == GAMEPASS_ID then
givePerk(player)
end
end)
Three details in that script are where beginner scripts break. First, the ownership check is wrapped in pcall: if Roblox's marketplace service hiccups, a failed check must not crash your whole script. Second, the perk is given on CharacterAdded as well as on join, because a player respawns with a fresh character — a perk applied only once at join vanishes the first time they reset. Third, the prompt asks and the "finished" event confirms — only the event should hand over the perk. Giving it when the prompt opens is how players get things for free.
Test this with a second account, not just your own: as the game's owner, your own testing can hide problems real buyers hit. Buy the pass on the test account, rejoin, and check the perk is there — then reset your character to confirm it survives respawning.
Pricing: What Actually Sells
There is no magic price, but these patterns hold up across thousands of small games:
- Price the perk, not the effort. Players pay for what the pass does for them. A pass that doubles all coins forever is worth more than a pass that changes your hat colour, however long the hat took to draw.
- Start low and raise later. A first pass at 25–100 Robux shows whether anyone wants it at all. A 1,000 Robux pass in a game with ten players teaches you nothing except that nobody bought it.
- Keep a price ladder. One cheap pass (a small boost), one mid-range pass (a real perk), one premium pass (VIP status). Players who would never buy the premium pass often buy the cheap one, and some come back for more.
- Never sell power that ruins the game. A pass that makes one player unbeatable empties your servers. The best-selling passes are convenience and status: faster progress, exclusive areas, cosmetic effects.
Testing Checklist Before You Announce a Pass
- The pass is on sale in the Creator Dashboard — the switch is on, the price is set.
- The Pass ID in your script matches the dashboard exactly.
- A test account that does not own the pass sees the purchase prompt.
- After buying, the perk appears immediately, without rejoining.
- After resetting the character, the perk is still there.
- After rejoining the game, the perk is still there.
- Players who have not bought it do not get the perk.
Run all seven — skipping one is how a pass launches broken and earns complaints instead of sales.
Common Mistakes That Leave Passes Unsold
- Forgetting the sale switch. The pass exists, the script works, but nobody can buy it because it was never put on sale.
- Forgetting the script entirely. Players buy a pass that does nothing, ask for refunds, and never trust your shop again.
- Wrong Pass ID. One mistyped digit means the script checks a pass nobody owns.
- Vague names and icons. Players cannot buy what they cannot understand in two seconds.
- Selling a consumable as a pass. Coins, potions and revives should be Developer Products. A one-time pass for a consumable stops selling the moment everyone owns it.
- Announcing before testing. A broken launch is worse than a late launch. Test first, announce second.
Frequently Asked Questions
Does creating a game pass cost Robux?
No. Creating, naming and uploading a pass icon are all free. Robux only enters the picture when players buy — and then you earn, not spend.
Do I need DevEx to sell game passes?
No. Any creator with a published experience can sell passes and earn Robux. DevEx is only needed if you later want to exchange that Robux for real money.
Can a player buy the same game pass twice?
No. A pass is a one-time purchase — if an owner opens the prompt again, Roblox tells them they already own it instead of charging them again.
Can I change a pass's price or take it off sale later?
Yes to both, from the same Sales settings. Existing owners keep their perk either way.
Why does my pass show in the dashboard but not in my game?
Almost always one of three things: the sale switch is off, the Pass ID in your script does not match, or the script is in the wrong place (it must be a server Script in ServerScriptService, not a LocalScript). Check those in that order.
A game pass is not a lottery ticket; it is a small product, and it behaves like one. Make something players genuinely want, price it honestly, script it carefully, and test it before you announce it. Do that once, and the second pass takes half the time.