Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --// Made by Blissful#4992
- --// Locals:
- ss:Toggle("")
- local workspace = game:GetService("Workspace")
- local player = game:GetService("Players").LocalPlayer
- local camera = workspace.CurrentCamera
- --// Settings:
- local on = true -- Use this if your making gui
- local Box_Color = Color3.fromRGB(255, 0, 0)
- local Box_Thickness = 2
- local Box_Transparency = 1 -- 1 Visible, 0 Not Visible
- local Tracers = true
- local Tracer_Color = Color3.fromRGB(255, 0, 0)
- local Tracer_Thickness = 2
- local Tracer_Transparency = 1 -- 1 Visible, 0 Not Visible
- local Autothickness = true -- Makes screen less encumbered
- local Team_Check = true
- local red = Color3.fromRGB(227, 52, 52)
- local green = Color3.fromRGB(88, 217, 24)
- local function NewLine()
- local line = Drawing.new("Line")
- line.Visible = false
- line.From = Vector2.new(0, 0)
- line.To = Vector2.new(1, 1)
- line.Color = Box_Color
- line.Thickness = Box_Thickness
- line.Transparency = Box_Transparency
- return line
- end
- --// Main Function:
- for i, v in pairs(game.Players:GetChildren()) do
- --// Lines for 3D box (12)
- local lines = {
- line1 = NewLine(),
- line2 = NewLine(),
- line3 = NewLine(),
- line4 = NewLine(),
- line5 = NewLine(),
- line6 = NewLine(),
- line7 = NewLine(),
- line8 = NewLine(),
- line9 = NewLine(),
- line10 = NewLine(),
- line11 = NewLine(),
- line12 = NewLine(),
- Tracer = NewLine()
- }
- lines.Tracer.Color = Tracer_Color
- lines.Tracer.Thickness = Tracer_Thickness
- lines.Tracer.Transparency = Tracer_Transparency
- --// Updates ESP (lines) in render loop
- local function ESP()
- local connection
- connection = game:GetService("RunService").RenderStepped:Connect(function()
- if on and v.Character ~= nil and v.Character:FindFirstChild("Humanoid") ~= nil and v.Character:FindFirstChild("HumanoidRootPart") ~= nil and v.Name ~= player.Name and v.Character.Humanoid.Health > 0 and v.Character:FindFirstChild("Head") ~= nil then
- local pos, vis = camera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- if vis then
- local Scale = v.Character.Head.Size.Y/2
- local Size = Vector3.new(2, 3, 1.5) * (Scale * 2) -- Change this for different box size
- local Top1 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, Size.Y, -Size.Z)).p)
- local Top2 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, Size.Y, Size.Z)).p)
- local Top3 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, Size.Y, Size.Z)).p)
- local Top4 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, Size.Y, -Size.Z)).p)
- local Bottom1 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, -Size.Y, -Size.Z)).p)
- local Bottom2 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, -Size.Y, Size.Z)).p)
- local Bottom3 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, -Size.Y, Size.Z)).p)
- local Bottom4 = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, -Size.Y, -Size.Z)).p)
- --// Top:
- lines.line1.From = Vector2.new(Top1.X, Top1.Y)
- lines.line1.To = Vector2.new(Top2.X, Top2.Y)
- lines.line2.From = Vector2.new(Top2.X, Top2.Y)
- lines.line2.To = Vector2.new(Top3.X, Top3.Y)
- lines.line3.From = Vector2.new(Top3.X, Top3.Y)
- lines.line3.To = Vector2.new(Top4.X, Top4.Y)
- lines.line4.From = Vector2.new(Top4.X, Top4.Y)
- lines.line4.To = Vector2.new(Top1.X, Top1.Y)
- --// Bottom:
- lines.line5.From = Vector2.new(Bottom1.X, Bottom1.Y)
- lines.line5.To = Vector2.new(Bottom2.X, Bottom2.Y)
- lines.line6.From = Vector2.new(Bottom2.X, Bottom2.Y)
- lines.line6.To = Vector2.new(Bottom3.X, Bottom3.Y)
- lines.line7.From = Vector2.new(Bottom3.X, Bottom3.Y)
- lines.line7.To = Vector2.new(Bottom4.X, Bottom4.Y)
- lines.line8.From = Vector2.new(Bottom4.X, Bottom4.Y)
- lines.line8.To = Vector2.new(Bottom1.X, Bottom1.Y)
- --//S ides:
- lines.line9.From = Vector2.new(Bottom1.X, Bottom1.Y)
- lines.line9.To = Vector2.new(Top1.X, Top1.Y)
- lines.line10.From = Vector2.new(Bottom2.X, Bottom2.Y)
- lines.line10.To = Vector2.new(Top2.X, Top2.Y)
- lines.line11.From = Vector2.new(Bottom3.X, Bottom3.Y)
- lines.line11.To = Vector2.new(Top3.X, Top3.Y)
- lines.line12.From = Vector2.new(Bottom4.X, Bottom4.Y)
- lines.line12.To = Vector2.new(Top4.X, Top4.Y)
- --// Tracer:
- if Tracers then
- local trace = camera:WorldToViewportPoint((v.Character.HumanoidRootPart.CFrame * CFrame.new(0, -Size.Y, 0)).p)
- lines.Tracer.From = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y)
- lines.Tracer.To = Vector2.new(trace.X, trace.Y)
- end
- --// Teamcheck:
- if Team_Check then
- if v.TeamColor == player.TeamColor then
- for u, x in pairs(lines) do
- x.Color = green
- end
- else
- for u, x in pairs(lines) do
- x.Color = red
- end
- end
- end
- --// Autothickness:
- if Autothickness then
- local distance = (player.Character.HumanoidRootPart.Position - v.Character.HumanoidRootPart.Position).magnitude
- local value = math.clamp(1/distance*100, 0.1, 4) --0.1 is min thickness, 6 is max
- for u, x in pairs(lines) do
- x.Thickness = value
- end
- else
- for u, x in pairs(lines) do
- x.Thickness = Box_Thickness
- end
- end
- for u, x in pairs(lines) do
- if x ~= lines.Tracer then
- x.Visible = true
- end
- end
- if Tracers then
- lines.Tracer.Visible = true
- end
- else
- for u, x in pairs(lines) do
- x.Visible = false
- end
- end
- else
- for u, x in pairs(lines) do
- x.Visible = false
- end
- if game.Players:FindFirstChild(v.Name) == nil then
- connection:Disconnect()
- end
- end
- end)
- end
- coroutine.wrap(ESP)()
- end
- game.Players.PlayerAdded:Connect(function(newplr)
- --// Lines for 3D box (12)
- local lines = {
- line1 = NewLine(),
- line2 = NewLine(),
- line3 = NewLine(),
- line4 = NewLine(),
- line5 = NewLine(),
- line6 = NewLine(),
- line7 = NewLine(),
- line8 = NewLine(),
- line9 = NewLine(),
- line10 = NewLine(),
- line11 = NewLine(),
- line12 = NewLine(),
- Tracer = NewLine()
- }
- lines.Tracer.Color = Tracer_Color
- lines.Tracer.Thickness = Tracer_Thickness
- lines.Tracer.Transparency = Tracer_Transparency
- --// Updates ESP (lines) in render loop
- local function ESP()
- local connection
- connection = game:GetService("RunService").RenderStepped:Connect(function()
- if on and newplr.Character ~= nil and newplr.Character:FindFirstChild("Humanoid") ~= nil and newplr.Character:FindFirstChild("HumanoidRootPart") ~= nil and newplr.Name ~= player.Name and newplr.Character.Humanoid.Health > 0 and newplr.Character:FindFirstChild("Head") ~= nil then
- local pos, vis = camera:WorldToViewportPoint(newplr.Character.HumanoidRootPart.Position)
- if vis then
- local Scale = newplr.Character.Head.Size.Y/2
- local Size = Vector3.new(2, 3, 1.5) * (Scale * 2) -- Change this for different box size
- local Top1 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, Size.Y, -Size.Z)).p)
- local Top2 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, Size.Y, Size.Z)).p)
- local Top3 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, Size.Y, Size.Z)).p)
- local Top4 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, Size.Y, -Size.Z)).p)
- local Bottom1 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, -Size.Y, -Size.Z)).p)
- local Bottom2 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, -Size.Y, Size.Z)).p)
- local Bottom3 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, -Size.Y, Size.Z)).p)
- local Bottom4 = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, -Size.Y, -Size.Z)).p)
- --// Top:
- lines.line1.From = Vector2.new(Top1.X, Top1.Y)
- lines.line1.To = Vector2.new(Top2.X, Top2.Y)
- lines.line2.From = Vector2.new(Top2.X, Top2.Y)
- lines.line2.To = Vector2.new(Top3.X, Top3.Y)
- lines.line3.From = Vector2.new(Top3.X, Top3.Y)
- lines.line3.To = Vector2.new(Top4.X, Top4.Y)
- lines.line4.From = Vector2.new(Top4.X, Top4.Y)
- lines.line4.To = Vector2.new(Top1.X, Top1.Y)
- --// Bottom:
- lines.line5.From = Vector2.new(Bottom1.X, Bottom1.Y)
- lines.line5.To = Vector2.new(Bottom2.X, Bottom2.Y)
- lines.line6.From = Vector2.new(Bottom2.X, Bottom2.Y)
- lines.line6.To = Vector2.new(Bottom3.X, Bottom3.Y)
- lines.line7.From = Vector2.new(Bottom3.X, Bottom3.Y)
- lines.line7.To = Vector2.new(Bottom4.X, Bottom4.Y)
- lines.line8.From = Vector2.new(Bottom4.X, Bottom4.Y)
- lines.line8.To = Vector2.new(Bottom1.X, Bottom1.Y)
- --//S ides:
- lines.line9.From = Vector2.new(Bottom1.X, Bottom1.Y)
- lines.line9.To = Vector2.new(Top1.X, Top1.Y)
- lines.line10.From = Vector2.new(Bottom2.X, Bottom2.Y)
- lines.line10.To = Vector2.new(Top2.X, Top2.Y)
- lines.line11.From = Vector2.new(Bottom3.X, Bottom3.Y)
- lines.line11.To = Vector2.new(Top3.X, Top3.Y)
- lines.line12.From = Vector2.new(Bottom4.X, Bottom4.Y)
- lines.line12.To = Vector2.new(Top4.X, Top4.Y)
- --// Tracer:
- if Tracers then
- local trace = camera:WorldToViewportPoint((newplr.Character.HumanoidRootPart.CFrame * CFrame.new(0, -Size.Y, 0)).p)
- lines.Tracer.From = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y)
- lines.Tracer.To = Vector2.new(trace.X, trace.Y)
- end
- --// Teamcheck:
- if Team_Check then
- if newplr.TeamColor == player.TeamColor then
- for u, x in pairs(lines) do
- x.Color = green
- end
- else
- for u, x in pairs(lines) do
- x.Color = red
- end
- end
- end
- --// Autothickness:
- if Autothickness then
- local distance = (player.Character.HumanoidRootPart.Position - newplr.Character.HumanoidRootPart.Position).magnitude
- local value = math.clamp(1/distance*100, 0.1, 4) --0.1 is min thickness, 6 is max
- for u, x in pairs(lines) do
- x.Thickness = value
- end
- else
- for u, x in pairs(lines) do
- x.Thickness = Box_Thickness
- end
- end
- for u, x in pairs(lines) do
- if x ~= lines.Tracer then
- x.Visible = true
- end
- end
- if Tracers then
- lines.Tracer.Visible = true
- end
- else
- for u, x in pairs(lines) do
- x.Visible = false
- end
- end
- else
- for u, x in pairs(lines) do
- x.Visible = false
- end
- if game.Players:FindFirstChild(newplr.Name) == nil then
- connection:Disconnect()
- end
- end
- end)
- end
- coroutine.wrap(ESP)()
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement