Upscalefanatic3

(Roblox) Gamepass Doors

Apr 3rd, 2020
287
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local vipDoor = workspace:WaitForChild("VIPDoor")
  2. local vipId = 8833520
  3.  
  4. local cafeWorkerDoor = workspace:WaitForChild("CafeWorkerDoor")
  5. local cafeWorkerId = 8833515
  6.  
  7. local marketplaceService = game:GetService("MarketplaceService")
  8. local physicsService = game:GetService("PhysicsService")
  9.  
  10. physicsService:CreateCollisionGroup("VIPPlayers")
  11. physicsService:CreateCollisionGroup("VIPDoor")
  12. physicsService:CollisionGroupSetCollidable("VIPPlayers", "VIPDoor", false)
  13.  
  14. physicsService:CreateCollisionGroup("CafeWorkers")
  15. physicsService:CreateCollisionGroup("CafeWorkerDoor")
  16. physicsService:CollisionGroupSetCollidable("CafeWorkers", "CafeWorkerDoor", false)
  17.  
  18. physicsService:CreateCollisionGroup("CafeWorkerAndVIP")
  19. physicsService:CollisionGroupSetCollidable("CafeWorkerAndVIP", "VIPDoor", false)
  20. physicsService:CollisionGroupSetCollidable("CafeWorkerAndVIP", "CafeWorkerDoor", false)
  21.  
  22. physicsService:SetPartCollisionGroup(vipDoor, "VIPDoor")
  23. physicsService:SetPartCollisionGroup(cafeWorkerDoor, "CafeWorkerDoor")
  24.  
  25. local function addToGroup(character, group)
  26.     for i, descendant in ipairs(character:GetDescendants()) do
  27.         if descendant:IsA("BasePart") then
  28.             physicsService:SetPartCollisionGroup(descendant, group)
  29.         end
  30.     end
  31. end
  32.  
  33. game.Players.PlayerAdded:Connect(function(player)
  34.     player.CharacterAppearanceLoaded:Connect(function(character)
  35.         -- Check for VIP GamePass
  36.         local success, result = pcall(function()
  37.             return marketplaceService:UserOwnsGamePassAsync(player.UserId, vipId)
  38.         end)
  39.         if not success then print(result) end
  40.         if success and result then
  41.             addToGroup(character, "VIPPlayers")
  42.         end
  43.        
  44.         -- Check for Premium Cafe Worker GamePass
  45.         local success2, result2 = pcall(function()
  46.             return marketplaceService:UserOwnsGamePassAsync(player.UserId, cafeWorkerId)
  47.         end)
  48.         if not success2 then print(result2) end
  49.         if success2 and result2 then
  50.             addToGroup(character, "CafeWorkers")
  51.         end
  52.        
  53.         if success and result and success2 and result2 then
  54.             addToGroup(character, "CafeWorkerAndVIP")
  55.         end
  56.     end)
  57. end)
  58.  
  59. local function promptGamepassPurchase(player, id)
  60.     local success, result = pcall(function()
  61.         return marketplaceService:UserOwnsGamePassAsync(player.UserId, id)
  62.     end)
  63.     if not success then print(result) end
  64.     if success and not result then
  65.         marketplaceService:PromptGamePassPurchase(player, id)
  66.     end
  67. end
  68.  
  69. vipDoor.Touched:Connect(function(hit)
  70.     local player = game.Players:GetPlayerFromCharacter(hit.Parent)
  71.     if player then
  72.         promptGamepassPurchase(player, vipId)
  73.     end
  74. end)
  75.  
  76. cafeWorkerDoor.Touched:Connect(function(hit)
  77.     local player = game.Players:GetPlayerFromCharacter(hit.Parent)
  78.     if player then
  79.         promptGamepassPurchase(player, cafeWorkerId)
  80.     end
  81. end)
  82.  
  83. marketplaceService.PromptGamePassPurchaseFinished:Connect(function(player, gamepassId, wasPurchased)
  84.     if gamepassId == vipId then
  85.         if wasPurchased then
  86.             local success, result = pcall(function()
  87.                 return marketplaceService:UserOwnsGamePassAsync(player.UserId, cafeWorkerId)
  88.             end)
  89.             if not success then print(result) end
  90.             if success and result then
  91.                 addToGroup(player.Character, "CafeWorkerAndVIP")
  92.             else
  93.                 addToGroup(player.Character, "VIPPlayers")
  94.             end
  95.         end
  96.     elseif gamepassId == cafeWorkerId then
  97.         if wasPurchased then
  98.             local success, result = pcall(function()
  99.                 return marketplaceService:UserOwnsGamePassAsync(player.UserId, vipId)
  100.             end)
  101.             if not success then print(result) end
  102.             if success and result then
  103.                 addToGroup(player.Character, "CafeWorkerAndVIP")
  104.             else
  105.                 addToGroup(player.Character, "CafeWorkers")
  106.             end
  107.         end
  108.     end
  109. end)
RAW Paste Data