PcoWSkbVqDnWTu_dm2ix
Collapse Sidebar

PromptPremiumPurchase

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.

See also

  • MarketplaceService/PromptPremiumPurchaseFinished, fires when the Premium purchase UI closes
  • Players/PlayerMembershipChanged, fires when the game server recognizes that a player’s membership has changed

Parameters

Name Type Default Description

The player being prompted to purchase premium

Returns

Return Type Summary

No return


Code Samples


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)