I have a textbutton and you click it and its supposed to open a frame ONLY if you have a gamepass, but it doesnt work? Why not though..
local frame = script.Parent.Parent.Parent.TeleportFrame local player = game.Players.LocalPlayer local id = 7617401 script.Parent.MouseButton1Click:Connect(function() if game:GetService("MarketplaceService"):PlayerOwnsAsset(player, id) then frame.Visible = not frame.Visible else game:GetService("MarketplaceService"):PromptGamePassPurchase(player, id) end end)
You should be using this function https://developer.roblox.com/en-us/api-reference/function/GamePassService/PlayerHasPass
The DevHub for PlayerOwnsAsset
strictly says not to use it with GamePasses.
use UserOwnsGamePassAsync
script.Parent.MouseButton1Click:Connect(function() local id = YOUR_ID_HERE game:GetService("MarketplaceService").PromptGamePassPurchaseFinished:Connect(function(plr,ido,purchased) if purchased and ido == id then script.Parent.Parent.Parent.TeleportFrame.Visible = true end end) game.Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:connect(function(char) if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(game.Players[char.Name].UserId, id) then script.Parent.Parent.Parent.TeleportFrame.Visible = true end end) end)