Product Faker 2 point 5 point 1
Key RequiredUniversal

Product Faker 2 point 5 point 1

Universal ScriptsillyPPsillyPP 1.2K views 483 executesUpdated Dec 13, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•789 lines (32273 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]

-- made by sillyPP and ai
-- with love 

local MarketplaceService = game:GetService("MarketplaceService")
local CoreGui = game:GetService("CoreGui")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer

local autoBuyLoops = {}
local purchaseCounts = {}
local productFramesMap = {}
local activeButtonResets = setmetatable({}, { __mode = "k" })
local currentMethod = "Signal"
local autoBuyInterval = 0.5

local function Finished(productInfo)
    local productId = productInfo.ProductId
    
    if currentMethod == "Signal" then
        local success = pcall(function()
            MarketplaceService:SignalPromptProductPurchaseFinished(localPlayer.UserId, productId, true)
        end)

        if not success then
            pcall(function()
                MarketplaceService:PromptProductPurchaseFinished(localPlayer, productId)
            end)
        end
    else
        pcall(function()
            MarketplaceService:PromptProductPurchaseFinished(localPlayer, productId)
        end)
    end
    
    purchaseCounts[productId] = (purchaseCounts[productId] or 0) + 1
    local frame = productFramesMap[productId]
    if frame and frame.Parent then
        local countLabel = frame:FindFirstChild("PurchaseCountLabel")
        if countLabel then
            countLabel.Text = "Purchases: " .. purchaseCounts[productId]
        end
    end
end

local mainGui = Instance.new("ScreenGui")
mainGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
mainGui.Parent = CoreGui

local tooltipFrame = Instance.new("Frame")
tooltipFrame.Name = "DescriptionTooltip"
tooltipFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
tooltipFrame.BackgroundTransparency = 0.1
tooltipFrame.BorderSizePixel = 0
tooltipFrame.Size = UDim2.new(0, 200, 0, 50)
tooltipFrame.Visible = false
tooltipFrame.ZIndex = 10
tooltipFrame.Parent = mainGui
local tooltipCorner = Instance.new("UICorner", tooltipFrame)
tooltipCorner.CornerRadius = UDim.new(0, 4)

local tooltipStroke = Instance.new("UIStroke", tooltipFrame)
tooltipStroke.Color = Color3.fromRGB(80, 80, 80)
tooltipStroke.Thickness = 2

local tooltipPadding = Instance.new("UIPadding", tooltipFrame)
tooltipPadding.PaddingTop = UDim.new(0, 5)
tooltipPadding.PaddingBottom = UDim.new(0, 5)
tooltipPadding.PaddingLeft = UDim.new(0, 5)
tooltipPadding.PaddingRight = UDim.new(0, 5)

local tooltipLabel = Instance.new("TextLabel", tooltipFrame)
tooltipLabel.Name = "TooltipLabel"
tooltipLabel.Font = Enum.Font.Gotham
tooltipLabel.Text = ""
tooltipLabel.TextColor3 = Color3.fromRGB(230, 230, 230)
tooltipLabel.TextSize = 14
tooltipLabel.TextWrapped = true
tooltipLabel.TextXAlignment = Enum.TextXAlignment.Left
tooltipLabel.TextYAlignment = Enum.TextYAlignment.Top
tooltipLabel.BackgroundTransparency = 1
tooltipLabel.AutomaticSize = Enum.AutomaticSize.Y
tooltipLabel.Size = UDim2.new(1, 0, 0, 0)

local developerProductsFrame = Instance.new("TextButton")
developerProductsFrame.Font = Enum.Font.GothamBold
developerProductsFrame.Text = "Product Faker"
developerProductsFrame.TextColor3 = Color3.fromRGB(240, 240, 240)
developerProductsFrame.TextSize = 16
developerProductsFrame.AutoButtonColor = false
developerProductsFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
developerProductsFrame.BorderSizePixel = 0
developerProductsFrame.Position = UDim2.new(0.35, 0, 0.3, 0)
developerProductsFrame.Size = UDim2.new(0, 252, 0, 40)
developerProductsFrame.Parent = mainGui
local mainCorner = Instance.new("UICorner", developerProductsFrame)
mainCorner.CornerRadius = UDim.new(0, 8)
local mainStroke = Instance.new("UIStroke", developerProductsFrame)
mainStroke.Color = Color3.fromRGB(60, 60, 60)
mainStroke.Thickness = 2

