CCCPaste

GamepassHandler(STORY GAME)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ModulesFolder = ReplicatedStorage:WaitForChild("Modules")
local GamepassIdModule = require(ModulesFolder:WaitForChild("GamepassIds"))
local MarketPlaceService = game:GetService("MarketplaceService")

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local ShopFrame = script.Parent.GamepassFrame
local ShopContainer = ShopFrame.ScrollingFrame
local ShopButton = script.Parent.GamepassButton

for _, v in pairs(GamepassIdModule) do
local GamepassIdInfos = MarketPlaceService:GetProductInfo(v, Enum.InfoType.GamePass)

local TemplateClone = ReplicatedStorage.Template:Clone()
TemplateClone.Parent = ShopContainer
TemplateClone.Visible = true

TemplateClone.GamepassIcon.Image = "rbxassetid://"..GamepassIdInfos.IconImageAssetId
TemplateClone.PurchaseButton.Text = GamepassIdInfos.PriceInRobux
TemplateClone.RobuxIcon.Image = "rbxassetid://4625635722"

if not MarketPlaceService:UserOwnsGamePassAsync(player.UserId, v) then
TemplateClone.PurchaseButton.MouseButton1Click:Connect(function()
MarketPlaceService:PromptGamePassPurchase(player, v)
end)
end

MarketPlaceService.PromptGamePassPurchaseFinished:Connect(function(Player, GamepassId, Purchased)
if GamepassId == v and Purchased then
TemplateClone.PurchaseButton.Text = "OWNS"
TemplateClone.RobuxIcon.Image = "rbxassetid://9207037475"
end
end)
end

ShopButton.MouseButton1Click:Connect(function()
ShopFrame.Visible = not ShopFrame.Visible
end)