Roblox Plus

Roblox Plus gives you additional ways to earn from your games by rewarding engagement and purchases from Plus subscribers.

Users who subscribe to Plus get a range of benefits to enhance their purchasing power, access, and overall game on the platform:

  • Discounted purchases: Subscribers get 10% off eligible purchases, including in-game items, avatar items, and more. The discount increases to 20% starting in the third month. Roblox covers this discount for you.
  • Free paid private servers: Subscribers get access to paid private servers at no cost. You're still compensated when they spend time in your paid private servers.
  • Free Robux transfers: Subscribers can transfer Robux at no cost to sender or recipient. Transfers are subject to age restrictions and parental consent. Robux received through transfers are not eligible for the DevEx program.
  • Marketplace access: Subscribers can trade and resell limited items, and publish and sell avatar items. Premium subscribers have the same Marketplace access.

For more information about the benefits of Roblox Plus to end-users, see the help center.

As a creator, you can earn from Roblox Plus subscribers through:

  • In-game Robux purchases: Subscribers receive a 10–20% discount on purchases, which is covered by Roblox so that your earnings per purchase are not reduced. Lower prices can encourage more frequent purchases, helping increase your overall revenue.
  • Driving Plus sign-ups: Encourage engaged users to subscribe to Roblox Plus directly from your game using PromptRobloxSubscriptionPurchase. You can earn up to 750 Robux for each new subscriber you bring in, with earnings starting once the subscription becomes paid (free trial periods are not included).
  • Time spent in paid private servers: Earn up to 100 Robux per subscriber when they spend at least 60 minutes in your paid private servers each month.
  • In-game Robux transfers: Earn 10% every time a Plus subscriber sends Robux to another user within your game using PromptRobuxTransferAsync. This amount is eligible for the DevEx program.

Earn from in-game purchases

With Roblox Plus, users receive a 10–20% discount on eligible Robux purchases. Because Roblox subsidizes these discounts, you earn the same amount per purchase as you would from non-subscribers. At the same time, lower prices for Plus subscribers can encourage more frequent purchases and increase your overall revenue.

Subscribers receive a 10% discount for their first two months, which increases to 20% starting in the third month. If a user cancels their Plus subscription and later resubscribes, their discount resets to 10% and increases again after two months.

Eligible Robux purchases include:

  • Developer products
  • Game passes
  • Developer subscriptions
  • Paid access games
  • Avatar items

Discounts do not apply to:

  • Items priced above 1,000,000 Robux
  • Marketplace publishing fees
  • Ad credits
  • Group fees

The following table shows how Roblox Plus discounts are subsidized by Roblox.

User typeItem price in RobuxUser spendRoblox subsidyCreator earningsEffective revenue share
Non-subscriber1001007070%
Plus subscriber (10% discount)10090107078%
Plus subscriber (20% discount)10080207088%

Earn from in-game Plus subscriptions

You can encourage users to subscribe to Roblox Plus directly from your game with PromptRobloxSubscriptionPurchase. For each user who becomes a subscriber through your game, you earn 250 Robux per month for their first three consecutive months, with up to 750 Robux for every newly acquired subscriber.

Any earnings are subject to a 60-day holding period.

To offer Plus subscriptions within your game and grant rewards to users:

  1. Detect when the user reaches the point in your game where you want to offer the Plus subscription.
  2. Check whether the user already has an active Plus subscription with HasRobloxSubscription.
  3. If the user is already a subscriber:
    1. Grant them the reward immediately.
  4. If the user isn't a subscriber:
    1. Prompt them to purchase Roblox Plus with PromptRobloxSubscriptionPurchase.
    2. Listen to PromptRobloxSubscriptionPurchaseFinished to detect when the purchase prompt UI has closed.
    3. Confirm the Plus subscription on the server with HasRobloxSubscription through the GetPropertyChangedSignal before granting any rewards. This event verifies that the user's Plus subscription status has actually changed.

Examples

The following examples show how to work with Roblox Plus in your game, including retrieving discount information, checking subscription status, prompting users to subscribe, and handling the purchase flow.

Example 1

Print Roblox Plus discount information for a game pass.


local MarketplaceService = game:GetService("MarketplaceService")
local PASS_ID = 12345678
local DiscountTypeDisplay = {
RobloxPlusSubscription = "Roblox Plus Discount",
}
local productInfo = MarketplaceService:GetProductInfoAsync(PASS_ID, Enum.InfoType.GamePass)
print(string.format("Original Price: %d", productInfo.UserBasePriceInRobux))
for _, discount in ipairs(productInfo.PriceDiscountDetails) do
local displayName = DiscountTypeDisplay[discount.Type] or "Other Discount"
print(string.format("%s (%d%%): -%d", displayName, discount.Percent, discount.AmountInRobux))
end
print(string.format("You Pay: %d", productInfo.PriceInRobux))
Example 2

Check whether a user has an active Roblox Plus subscription and perform actions based on their subscription status.


local MarketplaceService = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
local success, details = pcall(function()
return MarketplaceService:GetRobloxSubscriptionDetailsAsync(player)
end)
if success and details.IsSubscribed then
-- Check the length of the user's Plus subscription
local threeMonths = 90 * 24 * 60 * 60
if details.StartTime and (os.time() - details.StartTime.UnixTimestamp) > threeMonths then
print("Awarding the '3-Month Subscription Veteran' skin!")
end
-- Check if user subscribed through the game
if details.IsOriginExperience then
print("Attribution confirmed: User subscribed via this game.")
else
print("User subscribed elsewhere: Website or another game.")
end
end
Example 3