local closeButton = Instance.new("TextButton")
closeButton.Font = Enum.Font.GothamBold
closeButton.Text = "X"
closeButton.TextColor3 = Color3.fromRGB(240, 240, 240)
closeButton.TextSize = 18
closeButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
closeButton.BorderSizePixel = 0
closeButton.Position = UDim2.new(1, -32, 0, 2.5)
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Parent = developerProductsFrame
local closeCorner = Instance.new("UICorner", closeButton)
closeCorner.CornerRadius = UDim.new(0, 6)
local closeStroke = Instance.new("UIStroke", closeButton)
closeStroke.Color = Color3.fromRGB(80, 80, 80)
closeStroke.Thickness = 1

local methodButton = Instance.new("TextButton")
methodButton.Name = "MethodButton"
methodButton.Font = Enum.Font.Gotham
methodButton.Text = "Method: Signal"
methodButton.TextColor3 = Color3.fromRGB(240, 240, 240)
methodButton.TextSize = 12
methodButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
methodButton.BorderSizePixel = 0
methodButton.Position = UDim2.new(0, 5, 1, 2)
methodButton.Size = UDim2.new(0.5, -7, 0, 25)
methodButton.Parent = developerProductsFrame
local methodCorner = Instance.new("UICorner", methodButton)
methodCorner.CornerRadius = UDim.new(0, 4)
local methodStroke = Instance.new("UIStroke", methodButton)
methodStroke.Color = Color3.fromRGB(80, 80, 80)
methodStroke.Thickness = 1

local searchBox = Instance.new("TextBox")
searchBox.Name = "SearchBox"
searchBox.Font = Enum.Font.Gotham
searchBox.Text = ""
searchBox.PlaceholderText = "Search..."
searchBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150)
searchBox.TextColor3 = Color3.fromRGB(240, 240, 240)
searchBox.TextSize = 14
searchBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
searchBox.BorderSizePixel = 0
searchBox.Position = UDim2.new(0, 5, 1, 29)
searchBox.Size = UDim2.new(1, -10, 0, 30)
searchBox.Parent = developerProductsFrame
local searchCorner = Instance.new("UICorner", searchBox)
searchCorner.CornerRadius = UDim.new(0, 6)
local searchStroke = Instance.new("UIStroke", searchBox)
searchStroke.Color = Color3.fromRGB(80, 80, 80)
searchStroke.Thickness = 1

task.delay(0.3, function()
    local buyAllProductsButton = Instance.new("TextButton")
    buyAllProductsButton.Name = "BuyAllProductsButton"
    buyAllProductsButton.Font = Enum.Font.GothamBold
    buyAllProductsButton.Text = "Buy All"
    buyAllProductsButton.TextColor3 = Color3.fromRGB(240, 240, 240)
    buyAllProductsButton.TextSize = 14
    buyAllProductsButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    buyAllProductsButton.BorderSizePixel = 0
    buyAllProductsButton.Position = UDim2.new(0, 5, 1, 61)
    buyAllProductsButton.Size = UDim2.new(1, -10, 0, 30)
    buyAllProductsButton.Parent = developerProductsFrame
    local buyAllCorner = Instance.new("UICorner", buyAllProductsButton)
    buyAllCorner.CornerRadius = UDim.new(0, 6)
    local buyAllStroke = Instance.new("UIStroke", buyAllProductsButton)
    buyAllStroke.Color = Color3.fromRGB(80, 80, 80)
    buyAllStroke.Thickness = 1
end)

local intervalFrame = Instance.new("Frame")
intervalFrame.Name = "IntervalFrame"
intervalFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
intervalFrame.BorderSizePixel = 0
intervalFrame.Position = UDim2.new(0, 5, 1, 93)
intervalFrame.Size = UDim2.new(1, -10, 0, 40)
intervalFrame.Parent = developerProductsFrame
local intervalCorner = Instance.new("UICorner", intervalFrame)
intervalCorner.CornerRadius = UDim.new(0, 6)
local intervalStroke = Instance.new("UIStroke", intervalFrame)
intervalStroke.Color = Color3.fromRGB(60, 60, 60)
intervalStroke.Thickness = 2

