Advertisement
Azzz_4565

Untitled

Jul 8th, 2025
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.46 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 (Updated to Reaper theme)
  8. local pitchBlack = Color3.fromRGB(5, 5, 10)
  9. local bloodGlow = Color3.fromRGB(170, 0, 0)
  10. local ghostWhite = Color3.fromRGB(255, 255, 255)
  11. local dimGray = Color3.fromRGB(30, 30, 30)
  12. local standardBtnColor = dimGray
  13. local darkGold = Color3.fromRGB(180, 140, 30)
  14. local whiteText = ghostWhite
  15. local defaultBtnColor = pitchBlack
  16.  
  17. -- STATES
  18. local toggleOpen = false
  19. local loopList = {}
  20. local playerButtons = {}
  21. local speedBoostOn = false
  22. local antiLagOn = false
  23. local frontLoopMode = false
  24. local loopbringAllActive = false
  25. local attachModeOn = false
  26. local twoSidePositionOn = false
  27. local myDeaths = 0
  28.  
  29. -- KILL TRACKING DATA
  30. local killCounts = {}
  31. local damageTracker = {}
  32.  
  33. -- GUI
  34. local gui = Instance.new("ScreenGui", LocalPlayer:WaitForChild("PlayerGui"))
  35. gui.Name = "ReaperLoopbringUI"
  36. gui.ResetOnSpawn = false
  37. gui.IgnoreGuiInset = true
  38.  
  39. -- Toggle Button (Updated to Reaper theme)
  40. local toggle = Instance.new("TextButton", gui)
  41. toggle.Size = UDim2.new(0, 130, 0, 30)
  42. toggle.Position = UDim2.new(0, 10, 0, 60) -- Positioned on the left side, pulled down more
  43. toggle.BackgroundColor3 = bloodGlow
  44. toggle.TextColor3 = ghostWhite
  45. toggle.Font = Enum.Font.Antique
  46. toggle.Text = "☠ Reaper Toll ☠"
  47. toggle.TextScaled = true
  48. toggle.BorderSizePixel = 0
  49. toggle.ZIndex = 10
  50.  
  51. -- Floating Words (Reaper theme effect)
  52. local horrorWords = {"DEATH", "SOULS", "FEAR"}
  53. for i = 1, 3 do
  54.     local word = horrorWords[i]
  55.     local lbl = Instance.new("TextLabel", toggle)
  56.     lbl.Size = UDim2.new(0, 35, 0, 12)
  57.     lbl.BackgroundTransparency = 1
  58.     lbl.TextColor3 = Color3.fromRGB(255, 50, 50) -- Bright red color
  59.     lbl.Text = word
  60.     lbl.Font = Enum.Font.GothamBlack
  61.     lbl.TextSize = 8
  62.     lbl.TextScaled = false
  63.     lbl.Rotation = math.random(-15, 15) -- Random slight rotation
  64.     lbl.ZIndex = 12
  65.     -- Position words below the toggle button
  66.     local xOffset = (i - 2) * 35 -- Space them out horizontally
  67.     lbl.Position = UDim2.new(0.5, xOffset - 17, 1, 2) -- Below toggle (y = 1 + 2 offset)
  68.    
  69.     -- Add a subtle glow effect
  70.     lbl.TextStrokeTransparency = 0.5
  71.     lbl.TextStrokeColor3 = Color3.fromRGB(100, 0, 0)
  72. end
  73.  
  74. -- Main Frame (Updated to Reaper theme) - Positioned on the left side
  75. local frame = Instance.new("Frame", gui)
  76. frame.Size = UDim2.new(0, 230, 0, 340)
  77. frame.Position = UDim2.new(0, 10, 0, 100) -- Positioned on the left side, below the toggle
  78. frame.BackgroundColor3 = pitchBlack
  79. frame.BorderSizePixel = 0
  80. frame.Visible = false
  81. frame.Active = true
  82. frame.Draggable = true
  83.  
  84. -- Title (Updated to Reaper theme)
  85. local title = Instance.new("TextLabel", frame)
  86. title.Size = UDim2.new(1, -20, 0, 30)
  87. title.Position = UDim2.new(0, 10, 0, 5)
  88. title.BackgroundTransparency = 1
  89. title.Text = "☠ Psycho Loopbring ☠"
  90. title.TextColor3 = bloodGlow
  91. title.TextScaled = true
  92. title.Font = Enum.Font.Fondamento
  93. title.TextXAlignment = Enum.TextXAlignment.Left
  94.  
  95. -- Death Counter (Updated to Reaper theme)
  96. local myDeathLabel = Instance.new("TextLabel", frame)
  97. myDeathLabel.Size = UDim2.new(1, -20, 0, 30)
  98. myDeathLabel.Position = UDim2.new(0, 10, 0, 35)
  99. myDeathLabel.BackgroundTransparency = 1
  100. myDeathLabel.Text = "☠ My Deaths: 0"
  101. myDeathLabel.TextColor3 = bloodGlow
  102. myDeathLabel.TextScaled = true
  103. myDeathLabel.Font = Enum.Font.Antique
  104. myDeathLabel.TextXAlignment = Enum.TextXAlignment.Left
  105.  
  106. -- Scroll Panel
  107. local scroll = Instance.new("ScrollingFrame", frame)
  108. scroll.Position = UDim2.new(0, 10, 0, 70)
  109. scroll.Size = UDim2.new(1, -20, 1, -80)
  110. scroll.BackgroundTransparency = 1
  111. scroll.BorderSizePixel = 0
  112. scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
  113. scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
  114. scroll.ScrollBarThickness = 5
  115. scroll.ClipsDescendants = true
  116.  
  117. local layout = Instance.new("UIListLayout", scroll)
  118. layout.SortOrder = Enum.SortOrder.LayoutOrder
  119. layout.Padding = UDim.new(0, 3)
  120.  
  121. -- UTILITIES
  122. local function tweenColor(object, color, duration)
  123.     TweenService:Create(object, TweenInfo.new(duration or 0.25), {BackgroundColor3 = color}):Play()
  124. end
  125.  
  126. local function setNoClip(character, state)
  127.     for _, part in pairs(character:GetDescendants()) do
  128.         if part:IsA("BasePart") then
  129.             part.CanCollide = not state
  130.         end
  131.     end
  132. end
  133.  
  134. -- IMPROVED KILL TRACKING SYSTEM (FIXED)
  135. local function initializeKillTracking(player)
  136.     if not killCounts[player.Name] then
  137.         killCounts[player.Name] = 0
  138.     end
  139.    
  140.     local function setupCharacterTracking(character)
  141.         local humanoid = character:WaitForChild("Humanoid", 10)
  142.         if not humanoid then return end
  143.        
  144.         -- Track damage dealt to this player
  145.         local lastHealth = humanoid.Health
  146.         local damageConnection
  147.        
  148.         damageConnection = humanoid.HealthChanged:Connect(function(newHealth)
  149.             if newHealth < lastHealth and newHealth > 0 then
  150.                 -- Player took damage, mark us as potential killer
  151.                 damageTracker[player.Name] = {
  152.                     attacker = LocalPlayer,
  153.                     timestamp = tick(),
  154.                     lastDamage = lastHealth - newHealth
  155.                 }
  156.             end
  157.             lastHealth = newHealth
  158.         end)
  159.        
  160.         -- Clean up on character removal
  161.         character.AncestryChanged:Connect(function()
  162.             if not character.Parent then
  163.                 if damageConnection then
  164.                     damageConnection:Disconnect()
  165.                 end
  166.                 damageTracker[player.Name] = nil
  167.             end
  168.         end)
  169.        
  170.         -- SINGLE KILL DETECTION METHOD - Only use creator tag
  171.         humanoid.Died:Connect(function()
  172.             wait(0.1) -- Small delay to let creator tag appear
  173.             local creatorTag = humanoid:FindFirstChild("creator")
  174.             if creatorTag and creatorTag.Value == LocalPlayer then
  175.                 killCounts[player.Name] = killCounts[player.Name] + 1
  176.                
  177.                 -- Update kill label
  178.                 local button = playerButtons[player.Name]
  179.                 if button then
  180.                     local killLabel = button:FindFirstChild("KillLabel")
  181.                     if killLabel then
  182.                         killLabel.Text = "Kills: " .. killCounts[player.Name]
  183.                     end
  184.                 end
  185.             end
  186.         end)
  187.     end
  188.    
  189.     -- Setup for current character
  190.     if player.Character then
  191.         setupCharacterTracking(player.Character)
  192.     end
  193.    
  194.     -- Setup for future characters
  195.     player.CharacterAdded:Connect(setupCharacterTracking)
  196. end
  197.  
  198. -- TOGGLE UI
  199. toggle.MouseButton1Click:Connect(function()
  200.     toggleOpen = not toggleOpen
  201.     frame.Visible = toggleOpen
  202.    
  203.     -- Update floating words when toggle is opened
  204.     if toggleOpen then
  205.         for i, child in pairs(toggle:GetChildren()) do
  206.             if child:IsA("TextLabel") then
  207.                 local word = child.Text
  208.                 if word == "DEATH" then
  209.                     child.Text = "DEATH"
  210.                 elseif word == "SOULS" then
  211.                     child.Text = "SOULS"
  212.                 elseif word == "FEAR" then
  213.                     child.Text = "FEAR"
  214.                 end
  215.             end
  216.         end
  217.     end
  218. end)
  219.  
  220. -- SPEED BOOST BUTTON
  221. local speedButton = Instance.new("TextButton", scroll)
  222. speedButton.Size = UDim2.new(1, 0, 0, 28)
  223. speedButton.BackgroundColor3 = standardBtnColor
  224. speedButton.TextColor3 = whiteText
  225. speedButton.Font = Enum.Font.GothamBold
  226. speedButton.TextSize = 13
  227. speedButton.Text = "Speed Boost"
  228. speedButton.LayoutOrder = 0
  229.  
  230. local function applySpeedBoost(state)
  231.     local char = LocalPlayer.Character
  232.     if char then
  233.         local humanoid = char:FindFirstChildOfClass("Humanoid")
  234.         if humanoid then
  235.             humanoid.WalkSpeed = state and 120 or 16
  236.             humanoid.JumpPower = state and 120 or 50
  237.             tweenColor(speedButton, state and darkGold or standardBtnColor)
  238.         end
  239.     end
  240. end
  241.  
  242. speedButton.MouseButton1Click:Connect(function()
  243.     speedBoostOn = not speedBoostOn
  244.     applySpeedBoost(speedBoostOn)
  245. end)
  246.  
  247. -- LOOPBRING POSITION TOGGLE
  248. local loopbringToggleButton = Instance.new("TextButton", scroll)
  249. loopbringToggleButton.Size = UDim2.new(1, 0, 0, 28)
  250. loopbringToggleButton.BackgroundColor3 = standardBtnColor
  251. loopbringToggleButton.TextColor3 = whiteText
  252. loopbringToggleButton.Font = Enum.Font.GothamBold
  253. loopbringToggleButton.TextSize = 13
  254. loopbringToggleButton.Text = "Toggle Loopbring Position"
  255. loopbringToggleButton.LayoutOrder = 1
  256.  
  257. loopbringToggleButton.MouseButton1Click:Connect(function()
  258.     frontLoopMode = not frontLoopMode
  259.     tweenColor(loopbringToggleButton, frontLoopMode and darkGold or standardBtnColor)
  260. end)
  261.  
  262. -- LOOPBRING ALL BUTTON
  263. local loopbringAllButton = Instance.new("TextButton", scroll)
  264. loopbringAllButton.Size = UDim2.new(1, 0, 0, 28)
  265. loopbringAllButton.BackgroundColor3 = standardBtnColor
  266. loopbringAllButton.TextColor3 = whiteText
  267. loopbringAllButton.Font = Enum.Font.GothamBold
  268. loopbringAllButton.TextSize = 13
  269. loopbringAllButton.Text = "Loopbring All"
  270. loopbringAllButton.LayoutOrder = 2
  271.  
  272. loopbringAllButton.MouseButton1Click:Connect(function()
  273.     loopbringAllActive = not loopbringAllActive
  274.     tweenColor(loopbringAllButton, loopbringAllActive and darkGold or standardBtnColor)
  275.     for _, player in pairs(Players:GetPlayers()) do
  276.         if player ~= LocalPlayer and playerButtons[player.Name] then
  277.             loopList[player.Name] = loopbringAllActive or nil
  278.             tweenColor(playerButtons[player.Name], loopbringAllActive and darkGold or defaultBtnColor)
  279.         end
  280.     end
  281. end)
  282.  
  283. -- TWO SIDE POSITION BUTTON
  284. local twoSidePositionButton = Instance.new("TextButton", scroll)
  285. twoSidePositionButton.Size = UDim2.new(1, 0, 0, 28)
  286. twoSidePositionButton.BackgroundColor3 = standardBtnColor
  287. twoSidePositionButton.TextColor3 = whiteText
  288. twoSidePositionButton.Font = Enum.Font.GothamBold
  289. twoSidePositionButton.TextSize = 13
  290. twoSidePositionButton.Text = "2 Side Position: OFF"
  291. twoSidePositionButton.LayoutOrder = 2.5
  292.  
  293. twoSidePositionButton.MouseButton1Click:Connect(function()
  294.     twoSidePositionOn = not twoSidePositionOn
  295.     tweenColor(twoSidePositionButton, twoSidePositionOn and darkGold or standardBtnColor)
  296.     twoSidePositionButton.Text = twoSidePositionOn and "2 Side Position: ON" or "2 Side Position: OFF"
  297. end)
  298.  
  299. -- ATTACH MODE BUTTON
  300. local attachModeButton = Instance.new("TextButton", scroll)
  301. attachModeButton.Size = UDim2.new(1, 0, 0, 28)
  302. attachModeButton.BackgroundColor3 = standardBtnColor
  303. attachModeButton.TextColor3 = whiteText
  304. attachModeButton.Font = Enum.Font.GothamBold
  305. attachModeButton.TextSize = 13
  306. attachModeButton.Text = "Attach Mode: OFF"
  307. attachModeButton.LayoutOrder = 3
  308.  
  309. attachModeButton.MouseButton1Click:Connect(function()
  310.     attachModeOn = not attachModeOn
  311.     attachModeButton.Text = attachModeOn and "Attach Mode: ON" or "Attach Mode: OFF"
  312.     tweenColor(attachModeButton, attachModeOn and darkGold or standardBtnColor)
  313. end)
  314.  
  315. -- ADD PLAYER BUTTONS
  316. local function addPlayerButton(targetPlayer)
  317.     if targetPlayer == LocalPlayer then return end
  318.  
  319.     local button = Instance.new("TextButton")
  320.     button.Size = UDim2.new(1, 0, 0, 28)
  321.     button.BackgroundColor3 = defaultBtnColor
  322.     button.TextColor3 = whiteText
  323.     button.Font = Enum.Font.GothamBold
  324.     button.TextSize = 13
  325.     button.Text = targetPlayer.Name
  326.     button.LayoutOrder = 100
  327.     button.Parent = scroll
  328.  
  329.     local killLabel = Instance.new("TextLabel", button)
  330.     killLabel.Name = "KillLabel"
  331.     killLabel.Size = UDim2.new(0, 60, 1, 0)
  332.     killLabel.Position = UDim2.new(1, -65, 0, 0)
  333.     killLabel.BackgroundTransparency = 1
  334.     killLabel.TextColor3 = Color3.new(1, 0.2, 0.2)
  335.     killLabel.Font = Enum.Font.GothamBold
  336.     killLabel.TextSize = 12
  337.     killLabel.TextXAlignment = Enum.TextXAlignment.Right
  338.     killLabel.Text = "Kills: 0"
  339.  
  340.     -- Initialize kill tracking for this player
  341.     initializeKillTracking(targetPlayer)
  342.  
  343.     button.MouseButton1Click:Connect(function()
  344.         local name = targetPlayer.Name
  345.         loopList[name] = not loopList[name]
  346.         tweenColor(button, loopList[name] and darkGold or defaultBtnColor)
  347.     end)
  348.  
  349.     playerButtons[targetPlayer.Name] = button
  350. end
  351.  
  352. -- CLEANUP ON PLAYER LEAVE
  353. Players.PlayerRemoving:Connect(function(player)
  354.     if playerButtons[player.Name] then
  355.         playerButtons[player.Name]:Destroy()
  356.         playerButtons[player.Name] = nil
  357.     end
  358.     killCounts[player.Name] = nil
  359.     damageTracker[player.Name] = nil
  360.     loopList[player.Name] = nil
  361. end)
  362.  
  363. -- INIT ALL PLAYERS
  364. for _, p in ipairs(Players:GetPlayers()) do
  365.     addPlayerButton(p)
  366. end
  367. Players.PlayerAdded:Connect(addPlayerButton)
  368.  
  369. -- CHARACTER SPAWN (Updated to match first script)
  370. LocalPlayer.CharacterAdded:Connect(function(char)
  371.     if speedBoostOn then
  372.         local humanoid = char:WaitForChild("Humanoid", 5)
  373.         if humanoid then
  374.             applySpeedBoost(true)
  375.         end
  376.     end
  377.    
  378.     -- Death tracking
  379.     local humanoid = char:WaitForChild("Humanoid", 5)
  380.     if humanoid then
  381.         humanoid.Died:Connect(function()
  382.             myDeaths = myDeaths + 1
  383.             myDeathLabel.Text = "☠ My Deaths: " .. myDeaths
  384.         end)
  385.     end
  386. end)
  387.  
  388. -- Two Side Position loopbring function
  389. local function loopbringTwoSidePosition(myHRP, activeTargets)
  390.     for i, char in ipairs(activeTargets) do
  391.         local hrp = char:FindFirstChild("HumanoidRootPart")
  392.         if hrp then
  393.             setNoClip(char, true)
  394.             hrp.Velocity = Vector3.new(0, 0, 0)
  395.             hrp.RotVelocity = Vector3.new(0, 0, 0)
  396.  
  397.             local side = (i % 2 == 1) and -1 or 1
  398.             local targetPos = Vector3.new(
  399.                 myHRP.Position.X + (myHRP.CFrame.RightVector * (side * 1)).X + (myHRP.CFrame.LookVector * 2).X,
  400.                 myHRP.Position.Y,
  401.                 myHRP.Position.Z + (myHRP.CFrame.RightVector * (side * 1)).Z + (myHRP.CFrame.LookVector * 2).Z
  402.             )
  403.             hrp.CFrame = CFrame.new(targetPos) * CFrame.Angles(0, math.rad(myHRP.Orientation.Y), 0)
  404.         end
  405.     end
  406. end
  407.  
  408. -- LOOPBRING CORE LOOP
  409. task.spawn(function()
  410.     while true do
  411.         local myHRP = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  412.         if myHRP then
  413.             local activeTargets = {}
  414.             for name, active in pairs(loopList) do
  415.                 if active then
  416.                     local target = Players:FindFirstChild(name)
  417.                     if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
  418.                         table.insert(activeTargets, target.Character)
  419.                     end
  420.                 end
  421.             end
  422.  
  423.             if twoSidePositionOn and #activeTargets > 0 then
  424.                 loopbringTwoSidePosition(myHRP, activeTargets)
  425.             else
  426.                 for name, active in pairs(loopList) do
  427.                     if active then
  428.                         local target = Players:FindFirstChild(name)
  429.                         if target and target.Character then
  430.                             local hrp = target.Character:FindFirstChild("HumanoidRootPart")
  431.                             if hrp then
  432.                                 setNoClip(target.Character, true)
  433.                                 hrp.Velocity = Vector3.zero
  434.                                 hrp.RotVelocity = Vector3.zero
  435.  
  436.                                 local offset
  437.                                 if attachModeOn then
  438.                                     myHRP.CFrame = hrp.CFrame
  439.                                 else
  440.                                     if frontLoopMode then
  441.                                         offset = myHRP.CFrame.LookVector * 3 + Vector3.new(0, 1, 0)
  442.                                     else
  443.                                         offset = myHRP.CFrame.RightVector * 3 + myHRP.CFrame.LookVector + Vector3.new(0, 1, 0)
  444.                                     end
  445.                                     hrp.CFrame = myHRP.CFrame + offset
  446.                                 end
  447.                             end
  448.                         end
  449.                     end
  450.                 end
  451.             end
  452.         end
  453.         task.wait(0)
  454.     end
  455. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement