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)

1 comment
Rather than using a gamepass door that opens for a short amount of time, why not use CollisionGroupIDs?