-- Bring Menu GUI local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local PathfindingService = game:GetService("PathfindingService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Create GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "BringMenu" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 320, 0, 430) mainFrame.Position = UDim2.new(0.5, -160, 0.5, -215) mainFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui -- Corner rounding local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = mainFrame -- Title bar local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 30) titleBar.Position = UDim2.new(0, 0, 0, 0) titleBar.BackgroundColor3 = Color3.fromRGB(35, 35, 35) titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 8) titleCorner.Parent = titleBar local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, -60, 1, 0) titleLabel.Position = UDim2.new(0, 10, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Advanced Bring Menu" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextScaled = true titleLabel.Font = Enum.Font.GothamBold titleLabel.Parent = titleBar -- Close button local closeButton = Instance.new("TextButton") closeButton.Name = "CloseButton" closeButton.Size = UDim2.new(0, 30, 0, 30) closeButton.Position = UDim2.new(1, -30, 0, 0) closeButton.BackgroundColor3 = Color3.fromRGB(255, 85, 85) closeButton.BorderSizePixel = 0 closeButton.Text = "X" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextScaled = true closeButton.Font = Enum.Font.GothamBold closeButton.Parent = titleBar local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 8) closeCorner.Parent = closeButton -- Mode selector local modeFrame = Instance.new("Frame") modeFrame.Name = "ModeFrame" modeFrame.Size = UDim2.new(1, -20, 0, 35) modeFrame.Position = UDim2.new(0, 10, 0, 40) modeFrame.BackgroundColor3 = Color3.fromRGB(55, 55, 55) modeFrame.BorderSizePixel = 0 modeFrame.Parent = mainFrame local modeCorner = Instance.new("UICorner") modeCorner.CornerRadius = UDim.new(0, 6) modeCorner.Parent = modeFrame local modeDropdown = Instance.new("TextButton") modeDropdown.Name = "ModeDropdown" modeDropdown.Size = UDim2.new(1, -20, 1, 0) modeDropdown.Position = UDim2.new(0, 10, 0, 0) modeDropdown.BackgroundTransparency = 1 modeDropdown.Text = "Classic Lift ▼" modeDropdown.TextColor3 = Color3.fromRGB(255, 255, 255) modeDropdown.TextScaled = true modeDropdown.Font = Enum.Font.Gotham modeDropdown.Parent = modeFrame -- Username input local usernameFrame = Instance.new("Frame") usernameFrame.Name = "UsernameFrame" usernameFrame.Size = UDim2.new(1, -20, 0, 40) usernameFrame.Position = UDim2.new(0, 10, 0, 85) usernameFrame.BackgroundColor3 = Color3.fromRGB(55, 55, 55) usernameFrame.BorderSizePixel = 0 usernameFrame.Parent = mainFrame local usernameCorner = Instance.new("UICorner") usernameCorner.CornerRadius = UDim.new(0, 6) usernameCorner.Parent = usernameFrame local usernameBox = Instance.new("TextBox") usernameBox.Name = "UsernameBox" usernameBox.Size = UDim2.new(1, -20, 1, 0) usernameBox.Position = UDim2.new(0, 10, 0, 0) usernameBox.BackgroundTransparency = 1 usernameBox.PlaceholderText = "Enter username or partial name..." usernameBox.Text = "" usernameBox.TextColor3 = Color3.fromRGB(255, 255, 255) usernameBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150) usernameBox.TextScaled = true usernameBox.Font = Enum.Font.Gotham usernameBox.Parent = usernameFrame -- Bring button local bringButton = Instance.new("TextButton") bringButton.Name = "BringButton" bringButton.Size = UDim2.new(1, -20, 0, 40) bringButton.Position = UDim2.new(0, 10, 0, 135) bringButton.BackgroundColor3 = Color3.fromRGB(85, 170, 85) bringButton.BorderSizePixel = 0 bringButton.Text = "Start Lift" bringButton.TextColor3 = Color3.fromRGB(255, 255, 255) bringButton.TextScaled = true bringButton.Font = Enum.Font.GothamBold bringButton.Parent = mainFrame local bringCorner = Instance.new("UICorner") bringCorner.CornerRadius = UDim.new(0, 6) bringCorner.Parent = bringButton -- Undetected lift button local undetectedButton = Instance.new("TextButton") undetectedButton.Name = "UndetectedButton" undetectedButton.Size = UDim2.new(1, -20, 0, 40) undetectedButton.Position = UDim2.new(0, 10, 0, 185) undetectedButton.BackgroundColor3 = Color3.fromRGB(170, 85, 170) undetectedButton.BorderSizePixel = 0 undetectedButton.Text = "Undetected Lift" undetectedButton.TextColor3 = Color3.fromRGB(255, 255, 255) undetectedButton.TextScaled = true undetectedButton.Font = Enum.Font.GothamBold undetectedButton.Parent = mainFrame local undetectedCorner = Instance.new("UICorner") undetectedCorner.CornerRadius = UDim.new(0, 6) undetectedCorner.Parent = undetectedButton -- Infinite Yield button local infiniteYieldButton = Instance.new("TextButton") infiniteYieldButton.Name = "InfiniteYieldButton" infiniteYieldButton.Size = UDim2.new(1, -20, 0, 40) infiniteYieldButton.Position = UDim2.new(0, 10, 0, 235) infiniteYieldButton.BackgroundColor3 = Color3.fromRGB(85, 85, 170) infiniteYieldButton.BorderSizePixel = 0 infiniteYieldButton.Text = "Load Infinite Yield" infiniteYieldButton.TextColor3 = Color3.fromRGB(255, 255, 255) infiniteYieldButton.TextScaled = true infiniteYieldButton.Font = Enum.Font.GothamBold infiniteYieldButton.Parent = mainFrame local infiniteYieldCorner = Instance.new("UICorner") infiniteYieldCorner.CornerRadius = UDim.new(0, 6) infiniteYieldCorner.Parent = infiniteYieldButton -- Stop button (initially hidden) local stopButton = Instance.new("TextButton") stopButton.Name = "StopButton" stopButton.Size = UDim2.new(1, -20, 0, 40) stopButton.Position = UDim2.new(0, 10, 0, 135) stopButton.BackgroundColor3 = Color3.fromRGB(255, 85, 85) stopButton.BorderSizePixel = 0 stopButton.Text = "Stop Lift" stopButton.TextColor3 = Color3.fromRGB(255, 255, 255) stopButton.TextScaled = true stopButton.Font = Enum.Font.GothamBold stopButton.Visible = false stopButton.Parent = mainFrame local stopCorner = Instance.new("UICorner") stopCorner.CornerRadius = UDim.new(0, 6) stopCorner.Parent = stopButton -- Settings frame local settingsFrame = Instance.new("Frame") settingsFrame.Name = "SettingsFrame" settingsFrame.Size = UDim2.new(1, -20, 0, 100) settingsFrame.Position = UDim2.new(0, 10, 0, 285) settingsFrame.BackgroundColor3 = Color3.fromRGB(55, 55, 55) settingsFrame.BorderSizePixel = 0 settingsFrame.Parent = mainFrame local settingsCorner = Instance.new("UICorner") settingsCorner.CornerRadius = UDim.new(0, 6) settingsCorner.Parent = settingsFrame -- Speed slider local speedLabel = Instance.new("TextLabel") speedLabel.Name = "SpeedLabel" speedLabel.Size = UDim2.new(0.3, 0, 0.25, 0) speedLabel.Position = UDim2.new(0, 10, 0, 5) speedLabel.BackgroundTransparency = 1 speedLabel.Text = "Speed: 1x" speedLabel.TextColor3 = Color3.fromRGB(255, 255, 255) speedLabel.TextScaled = true speedLabel.Font = Enum.Font.Gotham speedLabel.Parent = settingsFrame local speedSlider = Instance.new("Frame") speedSlider.Name = "SpeedSlider" speedSlider.Size = UDim2.new(0.6, -20, 0, 20) speedSlider.Position = UDim2.new(0.4, 0, 0, 10) speedSlider.BackgroundColor3 = Color3.fromRGB(35, 35, 35) speedSlider.BorderSizePixel = 0 speedSlider.Parent = settingsFrame local speedSliderCorner = Instance.new("UICorner") speedSliderCorner.CornerRadius = UDim.new(0, 10) speedSliderCorner.Parent = speedSlider local speedKnob = Instance.new("TextButton") speedKnob.Name = "SpeedKnob" speedKnob.Size = UDim2.new(0, 18, 0, 18) speedKnob.Position = UDim2.new(0, 1, 0, 1) speedKnob.BackgroundColor3 = Color3.fromRGB(85, 170, 85) speedKnob.BorderSizePixel = 0 speedKnob.Text = "" speedKnob.Parent = speedSlider local speedKnobCorner = Instance.new("UICorner") speedKnobCorner.CornerRadius = UDim.new(0, 9) speedKnobCorner.Parent = speedKnob -- Height slider for undetected lift local heightLabel = Instance.new("TextLabel") heightLabel.Name = "HeightLabel" heightLabel.Size = UDim2.new(0.3, 0, 0.25, 0) heightLabel.Position = UDim2.new(0, 10, 0, 35) heightLabel.BackgroundTransparency = 1 heightLabel.Text = "Height: 0" heightLabel.TextColor3 = Color3.fromRGB(255, 255, 255) heightLabel.TextScaled = true heightLabel.Font = Enum.Font.Gotham heightLabel.Parent = settingsFrame local heightSlider = Instance.new("Frame") heightSlider.Name = "HeightSlider" heightSlider.Size = UDim2.new(0.6, -20, 0, 20) heightSlider.Position = UDim2.new(0.4, 0, 0, 40) heightSlider.BackgroundColor3 = Color3.fromRGB(35, 35, 35) heightSlider.BorderSizePixel = 0 heightSlider.Parent = settingsFrame local heightSliderCorner = Instance.new("UICorner") heightSliderCorner.CornerRadius = UDim.new(0, 10) heightSliderCorner.Parent = heightSlider local heightKnob = Instance.new("TextButton") heightKnob.Name = "HeightKnob" heightKnob.Size = UDim2.new(0, 18, 0, 18) heightKnob.Position = UDim2.new(0.5, -9, 0, 1) heightKnob.BackgroundColor3 = Color3.fromRGB(170, 85, 170) heightKnob.BorderSizePixel = 0 heightKnob.Text = "" heightKnob.Parent = heightSlider local heightKnobCorner = Instance.new("UICorner") heightKnobCorner.CornerRadius = UDim.new(0, 9) heightKnobCorner.Parent = heightKnob -- Auto-heal toggle local autoHealToggle = Instance.new("TextButton") autoHealToggle.Name = "AutoHealToggle" autoHealToggle.Size = UDim2.new(0.45, -10, 0.2, 0) autoHealToggle.Position = UDim2.new(0, 10, 0.75, 0) autoHealToggle.BackgroundColor3 = Color3.fromRGB(85, 170, 85) autoHealToggle.BorderSizePixel = 0 autoHealToggle.Text = "Auto-Heal: ON" autoHealToggle.TextColor3 = Color3.fromRGB(255, 255, 255) autoHealToggle.TextScaled = true autoHealToggle.Font = Enum.Font.Gotham autoHealToggle.Parent = settingsFrame local autoHealCorner = Instance.new("UICorner") autoHealCorner.CornerRadius = UDim.new(0, 4) autoHealCorner.Parent = autoHealToggle -- Noclip toggle local noclipToggle = Instance.new("TextButton") noclipToggle.Name = "NoclipToggle" noclipToggle.Size = UDim2.new(0.45, -10, 0.2, 0) noclipToggle.Position = UDim2.new(0.55, 0, 0.75, 0) noclipToggle.BackgroundColor3 = Color3.fromRGB(85, 170, 85) noclipToggle.BorderSizePixel = 0 noclipToggle.Text = "Noclip: ON" noclipToggle.TextColor3 = Color3.fromRGB(255, 255, 255) noclipToggle.TextScaled = true noclipToggle.Font = Enum.Font.Gotham noclipToggle.Parent = settingsFrame local noclipCorner = Instance.new("UICorner") noclipCorner.CornerRadius = UDim.new(0, 4) noclipCorner.Parent = noclipToggle -- Status label local statusLabel = Instance.new("TextLabel") statusLabel.Name = "StatusLabel" statusLabel.Size = UDim2.new(1, -20, 0, 25) statusLabel.Position = UDim2.new(0, 10, 0, 400) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "Ready - Select mode and enter username" statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200) statusLabel.TextScaled = true statusLabel.Font = Enum.Font.Gotham statusLabel.Parent = mainFrame -- Variables for lifting local currentConnection = nil local isLifting = false local currentTarget = nil local liftBodyPosition = nil local healConnection = nil local liftStartTime = 0 local targetPosition = nil local noclipConnection = nil local characterFlipConnection = nil local originalCFrames = {} local originalPlayerPosition = nil local deathConnection = nil -- Mode settings local currentMode = "classic" local liftSpeed = 1 local undetectedHeight = 0 local autoHealEnabled = true local noclipEnabled = true local modes = { classic = {name = "Classic Lift", description = "Standard lifting under target"}, rocket = {name = "Rocket Boost", description = "Fast upward acceleration"}, orbit = {name = "Orbit Mode", description = "Circle around target while lifting"}, teleport = {name = "Teleport Lift", description = "Instant teleportation lifting"}, magnet = {name = "Magnet Mode", description = "Pull target towards you"}, undetected = {name = "Undetected Lift", description = "Subtle hip-level positioning"}, bring = {name = "Bring Mode", description = "Bring target to your location"} } -- Mode dropdown functionality local dropdownOpen = false local modeButtons = {} local function createModeDropdown() local dropdownFrame = Instance.new("Frame") dropdownFrame.Name = "DropdownFrame" dropdownFrame.Size = UDim2.new(1, 0, 0, #modes * 25) dropdownFrame.Position = UDim2.new(0, 0, 1, 0) dropdownFrame.BackgroundColor3 = Color3.fromRGB(65, 65, 65) dropdownFrame.BorderSizePixel = 0 dropdownFrame.Visible = false dropdownFrame.ZIndex = 10 dropdownFrame.Parent = modeFrame local dropdownCorner = Instance.new("UICorner") dropdownCorner.CornerRadius = UDim.new(0, 6) dropdownCorner.Parent = dropdownFrame local yPos = 0 for key, mode in pairs(modes) do local modeButton = Instance.new("TextButton") modeButton.Name = key modeButton.Size = UDim2.new(1, -10, 0, 23) modeButton.Position = UDim2.new(0, 5, 0, yPos) modeButton.BackgroundColor3 = Color3.fromRGB(75, 75, 75) modeButton.BorderSizePixel = 0 modeButton.Text = mode.name modeButton.TextColor3 = Color3.fromRGB(255, 255, 255) modeButton.TextScaled = true modeButton.Font = Enum.Font.Gotham modeButton.ZIndex = 11 modeButton.Parent = dropdownFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 4) buttonCorner.Parent = modeButton modeButton.MouseButton1Click:Connect(function() currentMode = key modeDropdown.Text = mode.name .. " ▼" statusLabel.Text = mode.description dropdownFrame.Visible = false dropdownOpen = false end) modeButtons[key] = modeButton yPos = yPos + 25 end return dropdownFrame end local dropdownFrame = createModeDropdown() modeDropdown.MouseButton1Click:Connect(function() dropdownOpen = not dropdownOpen dropdownFrame.Visible = dropdownOpen modeDropdown.Text = modeDropdown.Text:gsub("▼", dropdownOpen and "▲" or "▼") end) -- Speed slider functionality local dragging = false speedKnob.MouseButton1Down:Connect(function() dragging = true end) -- Height slider functionality local heightDragging = false heightKnob.MouseButton1Down:Connect(function() heightDragging = true end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false heightDragging = false end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then if dragging then local mousePos = UserInputService:GetMouseLocation() local sliderPos = speedSlider.AbsolutePosition local sliderSize = speedSlider.AbsoluteSize local relativeX = math.clamp((mousePos.X - sliderPos.X) / sliderSize.X, 0, 1) speedKnob.Position = UDim2.new(relativeX, -9, 0, 1) liftSpeed = 0.1 + (relativeX * 2.9) -- 0.1x to 3x speed speedLabel.Text = "Speed: " .. string.format("%.1f", liftSpeed) .. "x" end if heightDragging then local mousePos = UserInputService:GetMouseLocation() local sliderPos = heightSlider.AbsolutePosition local sliderSize = heightSlider.AbsoluteSize local relativeX = math.clamp((mousePos.X - sliderPos.X) / sliderSize.X, 0, 1) heightKnob.Position = UDim2.new(relativeX, -9, 0, 1) undetectedHeight = -5 + (relativeX * 10) -- -5 to 5 studs heightLabel.Text = "Height: " .. string.format("%.1f", undetectedHeight) end end end) -- Toggle functionality autoHealToggle.MouseButton1Click:Connect(function() autoHealEnabled = not autoHealEnabled autoHealToggle.Text = "Auto-Heal: " .. (autoHealEnabled and "ON" or "OFF") autoHealToggle.BackgroundColor3 = autoHealEnabled and Color3.fromRGB(85, 170, 85) or Color3.fromRGB(255, 85, 85) if autoHealEnabled then setupAutoHeal() elseif healConnection then healConnection:Disconnect() healConnection = nil end end) noclipToggle.MouseButton1Click:Connect(function() noclipEnabled = not noclipEnabled noclipToggle.Text = "Noclip: " .. (noclipEnabled and "ON" or "OFF") noclipToggle.BackgroundColor3 = noclipEnabled and Color3.fromRGB(85, 170, 85) or Color3.fromRGB(255, 85, 85) end) -- Infinite Yield button functionality infiniteYieldButton.MouseButton1Click:Connect(function() loadstring(game:HttpGet('https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source'))() end) -- Auto-heal function local function setupAutoHeal() if not autoHealEnabled then return end if healConnection then healConnection:Disconnect() end healConnection = RunService.Heartbeat:Connect(function() if player.Character and player.Character:FindFirstChild("Humanoid") then local humanoid = player.Character.Humanoid if humanoid.Health < humanoid.MaxHealth then humanoid.Health = humanoid.MaxHealth end end end) end -- Character flip function local function flipCharacterOnSide() if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local humanoidRootPart = player.Character.HumanoidRootPart -- Store original CFrame for restoration originalCFrames[humanoidRootPart] = humanoidRootPart.CFrame -- Flip character on side (90 degrees rotation around X axis for flat side up) local currentCFrame = humanoidRootPart.CFrame local flippedCFrame = currentCFrame * CFrame.Angles(math.rad(90), 0, 0) humanoidRootPart.CFrame = flippedCFrame -- Keep character flipped during lifting if characterFlipConnection then characterFlipConnection:Disconnect() end characterFlipConnection = RunService.Heartbeat:Connect(function() if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and isLifting then local rootPart = player.Character.HumanoidRootPart local currentPos = rootPart.Position rootPart.CFrame = CFrame.new(currentPos) * CFrame.Angles(math.rad(90), 0, 0) end end) end local function restoreCharacterOrientation() if characterFlipConnection then characterFlipConnection:Disconnect() characterFlipConnection = nil end if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local humanoidRootPart = player.Character.HumanoidRootPart if originalCFrames[humanoidRootPart] then local currentPos = humanoidRootPart.Position local originalRotation = originalCFrames[humanoidRootPart] - originalCFrames[humanoidRootPart].Position humanoidRootPart.CFrame = CFrame.new(currentPos) + originalRotation originalCFrames[humanoidRootPart] = nil end end end -- Noclip function local function enableNoclip() if not noclipEnabled then return end if noclipConnection then noclipConnection:Disconnect() end noclipConnection = RunService.Stepped:Connect(function() if player.Character then for _, part in pairs(player.Character:GetChildren()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end end end) end local function disableNoclip() if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end if player.Character then for _, part in pairs(player.Character:GetChildren()) do if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then part.CanCollide = true end end end end -- Function to find player by partial name local function findPlayer(partialName) partialName = partialName:lower() for _, targetPlayer in pairs(Players:GetPlayers()) do if targetPlayer ~= player and targetPlayer.Name:lower():find(partialName, 1, true) then return targetPlayer end end return nil end -- Function to setup death detection local function setupDeathDetection() if deathConnection then deathConnection:Disconnect() end if player.Character and player.Character:FindFirstChild("Humanoid") then deathConnection = player.Character.Humanoid.Died:Connect(function() if isLifting then stopLifting() end end) end end -- Function to stop lifting local function stopLifting() if currentConnection then currentConnection:Disconnect() currentConnection = nil end if liftBodyPosition and liftBodyPosition.Parent then liftBodyPosition:Destroy() liftBodyPosition = nil end disableNoclip() restoreCharacterOrientation() -- Return player to original position if originalPlayerPosition and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = originalPlayerPosition originalPlayerPosition = nil end isLifting = false currentTarget = nil targetPosition = nil -- Show bring button, hide stop button and change colors to green (ready state) bringButton.Visible = true bringButton.BackgroundColor3 = Color3.fromRGB(85, 170, 85) undetectedButton.Visible = true undetectedButton.BackgroundColor3 = Color3.fromRGB(170, 85, 170) stopButton.Visible = false stopButton.BackgroundColor3 = Color3.fromRGB(85, 170, 85) -- Make stop button green when hidden statusLabel.Text = "Ready - Select mode and enter username" end -- Mode-specific lift functions local function classicLift(targetPlayer) if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then return false end local playerRootPart = player.Character.HumanoidRootPart local targetRootPart = targetPlayer.Character.HumanoidRootPart -- Store original position before teleporting originalPlayerPosition = playerRootPart.CFrame -- Calculate precise position directly under target local targetBounds = targetPlayer.Character:GetExtentsSize() local playerBounds = player.Character:GetExtentsSize() local offsetY = (targetBounds.Y / 2) + (playerBounds.Y / 2) + 0.5 targetPosition = Vector3.new( targetRootPart.Position.X, targetRootPart.Position.Y - offsetY, targetRootPart.Position.Z ) enableNoclip() flipCharacterOnSide() playerRootPart.CFrame = CFrame.new(targetPosition) liftBodyPosition = Instance.new("BodyPosition") liftBodyPosition.MaxForce = Vector3.new(math.huge, math.huge, math.huge) liftBodyPosition.Position = targetPosition liftBodyPosition.D = 2000 liftBodyPosition.P = 10000 liftBodyPosition.Parent = playerRootPart liftStartTime = tick() currentConnection = RunService.Heartbeat:Connect(function() if not isLifting then return end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then statusLabel.Text = "Target player left or died" stopLifting() return end if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local targetRootPart = targetPlayer.Character.HumanoidRootPart -- Fixed classic lift - just follow target position without acceleration targetPosition = Vector3.new( targetRootPart.Position.X, targetRootPart.Position.Y - offsetY, targetRootPart.Position.Z ) if liftBodyPosition and liftBodyPosition.Parent then liftBodyPosition.Position = targetPosition end end) return true end local function rocketLift(targetPlayer) if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then return false end local playerRootPart = player.Character.HumanoidRootPart local targetRootPart = targetPlayer.Character.HumanoidRootPart -- Store original position before teleporting originalPlayerPosition = playerRootPart.CFrame targetPosition = Vector3.new(targetRootPart.Position.X, targetRootPart.Position.Y - 5, targetRootPart.Position.Z) enableNoclip() playerRootPart.CFrame = CFrame.new(targetPosition) liftBodyPosition = Instance.new("BodyPosition") liftBodyPosition.MaxForce = Vector3.new(math.huge, math.huge, math.huge) liftBodyPosition.Position = targetPosition liftBodyPosition.D = 5000 liftBodyPosition.P = 20000 liftBodyPosition.Parent = playerRootPart liftStartTime = tick() currentConnection = RunService.Heartbeat:Connect(function() if not isLifting then return end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then statusLabel.Text = "Target player left or died" stopLifting() return end if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local elapsedTime = tick() - liftStartTime local targetRootPart = targetPlayer.Character.HumanoidRootPart local rocketSpeed = elapsedTime * elapsedTime * 2 * liftSpeed local newY = targetRootPart.Position.Y + rocketSpeed targetPosition = Vector3.new(targetRootPart.Position.X, newY, targetRootPart.Position.Z) if liftBodyPosition and liftBodyPosition.Parent then liftBodyPosition.Position = targetPosition end end) return true end local function orbitLift(targetPlayer) if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then return false end local playerRootPart = player.Character.HumanoidRootPart local targetRootPart = targetPlayer.Character.HumanoidRootPart -- Store original position before teleporting originalPlayerPosition = playerRootPart.CFrame enableNoclip() liftBodyPosition = Instance.new("BodyPosition") liftBodyPosition.MaxForce = Vector3.new(math.huge, math.huge, math.huge) liftBodyPosition.D = 3000 liftBodyPosition.P = 15000 liftBodyPosition.Parent = playerRootPart liftStartTime = tick() currentConnection = RunService.Heartbeat:Connect(function() if not isLifting then return end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then statusLabel.Text = "Target player left or died" stopLifting() return end if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local elapsedTime = tick() - liftStartTime local targetRootPart = targetPlayer.Character.HumanoidRootPart local angle = elapsedTime * liftSpeed * 2 local radius = 8 local height = elapsedTime * liftSpeed * 3 local x = targetRootPart.Position.X + math.cos(angle) * radius local y = targetRootPart.Position.Y + height local z = targetRootPart.Position.Z + math.sin(angle) * radius targetPosition = Vector3.new(x, y, z) if liftBodyPosition and liftBodyPosition.Parent then liftBodyPosition.Position = targetPosition end end) return true end local function teleportLift(targetPlayer) if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then return false end local playerRootPart = player.Character.HumanoidRootPart -- Store original position before teleporting originalPlayerPosition = playerRootPart.CFrame enableNoclip() liftStartTime = tick() currentConnection = RunService.Heartbeat:Connect(function() if not isLifting then return end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then statusLabel.Text = "Target player left or died" stopLifting() return end if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local elapsedTime = tick() - liftStartTime local targetRootPart = targetPlayer.Character.HumanoidRootPart local height = elapsedTime * 10 * liftSpeed targetPosition = Vector3.new(targetRootPart.Position.X, targetRootPart.Position.Y + height, targetRootPart.Position.Z) playerRootPart.CFrame = CFrame.new(targetPosition) end) return true end local function magnetLift(targetPlayer) if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then return false end local playerRootPart = player.Character.HumanoidRootPart -- Store original position before teleporting originalPlayerPosition = playerRootPart.CFrame enableNoclip() liftBodyPosition = Instance.new("BodyPosition") liftBodyPosition.MaxForce = Vector3.new(math.huge, math.huge, math.huge) liftBodyPosition.D = 4000 liftBodyPosition.P = 25000 liftBodyPosition.Parent = playerRootPart liftStartTime = tick() currentConnection = RunService.Heartbeat:Connect(function() if not isLifting then return end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then statusLabel.Text = "Target player left or died" stopLifting() return end if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local elapsedTime = tick() - liftStartTime local targetRootPart = targetPlayer.Character.HumanoidRootPart local playerPos = playerRootPart.Position local direction = (targetRootPart.Position - playerPos).Unit local distance = math.max(5, 15 - elapsedTime * liftSpeed) targetPosition = targetRootPart.Position - direction * distance + Vector3.new(0, elapsedTime * liftSpeed * 2, 0) if liftBodyPosition and liftBodyPosition.Parent then liftBodyPosition.Position = targetPosition end end) return true end local function undetectedLift(targetPlayer) if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then return false end local playerRootPart = player.Character.HumanoidRootPart local targetRootPart = targetPlayer.Character.HumanoidRootPart -- Store original position before teleporting originalPlayerPosition = playerRootPart.CFrame enableNoclip() flipCharacterOnSide() liftStartTime = tick() currentConnection = RunService.Heartbeat:Connect(function() if not isLifting then return end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then statusLabel.Text = "Target player left or died" stopLifting() return end if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local targetRootPart = targetPlayer.Character.HumanoidRootPart -- Position at adjustable height relative to target local targetBounds = targetPlayer.Character:GetExtentsSize() local offsetY = (targetBounds.Y / 2) + undetectedHeight targetPosition = Vector3.new( targetRootPart.Position.X, targetRootPart.Position.Y - offsetY, targetRootPart.Position.Z ) -- Directly set CFrame to lock position instantly playerRootPart.CFrame = CFrame.new(targetPosition) * CFrame.Angles(math.rad(90), 0, 0) end) return true end local function bringMode(targetPlayer) if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then return false end local playerRootPart = player.Character.HumanoidRootPart local targetRootPart = targetPlayer.Character.HumanoidRootPart -- Store original position originalPlayerPosition = playerRootPart.CFrame local originalX = originalPlayerPosition.Position.X enableNoclip() flipCharacterOnSide() -- Phase 1: Position under target with -1 height offset local targetBounds = targetPlayer.Character:GetExtentsSize() local offsetY = (targetBounds.Y / 2) + (-1) local phase1Position = Vector3.new( targetRootPart.Position.X, targetRootPart.Position.Y - offsetY, targetRootPart.Position.Z ) playerRootPart.CFrame = CFrame.new(phase1Position) * CFrame.Angles(math.rad(90), 0, 0) liftStartTime = tick() local phase = 1 local moveStartTime = 0 currentConnection = RunService.Heartbeat:Connect(function() if not isLifting then return end if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then statusLabel.Text = "Target player left or died" stopLifting() return end if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end local elapsedTime = tick() - liftStartTime local targetRootPart = targetPlayer.Character.HumanoidRootPart if phase == 1 then -- Phase 1: Stay under target for 1 second local targetBounds = targetPlayer.Character:GetExtentsSize() local offsetY = (targetBounds.Y / 2) + (-1) targetPosition = Vector3.new( targetRootPart.Position.X, targetRootPart.Position.Y - offsetY, targetRootPart.Position.Z ) playerRootPart.CFrame = CFrame.new(targetPosition) * CFrame.Angles(math.rad(90), 0, 0) if elapsedTime > 1 then phase = 2 moveStartTime = tick() end elseif phase == 2 then -- Phase 2: Move to original X position at decent speed local moveElapsed = tick() - moveStartTime local moveSpeed = 5 * liftSpeed -- Decent speed local currentX = targetRootPart.Position.X local targetX = originalX local distance = math.abs(targetX - currentX) if distance > 1 then local direction = targetX > currentX and 1 or -1 local newX = currentX + (direction * moveSpeed * moveElapsed) -- Clamp to target X if we've passed it if (direction == 1 and newX >= targetX) or (direction == -1 and newX <= targetX) then newX = targetX end local targetBounds = targetPlayer.Character:GetExtentsSize() local offsetY = (targetBounds.Y / 2) + (-1) targetPosition = Vector3.new( newX, targetRootPart.Position.Y - offsetY, targetRootPart.Position.Z ) playerRootPart.CFrame = CFrame.new(targetPosition) * CFrame.Angles(math.rad(90), 0, 0) else phase = 3 moveStartTime = tick() end elseif phase == 3 then -- Phase 3: Lower down slowly local lowerElapsed = tick() - moveStartTime local lowerSpeed = 2 * liftSpeed -- Slow descent local targetBounds = targetPlayer.Character:GetExtentsSize() local baseOffsetY = (targetBounds.Y / 2) + (-1) local additionalLower = lowerElapsed * lowerSpeed targetPosition = Vector3.new( originalX, targetRootPart.Position.Y - baseOffsetY - additionalLower, targetRootPart.Position.Z ) playerRootPart.CFrame = CFrame.new(targetPosition) * CFrame.Angles(math.rad(90), 0, 0) end end) return true end -- Function to lift target player based on mode local function liftPlayer(targetPlayer) if currentMode == "classic" then return classicLift(targetPlayer) elseif currentMode == "rocket" then return rocketLift(targetPlayer) elseif currentMode == "orbit" then return orbitLift(targetPlayer) elseif currentMode == "teleport" then return teleportLift(targetPlayer) elseif currentMode == "magnet" then return magnetLift(targetPlayer) elseif currentMode == "undetected" then return undetectedLift(targetPlayer) elseif currentMode == "bring" then return bringMode(targetPlayer) end return false end -- Start auto-heal when script loads setupAutoHeal() -- Setup death detection when character spawns player.CharacterAdded:Connect(function() setupDeathDetection() end) -- Setup initial death detection if character already exists if player.Character then setupDeathDetection() end -- Bring button functionality bringButton.MouseButton1Click:Connect(function() if isLifting then statusLabel.Text = "Already lifting a player!" return end local username = usernameBox.Text:gsub("%s+", "") if username == "" then statusLabel.Text = "Please enter a username!" return end local targetPlayer = findPlayer(username) if not targetPlayer then statusLabel.Text = "Player not found!" return end if targetPlayer == player then statusLabel.Text = "Cannot bring yourself!" return end statusLabel.Text = "Lifting " .. targetPlayer.Name .. " (" .. modes[currentMode].name .. ")..." isLifting = true currentTarget = targetPlayer -- Hide bring button, show stop button bringButton.Visible = false undetectedButton.Visible = false stopButton.Visible = true stopButton.BackgroundColor3 = Color3.fromRGB(255, 85, 85) -- Red when active -- Start lifting if not liftPlayer(targetPlayer) then statusLabel.Text = "Failed to lift player!" stopLifting() return end end) -- Undetected lift button functionality undetectedButton.MouseButton1Click:Connect(function() if isLifting then statusLabel.Text = "Already lifting a player!" return end local username = usernameBox.Text:gsub("%s+", "") if username == "" then statusLabel.Text = "Please enter a username!" return end local targetPlayer = findPlayer(username) if not targetPlayer then statusLabel.Text = "Player not found!" return end if targetPlayer == player then statusLabel.Text = "Cannot bring yourself!" return end statusLabel.Text = "Undetected lifting " .. targetPlayer.Name .. "..." isLifting = true currentTarget = targetPlayer -- Hide buttons, show stop button bringButton.Visible = false undetectedButton.Visible = false stopButton.Visible = true stopButton.BackgroundColor3 = Color3.fromRGB(255, 85, 85) -- Red when active -- Start undetected lifting if not undetectedLift(targetPlayer) then statusLabel.Text = "Failed to lift player!" stopLifting() return end end) -- Stop button functionality stopButton.MouseButton1Click:Connect(function() stopLifting() end) -- Close button functionality closeButton.MouseButton1Click:Connect(function() stopLifting() if healConnection then healConnection:Disconnect() end if deathConnection then deathConnection:Disconnect() end screenGui:Destroy() end) -- Toggle GUI with key (F for example) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F then screenGui.Enabled = not screenGui.Enabled end end)