local intervalLabel = Instance.new("TextLabel")
intervalLabel.Name = "IntervalLabel"
intervalLabel.Font = Enum.Font.Gotham
intervalLabel.Text = "Auto-Buy Interval:"
intervalLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
intervalLabel.TextSize = 12
intervalLabel.TextXAlignment = Enum.TextXAlignment.Left
intervalLabel.BackgroundTransparency = 1
intervalLabel.Position = UDim2.new(0, 8, 0, 0)
intervalLabel.Size = UDim2.new(0.5, -8, 0.5, 0)
intervalLabel.Parent = intervalFrame

local intervalValue = Instance.new("TextLabel")
intervalValue.Name = "IntervalValue"
intervalValue.Font = Enum.Font.GothamBold
intervalValue.Text = "0.5s"
intervalValue.TextColor3 = Color3.fromRGB(240, 240, 240)
intervalValue.TextSize = 12
intervalValue.TextXAlignment = Enum.TextXAlignment.Right
intervalValue.BackgroundTransparency = 1
intervalValue.Position = UDim2.new(0.5, 0, 0, 0)
intervalValue.Size = UDim2.new(0.5, -8, 0.5, 0)
intervalValue.Parent = intervalFrame

local intervalSlider = Instance.new("Frame")
intervalSlider.Name = "IntervalSlider"
intervalSlider.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
intervalSlider.BorderSizePixel = 0
intervalSlider.Position = UDim2.new(0, 8, 0.5, 5)
intervalSlider.Size = UDim2.new(1, -16, 0, 8)
intervalSlider.Parent = intervalFrame
local sliderCorner = Instance.new("UICorner", intervalSlider)
sliderCorner.CornerRadius = UDim.new(0, 4)
local sliderStroke = Instance.new("UIStroke", intervalSlider)
sliderStroke.Color = Color3.fromRGB(80, 80, 80)
sliderStroke.Thickness = 1

local sliderFill = Instance.new("Frame")
sliderFill.Name = "SliderFill"
sliderFill.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
sliderFill.BorderSizePixel = 0
sliderFill.Size = UDim2.new((autoBuyInterval - 0.1) / 4.9, 0, 1, 0)
sliderFill.Parent = intervalSlider
local fillCorner = Instance.new("UICorner", sliderFill)
fillCorner.CornerRadius = UDim.new(0, 4)

local sliderButton = Instance.new("TextButton")
sliderButton.Name = "SliderButton"
sliderButton.Text = ""
sliderButton.BackgroundColor3 = Color3.fromRGB(180, 180, 180)
sliderButton.BackgroundTransparency = 0
sliderButton.BorderSizePixel = 0
sliderButton.Position = UDim2.new((autoBuyInterval - 0.1) / 4.9, -4, 0.5, -8)
sliderButton.Size = UDim2.new(0, 16, 0, 16)
sliderButton.ZIndex = 2
sliderButton.Parent = intervalSlider
local buttonCorner = Instance.new("UICorner", sliderButton)
buttonCorner.CornerRadius = UDim.new(1, 0)
local buttonStroke = Instance.new("UIStroke", sliderButton)
buttonStroke.Color = Color3.fromRGB(220, 220, 220)
buttonStroke.Thickness = 2

local containerFrame = Instance.new("Frame")
containerFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
containerFrame.BorderSizePixel = 0
containerFrame.Position = UDim2.new(0, 5, 1, 135)
containerFrame.Size = UDim2.new(1, -10, 0, 441)
containerFrame.Parent = developerProductsFrame
local containerCorner = Instance.new("UICorner", containerFrame)
containerCorner.CornerRadius = UDim.new(0, 8)
local containerStroke = Instance.new("UIStroke", containerFrame)
containerStroke.Color = Color3.fromRGB(60, 60, 60)
containerStroke.Thickness = 2

local scrollingFrame = Instance.new("ScrollingFrame")
scrollingFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
scrollingFrame.ScrollBarThickness = 5
scrollingFrame.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 80)
scrollingFrame.Active = true
scrollingFrame.BackgroundTransparency = 1
scrollingFrame.BorderSizePixel = 0
scrollingFrame.Size = UDim2.new(1, 0, 1, 0)
scrollingFrame.Parent = containerFrame
Instance.new("UIListLayout", scrollingFrame).SortOrder = Enum.SortOrder.LayoutOrder

local exampleProductFrame = Instance.new("Frame")
exampleProductFrame.BackgroundTransparency = 1
exampleProductFrame.BorderSizePixel = 0
exampleProductFrame.Size = UDim2.new(1, 0, 0, 115)
exampleProductFrame.Visible = false
exampleProductFrame.Name = "ExampleFrame"
exampleProductFrame.Parent = scrollingFrame

local hoverBg = Instance.new("Frame", exampleProductFrame)
hoverBg.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
hoverBg.BackgroundTransparency = 1
hoverBg.BorderSizePixel = 0
hoverBg.Size = UDim2.new(1, -4, 1, -4)
hoverBg.Position = UDim2.new(0, 2, 0, 2)
hoverBg.Name = "HoverBg"
local hoverCorner = Instance.new("UICorner", hoverBg)
hoverCorner.CornerRadius = UDim.new(0, 6)

local nameLabel = Instance.new("TextLabel", exampleProductFrame)
nameLabel.Name = "NameLabel"
nameLabel.Font = Enum.Font.Gotham
nameLabel.Text = "Product Name:"
nameLabel.TextColor3 = Color3.fromRGB(240, 240, 240)
nameLabel.TextSize = 14
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.BackgroundTransparency = 1
nameLabel.Position = UDim2.new(0.048, 0, 0.1, 0)
nameLabel.Size = UDim2.new(0.6, 0, 0, 18)

local idLabel = Instance.new("TextLabel", exampleProductFrame)
idLabel.Name = "IDLabel"
idLabel.Font = Enum.Font.Gotham
idLabel.Text = "Product ID:"
idLabel.TextColor3 = Color3.fromRGB(240, 240, 240)
idLabel.TextSize = 14
idLabel.TextXAlignment = Enum.TextXAlignment.Left
idLabel.BackgroundTransparency = 1
idLabel.Position = UDim2.new(0.048, 0, 0.3, 0)
idLabel.Size = UDim2.new(0.6, 0, 0, 18)

local priceLabel = Instance.new("TextLabel", exampleProductFrame)
priceLabel.Name = "PriceLabel"
priceLabel.Font = Enum.Font.Gotham
priceLabel.Text = "Price:"
priceLabel.TextColor3 = Color3.fromRGB(240, 240, 240)
priceLabel.TextSize = 14
priceLabel.TextXAlignment = Enum.TextXAlignment.Left
priceLabel.BackgroundTransparency = 1
priceLabel.Position = UDim2.new(0.048, 0, 0.5, 0)
priceLabel.Size = UDim2.new(0.6, 0, 0, 18)

local purchaseCountLabel = Instance.new("TextLabel", exampleProductFrame)
purchaseCountLabel.Name = "PurchaseCountLabel"
purchaseCountLabel.Font = Enum.Font.Gotham
purchaseCountLabel.Text = "Purchases: 0"
purchaseCountLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
purchaseCountLabel.TextSize = 14
purchaseCountLabel.TextXAlignment = Enum.TextXAlignment.Left
purchaseCountLabel.BackgroundTransparency = 1
purchaseCountLabel.Position = UDim2.new(0.048, 0, 0.7, 0)
purchaseCountLabel.Size = UDim2.new(0.6, 0, 0, 18)

local divider = Instance.new("Frame", exampleProductFrame)
divider.Name = "Divider"
divider.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
divider.BorderSizePixel = 0
divider.Position = UDim2.new(0, 0, 1, 0)
divider.Size = UDim2.new(1, 0, 0, 2)

local clickDetector = Instance.new("TextButton", exampleProductFrame)
clickDetector.Name = "Click"
clickDetector.Text = ""
clickDetector.TextTransparency = 1
clickDetector.BackgroundTransparency = 1
clickDetector.Size = UDim2.new(1, 0, 1, 0)

local autoBuyButton = Instance.new("TextButton", exampleProductFrame)
autoBuyButton.Name = "AutoBuyButton"
autoBuyButton.Font = Enum.Font.GothamBold
autoBuyButton.Text = "Auto Buy"
autoBuyButton.TextColor3 = Color3.fromRGB(240, 240, 240)
autoBuyButton.TextSize = 12
autoBuyButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
autoBuyButton.BorderSizePixel = 0
autoBuyButton.Position = UDim2.new(0.65, 0, 0.05, 0)
autoBuyButton.Size = UDim2.new(0, 80, 0, 21)
local autoBuyCorner = Instance.new("UICorner", autoBuyButton)
autoBuyCorner.CornerRadius = UDim.new(0, 4)
local autoBuyStroke = Instance.new("UIStroke", autoBuyButton)
autoBuyStroke.Color = Color3.fromRGB(80, 80, 80)
autoBuyStroke.Thickness = 1

