Advertisement
Azzz_4565

Untitled

Jun 26th, 2025
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.76 KB | None | 0 0
  1. -- SERVICES
  2. local Players = game:GetService("Players")
  3. local TweenService = game:GetService("TweenService")
  4. local RunService = game:GetService("RunService")
  5. local LocalPlayer = Players.LocalPlayer
  6.  
  7. -- COLORS
  8. local darkNavyBlue = Color3.fromRGB(10, 20, 40)
  9. local darkGold = Color3.fromRGB(180, 140, 30)
  10. local defaultBtnColor = Color3.fromRGB(25, 25, 45)
  11. local standardBtnColor = Color3.fromRGB(30, 30, 60)
  12. local whiteText = Color3.fromRGB(255, 255, 255)
  13.  
  14. -- STATES
  15. local toggleOpen = false
  16. local loopList = {}
  17. local playerButtons = {}
  18. local speedBoostOn = false
  19. local frontLoopMode = false
  20. local loopbringAllActive = false
  21. local attachModeOn = false
  22. local twoSidePositionOn = false
  23. local myDeaths = 0
  24.  
  25. -- GUI SETUP
  26. local gui = Instance.new("ScreenGui", LocalPlayer:WaitForChild("PlayerGui"))
  27. gui.Name = "PsychoLoopbring"
  28. gui.ResetOnSpawn = false
  29.  
  30. local toggle = Instance.new("TextButton", gui)
  31. toggle.Size = UDim2.new(0, 140, 0, 30)
  32. toggle.Position = UDim2.new(0, 10, 0, 10)
  33. toggle.BackgroundColor3 = darkNavyBlue
  34. toggle.TextColor3 = darkGold
  35. toggle.Text = "Psycho Loopbring"
  36. toggle.Font = Enum.Font.GothamBold
  37. toggle.TextSize = 14
  38. toggle.BorderSizePixel = 0
  39.  
  40. local frame = Instance.new("Frame", gui)
  41. frame.Size = UDim2.new(0, 240, 0, 380)
  42. frame.Position = UDim2.new(0, 10, 0, 50)
  43. frame.BackgroundColor3 = darkNavyBlue
  44. frame.BorderSizePixel = 0
  45. frame.Visible = false
  46. frame.Active = true
  47. frame.Draggable = true
  48.  
  49. local title = Instance.new("TextLabel", frame)
  50. title.Size = UDim2.new(1, -20, 0, 30)
  51. title.Position = UDim2.new(0, 10, 0, 5)
  52. title.BackgroundTransparency = 1
  53. title.Text = "Psycho Loopbring"
  54. title.TextColor3 = darkGold
  55. title.TextScaled = true
  56. title.Font = Enum.Font.FredokaOne
  57. title.TextXAlignment = Enum.TextXAlignment.Left
  58.  
  59. local scroll = Instance.new("ScrollingFrame", frame)
  60. scroll.Position = UDim2.new(0, 10, 0, 40)
  61. scroll.Size = UDim2.new(1, -20, 1, -50)
  62. scroll.BackgroundTransparency = 1
  63. scroll.BorderSizePixel = 0
  64. scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
  65. scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
  66. scroll.ScrollBarThickness = 5
  67. scroll.ClipsDescendants = true
  68.  
  69. local layout = Instance.new("UIListLayout", scroll)
  70. layout.SortOrder = Enum.SortOrder.LayoutOrder
  71. layout.Padding = UDim.new(0, 3)
  72.  
  73. -- UTILITIES
  74. local function tweenColor(object, color, duration)
  75.     TweenService:Create(object, TweenInfo.new(duration or 0.25), {BackgroundColor3 = color}):Play()
  76. end
  77.  
  78. local function setNoClip(character, state)
  79.     for _, part in pairs(character:GetDescendants()) do
  80.         if part:IsA("BasePart") then
  81.             part.CanCollide = not state
  82.         end
  83.     end
  84. end
  85.  
  86. -- TOGGLE UI
  87. toggle.MouseButton1Click:Connect(function()
  88.     toggleOpen = not toggleOpen
  89.     frame.Visible = toggleOpen
  90. end)
  91.  
  92. -- SPEED BOOST BUTTON
  93. local speedButton = Instance.new("TextButton", scroll)
  94. speedButton.Size = UDim2.new(1, 0, 0, 28)
  95. speedButton.BackgroundColor3 = standardBtnColor
  96. speedButton.TextColor3 = whiteText
  97. speedButton.Font = Enum.Font.GothamBold
  98. speedButton.TextSize = 13
  99. speedButton.Text = "Speed Boost: OFF"
  100. speedButton.LayoutOrder = 1
  101.  
  102. local function applySpeedBoost(state)
  103.     local char = LocalPlayer.Character
  104.     if char then
  105.         local humanoid = char:FindFirstChildOfClass("Humanoid")
  106.         if humanoid then
  107.             if state then
  108.                 humanoid.WalkSpeed = 120
  109.                 humanoid.JumpPower = 120
  110.                 speedButton.Text = "Speed Boost: ON"
  111.                 tweenColor(speedButton, darkGold)
  112.             else
  113.                 humanoid.WalkSpeed = 16
  114.                 humanoid.JumpPower = 50
  115.                 speedButton.Text = "Speed Boost: OFF"
  116.                 tweenColor(speedButton, standardBtnColor)
  117.             end
  118.         end
  119.     end
  120. end
  121.  
  122. speedButton.MouseButton1Click:Connect(function()
  123.     speedBoostOn = not speedBoostOn
  124.     applySpeedBoost(speedBoostOn)
  125. end)
  126.  
  127. -- ATTACH MODE BUTTON (fixed style & logic)
  128. local attachModeButton = Instance.new("TextButton", scroll)
  129. attachModeButton.Size = UDim2.new(1, 0, 0, 28)
  130. attachModeButton.BackgroundColor3 = standardBtnColor
  131. attachModeButton.TextColor3 = whiteText
  132. attachModeButton.Font = Enum.Font.GothamBold
  133. attachModeButton.TextSize = 13
  134. attachModeButton.Text = "Attach Mode: OFF"
  135. attachModeButton.LayoutOrder = 2
  136.  
  137. attachModeButton.MouseButton1Click:Connect(function()
  138.     attachModeOn = not attachModeOn
  139.     attachModeButton.Text = attachModeOn and "Attach Mode: ON" or "Attach Mode: OFF"
  140.     tweenColor(attachModeButton, attachModeOn and darkGold or standardBtnColor)
  141. end)
  142.  
  143. -- LOOPBRING ALL BUTTON
  144. local loopbringAllButton = Instance.new("TextButton", scroll)
  145. loopbringAllButton.Size = UDim2.new(1, 0, 0, 28)
  146. loopbringAllButton.BackgroundColor3 = standardBtnColor
  147. loopbringAllButton.TextColor3 = whiteText
  148. loopbringAllButton.Font = Enum.Font.GothamBold
  149. loopbringAllButton.TextSize = 13
  150. loopbringAllButton.Text = "Loopbring All: OFF"
  151. loopbringAllButton.LayoutOrder = 3
  152.  
  153. loopbringAllButton.MouseButton1Click:Connect(function()
  154.     loopbringAllActive = not loopbringAllActive
  155.     loopbringAllButton.Text = loopbringAllActive and "Loopbring All: ON" or "Loopbring All: OFF"
  156.     tweenColor(loopbringAllButton, loopbringAllActive and darkGold or standardBtnColor)
  157.    
  158.     for name, btn in pairs(playerButtons) do
  159.         if Players:FindFirstChild(name) and name ~= LocalPlayer.Name then
  160.             loopList[name] = loopbringAllActive or nil
  161.             tweenColor(btn, loopbringAllActive and darkGold or defaultBtnColor)
  162.         end
  163.     end
  164. end)
  165.  
  166. -- MY DEATHS LABEL
  167. local myDeathLabel = Instance.new("TextLabel", scroll)
  168. myDeathLabel.Size = UDim2.new(1, 0, 0, 28)
  169. myDeathLabel.BackgroundColor3 = standardBtnColor
  170. myDeathLabel.Text = "My Deaths: 0"
  171. myDeathLabel.TextColor3 = Color3.new(1, 0.2, 0.2)
  172. myDeathLabel.TextScaled = true
  173. myDeathLabel.Font = Enum.Font.GothamBold
  174. myDeathLabel.LayoutOrder = 4
  175.  
  176. -- TWO SIDE POSITION BUTTON
  177. local twoSidePositionButton = Instance.new("TextButton", scroll)
  178. twoSidePositionButton.Size = UDim2.new(1, 0, 0, 28)
  179. twoSidePositionButton.BackgroundColor3 = standardBtnColor
  180. twoSidePositionButton.TextColor3 = whiteText
  181. twoSidePositionButton.Font = Enum.Font.GothamBold
  182. twoSidePositionButton.TextSize = 13
  183. twoSidePositionButton.Text = "2 Side Position: OFF"
  184. twoSidePositionButton.LayoutOrder = 5
  185.  
  186. twoSidePositionButton.MouseButton1Click:Connect(function()
  187.     twoSidePositionOn = not twoSidePositionOn
  188.     twoSidePositionButton.Text = twoSidePositionOn and "2 Side Position: ON" or "2 Side Position: OFF"
  189.     tweenColor(twoSidePositionButton, twoSidePositionOn and darkGold or standardBtnColor)
  190. end)
  191.  
  192. -- FRONT POSITION BUTTON
  193. local frontPositionButton = Instance.new("TextButton", scroll)
  194. frontPositionButton.Size = UDim2.new(1, 0, 0, 28)
  195. frontPositionButton.BackgroundColor3 = standardBtnColor
  196. frontPositionButton.TextColor3 = whiteText
  197. frontPositionButton.Font = Enum.Font.GothamBold
  198. frontPositionButton.TextSize = 13
  199. frontPositionButton.Text = "Front Position: OFF"
  200. frontPositionButton.LayoutOrder = 6
  201.  
  202. frontPositionButton.MouseButton1Click:Connect(function()
  203.     frontLoopMode = not frontLoopMode
  204.     frontPositionButton.Text = frontLoopMode and "Front Position: ON" or "Front Position: OFF"
  205.     tweenColor(frontPositionButton, frontLoopMode and darkGold or standardBtnColor)
  206. end)
  207.  
  208. -- Attach welds tracker (avoid multiple welds per target)
  209. local welds = {}
  210.  
  211. -- LOOPBRING FUNCTIONS
  212.  
  213. local function loopbringTwoSidePosition(myHRP, activeTargets)
  214.     for i, target in ipairs(activeTargets) do
  215.         local char = target.Character
  216.         if char then
  217.             local hrp = char:FindFirstChild("HumanoidRootPart")
  218.             if hrp then
  219.                 setNoClip(char, true)  -- added no clip for target
  220.                 hrp.Velocity = Vector3.new(0, 0, 0)
  221.                 hrp.RotVelocity = Vector3.new(0, 0, 0)
  222.  
  223.                 local side = (i % 2 == 1) and -1 or 1
  224.                 local sideOffset = 0.5
  225.  
  226.                 local forwardOffset = 1
  227.                 local yOffset = 0
  228.  
  229.                 if frontLoopMode and twoSidePositionOn then
  230.                     forwardOffset = 3 -- updated to 3 studs as requested
  231.                     yOffset = 0
  232.                 end
  233.  
  234.                 local targetPos = myHRP.Position
  235.                     + myHRP.CFrame.RightVector * (side * sideOffset)
  236.                     + myHRP.CFrame.LookVector * forwardOffset
  237.                     + Vector3.new(0, yOffset, 0)
  238.  
  239.                 hrp.CFrame = CFrame.new(targetPos.X, myHRP.Position.Y + yOffset, targetPos.Z) * CFrame.Angles(0, math.rad(myHRP.Orientation.Y), 0)
  240.             end
  241.         end
  242.     end
  243. end
  244.  
  245. local function attachPlayerToMyHRP(myHRP, target)
  246.     local localChar = LocalPlayer.Character
  247.     if not localChar then return end
  248.     local localHRP = localChar:FindFirstChild("HumanoidRootPart")
  249.     if not localHRP then return end
  250.  
  251.     local targetChar = target.Character
  252.     if not targetChar then return end
  253.     local targetHRP = targetChar:FindFirstChild("HumanoidRootPart")
  254.     if not targetHRP then return end
  255.  
  256.     setNoClip(localChar, true)
  257.     localHRP.Velocity = Vector3.new(0,0,0)
  258.     localHRP.RotVelocity = Vector3.new(0,0,0)
  259.     localHRP.CFrame = targetHRP.CFrame
  260.  
  261.     if not welds[target.Name] then
  262.         local weld = Instance.new("WeldConstraint")
  263.         weld.Name = "PsychoAttachWeld"
  264.         weld.Part0 = targetHRP
  265.         weld.Part1 = localHRP
  266.         weld.Parent = targetHRP
  267.         welds[target.Name] = weld
  268.     end
  269. end
  270.  
  271. local function loopbringStandard(myHRP, name, target)
  272.     if target and target.Character then
  273.         local hrp = target.Character:FindFirstChild("HumanoidRootPart")
  274.         if hrp then
  275.             setNoClip(target.Character, true)  -- added no clip for target
  276.             hrp.Velocity = Vector3.new(0, 0, 0)
  277.             hrp.RotVelocity = Vector3.new(0, 0, 0)
  278.  
  279.             local offset
  280.             if frontLoopMode then
  281.                 local yOffset = 1
  282.                 if twoSidePositionOn then
  283.                     yOffset = yOffset + 3 -- updated to 3 studs as requested
  284.                 end
  285.                 offset = myHRP.CFrame.LookVector * 3 + Vector3.new(0, yOffset, 0)
  286.             else
  287.                 offset = myHRP.CFrame.RightVector * 3 + myHRP.CFrame.LookVector + Vector3.new(0, 1, 0)
  288.             end
  289.  
  290.             hrp.CFrame = myHRP.CFrame + offset
  291.         end
  292.     end
  293. end
  294.  
  295. -- ADD PLAYER BUTTONS
  296. local function addPlayerButton(targetPlayer)
  297.     if targetPlayer == LocalPlayer then return end
  298.  
  299.     local button = Instance.new("TextButton")
  300.     button.Size = UDim2.new(1, 0, 0, 28)
  301.     button.BackgroundColor3 = defaultBtnColor
  302.     button.TextColor3 = whiteText
  303.     button.Font = Enum.Font.GothamBold
  304.     button.TextSize = 13
  305.     button.Text = targetPlayer.Name
  306.     button.LayoutOrder = 100
  307.     button.Parent = scroll
  308.  
  309.     playerButtons[targetPlayer.Name] = button
  310.  
  311.     local killLabel = Instance.new("TextLabel", button)
  312.     killLabel.Size = UDim2.new(0, 60, 1, 0)
  313.     killLabel.Position = UDim2.new(1, -65, 0, 0)
  314.     killLabel.BackgroundTransparency = 1
  315.     killLabel.TextColor3 = Color3.new(1, 0.2, 0.2)
  316.     killLabel.Font = Enum.Font.GothamBold
  317.     killLabel.TextSize = 12
  318.     killLabel.TextXAlignment = Enum.TextXAlignment.Right
  319.     killLabel.Text = "Kills: 0"
  320.  
  321.     local kills = 0
  322.  
  323.     local function onCharacterAdded(char)
  324.         local humanoid = char:WaitForChild("Humanoid", 10)
  325.         if humanoid then
  326.             humanoid.Died:Connect(function()
  327.                 local killerTool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
  328.                 if killerTool then
  329.                     kills = kills + 1
  330.                     killLabel.Text = "Kills: " .. kills
  331.                 end
  332.             end)
  333.         end
  334.     end
  335.  
  336.     if targetPlayer.Character then
  337.         onCharacterAdded(targetPlayer.Character)
  338.     end
  339.     targetPlayer.CharacterAdded:Connect(onCharacterAdded)
  340.  
  341.     button.MouseButton1Click:Connect(function()
  342.         local name = targetPlayer.Name
  343.         loopList[name] = not loopList[name]
  344.         tweenColor(button, loopList[name] and darkGold or defaultBtnColor)
  345.     end)
  346. end
  347.  
  348. -- Initialize player buttons
  349. for _, player in ipairs(Players:GetPlayers()) do
  350.     addPlayerButton(player)
  351. end
  352. Players.PlayerAdded:Connect(addPlayerButton)
  353.  
  354. -- Track local player deaths
  355. LocalPlayer.CharacterAdded:Connect(function(char)
  356.     local humanoid = char:WaitForChild("Humanoid", 10)
  357.     if humanoid then
  358.         humanoid.Died:Connect(function()
  359.             myDeaths = myDeaths + 1
  360.             myDeathLabel.Text = "My Deaths: " .. myDeaths
  361.         end)
  362.     end
  363.    
  364.     if speedBoostOn then
  365.         applySpeedBoost(true)
  366.     end
  367. end)
  368.  
  369. -- MAIN LOOPBRING EXECUTION
  370. task.spawn(function()
  371.     while true do
  372.         local myHRP = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  373.         if myHRP then
  374.             local activeTargets = {}
  375.             for name, active in pairs(loopList) do
  376.                 if active then
  377.                     local target = Players:FindFirstChild(name)
  378.                     if target then
  379.                         table.insert(activeTargets, target)
  380.                     end
  381.                 end
  382.             end
  383.  
  384.             if attachModeOn then
  385.                 for _, target in ipairs(activeTargets) do
  386.                     attachPlayerToMyHRP(myHRP, target)
  387.                 end
  388.             elseif twoSidePositionOn then
  389.                 loopbringTwoSidePosition(myHRP, activeTargets)
  390.             else
  391.                 for name, active in pairs(loopList) do
  392.                     if active then
  393.                         local target = Players:FindFirstChild(name)
  394.                         loopbringStandard(myHRP, name, target)
  395.                     end
  396.                 end
  397.             end
  398.         end
  399.  
  400.         task.wait(0.1)
  401.     end
  402. end)
  403.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement