Used to prompt a user to purchase Premium. If the user is already premium, the user will receive an error message “You are already subscribed to Roblox Premium! Please try again.”
To learn more about and incorporating Premium into your game, and monetizing your game with the Premium Payout system, take a look at this article.
MarketplaceService/PromptPremiumPurchaseFinished, fires when the Premium purchase UI closes
Players/PlayerMembershipChanged, fires when the game server recognizes that a player’s membership has changed
The player being prompted to purchase premium
Prompt Premium Purchase
The following code will prompt a user to purchase Premium when their avatar touches the part that its containing
Script is attached to, such as a teleporter that allows access to a Premium-only area.
local MarketplaceService = game:GetService("MarketplaceService") local TeleportService = game:GetService("TeleportService") local Players = game:GetService("Players") local teleporter = script.Parent local showPrompt = true local placeID_Premium = 012345678 local function onTeleporterTouch(otherPart) local player = Players:GetPlayerFromCharacter(otherPart.Parent) if not player then return end -- If the user already has Premium, teleport them to the Premium-only place if player.MembershipType == Enum.MembershipType.Premium then TeleportService:Teleport(placeID_Premium, player) -- Else, prompt Premium upgrade (use debounce to show it only once every few seconds) else if showPrompt == false then return end showPrompt = false delay(5, function() showPrompt = true end) MarketplaceService:PromptPremiumPurchase(player) warn("Prompted Premium purchase") end end teleporter.Touched:Connect(onTeleporterTouch) -- If needed, use this event to know when the Premium modal is closed MarketplaceService.PromptPremiumPurchaseFinished:Connect(function(player) warn("Premium modal closed") end) -- Handle potential Premium purchase from outside the game while user is playing Players.PlayerMembershipChanged:Connect(function(player) warn("Player membership changed; new membership is " .. tostring(player.MembershipType)) if player.MembershipType == Enum.MembershipType.Premium then -- Teleport player to the Premium-only place TeleportService:Teleport(placeID_Premium, player) end end)