local HttpService = game:GetService("HttpService") local DataStoreService = game:GetService("DataStoreService")
-- Main execution local function main() print("📦 Fetching all gamepasses for Universe ID:", UNIVERSE_ID) local gamepasses = fetchGamepasses() if not gamepasses or #gamepasses == 0 then print("❌ No gamepasses found or failed to fetch.") return end print(string.format("✅ Found %d gamepass(es)", #gamepasses)) print("─".rep(50)) -- Fetch sales info if API key is provided if API_KEY ~= "" then print("🔄 Fetching sales counts (this may take a moment)...") for i, pass in ipairs(gamepasses) do local sales = fetchSalesInfo(pass.id) if sales then gamepasses[i].sales = sales end task.wait(0.2) -- Rate limiting end end -- Display results for _, pass in ipairs(gamepasses) do print(string.format("📌 ID: %d | Name: %s | Price: %d Robux", pass.id, pass.name, pass.price)) if API_KEY ~= "" then print(string.format(" 📈 Total Sales: %d", pass.sales)) end print("─".rep(50)) end -- Optional: Return table for other scripts to use return gamepasses end
-- Optional: Fetch sales count for each gamepass (requires OpenCloud API Key) local function fetchSalesInfo(gamepassId) if API_KEY == "" then return nil end local url = string.format("https://economy.roblox.com/v1/game-passes/%d/sales", gamepassId) local success, response = pcall(function() return HttpService:GetAsync(url, Headers = ["x-api-key"] = API_KEY) end) if success then local data = HttpService:JSONDecode(response) return data and data.sales or 0 else return nil end end - FE - Get All Gamepass Script - ROBLOX SCRIPTS...
-- Run the script local gamepassList = main()
-- Configuration local UNIVERSE_ID = game.GameId -- This works for most places, but for universal gamepasses across multiple places in same experience, use game.PlaceId local API_KEY = "" -- ⚠️ OPTIONAL: OpenCloud API Key with "asset:read" permission (for detailed sales info). Leave empty to skip sales info. -- Function to fetch gamepasses from Roblox API
-- Example: Store in _G (not recommended for large games, but simple) _G.GamepassList = gamepassList Or bind to a BindableEvent to broadcast when ready.
-- Function to fetch gamepasses from Roblox API local function fetchGamepasses() local url = string.format("https://games.roblox.com/v1/games/%d/game-passes?limit=100", UNIVERSE_ID) local allPasses = {} local cursor = nil repeat local requestUrl = url if cursor then requestUrl = url .. "&cursor=" .. cursor end local success, response = pcall(function() return HttpService:GetAsync(requestUrl, (API_KEY ~= "" and Headers = ["x-api-key"] = API_KEY or nil)) end) if not success then warn("Failed to fetch gamepasses:", response) return nil end local data = HttpService:JSONDecode(response) if data and data.data then for _, pass in ipairs(data.data) do table.insert(allPasses, id = pass.id, name = pass.name, price = pass.price, sales = 0 -- Will update if API key is provided ) end cursor = data.nextPageCursor else cursor = nil end task.wait() -- Be respectful to Roblox API limits until not cursor return allPasses end pass in ipairs(data.data) do table.insert(allPasses
--[[ FE Get All Gamepass Script Server Script (Run in ServerScriptService, Workspace, or any Script) Lists ALL gamepasses in the game with their: Name, ID, Price, and Current Sales Count. ]]