Creating a Roblox Pass Actually Works Differently Than People Think
Roblox doesn't have a feature called a "pass" in the way most new creators assume it works. What people mean when they ask about creating a pass is almost always Game Pass or Developer Product setup through Roblox Studio or the website dashboard. This causes constant confusion, and I've seen enough people waste days trying to find a "pass" button that doesn't exist anywhere in the interface. Game Passes are one-time purchases that grant permanent benefits or abilities within a specific experience. Developer Products are repeatable purchases — consumables, currency boosts, temporary power-ups. The distinction matters because it determines your entire creation workflow and how you script them into your game. Most beginners build developer products when they actually need game passes, and the reverse is equally common.
How To Create A Pass On Roblox
You need two things before anything else: a Roblox account in good standing (no strikes on your record) and at least 100 Robux. The 100 Robux is the publishing fee for a Game Pass, and it's taken immediately — not refunded if you change your mind. I learned this the hard way after I published three test passes I was going to delete and lost 300 Robux before realizing the refund policy is basically nonexistent for this particular action. Here is the actual sequence that works, assuming you're creating a Game Pass: Open Roblox Studio and load your experience, or navigate to develop.roblox.com from a desktop browser. Mobile won't work for this and you'll just spin your wheels. On the web version, click the Experience ID from your dashboard or launch Studio with your project open. Navigate to the Monetization section in the settings panel. Click Add Game Pass. A form opens where you upload an image — this is where most people mess up. The image needs to be exactly 512x512 pixels or it gets rejected. Not close. Exactly. I spent twenty minutes debugging why my pass wouldn't publish before I realized I'd uploaded a 512x510 crop from Photoshop because I'd misread the dimension order.
Fill in the name, description, and price. The price needs to be set in Robux. There are suggested tiers — 25, 100, 499, 999, 1999, and 4999 — but you can type any whole number up to the cap, which shifts depending on your developer status and experience metrics. Standard developers hit a much lower ceiling than experienced ones with a 30% revenue share agreement. Once you hit publish, the Game Pass appears in your experience's data model but isn't publicly available until you publish the experience itself. This is another step people skip. Your Game Pass exists in a kind of limbo state until you click Publish on your world from Studio or from the website dashboard. After that, it shows up in the game's item catalog page. For Developer Products, the process is nearly identical except you select Developer Product instead of Game Pass. The naming and pricing fields work the same. The critical difference is in scripting — Game Pass purchases trigger a PlayerPurchased event in your scripts, while Developer Products use the ProcessReceipt callback in a ServerScriptService script. These are two different architecture patterns, and mixing them up breaks your purchase flow entirely.
Get the Full Details

Here is a minimal example of what the receipt handler looks like for a developer product, because this is where everything usually falls apart for new developers: In a script inside ServerScriptService: local MarketplaceService = game:GetService("MarketplaceService")
function MarketplaceService.ProcessReceipt(receiptInfo) local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId) if not player then return Enum.ProductPurchaseDecision.NotProcessedYet end
if receiptInfo.ProductId == YOUR_PRODUCT_ID_HERE then -- grant the item or currency here return Enum.ProductPurchaseDecision.PurchaseGranted

end end MarketplaceService.ProcessReceipt = MarketplaceService.ProcessReceipt
If you skip the NotProcessedYet return at the top, the player gets charged repeatedly every time they reconnect or the server resets. This happens more often than you'd think, especially on experiences with frequent map rotations or place teleports between levels. I've lost track of the number of beginner games I've seen where players complain about being charged three or four times for a single purchase because the developer didn't handle reconnection edge cases properly. The other thing nobody warns you about: Roblox takes a 30% cut on all monetization revenue, and the remaining 70% goes into DevEx payout eligibility only after you hit 30,000 Robux accumulated and meet the DevEx requirements including age verification and tax form submission. If you're working in a group, the payout distribution is handled differently and requires the group owner to authorize transfers. I once tried to withdraw earnings from a group account and got stuck in a two-week verification loop because the group's creator had passed their account to someone else without updating the ownership records properly. Sometimes you also run into the issue where a Game Pass or Developer Product simply will not show up in-game despite being published. This usually means your experience has a privacy setting that blocks the monetization UI, or you have the experience set to private and only friends can access it. Check your experience settings under Publishing first. The error is silent — Roblox doesn't give you a red warning, it just doesn't render the purchase prompt.
There are legitimate alternatives to consider depending on your goals. If you're trying to sell something that gives limited-time benefits rather than permanent ones, you can use game passes with an expiration timer built into your script instead of Developer Products. Some developers use both simultaneously — a game pass for a permanent rank or badge and a developer product for a one-time currency boost — which works fine as long as your scripts handle both event types cleanly. Just be aware that having too many monetization options in a single experience tends to lower conversion rates because players face decision paralysis. My best-performing experience had exactly two monetization options and pulled in significantly more per active user than my attempts with five or six different passes and products. If you're building something more complex, like a marketplace where players can trade items with each other and you're taking a platform fee, Game Passes and Developer Products alone won't handle that. You'd need to build a separate shop system using DataStores to track ownership, or look into Roblox's newer Catalog API features that let you create catalog items tied to your experience. Those features have their own approval requirements and aren't available to all developers yet. The core takeaway is that creating a pass on Roblox is straightforward if you follow the exact steps and understand which type of pass serves your use case. The hard part comes after publishing — the scripting, the edge cases, the payout process, and the ongoing maintenance when Roblox updates their API. Plan for that second half before you spend your first 100 Robux on a test pass you might need to delete.
