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 StarterGui = game:GetService("StarterGui") local localPlayer = Players.LocalPlayer; local autoBuyLoops = {} local purchaseCounts = {} local productFramesMap = {} local activeButtonResets = setmetatable({}, { __mode = "k" }) local function Finished(productInfo) local productId = productInfo.ProductId local success, err = pcall(function() MarketplaceService:SignalPromptProductPurchaseFinished(localPlayer.UserId, productId, true) end) if not success then 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 = "Total Purchases: " .. purchaseCounts[productId] end end end --[[ Gui Setup ]] 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(20, 20, 20); tooltipFrame.BackgroundTransparency = 0.2; tooltipFrame.BorderSizePixel = 0; tooltipFrame.Size = UDim2.new(0, 200, 0, 50); tooltipFrame.Visible = false; tooltipFrame.ZIndex = 10; tooltipFrame.Parent = mainGui; Instance.new("UICorner", tooltipFrame).CornerRadius = UDim.new(0, 5) local tooltipStroke = Instance.new("UIStroke", tooltipFrame); tooltipStroke.Color = Color3.fromRGB(120, 120, 120); tooltipStroke.Thickness = 1 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(255, 255, 255); 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 V2"; developerProductsFrame.TextColor3 = Color3.fromRGB(255, 255, 255); developerProductsFrame.TextSize = 16; developerProductsFrame.AutoButtonColor = false; developerProductsFrame.BackgroundColor3 = Color3.fromRGB(46, 46, 46); developerProductsFrame.BorderSizePixel = 0; developerProductsFrame.Position = UDim2.new(0.35, 0, 0.3, 0); developerProductsFrame.Size = UDim2.new(0, 252, 0, 35); developerProductsFrame.Parent = mainGui; Instance.new("UICorner", developerProductsFrame).CornerRadius = UDim.new(0, 6) local closeButton = Instance.new("TextButton") closeButton.Font = Enum.Font.GothamBold; closeButton.Text = "X"; closeButton.TextColor3 = Color3.fromRGB(255, 255, 255); closeButton.TextSize = 18; closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50); closeButton.BorderSizePixel = 0; closeButton.Position = UDim2.new(1, -32, 0, 2.5); closeButton.Size = UDim2.new(0, 30, 0, 30); closeButton.Parent = developerProductsFrame; Instance.new("UICorner", closeButton).CornerRadius = UDim.new(0, 6) local searchBox = Instance.new("TextBox") searchBox.Name = "SearchBox"; searchBox.Font = Enum.Font.Gotham; searchBox.Text = ""; searchBox.PlaceholderText = "Search by name..."; searchBox.TextColor3 = Color3.fromRGB(230, 230, 230); searchBox.TextSize = 14; searchBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30); searchBox.Position = UDim2.new(0, 0, 1, 2); searchBox.Size = UDim2.new(1, 0, 0, 30); searchBox.Parent = developerProductsFrame; Instance.new("UICorner", searchBox).CornerRadius = UDim.new(0, 6) task.delay(0.3, function() local buyAllProductsButton = Instance.new("TextButton") buyAllProductsButton.Name = "BuyAllProductsButton"; buyAllProductsButton.Font = Enum.Font.GothamBold; buyAllProductsButton.Text = "Buy All Products"; buyAllProductsButton.TextColor3 = Color3.fromRGB(255, 255, 255); buyAllProductsButton.TextSize = 14; buyAllProductsButton.BackgroundColor3 = Color3.fromRGB(150, 50, 50); buyAllProductsButton.BorderSizePixel = 0; buyAllProductsButton.Position = UDim2.new(0, 0, 1, 34); buyAllProductsButton.Size = UDim2.new(1, 0, 0, 30); buyAllProductsButton.Parent = developerProductsFrame; Instance.new("UICorner", buyAllProductsButton).CornerRadius = UDim.new(0, 6) end) local containerFrame = Instance.new("Frame") containerFrame.BackgroundColor3 = Color3.fromRGB(46, 46, 46); containerFrame.BorderSizePixel = 0; containerFrame.Position = UDim2.new(0, 0, 1, 66); containerFrame.Size = UDim2.new(0, 252, 0, 441); containerFrame.Parent = developerProductsFrame; Instance.new("UICorner").Parent = containerFrame; Instance.new("UIStroke", containerFrame).Color = Color3.fromRGB(113, 113, 113) local scrollingFrame = Instance.new("ScrollingFrame") scrollingFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y; scrollingFrame.ScrollBarThickness = 5; 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; --[[ Template Produk ]] 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(60, 60, 60); hoverBg.BackgroundTransparency = 1; hoverBg.BorderSizePixel = 0; hoverBg.Size = UDim2.new(1, 0, 1, 0); hoverBg.Name = "HoverBg"; Instance.new("UICorner", hoverBg).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(255, 255, 255); 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(255, 255, 255); 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 = "Product Price:"; priceLabel.TextColor3 = Color3.fromRGB(255, 255, 255); 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 = "Total 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(102, 102, 102); 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(255, 255, 255); autoBuyButton.TextSize = 12; autoBuyButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80); autoBuyButton.Position = UDim2.new(0.65, 0, 0.05, 0); autoBuyButton.Size = UDim2.new(0, 80, 0, 21); Instance.new("UICorner", autoBuyButton).CornerRadius = UDim.new(0, 4) local copyButton = Instance.new("TextButton", exampleProductFrame); copyButton.Name = "CopyButton"; copyButton.Font = Enum.Font.GothamBold; copyButton.Text = "Copy ID"; copyButton.TextColor3 = Color3.fromRGB(255, 255, 255); copyButton.TextSize = 12; copyButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70); copyButton.Position = UDim2.new(0.65, 0, 0.27, 0); copyButton.Size = UDim2.new(0, 80, 0, 21); Instance.new("UICorner", copyButton).CornerRadius = UDim.new(0, 4) local copyScriptButton = Instance.new("TextButton", exampleProductFrame); copyScriptButton.Name = "CopyScriptButton"; copyScriptButton.Font = Enum.Font.GothamBold; copyScriptButton.Text = "Copy Script"; copyScriptButton.TextColor3 = Color3.fromRGB(255, 255, 255); copyScriptButton.TextSize = 12; copyScriptButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70); copyScriptButton.Position = UDim2.new(0.65, 0, 0.49, 0); copyScriptButton.Size = UDim2.new(0, 80, 0, 21); Instance.new("UICorner", copyScriptButton).CornerRadius = UDim.new(0, 4) local buyButton = Instance.new("TextButton", exampleProductFrame); buyButton.Name = "BuyButton"; buyButton.Font = Enum.Font.GothamBold; buyButton.Text = "Buy Product"; buyButton.TextColor3 = Color3.fromRGB(255, 255, 255); buyButton.TextSize = 12; buyButton.BackgroundColor3 = Color3.fromRGB(150, 50, 50); buyButton.Position = UDim2.new(0.65, 0, 0.71, 0); buyButton.Size = UDim2.new(0, 80, 0, 21); Instance.new("UICorner", buyButton).CornerRadius = UDim.new(0, 4) local function createHoverEffect(button, hoverColor) local originalColor = button.BackgroundColor3; button.MouseEnter:Connect(function() TweenService:Create(button, TweenInfo.new(0.15), { BackgroundColor3 = hoverColor }):Play() end) button.MouseLeave:Connect(function() TweenService:Create(button, TweenInfo.new(0.15), { BackgroundColor3 = originalColor }):Play() end) end; task.spawn(function() local success, products = pcall(function() return MarketplaceService:GetDeveloperProductsAsync() end) if not success then warn("Failed to fetch developer products:", products) return end; local allProductsInfo = products:GetCurrentPage() local allProductFrames = {} local buyAllProductsButton = developerProductsFrame:WaitForChild("BuyAllProductsButton", 5) if buyAllProductsButton then createHoverEffect(buyAllProductsButton, Color3.fromRGB(180, 70, 70)) 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(200, 100, 0) 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(50, 150, 50) 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 end) productFrame.Click.MouseLeave:Connect(function() tooltipFrame.Visible = false 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 productHoverBg = productFrame.HoverBg; productFrame.Click.MouseEnter:Connect(function() TweenService:Create(productHoverBg, TweenInfo.new(0.2), { BackgroundTransparency = 0.7 }):Play() end) productFrame.Click.MouseLeave:Connect(function() TweenService:Create(productHoverBg, TweenInfo.new(0.2), { BackgroundTransparency = 1 }):Play() end) local productAutoBuyButton = productFrame.AutoBuyButton; createHoverEffect(productAutoBuyButton, Color3.fromRGB(100, 100, 100)) productAutoBuyButton.MouseButton1Click:Connect(function() autoBuyLoops[productFrame] = not autoBuyLoops[productFrame] if autoBuyLoops[productFrame] then productAutoBuyButton.BackgroundColor3 = Color3.fromRGB(50, 180, 50) task.spawn(function() while autoBuyLoops[productFrame] do Finished(productInfo); task.wait(0.1) end end) else productAutoBuyButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80) end end) local productCopyButton = productFrame.CopyButton; createHoverEffect(productCopyButton, Color3.fromRGB(90, 90, 90)) 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(50, 150, 50) task.wait(1); productCopyButton.Text = originalText; productCopyButton.BackgroundColor3 = originalColor end end) local productCopyScriptButton = productFrame.CopyScriptButton createHoverEffect(productCopyScriptButton, Color3.fromRGB(90, 90, 90)) productCopyScriptButton.MouseButton1Click:Connect(function() if setclipboard then -- [[ DIUBAH: Skrip yang disalin kini mengandungi pernyataan 'print' ]] local scriptToCopy = string.format([[ --// Services local MarketplaceService = game:GetService("MarketplaceService") local Players = game:GetService("Players") --// Variables local TargetPlayer = Players.LocalPlayer local ProductID = %d -- Product Name: %s --// Main Function -- This function attempts a silent purchase and falls back to a standard prompt if needed. local function purchaseProduct() local success, result = pcall(function() MarketplaceService:SignalPromptProductPurchaseFinished(TargetPlayer, ProductID, true) end) if not success then pcall(function() MarketplaceService:PromptProductPurchaseFinished(TargetPlayer, ProductID) end) end end --// Execute print("Product Faker V2: Purchase attempt initiated for product ID " .. ProductID) purchaseProduct() ]], productInfo.ProductId, productInfo.Name) setclipboard(scriptToCopy) local originalText = productCopyScriptButton.Text; local originalColor = productCopyScriptButton.BackgroundColor3; productCopyScriptButton.Text = "Copied!"; productCopyScriptButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50) task.wait(1); productCopyScriptButton.Text = originalText; productCopyScriptButton.BackgroundColor3 = originalColor end end) local productBuyButton = productFrame.BuyButton; createHoverEffect(productBuyButton, Color3.fromRGB(180, 70, 70)) 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(200, 100, 0); Finished(productInfo) activeButtonResets[productBuyButton] = task.spawn(function() task.wait(0.5); productBuyButton.Text = "Done!"; productBuyButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50) 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)