Roblox Developer Products: Complete Guide to Repeatable Purchases
Developer products are the backbone of recurring revenue on Roblox. Unlike game passes, players can buy them over and over, making them the most powerful monetization tool for any game that uses consumable items, currency packs, or temporary boosts.
Developer products are one of the two primary ways to sell items directly to players inside a Roblox game. While game passes handle one-time permanent purchases, developer products handle everything repeatable. Every time a player buys an in-game currency pack, uses a temporary speed boost, or pays for extra lives, a developer product is processing that transaction behind the scenes.
If your game has any form of consumable content — anything a player can use up and want more of — developer products are the tool you need. Understanding how to create, script, and price them correctly is essential for any developer serious about monetization.
What Are Developer Products on Roblox?
A developer product is a purchasable item inside a Roblox experience that can be bought multiple times by the same player. Each purchase triggers a server-side callback that your script handles, delivering whatever benefit the product represents. Unlike game passes, developer products do not persist automatically between sessions — your code decides what happens when a player buys one.
Every developer product has a name, description, icon, and price in Robux. The product itself is just a container with an ID number. All of the actual functionality — granting currency, activating a boost, respawning a character — lives in your server scripts. You can create as many products as your game needs through the Roblox Creator Hub, and there is no limit on how many times a single player can purchase the same product.
Developer Products vs Game Passes
The fundamental difference is simple: a game pass is bought once and owned forever, while a developer product can be bought again and again. A game pass for a 2x speed multiplier gives the player that boost permanently. A developer product for a 2x speed boost might last 10 minutes, and the player can buy it again whenever it expires.
Key Differences Between Developer Products and Game Passes
- Game passes are one-time purchases; developer products are repeatable
- Game passes persist automatically across sessions; developer product effects must be managed by your scripts
- Game passes appear on your experience's store page; developer products are typically prompted in-game
- Game passes are ideal for permanent perks; developer products are ideal for consumables and currency
- Game passes have a built-in ownership check; developer products require ProcessReceipt handling
Most successful games use both. Game passes handle the permanent upgrades like VIP access and multipliers, while developer products handle the consumable economy — currency packs, temporary boosts, extra lives, and loot boxes. Together they create a complete monetization system where players can make both long-term investments and impulse purchases.
Common Uses for Developer Products
Currency packs. The most common developer product is an in-game currency pack. Players exchange Robux for your game's custom currency — coins, gems, cash, or whatever fits your theme. Currency packs work in every genre and create a natural recurring purchase loop because players always need more currency as they progress.
Temporary boosts. Speed boosts, damage multipliers, XP doublers, and luck modifiers that last for a set duration are highly effective. Players experience the benefit immediately and feel motivated to repurchase when the timer runs out. Boosts work especially well in simulator and tycoon games.
Extra lives and respawns. In obby games, horror games, and any experience with a fail state, selling extra lives as developer products is a proven strategy. The emotional urgency of losing progress makes these convert at high rates.
Loot boxes and random rewards. Developer products can power randomized reward systems where players pay for a chance to receive rare items, pets, or cosmetics. These tap into the excitement of chance-based rewards and generate high repeat purchase rates.
Skips and unlocks. Stage skips in obbies, wave skips in tower defense games, and instant unlocks in tycoons all work as developer products. These let impatient players bypass content they find frustrating while keeping the free experience intact.
How to Create Developer Products in Creator Hub
Creating developer products is done through the Roblox Creator Hub at create.roblox.com. The process takes only a few minutes per product, but getting the name, description, and pricing right matters for conversion rates.
Step-by-Step: Creating a Developer Product
- Open the Roblox Creator Hub and sign in with your developer account
- Navigate to your experience and select it from the Creations dashboard
- Click on Associated Items in the left sidebar, then select Developer Products
- Click the Create a Developer Product button
- Enter a clear, descriptive name that tells players exactly what they are buying
- Write a short description explaining the benefit and any details like duration or quantity
- Upload a 150x150 pixel icon image that visually represents the product
- Set the price in Robux and save the product
- Note the Product ID for use in your scripts
Each product receives a unique numeric ID that you reference in your Luau scripts. Keep all your product IDs organized in a module script so they are easy to maintain. Renaming or repricing a product does not change its ID, so your scripts continue to work without modification.
Scripting Developer Products with MarketplaceService
All developer product functionality runs through MarketplaceService. There are two essential parts: prompting the purchase and processing the receipt. To prompt a purchase, call MarketplaceService:PromptProductPurchase(player, productId) from a script. This opens the native Roblox purchase dialog showing the product details. The player then confirms or cancels.
The critical piece is the ProcessReceipt callback. This is a function you assign to MarketplaceService.ProcessReceipt that Roblox calls every time a purchase completes. Your function receives a receiptInfo table containing the player's UserId, the ProductId, and a PurchaseId. Your code must grant the purchased benefit and then return Enum.ProductPurchaseDecision.PurchaseGranted to confirm the transaction. If your function returns anything other than PurchaseGranted or errors out, Roblox retries the callback in future sessions until it succeeds — a safety mechanism that prevents players from losing purchases.
ProcessReceipt Best Practices
Rules for Reliable Receipt Processing
- Always process receipts in a server Script, never in a LocalScript — server authority prevents exploitation
- Save purchase data to a DataStore before returning PurchaseGranted to prevent data loss on crashes
- Check whether the player is still in the game before granting benefits
- Use the PurchaseId to track processed receipts and avoid granting duplicates
- Wrap your processing logic in pcall to catch errors gracefully
- Keep the ProcessReceipt function simple and fast to avoid timeout issues
A common architecture is to create a dictionary that maps each product ID to a handler function. When ProcessReceipt fires, you look up the product ID and call the corresponding handler. This keeps your code organized and makes it easy to add new products without modifying core receipt processing logic.
Pricing Strategy and Tiered Packs
Pricing developer products is different from pricing game passes because players buy them multiple times. Each repurchase must feel like a good deal. The most effective approach is tiered pricing for currency packs — offer multiple sizes where larger packs provide better per-unit value.
Example Currency Pack Tiers
- Starter Pack: 100 coins for 25 Robux (4 coins per Robux)
- Value Pack: 500 coins for 99 Robux (5.05 coins per Robux)
- Mega Pack: 1,200 coins for 199 Robux (6.03 coins per Robux)
- Ultra Pack: 3,000 coins for 399 Robux (7.52 coins per Robux)
The improving coins-per-Robux ratio incentivizes players to buy larger packs while keeping the entry-level option accessible. The cheapest tier serves as a trial purchase that gets players comfortable with spending. For temporary boosts, price them low enough that players view them as impulse purchases — a 10-minute 2x XP boost at 15 to 25 Robux feels trivial to buy, and the volume of repeat purchases more than compensates for the low individual price.
Understanding the Revenue Split
Roblox takes approximately 30 percent of every developer product sale. If a player spends 100 Robux on your product, you receive roughly 70 Robux. When planning your pricing, always calculate net revenue after this platform fee. Factor it into your economy design so that your currency values and product pricing produce sustainable margins.
To convert earned Robux into real currency, you use the Developer Exchange (DevEx) program, which has its own conversion rate and eligibility requirements. The path from a player buying your developer product to money in your bank account goes through two layers: the marketplace fee and the DevEx exchange rate. Understanding both is essential for realistic revenue projections.
Prompting Purchases at the Right Moment
When and how you prompt a purchase has a massive impact on conversion rates. The best prompts appear at moments when the player already feels the need for what you are selling. A currency pack prompt after a player tries to buy something they cannot afford converts far better than a random popup during gameplay.
High-Conversion Prompt Timing
- When a player lacks enough currency to afford something they want
- Immediately after a player dies or fails a challenge
- When a boost expires and the player was actively benefiting from it
- At the start of a new session through a daily deals shop
- After the player completes a milestone and wants to accelerate
Avoid prompting purchases aggressively. Players who feel bombarded will leave your game entirely. Never interrupt active gameplay with unsolicited prompts. Instead, make purchase options accessible through in-game shops and contextual menus that players open voluntarily.
Common Mistakes to Avoid
Not implementing ProcessReceipt. If you create developer products but never assign the ProcessReceipt callback, players complete purchases and receive nothing. Roblox retries the callback, but if your code never handles it, the purchase is effectively lost.
Processing receipts on the client. Running purchase logic in a LocalScript is a security vulnerability. Exploiters can manipulate client scripts to grant themselves items without paying. All receipt processing must happen in a server Script.
Granting benefits before saving data. If your script grants currency but the server crashes before saving, the player loses their purchase. Save to your DataStore first, confirm the save, then return PurchaseGranted.
Overpricing consumables. Consumable products need to feel worthwhile every time. A player who regrets a currency pack purchase will never buy again. Price conservatively and rely on volume from repeat buyers.
Making the game unplayable without purchases. If your game feels broken without spending Robux, players leave before buying anything. Design the free experience first, then add purchasable enhancements on top.
Maximizing Long-Term Revenue
The games that earn the most from developer products have deep game loops and strong player retention. A player who returns daily for months makes far more repeat purchases than someone who visits once. Every design decision that improves retention — daily rewards, progression systems, social features — directly increases developer product revenue.
Track which products sell using Roblox's analytics dashboard. If a boost barely sells, experiment with the price, duration, or prompt timing. Consider limited-time developer products tied to seasonal events to create urgency. Developer products turn a single game into an ongoing business by giving players reasons to spend again and again. Start with a simple currency pack, implement ProcessReceipt correctly, and expand your catalog as you learn what your players value most.
Frequently Asked Questions
Can players refund developer product purchases on Roblox?
Players cannot directly refund developer product purchases through Roblox. Once a transaction is confirmed and your ProcessReceipt callback returns PurchaseGranted, the sale is final. However, Roblox support may issue refunds in exceptional cases involving unauthorized purchases. Design your products so that players feel they received fair value to avoid complaints.
Is there a limit to how many developer products a game can have?
There is no hard limit on the number of developer products you can create for a single experience. Most successful games keep their product catalog between 5 and 20 products covering currency tiers, boosts, and consumables.
Do developer products work in private servers?
Yes, developer products function normally in private servers. Players can purchase and use developer products in any server type, including private and reserved servers. Your ProcessReceipt callback fires the same way regardless of server type.
Can I change the price of a developer product after launch?
Yes, you can change the price at any time through the Creator Hub. The new price applies to all future purchases immediately. Past purchases are not affected. Frequent price changes can confuse players, so adjust pricing thoughtfully.
What happens if a player buys a developer product and the server crashes?
Roblox handles this through the ProcessReceipt retry system. If your server crashes or fails to return PurchaseGranted, Roblox retries the receipt the next time that player joins any server running your game. Always save purchase data to a DataStore to prevent loss during retries.