Advertisement
XZTablets

ESP API Version 2

Apr 6th, 2020
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.98 KB | None | 0 0
  1. local drawing = {}
  2.  
  3. function drawing:AttachToPlayer(playerInstance)
  4.     local r15parts = {"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "LeftUpperArm", "RightLowerArm", "LeftLowerArm", "RightLowerLeg", "LeftLowerLeg", "RightUpperLeg", "LeftUpperLeg", "RightHand", "LeftHand", "RightFoot", "LeftFoot"}
  5.     local r6parts = {"Head", "Torso", "Right Arm", "Right Leg", "Left Arm", "Left Leg"}
  6.     local sides = {"Front", "Back", "Bottom", "Left", "Right", "Top"}
  7.     local player = playerInstance
  8.     local character = player.Character
  9.     local LP = game.Players.LocalPlayer
  10.    
  11.     local playerFolder = Instance.new("Folder")
  12.     playerFolder.Name = player.Name
  13.     playerFolder.Parent = LP.PlayerGui
  14.    
  15.     local visualsFolder = Instance.new("Folder")
  16.     visualsFolder.Name = "Visuals"
  17.     visualsFolder.Parent = playerFolder
  18.    
  19.     local globalsFolder = Instance.new("Folder")
  20.     globalsFolder.Name = "Globals"
  21.     globalsFolder.Parent = playerFolder
  22.    
  23.     if character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
  24.         for i,v in pairs(r15parts) do
  25.             local partFolder = Instance.new("Folder")
  26.             partFolder.Name = v
  27.             partFolder.Parent = visualsFolder
  28.        
  29.             for i2,v2 in pairs(sides) do
  30.                 local surfaceGui = Instance.new("SurfaceGui")
  31.                 surfaceGui.AlwaysOnTop = true
  32.                 surfaceGui.LightInfluence = 0
  33.                 surfaceGui.Face = Enum.NormalId[v2]
  34.                 surfaceGui.Name = v2
  35.                 surfaceGui.ClipsDescendants = false
  36.                 surfaceGui.Adornee = character[v]
  37.                 surfaceGui.Parent = partFolder
  38.            
  39.                 local drawingFrame = Instance.new("Frame")
  40.                 drawingFrame.Name = "ESPMain"
  41.                 drawingFrame.BackgroundTransparency = 1
  42.                 drawingFrame.Size = UDim2.new(1,0,1,0)
  43.                 drawingFrame.Position = UDim2.new(0,0,0,0)
  44.                 drawingFrame.Visible = true
  45.                 drawingFrame.ZIndex = 1
  46.                 drawingFrame.ClipsDescendants = false
  47.                 drawingFrame.Parent = surfaceGui
  48.             end
  49.         end
  50.     else
  51.         for i,v in pairs(r6parts) do
  52.             local partFolder = Instance.new("Folder")
  53.             partFolder.Name = v
  54.             partFolder.Parent = visualsFolder
  55.        
  56.             for i2,v2 in pairs(sides) do
  57.                 local surfaceGui = Instance.new("SurfaceGui")
  58.                 surfaceGui.AlwaysOnTop = true
  59.                 surfaceGui.LightInfluence = 0
  60.                 surfaceGui.Face = Enum.NormalId[v2]
  61.                 surfaceGui.Name = v2
  62.                 surfaceGui.ClipsDescendants = false
  63.                 surfaceGui.Adornee = character[v]
  64.                 surfaceGui.Parent = partFolder
  65.            
  66.                 local drawingFrame = Instance.new("Frame")
  67.                 drawingFrame.Name = "ESPMain"
  68.                 drawingFrame.BackgroundTransparency = 1
  69.                 drawingFrame.Size = UDim2.new(1,0,1,0)
  70.                 drawingFrame.Position = UDim2.new(0,0,0,0)
  71.                 drawingFrame.Visible = true
  72.                 drawingFrame.ZIndex = 1
  73.                 drawingFrame.ClipsDescendants = false
  74.                 drawingFrame.Parent = surfaceGui
  75.             end
  76.         end
  77.     end
  78.    
  79.     local showName = false
  80.    
  81.     local nameFolder = Instance.new("Folder")
  82.     nameFolder.Name = "Name"
  83.     nameFolder.Parent = globalsFolder
  84.    
  85.     local nameGui = Instance.new("BillboardGui")
  86.     nameGui.AlwaysOnTop = true
  87.     nameGui.Enabled = showName
  88.     nameGui.Size = UDim2.new(3, 0, 0.5, 0)
  89.     nameGui.StudsOffset = Vector3.new(0, 1, 0)
  90.     nameGui.Adornee = character.Head
  91.     nameGui.Parent = nameFolder
  92.    
  93.     local nameFrame = Instance.new("Frame")
  94.     nameFrame.Size = UDim2.new(1, 0, 1, 0)
  95.     nameFrame.BackgroundTransparency = 1
  96.     nameFrame.Parent = nameGui
  97.    
  98.     local nameStatus = Instance.new("ImageLabel")
  99.     nameStatus.Size = UDim2.new(0, 16, 0, 16)
  100.     nameStatus.Position = UDim2.new(0.5, -8, 0.5, 0)
  101.     nameStatus.BackgroundTransparency = 1
  102.     nameStatus.Image = "http://www.roblox.com/asset/?id=71659683"
  103.     nameStatus.ImageColor3 = Color3.fromRGB(255, 0, 0)
  104.     nameStatus.Rotation = 90
  105.     nameStatus.Parent = nameFrame
  106.    
  107.     local nameLabel = Instance.new("TextLabel")
  108.     nameLabel.BackgroundTransparency = 1
  109.     nameLabel.Size = UDim2.new(1, 0, 0.5, 0)
  110.     nameLabel.Font = Enum.Font.SourceSansBold
  111.     nameLabel.Text = player.Name
  112.     nameLabel.TextSize = 20
  113.     nameLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
  114.     nameLabel.Parent = nameFrame
  115.    
  116.     local optionsLib = {}
  117.    
  118.     function optionsLib:ToggleName()
  119.         showName = not showName
  120.         nameGui.Enabled = showName
  121.     end
  122.        
  123.     function optionsLib:DrawOutline(part, side, pixels, colour)
  124.         local targetPart = visualsFolder[part][side]
  125.         local mainFrame = targetPart.ESPMain
  126.         for i = 1, 4 do
  127.             if i == 1 or i == 4 then
  128.                 local scaleX = (math.sqrt(i) - 1)
  129.                 local frame = Instance.new("Frame")
  130.                 frame.Size = UDim2.new(0, pixels, 1, 0)
  131.                 frame.BackgroundColor3 = colour
  132.                 frame.BorderSizePixel = 0
  133.                 frame.Position = UDim2.new(scaleX, scaleX * -pixels, 0, 0)
  134.                 frame.Parent = mainFrame
  135.             else
  136.                 local scaleY = (i - 2)
  137.                 local frame = Instance.new("Frame")
  138.                 frame.Size = UDim2.new(1, 0, 0, pixels)
  139.                 frame.BackgroundColor3 = colour
  140.                 frame.BorderSizePixel = 0
  141.                 frame.Position = UDim2.new(0, 0, scaleY, scaleY * -pixels)
  142.                 frame.Parent = mainFrame
  143.             end
  144.         end
  145.     end
  146.    
  147.     function optionsLib:DrawFilledRect(part, side, colour)
  148.         local targetPart = visualsFolder[part][side]
  149.         local mainFrame = targetPart.ESPMain
  150.         local frame = Instance.new("Frame")
  151.         frame.Size = UDim2.new(1, 0, 1, 0)
  152.         frame.BackgroundColor3 = colour
  153.         frame.BorderSizePixel = 0
  154.         frame.Position = UDim2.new(0, 0, 0, 0)
  155.         frame.Parent = mainFrame
  156.     end
  157.    
  158.     function optionsLib:DrawFilled3DRect(part, colour)
  159.         local targetPart = visualsFolder[part]
  160.         for i,v in pairs(targetPart:GetChildren()) do
  161.             optionsLib:DrawFilledRect(part, v.Name, colour)
  162.         end
  163.     end
  164.    
  165.     function optionsLib:Draw3DRect(part, pixels, colour)
  166.         local targetPart = visualsFolder[part]
  167.         for i,v in pairs(targetPart:GetChildren()) do
  168.             optionsLib:DrawOutline(part, v.Name, pixels, colour)
  169.         end
  170.     end
  171.    
  172.     function optionsLib:MapFilled3D(colour)
  173.         for i,v in pairs(visualsFolder:GetChildren()) do
  174.             optionsLib:DrawFilled3DRect(v.Name, colour)
  175.         end
  176.     end
  177.    
  178.     function optionsLib:Map3D(pixels, colour)
  179.         for i,v in pairs(visualsFolder:GetChildren()) do
  180.             optionsLib:Draw3DRect(v.Name, pixels, colour)
  181.         end
  182.     end
  183.    
  184.     function optionsLib:RemoveESP()
  185.         visualsFolder:Destroy()
  186.     end
  187.        
  188.     return optionsLib
  189. end
  190.  
  191. return drawing
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement