--// UI Upgrade (keeps your existing logic style) local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "ToolGiverUI" ScreenGui.Parent = game:GetService("CoreGui") ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.ResetOnSpawn = false -- Main Frame local Frame = Instance.new("Frame") Frame.Parent = ScreenGui Frame.Active = true Frame.BackgroundColor3 = Color3.fromRGB(18, 18, 22) Frame.BorderSizePixel = 0 Frame.Position = UDim2.new(0.06, 0, 0.1, 0) Frame.Size = UDim2.new(0, 260, 0, 300) local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 14) mainCorner.Parent = Frame local mainStroke = Instance.new("UIStroke") mainStroke.Color = Color3.fromRGB(55, 55, 70) mainStroke.Thickness = 1 mainStroke.Parent = Frame -- Top bar (for title + drag) local TopBar = Instance.new("Frame") TopBar.Parent = Frame TopBar.BackgroundColor3 = Color3.fromRGB(26, 26, 34) TopBar.BorderSizePixel = 0 TopBar.Size = UDim2.new(1, 0, 0, 38) local topCorner = Instance.new("UICorner") topCorner.CornerRadius = UDim.new(0, 14) topCorner.Parent = TopBar local Title = Instance.new("TextLabel") Title.Parent = TopBar Title.BackgroundTransparency = 1 Title.Position = UDim2.new(0, 12, 0, 0) Title.Size = UDim2.new(1, -24, 1, 0) Title.Font = Enum.Font.GothamBold Title.Text = "Tool Giver" Title.TextColor3 = Color3.fromRGB(240, 240, 255) Title.TextSize = 15 Title.TextXAlignment = Enum.TextXAlignment.Left -- ScrollingFrame local ScrollingFrame = Instance.new("ScrollingFrame") ScrollingFrame.Parent = Frame ScrollingFrame.Active = true ScrollingFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 26) ScrollingFrame.BorderSizePixel = 0 ScrollingFrame.Position = UDim2.new(0, 12, 0, 52) ScrollingFrame.Size = UDim2.new(1, -24, 1, -130) ScrollingFrame.ScrollBarThickness = 6 ScrollingFrame.ScrollBarImageColor3 = Color3.fromRGB(90, 90, 110) ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0) local scrollCorner = Instance.new("UICorner") scrollCorner.CornerRadius = UDim.new(0, 12) scrollCorner.Parent = ScrollingFrame local scrollStroke = Instance.new("UIStroke") scrollStroke.Color = Color3.fromRGB(50, 50, 64) scrollStroke.Thickness = 1 scrollStroke.Parent = ScrollingFrame local Padding = Instance.new("UIPadding") Padding.Parent = ScrollingFrame Padding.PaddingTop = UDim.new(0, 10) Padding.PaddingBottom = UDim.new(0, 10) Padding.PaddingLeft = UDim.new(0, 10) Padding.PaddingRight = UDim.new(0, 10) local UIListLayout = Instance.new("UIListLayout") UIListLayout.Parent = ScrollingFrame UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0, 8) UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y + 20) end) -- Template button (hidden) local TextButton = Instance.new("TextButton") TextButton.Parent = ScrollingFrame TextButton.Name = "TemplateButton" TextButton.BackgroundColor3 = Color3.fromRGB(34, 34, 44) TextButton.BorderSizePixel = 0 TextButton.Size = UDim2.new(1, 0, 0, 38) TextButton.Visible = false TextButton.Font = Enum.Font.Gotham TextButton.TextColor3 = Color3.fromRGB(230, 230, 245) TextButton.TextSize = 14 TextButton.TextWrapped = true TextButton.AutoButtonColor = false local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 10) btnCorner.Parent = TextButton local btnStroke = Instance.new("UIStroke") btnStroke.Color = Color3.fromRGB(60, 60, 78) btnStroke.Thickness = 1 btnStroke.Parent = TextButton -- Hover effect for clones local function attachHover(btn) btn.MouseEnter:Connect(function() TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(44, 44, 58)}):Play() end) btn.MouseLeave:Connect(function() TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(34, 34, 44)}):Play() end) end -- Update List button local TextButton_2 = Instance.new("TextButton") TextButton_2.Parent = Frame TextButton_2.Name = "UpdateList" TextButton_2.BackgroundColor3 = Color3.fromRGB(80, 255, 140) TextButton_2.BorderSizePixel = 0 TextButton_2.Position = UDim2.new(0, 12, 1, -78) TextButton_2.Size = UDim2.new(1, -24, 0, 34) TextButton_2.Font = Enum.Font.GothamBold TextButton_2.Text = "Update List" TextButton_2.TextColor3 = Color3.fromRGB(10, 10, 12) TextButton_2.TextSize = 14 local upCorner = Instance.new("UICorner") upCorner.CornerRadius = UDim.new(0, 10) upCorner.Parent = TextButton_2 -- Profile footer (username + avatar) local Footer = Instance.new("Frame") Footer.Parent = Frame Footer.BackgroundColor3 = Color3.fromRGB(26, 26, 34) Footer.BorderSizePixel = 0 Footer.Size = UDim2.new(1, 0, 0, 46) Footer.Position = UDim2.new(0, 0, 1, -46) local footCorner = Instance.new("UICorner") footCorner.CornerRadius = UDim.new(0, 14) footCorner.Parent = Footer local footStroke = Instance.new("UIStroke") footStroke.Color = Color3.fromRGB(55, 55, 70) footStroke.Thickness = 1 footStroke.Parent = Footer local Avatar = Instance.new("ImageLabel") Avatar.Parent = Footer Avatar.BackgroundTransparency = 1 Avatar.Size = UDim2.new(0, 32, 0, 32) Avatar.Position = UDim2.new(0, 12, 0.5, -16) local avCorner = Instance.new("UICorner") avCorner.CornerRadius = UDim.new(1, 0) avCorner.Parent = Avatar local UserText = Instance.new("TextLabel") UserText.Parent = Footer UserText.BackgroundTransparency = 1 UserText.Position = UDim2.new(0, 52, 0, 0) UserText.Size = UDim2.new(1, -64, 1, 0) UserText.Font = Enum.Font.GothamBold UserText.TextColor3 = Color3.fromRGB(240, 240, 255) UserText.TextSize = 13 UserText.TextXAlignment = Enum.TextXAlignment.Left UserText.Text = ("@%s"):format(player.Name) task.spawn(function() local img = Players:GetUserThumbnailAsync(player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150) Avatar.Image = img end) -- ====== YOUR ORIGINAL LOGIC (kept same style) ====== do local button = ScrollingFrame:WaitForChild("TemplateButton") button.Parent = nil button.Name = "slaves" local function updatelist() for _, v in ipairs(ScrollingFrame:GetDescendants()) do if v:IsA("TextButton") then v:Destroy() end end local function cloneToBackpack(toolObj) local clonedTool = toolObj:Clone() clonedTool.Parent = player:WaitForChild("Backpack") end for _, v in ipairs(game:GetDescendants()) do if v:IsA("Tool") and v.Parent and v.Parent.Parent ~= player then local clonebutton = button:Clone() clonebutton.Parent = ScrollingFrame clonebutton.Visible = true clonebutton.Text = v.Name attachHover(clonebutton) clonebutton.MouseButton1Click:Connect(function() cloneToBackpack(v) end) end end end TextButton_2.MouseButton1Click:Connect(updatelist) end -- ====== DRAG SCRIPT (better + smooth, drag from TopBar) ====== do local dragging = false local dragStart, startPos local function update(input) local delta = input.Position - dragStart Frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = Frame.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 update(input) end end) end