Paid access lets you charge users a one-time fee in their local currency to access a game. If their local currency isn't available, they're charged in USD. Users who purchase access continue to have access to the game even if you increase the price later or disable paid access.
Eligibility
To charge users for paid access in local currency, you must:
- Have a verified email address.
- Be 13 years of age or older with a verified ID.
- Reside in a country supported by Tipalti. See Payment methods coverage for a list of eligible countries.
Pricing
When you charge for paid access in local currency, you earn a percentage of the price you set, called a developer revenue share. For example, if you set the price to $49.99 USD, you receive 70% of the proceeds, minus certain fees like taxes and VAT.
The revenue share follows three price points:
| Computer & web price1 | Developer share |
|---|---|
| $9.99 | 50% |
| $29.99 | 60% |
| $49.99 | 70% |
You can change your revenue share price point, switch to paid access in Robux, or make your game free to play any time using the Creator Hub.
Refunds
Users have 48 hours to request a refund after purchasing a paid access game in their local currency. After they receive their refund, they no longer have access to the paid game.
Refunds aren't available after 48 hours.
Set up your account to receive payouts
You must set up a Tipalti account to receive payouts for purchases of paid access in local currency. To set up a Tipalti account:
- In the Creator Hub, go to Creations and select a game.
- Go to Audience ⟩ Access Settings.
- Under Payment, select Send Request.
- Enter your legal first and last name.
Within 5 to 8 business days of submitting your payment information, Tipalti sends you an email with instructions on how to create an account and submit your tax and banking information. Tipalti then verifies your documents and confirms your account has been successfully set up.
Local currency earnings from paid access purchases are held in escrow for a minimum of 60 days, and paid out and deposited into your account once a month. You can't access your earnings outside of the payout schedule.
Enable paid access in the Creator Hub
To enable paid access in the Creator Hub:
- Go to Creations and select a game.
- Go to Audience ⟩ Access Settings.
- Under Payment, select Requires Local Currency and then select one of the available revenue share tiers.
- Under Devices, select which devices you want to enable paid access for. Desktop devices are automatically enabled.
- Click Save Changes.
Enable paid access in Roblox Studio
To enable paid access in Roblox Studio:
- Open Studio's File ⟩ Experience Settings window.
- Under Monetization, click Configure on Creator Hub.
- Follow the steps to enable paid access in the Creator Hub.
View transaction history
To view your transaction history for local currency paid access purchases:
- In the Creator Hub, go to Finances ⟩ Transactions.
- Select Paid access in local currency. The transaction table displays the date of the transaction, the user who made the purchase, the game name, how much the user paid, and the user's refund status.
Demo mode
Demo mode lets users try your paid access experience before purchasing it. When demo mode is enabled, any user can join your experience even if they haven't paid for access. You can then use scripting to detect whether a user owns the experience and tailor their gameplay accordingly, for example by limiting access to certain areas or features until they purchase.
Enable demo mode
On the Access Settings page for your experience, toggle Enable Demo Mode on under the local currency payment section.
Control the demo experience in scripts
Use MarketplaceService:PlayerOwnsAssetAsync() to check whether a user has purchased access to your experience. Users who haven't purchased access are in demo mode, and you can limit what content they can see or interact with.
The following code sample shows how to gate content behind a purchase check:
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local PLACE_ID = game.PlaceId
local function onPlayerAdded(player: Player)
local success, ownsAccess = pcall(function()
return MarketplaceService:PlayerOwnsAssetAsync(player, PLACE_ID)
end)
if success then
if ownsAccess then
-- Grant full access to the experience
else
-- Player is in demo mode: show limited content or
-- prompt them to purchase
end
else
warn("Failed to check ownership for", player.Name)
end
end
Players.PlayerAdded:Connect(onPlayerAdded)Policies
Paid access games in local currency must:
- Follow the Community Standards and Terms of Use.
- Be public and available to all users.
- Provide buyers with access to the entire game.
- Not give buyers access to content or items from other games.
- Not have private servers.
- Not be spam, contain scams, repeat existing games, or be an empty game.
- Not require users to pay Robux to access additional parts of the game. Users must be able to access the entire game they have purchased. Microtransactions for items inside the game, like passes or developer products, are allowed.
- Not allow users to download copies of any places within the game. Copying a game is automatically disabled when you enable paid access.
- Run properly and be playable. If a large number of users reports that a game is broken, the game might be quarantined and earnings still in escrow refunded to users.
Violating these policies can result in loss of access to the paid access feature, removal of content, or suspension of your Roblox account.