
KeylessUniversal

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 DARK_BG = Color3.fromRGB(30, 30, 30)
local DARK_BG_LIGHTER = Color3.fromRGB(45, 45, 45)
local ACCENT = Color3.fromRGB(200, 50, 50)
local ACCENT_HOVER = Color3.fromRGB(220, 70, 70)
local TEXT_COLOR = Color3.fromRGB(240, 240, 240)
local TEXT_SECONDARY = Color3.fromRGB(180, 180, 180)
local BUTTON_BG = Color3.fromRGB(60, 60, 60)
local BUTTON_HOVER = Color3.fromRGB(80, 80, 80)
local SUCCESS_COLOR = Color3.fromRGB(50, 150, 50)
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
local mainGui = Instance.new("ScreenGui")
mainGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
mainGui.Parent = CoreGui
local tooltipFrame = Instance.new("Frame")
tooltipFrame.Name = "DescriptionTooltip"
tooltipFrame.BackgroundColor3 = DARK_BG
tooltipFrame.BackgroundTransparency = 0.15
tooltipFrame.BorderSizePixel = 0
tooltipFrame.Size = UDim2.new(0, 220, 0, 50)
tooltipFrame.Visible = false
tooltipFrame.ZIndex = 10
tooltipFrame.Parent = mainGui
Instance.new("UICorner", tooltipFrame).CornerRadius = UDim.new(0, 6)
Instance.new("UIStroke", tooltipFrame).Color = Color3.fromRGB(80, 80, 80)
local tooltipPadding = Instance.new("UIPadding", tooltipFrame)
tooltipPadding.PaddingTop = UDim.new(0, 6)
tooltipPadding.PaddingBottom = UDim.new(0, 6)
tooltipPadding.PaddingLeft = UDim.new(0, 8)
tooltipPadding.PaddingRight = UDim.new(0, 8)
local tooltipLabel = Instance.new("TextLabel", tooltipFrame)
tooltipLabel.Name = "TooltipLabel"
tooltipLabel.Font = Enum.Font.Gotham
tooltipLabel.Text = ""
tooltipLabel.TextColor3 = TEXT_COLOR
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 mainFrame = Instance.new("TextButton")
mainFrame.Font = Enum.Font.GothamBold
mainFrame.Text = "Product Faker V3.0 "
mainFrame.TextColor3 = TEXT_COLOR
mainFrame.TextSize = 16
mainFrame.AutoButtonColor = false
mainFrame.BackgroundColor3 = DARK_BG
mainFrame.BackgroundTransparency = 0.15
mainFrame.BorderSizePixel = 0
mainFrame.Position = UDim2.new(0.35, 0, 0.3, 0)
mainFrame.Size = UDim2.new(0, 300, 0, 36)
mainFrame.Parent = mainGui
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8)
Instance.new("UIStroke", mainFrame).Color = Color3.fromRGB(80, 80, 80)
local closeButton = Instance.new("TextButton")
closeButton.Font = Enum.Font.GothamBold
closeButton.Text = "X"
closeButton.TextColor3 = TEXT_COLOR
closeButton.TextSize = 18
closeButton.BackgroundColor3 = ACCENT
closeButton.BackgroundTransparency = 0.2
closeButton.BorderSizePixel = 0
closeButton.Position = UDim2.new(1, -34, 0, 4)
closeButton.Size = UDim2.new(0, 28, 0, 28)
closeButton.Parent = mainFrame
Instance.new("UICorner", closeButton).CornerRadius = UDim.new(0, 6)
local minimizeButton = Instance.new("TextButton")
minimizeButton.Font = Enum.Font.GothamBold
minimizeButton.Text = "−"
minimizeButton.TextColor3 = TEXT_COLOR
minimizeButton.TextSize = 18
minimizeButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
minimizeButton.BackgroundTransparency = 0.2
minimizeButton.BorderSizePixel = 0
minimizeButton.Position = UDim2.new(1, -66, 0, 4)
minimizeButton.Size = UDim2.new(0, 28, 0, 28)
minimizeButton.Parent = mainFrame
Instance.new("UICorner", minimizeButton).CornerRadius = UDim.new(0, 6)
local refreshButton = Instance.new("TextButton")
refreshButton.Font = Enum.Font.GothamBold
refreshButton.Text = "R"
refreshButton.TextColor3 = TEXT_COLOR
refreshButton.TextSize = 18
refreshButton.BackgroundColor3 = Color3.fromRGB(70, 130, 200)
refreshButton.BackgroundTransparency = 0.2
refreshButton.BorderSizePixel = 0
refreshButton.Position = UDim2.new(1, -98, 0, 4)
refreshButton.Size = UDim2.new(0, 28, 0, 28)
refreshButton.Parent = mainFrame
Instance.new("UICorner", refreshButton).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.PlaceholderColor3 = Color3.fromRGB(160, 160, 160)
searchBox.TextColor3 = TEXT_COLOR
searchBox.TextSize = 14
searchBox.BackgroundColor3 = DARK_BG_LIGHTER
searchBox.BackgroundTransparency = 0.15
searchBox.Position = UDim2.new(0, 0, 1, 4)
searchBox.Size = UDim2.new(1, 0, 0, 32)
searchBox.Parent = mainFrame
Instance.new("UICorner", searchBox).CornerRadius = UDim.new(0, 6)
Instance.new("UIStroke", searchBox).Color = Color3.fromRGB(80, 80, 80)
local contentContainer = Instance.new("Frame")
contentContainer.BackgroundColor3 = DARK_BG
contentContainer.BackgroundTransparency = 0.15
contentContainer.BorderSizePixel = 0
contentContainer.Position = UDim2.new(0, 0, 1, 40)
contentContainer.Size = UDim2.new(0, 300, 0, 476)
contentContainer.Parent = mainFrame
Instance.new("UICorner", contentContainer).CornerRadius = UDim.new(0, 8)
Instance.new("UIStroke", contentContainer).Color = Color3.fromRGB(80, 80, 80)
local productsScrolling = Instance.new("ScrollingFrame")
productsScrolling.Name = "ProductsScrolling"
productsScrolling.AutomaticCanvasSize = Enum.AutomaticSize.Y
productsScrolling.ScrollBarThickness = 5
productsScrolling.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
productsScrolling.Active = true
productsScrolling.BackgroundTransparency = 1
productsScrolling.BorderSizePixel = 0
productsScrolling.Size = UDim2.new(1, 0, 1, 0)
productsScrolling.Parent = contentContainer
Instance.new("UIListLayout", productsScrolling).SortOrder = Enum.SortOrder.LayoutOrder
local exampleProductFrame = Instance.new("Frame")
exampleProductFrame.BackgroundTransparency = 1
exampleProductFrame.BorderSizePixel = 0
exampleProductFrame.Size = UDim2.new(1, 0, 0, 120)
exampleProductFrame.Visible = false
exampleProductFrame.Name = "ExampleFrame"
exampleProductFrame.Parent = productsScrolling
local hoverBg = Instance.new("Frame", exampleProductFrame)
hoverBg.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
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 = TEXT_COLOR
nameLabel.TextSize = 14
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.BackgroundTransparency = 1
nameLabel.Position = UDim2.new(0.05, 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 = TEXT_COLOR
idLabel.TextSize = 14
idLabel.TextXAlignment = Enum.TextXAlignment.Left
idLabel.BackgroundTransparency = 1
idLabel.Position = UDim2.new(0.05, 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 = TEXT_COLOR
priceLabel.TextSize = 14
priceLabel.TextXAlignment = Enum.TextXAlignment.Left
priceLabel.BackgroundTransparency = 1
priceLabel.Position = UDim2.new(0.05, 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 = TEXT_SECONDARY
purchaseCountLabel.TextSize = 13
purchaseCountLabel.TextXAlignment = Enum.TextXAlignment.Left
purchaseCountLabel.BackgroundTransparency = 1
purchaseCountLabel.Position = UDim2.new(0.05, 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(80, 80, 80)
divider.BorderSizePixel = 0
divider.Position = UDim2.new(0, 0, 1, 0)
divider.Size = UDim2.new(1, 0, 0, 1)
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 = TEXT_COLOR
autoBuyButton.TextSize = 12
autoBuyButton.BackgroundColor3 = BUTTON_BG
autoBuyButton.BackgroundTransparency = 0.15
autoBuyButton.Position = UDim2.new(0.67, 0, 0.05, 0)
autoBuyButton.Size = UDim2.new(0, 80, 0, 22)
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 = TEXT_COLOR
copyButton.TextSize = 12
copyButton.BackgroundColor3 = BUTTON_BG
copyButton.BackgroundTransparency = 0.15
copyButton.Position = UDim2.new(0.67, 0, 0.27, 0)
copyButton.Size = UDim2.new(0, 80, 0, 22)
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 = TEXT_COLOR
copyScriptButton.TextSize = 12
copyScriptButton.BackgroundColor3 = BUTTON_BG
copyScriptButton.BackgroundTransparency = 0.15
copyScriptButton.Position = UDim2.new(0.67, 0, 0.49, 0)
copyScriptButton.Size = UDim2.new(0, 80, 0, 22)
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 = TEXT_COLOR
buyButton.TextSize = 12
buyButton.BackgroundColor3 = ACCENT
buyButton.BackgroundTransparency = 0.2
buyButton.Position = UDim2.new(0.67, 0, 0.71, 0)
buyButton.Size = UDim2.new(0, 80, 0, 22)
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
local function stopAllAutoBuys()
for frame, isActive in pairs(autoBuyLoops) do
if isActive and frame and frame.Parent then
autoBuyLoops[frame] = false
local btn = frame:FindFirstChild("AutoBuyButton")
if btn then
btn.Text = "Auto Buy"
btn.BackgroundColor3 = BUTTON_BG
end
end
end
table.clear(autoBuyLoops)
end
local function updateScrollbarVisibility()
local visibleCount = 0
for _, child in ipairs(productsScrolling:GetChildren()) do
if child:IsA("Frame") and child.Visible and child.Name ~= "UIListLayout" then
visibleCount = visibleCount + 1
end
end
productsScrolling.ScrollingEnabled = (visibleCount > 3)
productsScrolling.ScrollBarThickness = (visibleCount > 3) and 5 or 0
end
local allProductFrames = {}
local function loadProducts()
for _, frame in ipairs(allProductFrames) do
frame:Destroy()
end
table.clear(allProductFrames)
local success, products = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync()
end)
if not success then return end
local allProductsInfo = products:GetCurrentPage()
for _, productInfo in pairs(allProductsInfo) do
local productFrame = exampleProductFrame:Clone()
productFrame:SetAttribute("ProductName", productInfo.Name)
productFrame.Visible = true
productFrame.Parent = productsScrolling
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) .. " R$"
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 hoverBg = productFrame.HoverBg
productFrame.Click.MouseEnter:Connect(function()
TweenService:Create(hoverBg, TweenInfo.new(0.2), { BackgroundTransparency = 0.6 }):Play()
end)
productFrame.Click.MouseLeave:Connect(function()
TweenService:Create(hoverBg, TweenInfo.new(0.2), { BackgroundTransparency = 1 }):Play()
end)
local autoBtn = productFrame.AutoBuyButton
local autoOriginalColor = BUTTON_BG
autoBtn.MouseEnter:Connect(function()
if autoBuyLoops[productFrame] then
TweenService:Create(autoBtn, TweenInfo.new(0.15), { BackgroundColor3 = ACCENT_HOVER }):Play()
else
TweenService:Create(autoBtn, TweenInfo.new(0.15), { BackgroundColor3 = BUTTON_HOVER }):Play()
end
end)
autoBtn.MouseLeave:Connect(function()
if autoBuyLoops[productFrame] then
TweenService:Create(autoBtn, TweenInfo.new(0.15), { BackgroundColor3 = ACCENT }):Play()
else
TweenService:Create(autoBtn, TweenInfo.new(0.15), { BackgroundColor3 = autoOriginalColor }):Play()
end
end)
autoBtn.MouseButton1Click:Connect(function()
autoBuyLoops[productFrame] = not autoBuyLoops[productFrame]
if autoBuyLoops[productFrame] then
autoBtn.Text = "Stop Auto Buy"
autoBtn.BackgroundColor3 = ACCENT
task.spawn(function()
while autoBuyLoops[productFrame] do
Finished(productInfo)
task.wait(0.1)
end
end)
else
autoBtn.Text = "Auto Buy"
autoBtn.BackgroundColor3 = autoOriginalColor
end
end)
local copyBtn = productFrame.CopyButton
createHoverEffect(copyBtn, BUTTON_HOVER)
copyBtn.MouseButton1Click:Connect(function()
if setclipboard then
setclipboard(tostring(productInfo.ProductId))
local origText = copyBtn.Text
local origColor = copyBtn.BackgroundColor3
copyBtn.Text = "Copied!"
copyBtn.BackgroundColor3 = SUCCESS_COLOR
task.wait(1)
copyBtn.Text = origText
copyBtn.BackgroundColor3 = origColor
end
end)
local copyScriptBtn = productFrame.CopyScriptButton
createHoverEffect(copyScriptBtn, BUTTON_HOVER)
copyScriptBtn.MouseButton1Click:Connect(function()
if setclipboard then
local scriptStr = string.format([[
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local TargetPlayer = Players.LocalPlayer
local ProductID = %d
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
purchaseProduct()
]], productInfo.ProductId)
setclipboard(scriptStr)
local origText = copyScriptBtn.Text
local origColor = copyScriptBtn.BackgroundColor3
copyScriptBtn.Text = "Copied!"
copyScriptBtn.BackgroundColor3 = SUCCESS_COLOR
task.wait(1)
copyScriptBtn.Text = origText
copyScriptBtn.BackgroundColor3 = origColor
end
end)
local buyBtn = productFrame.BuyButton
createHoverEffect(buyBtn, ACCENT_HOVER)
buyBtn.MouseButton1Click:Connect(function()
if activeButtonResets[buyBtn] then task.cancel(activeButtonResets[buyBtn]) end
if not buyBtn:GetAttribute("OriginalText") then
buyBtn:SetAttribute("OriginalText", buyBtn.Text)
buyBtn:SetAttribute("OriginalColor", buyBtn.BackgroundColor3)
end
local origText = buyBtn:GetAttribute("OriginalText")
local origColor = buyBtn:GetAttribute("OriginalColor")
buyBtn.Text = "Processing..."
buyBtn.BackgroundColor3 = Color3.fromRGB(200, 100, 0)
Finished(productInfo)
activeButtonResets[buyBtn] = task.spawn(function()
task.wait(0.5)
buyBtn.Text = "Done!"
buyBtn.BackgroundColor3 = SUCCESS_COLOR
task.wait(1.5)
buyBtn.Text = origText
buyBtn.BackgroundColor3 = origColor
activeButtonResets[buyBtn] = nil
end)
end)
end
updateScrollbarVisibility()
end
searchBox:GetPropertyChangedSignal("Text"):Connect(function()
local searchText = searchBox.Text:lower()
for _, frame in ipairs(allProductFrames) do
local productName = frame:GetAttribute("ProductName"):lower()
frame.Visible = searchText == "" or string.find(productName, searchText, 1, true) ~= nil
end
updateScrollbarVisibility()
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)
refreshButton.MouseButton1Click:Connect(function()
loadProducts()
refreshButton.Text = "✓"
task.wait(0.5)
refreshButton.Text = "R"
end)
createHoverEffect(refreshButton, Color3.fromRGB(100, 160, 230))
createHoverEffect(minimizeButton, Color3.fromRGB(100, 100, 100))
closeButton.MouseButton1Click:Connect(function()
stopAllAutoBuys()
mainGui:Destroy()
end)
local isMinimized = false
minimizeButton.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
if isMinimized then
minimizeButton.Text = "+"
minimizeButton.BackgroundColor3 = SUCCESS_COLOR
searchBox.Visible = false
contentContainer.Visible = false
TweenService:Create(mainFrame, TweenInfo.new(0.3), { Size = UDim2.new(0, 300, 0, 36) }):Play()
else
minimizeButton.Text = "−"
minimizeButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
searchBox.Visible = true
contentContainer.Visible = true
TweenService:Create(mainFrame, TweenInfo.new(0.3), { Size = UDim2.new(0, 300, 0, 36) }):Play()
end
end)
local isDragging, dragStart, startPosition, moveConn, upConn
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isDragging = true
dragStart = input.Position
startPosition = mainFrame.Position
moveConn = 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
mainFrame.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
end
end)
upConn = UserInputService.InputEnded:Connect(function(endInput)
if (endInput.UserInputType == Enum.UserInputType.MouseButton1 or endInput.UserInputType == Enum.UserInputType.Touch) and isDragging then
isDragging = false
if moveConn then moveConn:Disconnect() end
if upConn then upConn:Disconnect() end
end
end)
end
end)
loadProducts()



hey i can u make u script to put up and will put ur name on the menus please reply to my comment with yes or no
@kanewright71 what game is it for?
@Casualdeveloper any u need
okay do 119405710070223