So... I have an old gamepass door script, but since Roblox changed the "storage system" for gamepasses, the script and the gamepass id are not working anymore. Can someone help me out with changing the script so it does work? I've read the wiki, but I'm kinda confused now...
----------------------------------------------------------------------------------------------- ItemID = "" -- The ID of the Gamepass/T-Shirt. OpenTime = 1 -- The time the door is open for. OpenTrans = 1 -- The transparency of the door when it is open. CloseTrans = 1 -- The transparency of the door when it is closed. BuyGUI = true -- Set to false to stop the BuyGUI appearing. KillOnTouch = true -- Set to false to stop players being killed when they touch it. ----------------------------------------------------------------------------------------------- Door = script.Parent Serv = game:GetService("BadgeService") MServ = game:GetService("MarketplaceService") if not _G.Players then _G.Players = {[ItemID] = {}} elseif not _G.Players[ItemID] then _G.Players[ItemID] = {} end Table = _G.Players[ItemID] function CheckPlayer(player2) for i = 1,#Table do if Table[i] == player2 then return true end end return false end Door.Touched:connect(function(hit) if game.Players:GetPlayerFromCharacter(hit.Parent) then player = game.Players:GetPlayerFromCharacter(hit.Parent) if Serv:UserHasBadge(player.userId,ItemID) or CheckPlayer(player) then Door.CanCollide = false Door.Transparency = OpenTrans wait(OpenTime) Door.CanCollide = true Door.Transparency = CloseTrans else Door.CanCollide = true Door.Transparency = CloseTrans if BuyGUI == true then MServ:PromptGamePassPurchase(player,ItemID) h = player.Character:FindFirstChild("Humanoid") if h then h.WalkSpeed = 0 end local con con = MServ.PromptGamePassPurchaseFinished:connect(function(ply,asset,purch) if ply == player and asset == ItemID then con:disconnect() if purch then if h then h.WalkSpeed = 16 end table.insert(Table,player) elseif KillOnTouch == true then Door.CanCollide = true Door.Transparency = CloseTrans player.Character:BreakJoints() end end end) elseif KillOnTouch == true then Door.CanCollide = true Door.Transparency = CloseTrans player.Character:BreakJoints() end end end end)
You would use the UserOwnsGamePassAsync in the MarketplaceService
Change the code on line 35 to
if MServ:UserOwnsGamePassAsync(player.userId,ItemID) or CheckPlayer(player) then