local copyButton = Instance.new("TextButton", exampleProductFrame)
copyButton.Name = "CopyButton"
copyButton.Font = Enum.Font.GothamBold
copyButton.Text = "Copy ID"
copyButton.TextColor3 = Color3.fromRGB(240, 240, 240)
copyButton.TextSize = 12
copyButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
copyButton.BorderSizePixel = 0
copyButton.Position = UDim2.new(0.65, 0, 0.27, 0)
copyButton.Size = UDim2.new(0, 80, 0, 21)
local copyCorner = Instance.new("UICorner", copyButton)
copyCorner.CornerRadius = UDim.new(0, 4)
local copyStroke = Instance.new("UIStroke", copyButton)
copyStroke.Color = Color3.fromRGB(80, 80, 80)
copyStroke.Thickness = 1

local copyScriptButton = Instance.new("TextButton", exampleProductFrame)
copyScriptButton.Name = "CopyScriptButton"
copyScriptButton.Font = Enum.Font.GothamBold
copyScriptButton.Text = "Copy Script"
copyScriptButton.TextColor3 = Color3.fromRGB(240, 240, 240)
copyScriptButton.TextSize = 12
copyScriptButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
copyScriptButton.BorderSizePixel = 0
copyScriptButton.Position = UDim2.new(0.65, 0, 0.49, 0)
copyScriptButton.Size = UDim2.new(0, 80, 0, 21)
local copyScriptCorner = Instance.new("UICorner", copyScriptButton)
copyScriptCorner.CornerRadius = UDim.new(0, 4)
local copyScriptStroke = Instance.new("UIStroke", copyScriptButton)
copyScriptStroke.Color = Color3.fromRGB(80, 80, 80)
copyScriptStroke.Thickness = 1

local buyButton = Instance.new("TextButton", exampleProductFrame)
buyButton.Name = "BuyButton"
buyButton.Font = Enum.Font.GothamBold
buyButton.Text = "Buy"
buyButton.TextColor3 = Color3.fromRGB(240, 240, 240)
buyButton.TextSize = 12
buyButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
buyButton.BorderSizePixel = 0
buyButton.Position = UDim2.new(0.65, 0, 0.71, 0)
buyButton.Size = UDim2.new(0, 80, 0, 21)
local buyCorner = Instance.new("UICorner", buyButton)
buyCorner.CornerRadius = UDim.new(0, 4)
local buyStroke = Instance.new("UIStroke", buyButton)
buyStroke.Color = Color3.fromRGB(80, 80, 80)
buyStroke.Thickness = 1

local function createHoverEffect(button, hoverColor)
    local originalColor = button.BackgroundColor3
    button.MouseEnter:Connect(function()
        TweenService:Create(button, TweenInfo.new(0.15), { BackgroundColor3 = hoverColor }):Play()
        if button.UIStroke then
            TweenService:Create(button.UIStroke, TweenInfo.new(0.15), { Color = Color3.fromRGB(120, 120, 120) }):Play()
        end
    end)
    button.MouseLeave:Connect(function()
        TweenService:Create(button, TweenInfo.new(0.15), { BackgroundColor3 = originalColor }):Play()
        if button.UIStroke then
            TweenService:Create(button.UIStroke, TweenInfo.new(0.15), { Color = Color3.fromRGB(80, 80, 80) }):Play()
        end
    end)
end

methodButton.MouseButton1Click:Connect(function()
    if currentMethod == "Signal" then
        currentMethod = "Prompt"
        methodButton.Text = "Method: Prompt"
        methodButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    else
        currentMethod = "Signal"
        methodButton.Text = "Method: Signal"
        methodButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    end
end)

local isDraggingSlider = false
local sliderConnection1, sliderConnection2

