Here's my code:
local id = 5885163
local player = game.Players.LocalPlayer
script.Parent.MouseButton1Click:Connect(function()
if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.userId, 5885163) then
script.Parent.Visible = true
else
script.Parent.Visible = false
end
No error statements. I've been at this for a week now and can't figure it out. Nothing seems to work. It's inside a local script in the textbutton. The Frame is named "Skins" and the button is named "SkinsButton", if that helps. The GUI is names "SkinsGUI". Any ideas?

2 comments
It’s .UserId, you also gave the Gamepass’s ID in a variable, so why didn’t you give it that for the second argument?
That ID provided is not a game pass.