Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local UserInputService = game:GetService("UserInputService")
- local TweenService = game:GetService("TweenService")
- local LocalPlayer = Players.LocalPlayer
- local gui = LocalPlayer:WaitForChild("PlayerGui")
- -- Reaper Toll Settings
- _G.HeadSize = 15
- _G.HitboxSize = Vector3.new(15, 15, 15)
- _G.Disabled = false
- _G.ToggleKey = Enum.KeyCode.H
- local detectionRange = 25
- local frameUpdateRate = 0.1
- -- Reaper GUI Setup
- local screenGui = Instance.new("ScreenGui")
- screenGui.Name = "ReaperHitboxGui"
- screenGui.ResetOnSpawn = false
- screenGui.Parent = gui
- local frame = Instance.new("Frame")
- frame.Size = UDim2.new(0, 250, 0, 60)
- frame.Position = UDim2.new(0.5, -125, 0.1, 0)
- frame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
- frame.BackgroundTransparency = 0.2
- frame.BorderSizePixel = 0
- frame.Visible = false
- frame.Parent = screenGui
- -- Dark gothic styling
- local frameCorner = Instance.new("UICorner")
- frameCorner.CornerRadius = UDim.new(0, 8)
- frameCorner.Parent = frame
- local frameStroke = Instance.new("UIStroke")
- frameStroke.Color = Color3.fromRGB(100, 0, 0)
- frameStroke.Thickness = 2
- frameStroke.Parent = frame
- -- Reaper skull icon
- local skullIcon = Instance.new("TextLabel")
- skullIcon.Size = UDim2.new(0, 30, 0, 30)
- skullIcon.Position = UDim2.new(0, 10, 0.5, -15)
- skullIcon.BackgroundTransparency = 1
- skullIcon.Text = "💀"
- skullIcon.TextColor3 = Color3.fromRGB(200, 0, 0)
- skullIcon.TextScaled = true
- skullIcon.Font = Enum.Font.SourceSansBold
- skullIcon.Parent = frame
- -- Main label
- local label = Instance.new("TextLabel")
- label.Size = UDim2.new(1, -50, 1, 0)
- label.Position = UDim2.new(0, 45, 0, 0)
- label.BackgroundTransparency = 1
- label.TextColor3 = Color3.fromRGB(200, 200, 200)
- label.TextScaled = true
- label.Font = Enum.Font.SourceSansBold
- label.Text = "The Reaper watches..."
- label.Parent = frame
- -- Detect Closest Soul (Target)
- local function findClosestSoul()
- local closestPlayer, minDistance = nil, detectionRange
- for _, v in pairs(Players:GetPlayers()) do
- if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then
- local dist = (LocalPlayer.Character.HumanoidRootPart.Position - v.Character.HumanoidRootPart.Position).Magnitude
- if dist <= minDistance then
- minDistance = dist
- closestPlayer = v
- end
- end
- end
- return closestPlayer
- end
- -- Follow Closest Soul
- local following = false
- local lastFollowUpdate = 0
- local function followSoul()
- if following then return end
- following = true
- RunService.Heartbeat:Connect(function()
- if tick() - lastFollowUpdate < frameUpdateRate or _G.Disabled then return end
- lastFollowUpdate = tick()
- local closestSoul = findClosestSoul()
- if closestSoul and closestSoul.Character and closestSoul.Character:FindFirstChild("HumanoidRootPart") then
- label.Text = "Reaping: " .. closestSoul.Name
- label.TextColor3 = Color3.fromRGB(255, 100, 100)
- frame.Visible = true
- -- Animate skull when following
- local rotationTween = TweenService:Create(skullIcon, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {Rotation = 15})
- rotationTween:Play()
- local targetHRP = closestSoul.Character.HumanoidRootPart
- for _, tool in pairs(LocalPlayer.Character:GetChildren()) do
- if tool:IsA("Tool") then
- local handle = tool:FindFirstChild("Handle")
- if handle then
- handle.Position = targetHRP.Position + Vector3.new(0, 2, 0)
- elseif tool.PrimaryPart then
- tool:SetPrimaryPartCFrame(targetHRP.CFrame * CFrame.new(0, 2, 0))
- end
- end
- end
- else
- label.Text = "The Reaper watches..."
- label.TextColor3 = Color3.fromRGB(200, 200, 200)
- frame.Visible = false
- skullIcon.Rotation = 0
- end
- end)
- end
- followSoul()
- -- Reaper ESP + Soul Hitbox + Death Indicators (Optimized)
- local lastESPUpdate = 0
- RunService.RenderStepped:Connect(function()
- if tick() - lastESPUpdate < frameUpdateRate or _G.Disabled then return end
- lastESPUpdate = tick()
- for _, v in pairs(Players:GetPlayers()) do
- if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("Head") then
- pcall(function()
- local head = v.Character.Head
- head.Size = Vector3.new(_G.HeadSize, _G.HeadSize, _G.HeadSize)
- head.Transparency = 1
- head.BrickColor = BrickColor.new("Really black")
- head.Material = Enum.Material.ForceField
- head.CanCollide = false
- head.Massless = true
- local soulHitbox = v.Character:FindFirstChild("SoulHitbox")
- if not soulHitbox then
- soulHitbox = Instance.new("Part")
- soulHitbox.Name = "SoulHitbox"
- soulHitbox.Size = _G.HitboxSize
- soulHitbox.Transparency = 0.1
- soulHitbox.BrickColor = BrickColor.new("Really black")
- soulHitbox.Material = Enum.Material.ForceField
- soulHitbox.Anchored = true
- soulHitbox.CanCollide = false
- soulHitbox.Massless = true
- soulHitbox.Parent = v.Character
- -- Dark glow effect
- local selectionBox = Instance.new("SelectionBox")
- selectionBox.Adornee = soulHitbox
- selectionBox.Color3 = Color3.fromRGB(150, 0, 0)
- selectionBox.LineThickness = 0.2
- selectionBox.Transparency = 0.5
- selectionBox.Parent = soulHitbox
- -- Death Status Emoji
- local deathEmoji = Instance.new("BillboardGui")
- deathEmoji.Name = "DeathEmoji"
- deathEmoji.Size = UDim2.new(8, 0, 8, 0)
- deathEmoji.Adornee = soulHitbox
- deathEmoji.AlwaysOnTop = true
- deathEmoji.Parent = soulHitbox
- local deathEmojiText = Instance.new("TextLabel")
- deathEmojiText.Name = "DeathEmojiLabel"
- deathEmojiText.Size = UDim2.new(1, 0, 1, 0)
- deathEmojiText.BackgroundTransparency = 1
- deathEmojiText.TextScaled = true
- deathEmojiText.Font = Enum.Font.GothamBlack
- deathEmojiText.TextColor3 = Color3.fromRGB(255, 255, 255)
- deathEmojiText.TextStrokeTransparency = 0
- deathEmojiText.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
- deathEmojiText.Text = "👻"
- deathEmojiText.Parent = deathEmoji
- -- Soul Status Display
- local soulGui = Instance.new("BillboardGui")
- soulGui.Name = "SoulGui"
- soulGui.Size = UDim2.new(6, 0, 1.5, 0)
- soulGui.StudsOffset = Vector3.new(0, 4, 0)
- soulGui.Adornee = soulHitbox
- soulGui.AlwaysOnTop = true
- soulGui.Parent = soulHitbox
- local soulLabel = Instance.new("TextLabel")
- soulLabel.Name = "SoulLabel"
- soulLabel.Size = UDim2.new(1, 0, 1, 0)
- soulLabel.BackgroundTransparency = 1
- soulLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
- soulLabel.TextStrokeTransparency = 0.3
- soulLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
- soulLabel.TextScaled = true
- soulLabel.Font = Enum.Font.SourceSansBold
- soulLabel.Parent = soulGui
- -- Player name with gothic styling
- local nameGui = Instance.new("BillboardGui")
- nameGui.Name = "ReaperNameGui"
- nameGui.Size = UDim2.new(6, 0, 1, 0)
- nameGui.StudsOffset = Vector3.new(0, 6, 0)
- nameGui.Adornee = soulHitbox
- nameGui.AlwaysOnTop = true
- nameGui.Parent = soulHitbox
- local nameLabel = Instance.new("TextLabel")
- nameLabel.Name = "ReaperNameLabel"
- nameLabel.Size = UDim2.new(1, 0, 1, 0)
- nameLabel.BackgroundTransparency = 1
- nameLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
- nameLabel.TextStrokeTransparency = 0.3
- nameLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
- nameLabel.TextScaled = true
- nameLabel.Font = Enum.Font.SourceSansBold
- nameLabel.Text = "Soul of " .. v.Name
- nameLabel.Parent = nameGui
- end
- soulHitbox.CFrame = head.CFrame * CFrame.new(0, 2, 0)
- local hum = v.Character:FindFirstChildOfClass("Humanoid")
- if hum then
- local hp = hum.Health
- local maxHp = hum.MaxHealth
- local deathEmoji = soulHitbox:FindFirstChild("DeathEmoji")
- local soulGui = soulHitbox:FindFirstChild("SoulGui")
- local selectionBox = soulHitbox:FindFirstChild("SelectionBox")
- if deathEmoji and deathEmoji:FindFirstChild("DeathEmojiLabel") then
- local e = deathEmoji.DeathEmojiLabel
- if hp <= 0 then
- e.Text = "⚰️"
- e.TextColor3 = Color3.fromRGB(0, 0, 0)
- if selectionBox then
- selectionBox.Color3 = Color3.fromRGB(0, 0, 0)
- end
- elseif hp <= 25 then
- e.Text = "💀"
- e.TextColor3 = Color3.fromRGB(255, 0, 0)
- if selectionBox then
- selectionBox.Color3 = Color3.fromRGB(255, 0, 0)
- end
- elseif hp <= 50 then
- e.Text = "☠️"
- e.TextColor3 = Color3.fromRGB(255, 100, 0)
- if selectionBox then
- selectionBox.Color3 = Color3.fromRGB(255, 100, 0)
- end
- else
- e.Text = "👻"
- e.TextColor3 = Color3.fromRGB(200, 200, 200)
- if selectionBox then
- selectionBox.Color3 = Color3.fromRGB(150, 0, 0)
- end
- end
- end
- if soulGui and soulGui:FindFirstChild("SoulLabel") then
- local soulPercent = (hp / maxHp) * 100
- soulGui.SoulLabel.Text = string.format("Soul: %.0f%% (%.0f HP)", soulPercent, hp)
- -- Color based on soul strength
- if hp <= 25 then
- soulGui.SoulLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
- elseif hp <= 50 then
- soulGui.SoulLabel.TextColor3 = Color3.fromRGB(255, 165, 0)
- else
- soulGui.SoulLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
- end
- end
- end
- end)
- end
- end
- end)
- -- Reaper Toggle with Death Sound Effect
- UserInputService.InputBegan:Connect(function(input, processed)
- if not processed and input.KeyCode == _G.ToggleKey then
- _G.Disabled = not _G.Disabled
- if _G.Disabled then
- label.Text = "The Reaper rests..."
- label.TextColor3 = Color3.fromRGB(100, 100, 100)
- skullIcon.TextColor3 = Color3.fromRGB(100, 100, 100)
- frameStroke.Color = Color3.fromRGB(50, 50, 50)
- else
- label.Text = "The Reaper awakens..."
- label.TextColor3 = Color3.fromRGB(200, 200, 200)
- skullIcon.TextColor3 = Color3.fromRGB(200, 0, 0)
- frameStroke.Color = Color3.fromRGB(100, 0, 0)
- end
- frame.Visible = not _G.Disabled
- end
- end)
- -- Cleanup function for disconnected players
- Players.PlayerRemoving:Connect(function(player)
- if player.Character then
- local soulHitbox = player.Character:FindFirstChild("SoulHitbox")
- if soulHitbox then
- soulHitbox:Destroy()
- end
- end
- end)
- print("[ReaperHitbox] The Reaper's gaze is upon them... ⚰️💀")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement