Products Fetcher
Key RequiredUniversal

Products Fetcher

Universal ScriptGaze_Gaze_ 7.3K views 162 executesUpdated Aug 12, 2025
5.0/ 5(5 votes)
50100% Positive
Lua Script•132 lines (4347 chars)
local cloneref = cloneref or function(v) return v end
local MarketplaceService = cloneref(game:GetService("MarketplaceService"))
local Players = cloneref(game:GetService("Players"))
local CoreGui = cloneref(game:GetService("CoreGui"))
local player = Players.LocalPlayer

local screenGui = Instance.new("ScreenGui", CoreGui)
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true

local frame = Instance.new("Frame", screenGui)
frame.Size = UDim2.new(0, 400, 0, 350)
frame.Position = UDim2.new(0.5, -200, 0.5, -175)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BackgroundTransparency = 0.15
frame.Active = true
frame.Draggable = true

local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
title.Text = "Products Fetcher"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.GothamBold
title.TextScaled = true

local scroll = Instance.new("ScrollingFrame", frame)
scroll.Size = UDim2.new(1, 0, 1, -30)
scroll.Position = UDim2.new(0, 0, 0, 30)
scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
scroll.ScrollBarThickness = 6
scroll.BackgroundTransparency = 1

local uiList = Instance.new("UIListLayout", scroll)
uiList.Padding = UDim.new(0, 6)
uiList.FillDirection = Enum.FillDirection.Vertical
uiList.SortOrder = Enum.SortOrder.LayoutOrder
uiList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
	scroll.CanvasSize = UDim2.new(0, 0, 0, uiList.AbsoluteContentSize.Y + 10)
end)

local function addProduct(info)
	local button = Instance.new("TextButton", scroll)
	button.Size = UDim2.new(1, -10, 0, 60)
	button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
	button.Text = ""
	button.AutoButtonColor = true

	local icon = Instance.new("ImageLabel", button)
	icon.Size = UDim2.new(0, 60, 1, 0)
	icon.Image = "rbxassetid://" .. (info.IconImageAssetId or 0)
	icon.BackgroundTransparency = 1

	local nameLabel = Instance.new("TextLabel", button)
	nameLabel.Size = UDim2.new(1, -70, 0.5, 0)
	nameLabel.Position = UDim2.new(0, 70, 0, 0)
	nameLabel.BackgroundTransparency = 1
	nameLabel.Text = info.Name
	nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
	nameLabel.TextXAlignment = Enum.TextXAlignment.Left
	nameLabel.Font = Enum.Font.GothamBold
	nameLabel.TextScaled = true

	local priceLabel = Instance.new("TextLabel", button)
	priceLabel.Size = UDim2.new(1, -70, 0.5, 0)
	priceLabel.Position = UDim2.new(0, 70, 0.5, 0)
	priceLabel.BackgroundTransparency = 1
	priceLabel.Text = info.PriceInRobux and (tostring(info.PriceInRobux) .. " R$") or "Not On Sale"
	priceLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
	priceLabel.TextXAlignment = Enum.TextXAlignment.Left
	priceLabel.Font = Enum.Font.Gotham
	priceLabel.TextScaled = true

	button.MouseButton1Click:Connect(function()
		if info.PriceInRobux then
			local success = pcall(function()
				MarketplaceService:PromptProductPurchase(player, info.ProductId)
			end)
			if not success then
				setclipboard("https://www.roblox.com/library/" .. tostring(info.ProductId))
			end
		else
			setclipboard("https://www.roblox.com/library/" .. tostring(info.ProductId))
		end
	end)
end

local function loadProducts()
	local pages
	local ok = pcall(function()
		pages = MarketplaceService:GetDeveloperProductsAsync()
	end)
	if not ok or not pages then
		local lbl = Instance.new("TextLabel", scroll)
		lbl.Size = UDim2.new(1, -10, 0, 40)
		lbl.BackgroundTransparency = 1
		lbl.Text = "Failed to fetch products."
		lbl.TextColor3 = Color3.fromRGB(255, 0, 0)
		lbl.Font = Enum.Font.GothamBold
		lbl.TextScaled = true
		return
	end

	local foundAny = false
	while true do
		local currentPage = pages:GetCurrentPage()
		if currentPage and #currentPage > 0 then
			for _, prod in ipairs(currentPage) do
				local info = MarketplaceService:GetProductInfo(prod.ProductId, Enum.InfoType.Product)
				addProduct(info)
				foundAny = true
			end
		end
		if pages.IsFinished then break end
		local success = pcall(function()
			pages:AdvanceToNextPage()
		end)
		if not success then break end
	end

	if not foundAny then
		local lbl = Instance.new("TextLabel", scroll)
		lbl.Size = UDim2.new(1, -10, 0, 40)
		lbl.BackgroundTransparency = 1
		lbl.Text = "No products found."
		lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
		lbl.Font = Enum.Font.GothamBold
		lbl.TextScaled = true
	end
end

loadProducts()

Features & Information

You can buy some limited emotes or secret products that the game didnt sell for long Basically just fetch developer products For the promptpurchase it only support on some executor like Ronix If your executor didnt support promptpurchase then its just copy the link

Community Comments (5)

WISH IT SUPPORT DELTA BUT IT DOESN'T😔

Gaze_Gaze_Aug 12, 2025

Delta too overrated

Savage_DuckSavage_DuckAug 12, 2025

Dang

Savage_DuckSavage_DuckAug 12, 2025(edited)

Good thing I got multiple executers in Google(chrome) I already downloaded

sjsjke394sjsjke394Aug 13, 2025

Very good script, Can you make a gamepass one?

More Scripts for Universal Scripts