Prompt users to subscribe to Plus and handle the purchase flow in your game.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local teleporter = script.Parent
local showModal = true
local EXCLUSIVE_AREA_POSITION = Vector3.new(1200, 200, 60)
-- Grant the reward and teleport the subscribing user to the exclusive area
local function grantRewardAndTeleport(player)
player:RequestStreamAroundAsync(EXCLUSIVE_AREA_POSITION)
local character = player.Character
if character and character.Parent then
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(EXCLUSIVE_AREA_POSITION))
end
end
-- Detect when the character touches the teleporter
teleporter.Touched:Connect(function(otherPart)
local player = Players:GetPlayerFromCharacter(otherPart.Parent)
if not player then
return
end
if not player:GetAttribute("CharacterPartsTouching") then
player:SetAttribute("CharacterPartsTouching", 0)
end
player:SetAttribute("CharacterPartsTouching", player:GetAttribute("CharacterPartsTouching") + 1)
if player.HasRobloxSubscription then
-- User already has Roblox Plus; grant the reward immediately
grantRewardAndTeleport(player)
else
-- Prompt Roblox Plus subscription
if not showModal then
return
end
showModal = false
task.delay(5, function()
showModal = true
end)
MarketplaceService:PromptRobloxSubscriptionPurchase(player)
end
end)
-- Detect when the character exits the teleporter
teleporter.TouchEnded:Connect(function(otherPart)
local player = Players:GetPlayerFromCharacter(otherPart.Parent)
if player and player:GetAttribute("CharacterPartsTouching") then
player:SetAttribute("CharacterPartsTouching", player:GetAttribute("CharacterPartsTouching") - 1)
end
end)
-- Grant the reward when the server confirms a membership change
-- Connect HasRobloxSubscription change for each player
Players.PlayerAdded:Connect(function(player)
player:GetPropertyChangedSignal("HasRobloxSubscription"):Connect(function()
if player.HasRobloxSubscription
and player:GetAttribute("CharacterPartsTouching")
and player:GetAttribute("CharacterPartsTouching") > 0
then
grantRewardAndTeleport(player)
end
end)
end)
Example 4

Detect when the user closes the purchase prompt UI.


local MarketplaceService = game:GetService("MarketplaceService")
local function onPromptRobloxSubscriptionPurchaseFinished(player, didTryPurchasing)
if didTryPurchasing then
-- User attempted to subscribe; wait for HasRobloxSubscription change to confirm
print(player.Name, "attempted to subscribe to Roblox Plus")
else
print(player.Name, "closed the Roblox Plus subscription prompt without purchasing")
end
end
MarketplaceService.PromptRobloxSubscriptionPurchaseFinished:Connect(onPromptRobloxSubscriptionPurchaseFinished)

Earn from paid private server time

Roblox Plus subscribers can create paid private servers for free. To make sure that you can still earn from these servers, Roblox compensates you based on the time Plus subscribers spend in the paid private servers they create within your game.

Payouts are based on the time a Plus subscriber spends in paid private servers they create themselves. This means that if a Plus subscriber invites another Plus subscriber to a paid private server, you do not earn from the invited player.

On the Plus subscription renewal day, Roblox evaluates paid private server usage over the previous 30 days for that subscriber. This evaluation occurs even if the subscriber cancels Plus instead of renewing. Roblox then determines the top five paid private servers the subscriber created within your game, based on the amount of time they spent in each server during that period, with a minimum of 60 cumulative minutes.

If a Plus subscriber (including a subscriber on a Free Plus Trial) spends at least 60 cumulative minutes over the last 30 days in a paid private server they created within your game, you can earn up to 100 Robux per user per server based on the server price.

In the following example, Servers A, B, and C qualify because the Plus subscriber spent at least 60 minutes in each server during the last 30 days. Servers D and E don't qualify because they don't meet the 60-minute threshold. If all five servers (A–E) belong to the same game and represent the top five servers the subscriber spent time in, the creator earns a total of 205 Robux across the qualifying servers.

Game's paid private serverServer priceCumulative time (30 days prior to renewal)Creator earnings
Server A100 Robux120 minutes70 Robux (70% revenue share on a 100 Robux server price)
Server B200 Robux80 minutes100 Robux (70% revenue share on a 200 Robux server price, capped at 100 Robux)
Server C50 Robux70 minutes35 Robux (70% revenue share on a 50 Robux server price)
Server D60 Robux15 minutesNot eligible (less than 60 minutes)
Server E70 Robux10 minutesNot eligible (less than 60 minutes)

Earn from Robux transfers

Robux transfers allow Plus subscribers to send Robux directly to other users. You can implement the Transfers API to prompt these transfers within your game and earn a share of each transfer.

When a Plus subscriber initiates a transfer prompted by PromptRobuxTransferAsync inside your game, you receive 10% of the transfer amount. For example, if a subscriber transfers 100 Robux to another user, the recipient receives 90 Robux (90%) and your game receives 10 Robux (10%).

Robux your game earns from transfers is eligible for the DevEx program. Roblox does not take a fee from these transfers.

For more information about implementing Robux transfers within your game, see Robux transfers.

Track your Plus earnings

You can track your earnings from users who subscribe to Roblox Plus through your in-game prompts, Robux transfers using the Transfers API, and time spent by Plus subscribers in your paid private servers, whether they join from within your game or outside of it.

To see a detailed breakdown of your Plus subscription incentives:

  1. In Creator Hub, go to Creations and select a game.
  2. Go to MonetizationRoblox Plus.
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.