Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local drawing = {}
- function drawing:AttachToPlayer(playerInstance)
- local r15parts = {"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "LeftUpperArm", "RightLowerArm", "LeftLowerArm", "RightLowerLeg", "LeftLowerLeg", "RightUpperLeg", "LeftUpperLeg", "RightHand", "LeftHand", "RightFoot", "LeftFoot"}
- local r6parts = {"Head", "Torso", "Right Arm", "Right Leg", "Left Arm", "Left Leg"}
- local sides = {"Front", "Back", "Bottom", "Left", "Right", "Top"}
- local player = playerInstance
- local character = player.Character
- local LP = game.Players.LocalPlayer
- local playerFolder = Instance.new("Folder")
- playerFolder.Name = player.Name
- playerFolder.Parent = LP.PlayerGui
- local visualsFolder = Instance.new("Folder")
- visualsFolder.Name = "Visuals"
- visualsFolder.Parent = playerFolder
- local globalsFolder = Instance.new("Folder")
- globalsFolder.Name = "Globals"
- globalsFolder.Parent = playerFolder
- if character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
- for i,v in pairs(r15parts) do
- local partFolder = Instance.new("Folder")
- partFolder.Name = v
- partFolder.Parent = visualsFolder
- for i2,v2 in pairs(sides) do
- local surfaceGui = Instance.new("SurfaceGui")
- surfaceGui.AlwaysOnTop = true
- surfaceGui.LightInfluence = 0
- surfaceGui.Face = Enum.NormalId[v2]
- surfaceGui.Name = v2
- surfaceGui.ClipsDescendants = false
- surfaceGui.Adornee = character[v]
- surfaceGui.Parent = partFolder
- local drawingFrame = Instance.new("Frame")
- drawingFrame.Name = "ESPMain"
- drawingFrame.BackgroundTransparency = 1
- drawingFrame.Size = UDim2.new(1,0,1,0)
- drawingFrame.Position = UDim2.new(0,0,0,0)
- drawingFrame.Visible = true
- drawingFrame.ZIndex = 1
- drawingFrame.ClipsDescendants = false
- drawingFrame.Parent = surfaceGui
- end
- end
- else
- for i,v in pairs(r6parts) do
- local partFolder = Instance.new("Folder")
- partFolder.Name = v
- partFolder.Parent = visualsFolder
- for i2,v2 in pairs(sides) do
- local surfaceGui = Instance.new("SurfaceGui")
- surfaceGui.AlwaysOnTop = true
- surfaceGui.LightInfluence = 0
- surfaceGui.Face = Enum.NormalId[v2]
- surfaceGui.Name = v2
- surfaceGui.ClipsDescendants = false
- surfaceGui.Adornee = character[v]
- surfaceGui.Parent = partFolder
- local drawingFrame = Instance.new("Frame")
- drawingFrame.Name = "ESPMain"
- drawingFrame.BackgroundTransparency = 1
- drawingFrame.Size = UDim2.new(1,0,1,0)
- drawingFrame.Position = UDim2.new(0,0,0,0)
- drawingFrame.Visible = true
- drawingFrame.ZIndex = 1
- drawingFrame.ClipsDescendants = false
- drawingFrame.Parent = surfaceGui
- end
- end
- end
- local showName = false
- local nameFolder = Instance.new("Folder")
- nameFolder.Name = "Name"
- nameFolder.Parent = globalsFolder
- local nameGui = Instance.new("BillboardGui")
- nameGui.AlwaysOnTop = true
- nameGui.Enabled = showName
- nameGui.Size = UDim2.new(3, 0, 0.5, 0)
- nameGui.StudsOffset = Vector3.new(0, 1, 0)
- nameGui.Adornee = character.Head
- nameGui.Parent = nameFolder
- local nameFrame = Instance.new("Frame")
- nameFrame.Size = UDim2.new(1, 0, 1, 0)
- nameFrame.BackgroundTransparency = 1
- nameFrame.Parent = nameGui
- local nameStatus = Instance.new("ImageLabel")
- nameStatus.Size = UDim2.new(0, 16, 0, 16)
- nameStatus.Position = UDim2.new(0.5, -8, 0.5, 0)
- nameStatus.BackgroundTransparency = 1
- nameStatus.Image = "http://www.roblox.com/asset/?id=71659683"
- nameStatus.ImageColor3 = Color3.fromRGB(255, 0, 0)
- nameStatus.Rotation = 90
- nameStatus.Parent = nameFrame
- local nameLabel = Instance.new("TextLabel")
- nameLabel.BackgroundTransparency = 1
- nameLabel.Size = UDim2.new(1, 0, 0.5, 0)
- nameLabel.Font = Enum.Font.SourceSansBold
- nameLabel.Text = player.Name
- nameLabel.TextSize = 20
- nameLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
- nameLabel.Parent = nameFrame
- local optionsLib = {}
- function optionsLib:ToggleName()
- showName = not showName
- nameGui.Enabled = showName
- end
- function optionsLib:DrawOutline(part, side, pixels, colour)
- local targetPart = visualsFolder[part][side]
- local mainFrame = targetPart.ESPMain
- for i = 1, 4 do
- if i == 1 or i == 4 then
- local scaleX = (math.sqrt(i) - 1)
- local frame = Instance.new("Frame")
- frame.Size = UDim2.new(0, pixels, 1, 0)
- frame.BackgroundColor3 = colour
- frame.BorderSizePixel = 0
- frame.Position = UDim2.new(scaleX, scaleX * -pixels, 0, 0)
- frame.Parent = mainFrame
- else
- local scaleY = (i - 2)
- local frame = Instance.new("Frame")
- frame.Size = UDim2.new(1, 0, 0, pixels)
- frame.BackgroundColor3 = colour
- frame.BorderSizePixel = 0
- frame.Position = UDim2.new(0, 0, scaleY, scaleY * -pixels)
- frame.Parent = mainFrame
- end
- end
- end
- function optionsLib:DrawFilledRect(part, side, colour)
- local targetPart = visualsFolder[part][side]
- local mainFrame = targetPart.ESPMain
- local frame = Instance.new("Frame")
- frame.Size = UDim2.new(1, 0, 1, 0)
- frame.BackgroundColor3 = colour
- frame.BorderSizePixel = 0
- frame.Position = UDim2.new(0, 0, 0, 0)
- frame.Parent = mainFrame
- end
- function optionsLib:DrawFilled3DRect(part, colour)
- local targetPart = visualsFolder[part]
- for i,v in pairs(targetPart:GetChildren()) do
- optionsLib:DrawFilledRect(part, v.Name, colour)
- end
- end
- function optionsLib:Draw3DRect(part, pixels, colour)
- local targetPart = visualsFolder[part]
- for i,v in pairs(targetPart:GetChildren()) do
- optionsLib:DrawOutline(part, v.Name, pixels, colour)
- end
- end
- function optionsLib:MapFilled3D(colour)
- for i,v in pairs(visualsFolder:GetChildren()) do
- optionsLib:DrawFilled3DRect(v.Name, colour)
- end
- end
- function optionsLib:Map3D(pixels, colour)
- for i,v in pairs(visualsFolder:GetChildren()) do
- optionsLib:Draw3DRect(v.Name, pixels, colour)
- end
- end
- function optionsLib:RemoveESP()
- visualsFolder:Destroy()
- end
- return optionsLib
- end
- return drawing
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement