Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- SERVICES
- local Players = game:GetService("Players")
- local TweenService = game:GetService("TweenService")
- local LocalPlayer = Players.LocalPlayer
- -- COLORS
- local darkNavyBlue = Color3.fromRGB(10, 20, 40)
- local darkGold = Color3.fromRGB(180, 140, 30)
- local defaultBtnColor = Color3.fromRGB(25, 25, 45)
- local standardBtnColor = Color3.fromRGB(30, 30, 60)
- local whiteText = Color3.fromRGB(255, 255, 255)
- -- STATES
- local toggleOpen = false
- local loopList = {}
- local playerButtons = {}
- local speedBoostOn = false
- local frontLoopMode = false
- local autoUseToolsOn = false
- local attachModeOn = false
- -- GUI
- local gui = Instance.new("ScreenGui", LocalPlayer:WaitForChild("PlayerGui"))
- gui.Name = "PsychoLoopbring"
- gui.ResetOnSpawn = false
- local toggle = Instance.new("TextButton", gui)
- toggle.Size = UDim2.new(0, 120, 0, 25)
- toggle.Position = UDim2.new(0, 10, 0, 10)
- toggle.BackgroundColor3 = darkNavyBlue
- toggle.TextColor3 = darkGold
- toggle.Text = "Psycho Loopbring"
- toggle.Font = Enum.Font.GothamBold
- toggle.TextSize = 14
- toggle.BorderSizePixel = 0
- local frame = Instance.new("Frame", gui)
- frame.Size = UDim2.new(0, 220, 0, 300)
- frame.Position = UDim2.new(0, 10, 0, 45)
- frame.BackgroundColor3 = darkNavyBlue
- frame.BorderSizePixel = 0
- frame.Visible = false
- frame.Active = true
- frame.Draggable = true
- local title = Instance.new("TextLabel", frame)
- title.Size = UDim2.new(1, -20, 0, 30)
- title.Position = UDim2.new(0, 10, 0, 5)
- title.BackgroundTransparency = 1
- title.Text = "Psycho Loopbring"
- title.TextColor3 = darkGold
- title.TextScaled = true
- title.Font = Enum.Font.FredokaOne
- title.TextXAlignment = Enum.TextXAlignment.Left
- local scroll = Instance.new("ScrollingFrame", frame)
- scroll.Position = UDim2.new(0, 10, 0, 40)
- scroll.Size = UDim2.new(1, -20, 1, -50)
- scroll.BackgroundTransparency = 1
- scroll.BorderSizePixel = 0
- scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
- scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
- scroll.ScrollBarThickness = 5
- scroll.ClipsDescendants = true
- local layout = Instance.new("UIListLayout", scroll)
- layout.SortOrder = Enum.SortOrder.LayoutOrder
- layout.Padding = UDim.new(0, 3)
- -- UTILITIES
- local function tweenColor(object, color, duration)
- TweenService:Create(object, TweenInfo.new(duration or 0.25), {BackgroundColor3 = color}):Play()
- end
- local function setNoClip(character, state)
- for _, part in pairs(character:GetDescendants()) do
- if part:IsA("BasePart") then
- part.CanCollide = not state
- end
- end
- end
- -- TOGGLE UI
- toggle.MouseButton1Click:Connect(function()
- toggleOpen = not toggleOpen
- frame.Visible = toggleOpen
- end)
- -- SPEED BOOST BUTTON
- local speedButton = Instance.new("TextButton", scroll)
- speedButton.Size = UDim2.new(1, 0, 0, 28)
- speedButton.BackgroundColor3 = standardBtnColor
- speedButton.TextColor3 = whiteText
- speedButton.Font = Enum.Font.GothamBold
- speedButton.TextSize = 13
- speedButton.Text = "Speed Boost"
- speedButton.LayoutOrder = 0
- local function applySpeedBoost(state)
- local char = LocalPlayer.Character
- if char then
- local humanoid = char:FindFirstChildOfClass("Humanoid")
- if humanoid then
- if state then
- humanoid.WalkSpeed = 120
- humanoid.JumpPower = 120
- tweenColor(speedButton, darkGold)
- else
- humanoid.WalkSpeed = 16
- humanoid.JumpPower = 50
- tweenColor(speedButton, standardBtnColor)
- end
- end
- end
- end
- speedButton.MouseButton1Click:Connect(function()
- speedBoostOn = not speedBoostOn
- applySpeedBoost(speedBoostOn)
- end)
- LocalPlayer.CharacterAdded:Connect(function(char)
- if speedBoostOn then
- local humanoid = char:WaitForChild("Humanoid", 5)
- if humanoid then
- applySpeedBoost(true)
- end
- end
- end)
- -- LOOPBRING POSITION TOGGLE
- local loopbringToggleButton = Instance.new("TextButton", scroll)
- loopbringToggleButton.Size = UDim2.new(1, 0, 0, 28)
- loopbringToggleButton.BackgroundColor3 = standardBtnColor
- loopbringToggleButton.TextColor3 = whiteText
- loopbringToggleButton.Font = Enum.Font.GothamBold
- loopbringToggleButton.TextSize = 13
- loopbringToggleButton.Text = "Toggle Loopbring Position"
- loopbringToggleButton.LayoutOrder = 1
- loopbringToggleButton.MouseButton1Click:Connect(function()
- frontLoopMode = not frontLoopMode
- tweenColor(loopbringToggleButton, frontLoopMode and darkGold or standardBtnColor)
- end)
- -- ATTACH MODE BUTTON
- local attachModeButton = Instance.new("TextButton", scroll)
- attachModeButton.Size = UDim2.new(1, 0, 0, 28)
- attachModeButton.BackgroundColor3 = standardBtnColor
- attachModeButton.TextColor3 = whiteText
- attachModeButton.Font = Enum.Font.GothamBold
- attachModeButton.TextSize = 13
- attachModeButton.Text = "Attach Mode: OFF"
- attachModeButton.LayoutOrder = 2
- attachModeButton.MouseButton1Click:Connect(function()
- attachModeOn = not attachModeOn
- attachModeButton.Text = attachModeOn and "Attach Mode: ON" or "Attach Mode: OFF"
- tweenColor(attachModeButton, attachModeOn and darkGold or standardBtnColor)
- end)
- -- AUTO USE TOOLS BUTTON
- local autoUseButton = Instance.new("TextButton", scroll)
- autoUseButton.Size = UDim2.new(1, 0, 0, 28)
- autoUseButton.BackgroundColor3 = standardBtnColor
- autoUseButton.TextColor3 = whiteText
- autoUseButton.Font = Enum.Font.GothamBold
- autoUseButton.TextSize = 13
- autoUseButton.Text = "Auto Use Tools: OFF"
- autoUseButton.LayoutOrder = 3
- local function autoUseTools()
- if not autoUseToolsOn then return end
- task.spawn(function()
- for _, tool in ipairs(LocalPlayer.Backpack:GetChildren()) do
- if tool:IsA("Tool") then
- tool.Parent = LocalPlayer.Character
- end
- end
- for _, tool in ipairs(LocalPlayer.Character:GetChildren()) do
- if tool:IsA("Tool") then
- pcall(function() tool:Activate() end)
- end
- end
- end)
- end
- autoUseButton.MouseButton1Click:Connect(function()
- autoUseToolsOn = not autoUseToolsOn
- autoUseButton.Text = autoUseToolsOn and "Auto Use Tools: ON" or "Auto Use Tools: OFF"
- tweenColor(autoUseButton, autoUseToolsOn and darkGold or standardBtnColor)
- end)
- task.spawn(function()
- while true do
- if autoUseToolsOn then
- autoUseTools()
- end
- task.wait()
- end
- end)
- -- ADD PLAYER BUTTONS
- local function addPlayerButton(targetPlayer)
- if targetPlayer == LocalPlayer then return end
- local button = Instance.new("TextButton")
- button.Size = UDim2.new(1, 0, 0, 28)
- button.BackgroundColor3 = defaultBtnColor
- button.TextColor3 = whiteText
- button.Font = Enum.Font.GothamBold
- button.TextSize = 13
- button.Text = targetPlayer.Name
- button.LayoutOrder = 100
- button.Parent = scroll
- local killLabel = Instance.new("TextLabel", button)
- killLabel.Size = UDim2.new(0, 60, 1, 0)
- killLabel.Position = UDim2.new(1, -65, 0, 0)
- killLabel.BackgroundTransparency = 1
- killLabel.TextColor3 = Color3.new(1, 0.2, 0.2)
- killLabel.Font = Enum.Font.GothamBold
- killLabel.TextSize = 12
- killLabel.TextXAlignment = Enum.TextXAlignment.Right
- killLabel.Text = "Kills: 0"
- local kills = 0
- local function onCharacterAdded(char)
- local humanoid = char:WaitForChild("Humanoid", 10)
- if humanoid then
- humanoid.Died:Connect(function()
- local killerTool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
- if killerTool then
- kills = kills + 1
- killLabel.Text = "Kills: " .. kills
- end
- end)
- end
- end
- if targetPlayer.Character then
- onCharacterAdded(targetPlayer.Character)
- end
- targetPlayer.CharacterAdded:Connect(onCharacterAdded)
- button.MouseButton1Click:Connect(function()
- local name = targetPlayer.Name
- loopList[name] = not loopList[name]
- tweenColor(button, loopList[name] and darkGold or defaultBtnColor)
- end)
- playerButtons[targetPlayer.Name] = button
- end
- -- INIT ALL PLAYERS
- for _, p in ipairs(Players:GetPlayers()) do
- addPlayerButton(p)
- end
- Players.PlayerAdded:Connect(addPlayerButton)
- -- UNBREAKABLE LOOPBRING LOOP
- task.spawn(function()
- while true do
- local myChar = LocalPlayer.Character
- local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart")
- if myHRP then
- for name, active in pairs(loopList) do
- if active then
- local targetPlayer = Players:FindFirstChild(name)
- if targetPlayer and targetPlayer.Character then
- local targetChar = targetPlayer.Character
- local targetHRP = targetChar:FindFirstChild("HumanoidRootPart")
- if targetHRP then
- setNoClip(targetChar, true)
- targetHRP.Velocity = Vector3.zero
- targetHRP.RotVelocity = Vector3.zero
- targetHRP.Anchored = false
- -- Try to kick player out of seats
- for _,desc in pairs(targetChar:GetDescendants()) do
- if desc:IsA("Seat") then
- pcall(function() desc.Occupant = nil end)
- end
- end
- local offset
- if attachModeOn then
- myHRP.CFrame = targetHRP.CFrame
- else
- if frontLoopMode then
- offset = myHRP.CFrame.LookVector * 3 + Vector3.new(0, 1, 0)
- else
- offset = myHRP.CFrame.RightVector * 3 + myHRP.CFrame.LookVector + Vector3.new(0, 1, 0)
- end
- targetHRP.CFrame = myHRP.CFrame + offset
- -- Force ragdoll/physic parts to follow HRP
- for _, part in ipairs(targetChar:GetChildren()) do
- if part:IsA("BasePart") and part ~= targetHRP then
- part.Anchored = false
- part.Velocity = Vector3.zero
- part.RotVelocity = Vector3.zero
- part.CFrame = targetHRP.CFrame
- end
- end
- end
- -- Aggressively prevent physics/ragdoll escape
- local humanoid = targetChar:FindFirstChildOfClass("Humanoid")
- if humanoid then
- if humanoid:GetState() ~= Enum.HumanoidStateType.Physics and humanoid:GetState() ~= Enum.HumanoidStateType.Ragdoll then
- humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
- end
- if humanoid.Health <= 0 then
- humanoid.Health = humanoid.MaxHealth
- end
- end
- -- Also destroy Welds, BodyMovers, Constraints that might break loopbring
- for _, obj in pairs(targetChar:GetDescendants()) do
- if obj:IsA("Weld") or obj:IsA("BodyMover") or obj:IsA("Constraint") or obj:IsA("AlignOrientation") or obj:IsA("AlignPosition") then
- pcall(function() obj:Destroy() end)
- end
- end
- end
- end
- end
- end
- end
- task.wait() -- Next frame
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment