local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local LP = Players.LocalPlayer local TS = game:GetService("TweenService") local guiParent = LP:WaitForChild("PlayerGui") pcall(function() if gethui then guiParent = gethui() end end) for _, g in ipairs(guiParent:GetChildren()) do if g.Name == "GearGiverGui" then g:Destroy() end end local function findGearRemote() for _, d in ipairs(game:GetDescendants()) do if d:IsA("RemoteFunction") and d.Name == "RemoteFunction" then if d:FindFirstAncestor("gear machine chest") then return d end end end return nil end local screen = Instance.new("ScreenGui") screen.Name = "GearGiverGui" screen.ResetOnSpawn = false screen.IgnoreGuiInset = true screen.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screen.DisplayOrder = 999 screen.Parent = guiParent local W = 320 local SINGLE_H, MULTI_H = 274, 312 local connections = {} local function track(conn) table.insert(connections, conn) return conn end local destroyed = false local main = Instance.new("Frame") main.Name = "Main" main.AnchorPoint = Vector2.new(0.5, 0.5) main.Position = UDim2.fromScale(0.5, 0.5) main.Size = UDim2.fromOffset(W, SINGLE_H) main.BackgroundColor3 = Color3.fromRGB(22, 22, 34) main.BorderSizePixel = 0 main.Active = true main.ClipsDescendants = true main.ZIndex = 1 main.Parent = screen Instance.new("UICorner", main).CornerRadius = UDim.new(0, 14) local mainGrad = Instance.new("UIGradient") mainGrad.Color = ColorSequence.new(Color3.fromRGB(30, 30, 46), Color3.fromRGB(16, 16, 24)) mainGrad.Rotation = 90 mainGrad.Parent = main local mainStroke = Instance.new("UIStroke") mainStroke.Thickness = 1 mainStroke.Color = Color3.fromRGB(80, 80, 120) mainStroke.Transparency = 0.4 mainStroke.Parent = main local header = Instance.new("Frame") header.Name = "Header" header.Size = UDim2.new(1, 0, 0, 36) header.BackgroundTransparency = 1 header.BorderSizePixel = 0 header.ZIndex = 2 header.Parent = main local dot = Instance.new("Frame") dot.Name = "Dot" dot.Size = UDim2.fromOffset(10, 10) dot.Position = UDim2.new(0, 12, 0.5, 0) dot.AnchorPoint = Vector2.new(0, 0.5) dot.BackgroundColor3 = Color3.fromRGB(124, 92, 255) dot.BorderSizePixel = 0 dot.ZIndex = 3 dot.Parent = header Instance.new("UICorner", dot).CornerRadius = UDim.new(1, 0) local dotGrad = Instance.new("UIGradient") dotGrad.Color = ColorSequence.new(Color3.fromRGB(124, 92, 255), Color3.fromRGB(56, 189, 248)) dotGrad.Parent = dot local title = Instance.new("TextLabel") title.Name = "Title" title.BackgroundTransparency = 1 title.Position = UDim2.new(0, 30, 0, 0) title.Size = UDim2.new(1, -100, 1, 0) title.Font = Enum.Font.GothamBold title.Text = "GEAR GIVER" title.TextSize = 15 title.TextColor3 = Color3.fromRGB(235, 235, 245) title.TextXAlignment = Enum.TextXAlignment.Left title.ZIndex = 3 title.Parent = header local minBtn = Instance.new("TextButton") minBtn.Name = "Minimize" minBtn.Size = UDim2.fromOffset(22, 22) minBtn.Position = UDim2.new(1, -40, 0.5, 0) minBtn.AnchorPoint = Vector2.new(1, 0.5) minBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 70) minBtn.BorderSizePixel = 0 minBtn.AutoButtonColor = false minBtn.Font = Enum.Font.GothamBold minBtn.Text = "–" minBtn.TextSize = 14 minBtn.TextColor3 = Color3.fromRGB(200, 200, 215) minBtn.ZIndex = 3 minBtn.Parent = header Instance.new("UICorner", minBtn).CornerRadius = UDim.new(0, 7) minBtn.MouseEnter:Connect(function() TS:Create(minBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(255, 180, 60), TextColor3 = Color3.fromRGB(30, 30, 30)}):Play() end) minBtn.MouseLeave:Connect(function() TS:Create(minBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(50, 50, 70), TextColor3 = Color3.fromRGB(200, 200, 215)}):Play() end) local closeBtn = Instance.new("TextButton") closeBtn.Name = "Close" closeBtn.Size = UDim2.fromOffset(22, 22) closeBtn.Position = UDim2.new(1, -12, 0.5, 0) closeBtn.AnchorPoint = Vector2.new(1, 0.5) closeBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 70) closeBtn.BorderSizePixel = 0 closeBtn.AutoButtonColor = false closeBtn.Font = Enum.Font.GothamBold closeBtn.Text = "X" closeBtn.TextSize = 12 closeBtn.TextColor3 = Color3.fromRGB(200, 200, 215) closeBtn.ZIndex = 3 closeBtn.Parent = header Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 7) closeBtn.MouseEnter:Connect(function() TS:Create(closeBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(220, 60, 80), TextColor3 = Color3.fromRGB(255, 255, 255)}):Play() end) closeBtn.MouseLeave:Connect(function() TS:Create(closeBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(50, 50, 70), TextColor3 = Color3.fromRGB(200, 200, 215)}):Play() end) local modeBar = Instance.new("Frame") modeBar.Name = "ModeBar" modeBar.Position = UDim2.new(0, 12, 0, 44) modeBar.Size = UDim2.new(1, -24, 0, 28) modeBar.BackgroundColor3 = Color3.fromRGB(26, 26, 38) modeBar.BorderSizePixel = 0 modeBar.ZIndex = 2 modeBar.Parent = main Instance.new("UICorner", modeBar).CornerRadius = UDim.new(0, 9) local mbStroke = Instance.new("UIStroke"); mbStroke.Thickness = 1; mbStroke.Color = Color3.fromRGB(60, 60, 90); mbStroke.Transparency = 0.4; mbStroke.Parent = modeBar local function makeModeBtn(name, text, xscale) local b = Instance.new("TextButton") b.Name = name b.Position = UDim2.new(xscale, 0, 0, 0) b.Size = UDim2.new(0.5, -4, 1, -6) b.BackgroundColor3 = Color3.fromRGB(124, 92, 255) b.BackgroundTransparency = 1 b.BorderSizePixel = 0 b.AutoButtonColor = false b.Font = Enum.Font.GothamBold b.Text = text b.TextSize = 12 b.TextColor3 = Color3.fromRGB(150, 150, 175) b.ZIndex = 3 b.Parent = modeBar Instance.new("UICorner", b).CornerRadius = UDim.new(0, 7) return b end local btnSingle = makeModeBtn("Single", "SINGLE", 0) btnSingle.Position = UDim2.new(0, 3, 0, 3) local btnMulti = makeModeBtn("Multi", "MULTIPLE", 0.5) btnMulti.Position = UDim2.new(0.5, 1, 0, 3) local function makeBox() local b = Instance.new("TextBox") b.Name = "GearBox" b.BackgroundColor3 = Color3.fromRGB(30, 30, 44) b.BorderSizePixel = 0 b.Font = Enum.Font.Gotham b.PlaceholderColor3 = Color3.fromRGB(120, 120, 145) b.Text = "" b.TextColor3 = Color3.fromRGB(235, 235, 245) b.TextSize = 13 b.ClearTextOnFocus = false b.ZIndex = 2 b.Parent = main Instance.new("UICorner", b).CornerRadius = UDim.new(0, 9) local s = Instance.new("UIStroke"); s.Thickness = 1; s.Color = Color3.fromRGB(70, 70, 100); s.Transparency = 0.3; s.Parent = b local p = Instance.new("UIPadding"); p.PaddingLeft = UDim.new(0, 8); p.PaddingRight = UDim.new(0, 8); p.Parent = b b.Focused:Connect(function() TS:Create(s, TweenInfo.new(0.15), {Color = Color3.fromRGB(124, 92, 255), Transparency = 0}):Play() end) b.FocusLost:Connect(function() TS:Create(s, TweenInfo.new(0.15), {Color = Color3.fromRGB(70, 70, 100), Transparency = 0.3}):Play() end) return b end local tb1 = makeBox() local tb2 = makeBox() local tb3 = makeBox() local tb4 = makeBox() local boxes = {tb1, tb2, tb3, tb4} local giveBtn = Instance.new("TextButton") giveBtn.Name = "GiveButton" giveBtn.Size = UDim2.new(1, -24, 0, 38) giveBtn.BackgroundColor3 = Color3.fromRGB(124, 92, 255) giveBtn.BorderSizePixel = 0 giveBtn.AutoButtonColor = false giveBtn.Font = Enum.Font.GothamBold giveBtn.Text = "GIVE GEAR" giveBtn.TextSize = 15 giveBtn.TextColor3 = Color3.fromRGB(255, 255, 255) giveBtn.ZIndex = 2 giveBtn.Parent = main Instance.new("UICorner", giveBtn).CornerRadius = UDim.new(0, 9) local gGrad = Instance.new("UIGradient") gGrad.Color = ColorSequence.new(Color3.fromRGB(139, 108, 255), Color3.fromRGB(56, 189, 248)) gGrad.Parent = giveBtn local gStroke = Instance.new("UIStroke"); gStroke.Thickness = 1; gStroke.Color = Color3.fromRGB(180, 165, 255); gStroke.Transparency = 0.5; gStroke.Parent = giveBtn giveBtn.MouseEnter:Connect(function() TS:Create(giveBtn, TweenInfo.new(0.15), {Size = UDim2.new(1, -20, 0, 38)}):Play() end) giveBtn.MouseLeave:Connect(function() TS:Create(giveBtn, TweenInfo.new(0.15), {Size = UDim2.new(1, -24, 0, 38)}):Play() end) local status = Instance.new("TextLabel") status.Name = "Status" status.BackgroundTransparency = 1 status.Size = UDim2.new(1, -24, 0, 24) status.Font = Enum.Font.Gotham status.TextSize = 12 status.TextColor3 = Color3.fromRGB(140, 140, 165) status.TextXAlignment = Enum.TextXAlignment.Left status.ZIndex = 2 status.Parent = main local function setStatus(msg, color) status.Text = msg status.TextColor3 = color or Color3.fromRGB(140, 140, 165) end local loopEnabled = false local loopDelay = 1.0 local loopCount = 0 local loopThread = nil local loopRow = Instance.new("Frame") loopRow.Name = "LoopRow" loopRow.Position = UDim2.fromOffset(12, 196) loopRow.Size = UDim2.new(1, -24, 0, 30) loopRow.BackgroundColor3 = Color3.fromRGB(30, 30, 44) loopRow.BorderSizePixel = 0 loopRow.ZIndex = 2 loopRow.Parent = main Instance.new("UICorner", loopRow).CornerRadius = UDim.new(0, 8) local lrStroke = Instance.new("UIStroke"); lrStroke.Thickness = 1; lrStroke.Color = Color3.fromRGB(70, 70, 100); lrStroke.Transparency = 0.3; lrStroke.Parent = loopRow local loopLabel = Instance.new("TextLabel") loopLabel.BackgroundTransparency = 1 loopLabel.Position = UDim2.fromOffset(10, 0) loopLabel.Size = UDim2.new(1, -80, 1, 0) loopLabel.Font = Enum.Font.GothamBold loopLabel.Text = "LOOP GIVE" loopLabel.TextSize = 12 loopLabel.TextColor3 = Color3.fromRGB(220, 220, 235) loopLabel.TextXAlignment = Enum.TextXAlignment.Left loopLabel.ZIndex = 3 loopLabel.Parent = loopRow local loopTrack = Instance.new("Frame") loopTrack.Size = UDim2.fromOffset(40, 20) loopTrack.Position = UDim2.new(1, -50, 0.5, -10) loopTrack.BackgroundColor3 = Color3.fromRGB(60, 60, 80) loopTrack.BorderSizePixel = 0 loopTrack.ZIndex = 3 loopTrack.Parent = loopRow Instance.new("UICorner", loopTrack).CornerRadius = UDim.new(1, 0) local loopKnob = Instance.new("Frame") loopKnob.Size = UDim2.fromOffset(16, 16) loopKnob.Position = UDim2.new(0, 2, 0.5, -8) loopKnob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) loopKnob.BorderSizePixel = 0 loopKnob.ZIndex = 4 loopKnob.Parent = loopTrack Instance.new("UICorner", loopKnob).CornerRadius = UDim.new(1, 0) local loopHit = Instance.new("TextButton") loopHit.Size = UDim2.new(1, 0, 1, 0) loopHit.BackgroundTransparency = 1 loopHit.Text = "" loopHit.ZIndex = 5 loopHit.Parent = loopRow local delayRow = Instance.new("Frame") delayRow.Name = "DelayRow" delayRow.Position = UDim2.fromOffset(12, 232) delayRow.Size = UDim2.new(1, -24, 0, 30) delayRow.BackgroundColor3 = Color3.fromRGB(30, 30, 44) delayRow.BorderSizePixel = 0 delayRow.ZIndex = 2 delayRow.Parent = main Instance.new("UICorner", delayRow).CornerRadius = UDim.new(0, 8) local drStroke = Instance.new("UIStroke"); drStroke.Thickness = 1; drStroke.Color = Color3.fromRGB(70, 70, 100); drStroke.Transparency = 0.3; drStroke.Parent = delayRow local delayLabel = Instance.new("TextLabel") delayLabel.BackgroundTransparency = 1 delayLabel.Position = UDim2.fromOffset(10, 0) delayLabel.Size = UDim2.new(1, -90, 1, 0) delayLabel.Font = Enum.Font.GothamBold delayLabel.Text = "LOOP DELAY (s)" delayLabel.TextSize = 12 delayLabel.TextColor3 = Color3.fromRGB(220, 220, 235) delayLabel.TextXAlignment = Enum.TextXAlignment.Left delayLabel.ZIndex = 3 delayLabel.Parent = delayRow local delayValue = Instance.new("TextBox") delayValue.Name = "DelayValue" delayValue.Size = UDim2.fromOffset(64, 22) delayValue.Position = UDim2.new(1, -74, 0.5, -11) delayValue.BackgroundColor3 = Color3.fromRGB(60, 60, 80) delayValue.BorderSizePixel = 0 delayValue.Font = Enum.Font.GothamBold delayValue.Text = "1.0" delayValue.PlaceholderText = "1.0" delayValue.PlaceholderColor3 = Color3.fromRGB(140, 140, 160) delayValue.TextSize = 12 delayValue.TextColor3 = Color3.fromRGB(220, 220, 235) delayValue.ClearTextOnFocus = false delayValue.ZIndex = 3 delayValue.Parent = delayRow Instance.new("UICorner", delayValue).CornerRadius = UDim.new(0, 6) local dvPad = Instance.new("UIPadding"); dvPad.PaddingLeft = UDim.new(0, 6); dvPad.PaddingRight = UDim.new(0, 6); dvPad.Parent = delayValue local dvStroke = Instance.new("UIStroke"); dvStroke.Thickness = 1; dvStroke.Color = Color3.fromRGB(70, 70, 100); dvStroke.Transparency = 0.3; dvStroke.Parent = delayValue delayValue.Focused:Connect(function() TS:Create(dvStroke, TweenInfo.new(0.15), {Color = Color3.fromRGB(124, 92, 255), Transparency = 0}):Play() end) delayValue.FocusLost:Connect(function() TS:Create(dvStroke, TweenInfo.new(0.15), {Color = Color3.fromRGB(70, 70, 100), Transparency = 0.3}):Play() local num = tonumber(delayValue.Text) if not num then delayValue.Text = tostring(loopDelay) setStatus("Delay must be a number.", Color3.fromRGB(240, 120, 120)) return end if num < 0.05 then num = 0.05 end if num > 60 then num = 60 end loopDelay = num delayValue.Text = tostring(loopDelay) setStatus("Loop delay set to " .. loopDelay .. "s.") end) delayValue:GetPropertyChangedSignal("Text"):Connect(function() local clean = delayValue.Text:gsub("[^%d%.]", "") local firstDot = clean:find("%.") if firstDot then clean = clean:sub(1, firstDot) .. clean:sub(firstDot + 1):gsub("%.", "") end if clean ~= delayValue.Text then delayValue.Text = clean end end) -- ============================================================ -- BUBBLE with persistent position -- ============================================================ local bubble = Instance.new("TextButton") bubble.Name = "Bubble" bubble.Size = UDim2.fromOffset(52, 52) bubble.Position = UDim2.new(0, 24, 0, 80) bubble.BackgroundColor3 = Color3.fromRGB(22, 22, 34) bubble.BorderSizePixel = 0 bubble.AutoButtonColor = false bubble.Font = Enum.Font.GothamBold bubble.Text = "GG" bubble.TextSize = 16 bubble.TextColor3 = Color3.fromRGB(235, 235, 245) bubble.Visible = false bubble.Active = true bubble.ZIndex = 50 bubble.Parent = screen Instance.new("UICorner", bubble).CornerRadius = UDim.new(1, 0) local bubbleGrad = Instance.new("UIGradient") bubbleGrad.Color = ColorSequence.new(Color3.fromRGB(139, 108, 255), Color3.fromRGB(56, 189, 248)) bubbleGrad.Parent = bubble local bubbleStroke = Instance.new("UIStroke") bubbleStroke.Thickness = 1.5 bubbleStroke.Color = Color3.fromRGB(180, 165, 255) bubbleStroke.Transparency = 0.2 bubbleStroke.Parent = bubble -- persistent bubble position: saved across minimize/reopen cycles local bubbleSavedPos = nil local bubbleDragging = false local bubbleDragStart = nil local bubbleStartPos = nil local bubbleMoved = false bubble.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then bubbleDragging = true bubbleMoved = false bubbleDragStart = input.Position bubbleStartPos = bubble.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then bubbleDragging = false -- SAVE: remember where the user dropped the bubble bubbleSavedPos = bubble.Position end end) end end) UIS.InputChanged:Connect(function(input) if bubbleDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - bubbleDragStart if delta.Magnitude > 6 then bubbleMoved = true end bubble.Position = UDim2.new(bubbleStartPos.X.Scale, bubbleStartPos.X.Offset + delta.X, bubbleStartPos.Y.Scale, bubbleStartPos.Y.Offset + delta.Y) end end) bubble.MouseButton1Click:Connect(function() if bubbleMoved then return end bubble.Visible = false main.Visible = true TS:Create(main, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2.fromOffset(W, mode == "multi" and MULTI_H or SINGLE_H) }):Play() end) local function fullTeardown() destroyed = true loopEnabled = false if loopThread then pcall(task.cancel, loopThread); loopThread = nil end for _, c in ipairs(connections) do pcall(function() c:Disconnect() end) end connections = {} pcall(function() screen:Destroy() end) pcall(function() if syn and syn.gc then syn.gc() end end) end -- minimize: bubble returns to its saved spot if the user has dragged it before local function minimizeToBubble() if bubbleSavedPos then -- restore where user last dragged it bubble.Position = bubbleSavedPos else -- first time: place it near the hub bubble.Position = UDim2.new( main.Position.X.Scale, main.Position.X.Offset - 26, main.Position.Y.Scale, main.Position.Y.Offset - 26 ) end main.Visible = false bubble.Visible = true setStatus("minimized") end minBtn.MouseButton1Click:Connect(minimizeToBubble) closeBtn.MouseButton1Click:Connect(fullTeardown) local function giveGear() if destroyed then return end local ids = {} for _, b in ipairs(boxes) do if b.Visible then for id in b.Text:gmatch("%d+") do ids[#ids+1] = id end end end if #ids == 0 then if not loopEnabled then setStatus("Enter at least one valid Gear ID.", Color3.fromRGB(240, 120, 120)) end return end local remote = findGearRemote() if not remote then if not loopEnabled then setStatus("Gear remote not found.", Color3.fromRGB(240, 120, 120)) end return end if not loopEnabled then setStatus("Requesting " .. #ids .. " gear(s)...", Color3.fromRGB(220, 200, 120)) end local okCount = 0 for _, id in ipairs(ids) do if destroyed then return end local ok = pcall(function() remote:InvokeServer("give gear", id) end) if ok then okCount += 1 end task.wait(0.1) end if not loopEnabled then if okCount == #ids then setStatus("Requested " .. okCount .. " gear(s)!", Color3.fromRGB(120, 230, 150)) else setStatus("Requested " .. okCount .. "/" .. #ids .. " gear(s).", Color3.fromRGB(230, 200, 120)) end end end local function renderLoopToggle() if destroyed then return end TS:Create(loopKnob, TweenInfo.new(0.15), { Position = loopEnabled and UDim2.new(1, -18, 0.5, -8) or UDim2.new(0, 2, 0.5, -8) }):Play() TS:Create(loopTrack, TweenInfo.new(0.15), { BackgroundColor3 = loopEnabled and Color3.fromRGB(120, 230, 150) or Color3.fromRGB(60, 60, 80) }):Play() end local function stopLoop() loopEnabled = false if loopThread then pcall(task.cancel, loopThread) loopThread = nil end renderLoopToggle() end local function startLoop() loopCount = 0 if loopThread then task.cancel(loopThread) end loopThread = task.spawn(function() while loopEnabled and not destroyed do giveGear() loopCount += 1 if loopEnabled and not destroyed then setStatus("Loop #" .. loopCount .. " · next in " .. loopDelay .. "s", Color3.fromRGB(120, 200, 230)) end task.wait(loopDelay) end end) end loopHit.MouseButton1Click:Connect(function() if destroyed then return end loopEnabled = not loopEnabled renderLoopToggle() if loopEnabled then startLoop() else stopLoop() setStatus("Loop stopped · " .. loopCount .. " cycle(s).", Color3.fromRGB(150, 150, 175)) end end) local mode = "single" local halfW = (W - 24 - 8) / 2 local function setMode(newMode) if destroyed then return end mode = newMode local isMulti = newMode == "multi" if isMulti then tb1.PlaceholderText = "Gear ID 1" tb2.PlaceholderText = "Gear ID 2" tb3.PlaceholderText = "Gear ID 3" tb4.PlaceholderText = "Gear ID 4" tb1.Position = UDim2.fromOffset(12, 80); tb1.Size = UDim2.fromOffset(halfW, 32) tb2.Position = UDim2.fromOffset(12 + halfW + 8, 80); tb2.Size = UDim2.fromOffset(halfW, 32) tb3.Position = UDim2.fromOffset(12, 116); tb3.Size = UDim2.fromOffset(halfW, 32) tb4.Position = UDim2.fromOffset(12 + halfW + 8, 116); tb4.Size = UDim2.fromOffset(halfW, 32) tb2.Visible = true; tb3.Visible = true; tb4.Visible = true TS:Create(btnMulti, TweenInfo.new(0.18), {BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(255, 255, 255)}):Play() TS:Create(btnSingle, TweenInfo.new(0.18), {BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 175)}):Play() TS:Create(giveBtn, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 158)}):Play() TS:Create(status, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 204)}):Play() TS:Create(loopRow, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 234)}):Play() TS:Create(delayRow, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 270)}):Play() TS:Create(main, TweenInfo.new(0.2), {Size = UDim2.fromOffset(W, MULTI_H)}):Play() setStatus("Multiple gear mode (4 slots).") else tb1.PlaceholderText = "Enter Gear ID..." tb1.Position = UDim2.fromOffset(12, 80); tb1.Size = UDim2.new(1, -24, 0, 34) tb2.Visible = false; tb3.Visible = false; tb4.Visible = false TS:Create(btnSingle, TweenInfo.new(0.18), {BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(255, 255, 255)}):Play() TS:Create(btnMulti, TweenInfo.new(0.18), {BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 175)}):Play() TS:Create(giveBtn, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 122)}):Play() TS:Create(status, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 166)}):Play() TS:Create(loopRow, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 196)}):Play() TS:Create(delayRow, TweenInfo.new(0.2), {Position = UDim2.fromOffset(12, 232)}):Play() TS:Create(main, TweenInfo.new(0.2), {Size = UDim2.fromOffset(W, SINGLE_H)}):Play() setStatus("Single gear mode.") end end btnSingle.MouseButton1Click:Connect(function() if mode ~= "single" then setMode("single") end end) btnMulti.MouseButton1Click:Connect(function() if mode ~= "multi" then setMode("multi") end end) giveBtn.MouseButton1Click:Connect(giveGear) for _, b in ipairs(boxes) do b.FocusLost:Connect(function(enter) if enter then giveGear() end end) end setMode("single") local dragging, dragStart, startPos header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UIS.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end)