local function updateSlider(value)
    local normalized = (value - 0.1) / 4.9
    sliderFill.Size = UDim2.new(normalized, 0, 1, 0)
    sliderButton.Position = UDim2.new(normalized, -4, 0.5, -8)
    intervalValue.Text = string.format("%.1fs", value)
    autoBuyInterval = value
end

sliderButton.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        isDraggingSlider = true
        
        sliderConnection1 = UserInputService.InputChanged:Connect(function(moveInput)
            if isDraggingSlider and moveInput.UserInputType == Enum.UserInputType.MouseMovement then
                local mousePos = UserInputService:GetMouseLocation()
                local sliderPos = intervalSlider.AbsolutePosition
                local sliderSize = intervalSlider.AbsoluteSize
                
                local relativeX = math.clamp((mousePos.X - sliderPos.X) / sliderSize.X, 0, 1)
                local newValue = 0.1 + (relativeX * 4.9)
                newValue = math.floor(newValue * 10) / 10
                
                updateSlider(newValue)
            end
        end)
        
        sliderConnection2 = UserInputService.InputEnded:Connect(function(endInput)
            if endInput.UserInputType == Enum.UserInputType.MouseButton1 then
                isDraggingSlider = false
                if sliderConnection1 then sliderConnection1:Disconnect() end
                if sliderConnection2 then sliderConnection2:Disconnect() end
            end
        end)
    end
end)

intervalSlider.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        isDraggingSlider = true
        
        local mousePos = UserInputService:GetMouseLocation()
        local sliderPos = intervalSlider.AbsolutePosition
        local sliderSize = intervalSlider.AbsoluteSize
        
        local relativeX = math.clamp((mousePos.X - sliderPos.X) / sliderSize.X, 0, 1)
        local newValue = 0.1 + (relativeX * 4.9)
        newValue = math.floor(newValue * 10) / 10
        
        updateSlider(newValue)
        
        sliderConnection1 = UserInputService.InputChanged:Connect(function(moveInput)
            if isDraggingSlider and moveInput.UserInputType == Enum.UserInputType.MouseMovement then
                local mousePos = UserInputService:GetMouseLocation()
                local sliderPos = intervalSlider.AbsolutePosition
                local sliderSize = intervalSlider.AbsoluteSize
                
                local relativeX = math.clamp((mousePos.X - sliderPos.X) / sliderSize.X, 0, 1)
                local newValue = 0.1 + (relativeX * 4.9)
                newValue = math.floor(newValue * 10) / 10
                
                updateSlider(newValue)
            end
        end)
        
        sliderConnection2 = UserInputService.InputEnded:Connect(function(endInput)
            if endInput.UserInputType == Enum.UserInputType.MouseButton1 then
                isDraggingSlider = false
                if sliderConnection1 then sliderConnection1:Disconnect() end
                if sliderConnection2 then sliderConnection2:Disconnect() end
            end
        end)
    end
end)

