local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local camera = workspace.CurrentCamera -------------------------------------------------------------------- -- 1. MODERN UI CREATION -------------------------------------------------------------------- local screenGui = Instance.new("ScreenGui") screenGui.Name = "PullModGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- Main Container Frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 220, 0, 150) mainFrame.Position = UDim2.new(0, 30, 0.5, -75) mainFrame.BackgroundColor3 = Color3.fromRGB(24, 24, 28) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Parent = screenGui local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 10) frameCorner.Parent = mainFrame local frameStroke = Instance.new("UIStroke") frameStroke.Color = Color3.fromRGB(50, 50, 60) frameStroke.Thickness = 1.5 frameStroke.Parent = mainFrame -- Title Header local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 28) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "PULL MOD" titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 13 titleLabel.TextColor3 = Color3.fromRGB(180, 180, 190) titleLabel.Parent = mainFrame -- Main Pull Button local pullButton = Instance.new("TextButton") pullButton.Size = UDim2.new(0.88, 0, 0.4, 0) pullButton.Position = UDim2.new(0.06, 0, 0.22, 0) pullButton.Text = "HOLD TO PULL" pullButton.Font = Enum.Font.GothamBold pullButton.TextSize = 15 pullButton.TextColor3 = Color3.fromRGB(255, 255, 255) pullButton.BackgroundColor3 = Color3.fromRGB(220, 50, 60) pullButton.AutoButtonColor = false pullButton.Parent = mainFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 7) buttonCorner.Parent = pullButton -------------------------------------------------------------------- -- 2. STRENGTH CONTROLS (BOTTOM OF UI) -------------------------------------------------------------------- local pullSpeed = 120 -- Default Pull Speed local MIN_SPEED = 20 local MAX_SPEED = 300 local STEP = 20 local strengthFrame = Instance.new("Frame") strengthFrame.Size = UDim2.new(0.88, 0, 0.26, 0) strengthFrame.Position = UDim2.new(0.06, 0, 0.67, 0) strengthFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 42) strengthFrame.BorderSizePixel = 0 strengthFrame.Parent = mainFrame local strengthCorner = Instance.new("UICorner") strengthCorner.CornerRadius = UDim.new(0, 6) strengthCorner.Parent = strengthFrame -- Minus Button local minusBtn = Instance.new("TextButton") minusBtn.Size = UDim2.new(0.25, 0, 1, 0) minusBtn.Position = UDim2.new(0, 0, 0, 0) minusBtn.Text = "-" minusBtn.Font = Enum.Font.GothamBold minusBtn.TextSize = 18 minusBtn.TextColor3 = Color3.fromRGB(255, 255, 255) minusBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 60) minusBtn.Parent = strengthFrame local minusCorner = Instance.new("UICorner") minusCorner.CornerRadius = UDim.new(0, 6) minusCorner.Parent = minusBtn -- Plus Button local plusBtn = Instance.new("TextButton") plusBtn.Size = UDim2.new(0.25, 0, 1, 0) plusBtn.Position = UDim2.new(0.75, 0, 0, 0) plusBtn.Text = "+" plusBtn.Font = Enum.Font.GothamBold plusBtn.TextSize = 18 plusBtn.TextColor3 = Color3.fromRGB(255, 255, 255) plusBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 60) plusBtn.Parent = strengthFrame local plusCorner = Instance.new("UICorner") plusCorner.CornerRadius = UDim.new(0, 6) plusCorner.Parent = plusBtn -- Display Label local displayLabel = Instance.new("TextLabel") displayLabel.Size = UDim2.new(0.5, 0, 1, 0) displayLabel.Position = UDim2.new(0.25, 0, 0, 0) displayLabel.BackgroundTransparency = 1 displayLabel.Text = "Pwr: " .. pullSpeed displayLabel.Font = Enum.Font.GothamBold displayLabel.TextSize = 13 displayLabel.TextColor3 = Color3.fromRGB(220, 220, 230) displayLabel.Parent = strengthFrame -- Adjust Strength Logic minusBtn.MouseButton1Click:Connect(function() pullSpeed = math.max(MIN_SPEED, pullSpeed - STEP) displayLabel.Text = "Pwr: " .. pullSpeed end) plusBtn.MouseButton1Click:Connect(function() pullSpeed = math.min(MAX_SPEED, pullSpeed + STEP) displayLabel.Text = "Pwr: " .. pullSpeed end) -------------------------------------------------------------------- -- 3. DRAGGABLE UI SYSTEM -------------------------------------------------------------------- local dragging = false local dragInput, dragStart, startPos local function updateDrag(input) local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) mainFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then updateDrag(input) end end) -------------------------------------------------------------------- -- 4. PULL MOD PHYSICS LOGIC -------------------------------------------------------------------- local isPulling = false local function startPull() if isPulling then return end isPulling = true pullButton.BackgroundColor3 = Color3.fromRGB(40, 190, 90) -- Green active color task.spawn(function() while isPulling do local character = player.Character if character then local hrp = character:FindFirstChild("HumanoidRootPart") if hrp then local pullDirection = camera.CFrame.LookVector hrp.AssemblyLinearVelocity = pullDirection * pullSpeed end end task.wait() end pullButton.BackgroundColor3 = Color3.fromRGB(220, 50, 60) end) end local function stopPull() isPulling = false end pullButton.MouseButton1Down:Connect(startPull) pullButton.MouseButton1Up:Connect(stopPull) pullButton.MouseLeave:Connect(stopPull)