task.spawn(function()
    local success, products = pcall(function()
        return MarketplaceService:GetDeveloperProductsAsync()
    end)
    
    if not success then return end
    
    local allProductsInfo = products:GetCurrentPage()
    local allProductFrames = {}

    local buyAllProductsButton = developerProductsFrame:WaitForChild("BuyAllProductsButton", 5)
    if buyAllProductsButton then
        createHoverEffect(buyAllProductsButton, Color3.fromRGB(60, 60, 60))
        buyAllProductsButton.MouseButton1Click:Connect(function()
            if activeButtonResets[buyAllProductsButton] then
                task.cancel(activeButtonResets[buyAllProductsButton])
            end
            
            if not buyAllProductsButton:GetAttribute("OriginalText") then
                buyAllProductsButton:SetAttribute("OriginalText", buyAllProductsButton.Text)
                buyAllProductsButton:SetAttribute("OriginalColor", buyAllProductsButton.BackgroundColor3)
            end
            
            local originalText = buyAllProductsButton:GetAttribute("OriginalText")
            local originalColor = buyAllProductsButton:GetAttribute("OriginalColor")
            
            buyAllProductsButton.Text = "Processing..."
            buyAllProductsButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
            
            activeButtonResets[buyAllProductsButton] = task.spawn(function()
                for _, productInfo in pairs(allProductsInfo) do
                    Finished(productInfo)
                    task.wait(0.3)
                end
                
                buyAllProductsButton.Text = "Done!"
                buyAllProductsButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
                task.wait(1.5)
                
                buyAllProductsButton.Text = originalText
                buyAllProductsButton.BackgroundColor3 = originalColor
                activeButtonResets[buyAllProductsButton] = nil
            end)
        end)
    end

    for _, productInfo in pairs(allProductsInfo) do
        local productFrame = exampleProductFrame:Clone()
        productFrame:SetAttribute("ProductName", productInfo.Name)
        productFrame.Visible = true
        productFrame.Parent = scrollingFrame
        table.insert(allProductFrames, productFrame)
        
        purchaseCounts[productInfo.ProductId] = 0
        productFramesMap[productInfo.ProductId] = productFrame
        
        productFrame.NameLabel.Text = "Name: " .. productInfo.Name
        productFrame.IDLabel.Text = "ID: " .. tostring(productInfo.ProductId)
        productFrame.PriceLabel.Text = "Price: " .. tostring(productInfo.PriceInRobux)

        local buttons = {
            productFrame.AutoBuyButton,
            productFrame.CopyButton,
            productFrame.CopyScriptButton,
            productFrame.BuyButton
        }
        
        productFrame.Click.MouseEnter:Connect(function()
            if productInfo.Description and productInfo.Description:gsub("%s*", "") ~= "" then
                tooltipLabel.Text = productInfo.Description
                tooltipFrame.Visible = true
            end
            TweenService:Create(productFrame.HoverBg, TweenInfo.new(0.2), { BackgroundTransparency = 0.9 }):Play()
        end)
        
        productFrame.Click.MouseLeave:Connect(function()
            tooltipFrame.Visible = false
            TweenService:Create(productFrame.HoverBg, TweenInfo.new(0.2), { BackgroundTransparency = 1 }):Play()
        end)
        
        for _, btn in ipairs(buttons) do
            btn.MouseEnter:Connect(function()
                tooltipFrame.Visible = false
            end)
            
            btn.MouseLeave:Connect(function()
                if productInfo.Description and productInfo.Description:gsub("%s*", "") ~= "" then
                    tooltipFrame.Visible = true
                end
            end)
        end

        local productAutoBuyButton = productFrame.AutoBuyButton
        createHoverEffect(productAutoBuyButton, Color3.fromRGB(60, 60, 60))
        
        productAutoBuyButton.MouseButton1Click:Connect(function()
            autoBuyLoops[productFrame] = not autoBuyLoops[productFrame]
            
            if autoBuyLoops[productFrame] then
                productAutoBuyButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
                productAutoBuyButton.Text = "Stop Auto"
                task.spawn(function()
                    while autoBuyLoops[productFrame] do
                        Finished(productInfo)
                        task.wait(autoBuyInterval)
                    end
                end)
            else
                productAutoBuyButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
                productAutoBuyButton.Text = "Auto Buy"
            end
        end)

        local productCopyButton = productFrame.CopyButton
        createHoverEffect(productCopyButton, Color3.fromRGB(60, 60, 60))
        
        productCopyButton.MouseButton1Click:Connect(function()
            if setclipboard then
                setclipboard(tostring(productInfo.ProductId))
                local originalText = productCopyButton.Text
                local originalColor = productCopyButton.BackgroundColor3
                
                productCopyButton.Text = "Copied!"
                productCopyButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
                task.wait(1)
                
                productCopyButton.Text = originalText
                productCopyButton.BackgroundColor3 = originalColor
            end
        end)

        local productCopyScriptButton = productFrame.CopyScriptButton
        createHoverEffect(productCopyScriptButton, Color3.fromRGB(60, 60, 60))
        
        productCopyScriptButton.MouseButton1Click:Connect(function()
            if setclipboard then
                local scriptToCopy = string.format([[
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local TargetPlayer = Players.LocalPlayer
local ProductID = %d

local function purchaseProduct()
    local success = pcall(function()
        MarketplaceService:SignalPromptProductPurchaseFinished(TargetPlayer, ProductID, true)
    end)
    
    if not success then
        pcall(function()
            MarketplaceService:PromptProductPurchaseFinished(TargetPlayer, ProductID)
        end)
    end
end

purchaseProduct()
]], productInfo.ProductId)
                
                setclipboard(scriptToCopy)
                local originalText = productCopyScriptButton.Text
                local originalColor = productCopyScriptButton.BackgroundColor3
                
                productCopyScriptButton.Text = "Copied!"
                productCopyScriptButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
                task.wait(1)
                
                productCopyScriptButton.Text = originalText
                productCopyScriptButton.BackgroundColor3 = originalColor
            end
        end)

        local productBuyButton = productFrame.BuyButton
        createHoverEffect(productBuyButton, Color3.fromRGB(60, 60, 60))
        
        productBuyButton.MouseButton1Click:Connect(function()
            if activeButtonResets[productBuyButton] then
                task.cancel(activeButtonResets[productBuyButton])
            end
            
            if not productBuyButton:GetAttribute("OriginalText") then
                productBuyButton:SetAttribute("OriginalText", productBuyButton.Text)
                productBuyButton:SetAttribute("OriginalColor", productBuyButton.BackgroundColor3)
            end
            
            local originalText = productBuyButton:GetAttribute("OriginalText")
            local originalColor = productBuyButton:GetAttribute("OriginalColor")
            
            productBuyButton.Text = "Processing..."
            productBuyButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
            Finished(productInfo)
            
            activeButtonResets[productBuyButton] = task.spawn(function()
                task.wait(0.5)
                productBuyButton.Text = "Done!"
                productBuyButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
                task.wait(1.5)
                
                productBuyButton.Text = originalText
                productBuyButton.BackgroundColor3 = originalColor
                activeButtonResets[productBuyButton] = nil
            end)
        end)
    end
    
    searchBox:GetPropertyChangedSignal("Text"):Connect(function()
        local searchText = string.lower(searchBox.Text)
        for _, frame in ipairs(allProductFrames) do
            if searchText == "" then
                frame.Visible = true
            else
                local productName = string.lower(frame:GetAttribute("ProductName"))
                if productName and string.find(productName, searchText, 1, true) then
                    frame.Visible = true
                else
                    frame.Visible = false
                end
            end
        end
    end)
end)

UserInputService.InputChanged:Connect(function(input)
    if tooltipFrame.Visible and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local mousePos = UserInputService:GetMouseLocation()
        tooltipFrame.Position = UDim2.fromOffset(mousePos.X + 15, mousePos.Y + 15)
    end
end)

closeButton.MouseButton1Click:Connect(function()
    mainGui:Destroy()
end)

local isDragging = false
local dragStart
local startPosition
local mouseMoveConnection
local mouseUpConnection

developerProductsFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        isDragging = true
        dragStart = input.Position
        startPosition = developerProductsFrame.Position
        
        mouseMoveConnection = UserInputService.InputChanged:Connect(function(moveInput)
            if (moveInput.UserInputType == Enum.UserInputType.MouseMovement or moveInput.UserInputType == Enum.UserInputType.Touch) and isDragging then
                local delta = moveInput.Position - dragStart
                developerProductsFrame.Position = UDim2.new(
                    startPosition.X.Scale,
                    startPosition.X.Offset + delta.X,
                    startPosition.Y.Scale,
                    startPosition.Y.Offset + delta.Y
                )
            end
        end)
        
        mouseUpConnection = UserInputService.InputEnded:Connect(function(endInput)
            if (endInput.UserInputType == Enum.UserInputType.MouseButton1 or endInput.UserInputType == Enum.UserInputType.Touch) and isDragging then
                isDragging = false
                if mouseMoveConnection then
                    mouseMoveConnection:Disconnect()
                end
                if mouseUpConnection then
                    mouseUpConnection:Disconnect()
                end
            end
        end)
    end
end)

Features & Information

UNOFFICAL Product Faker 2.5.1 - !! yayy (i made it like 1 - 2 day ago) Features and New -= Added Images to the gamepasses (idk how to say it sorry) -= Turned out that prompt buy is visual (W IN CHAT) -= idk sorry Plans on Future + make prompt buy not visual lol + back the old menu back or with changer from original to black xD + finding gamepasses that script maybe not will see
#ProductFaker

Community Comments (3)

WeakLessWeakLessDec 13, 2025

w

Replying to @WeakLess
sillyPPsillyPPDec 13, 2025

@areover thank yuo

sillyPPsillyPPDec 14, 2025(edited)

GUYS SORRY I TYPED THE WRONG SCRIPT P.S FIXED RN

More Scripts for Universal Scripts