Xfer1111

Kat Aimbot

Dec 3rd, 2020 (edited)
886
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Script not owned by me, credits to the original owners
  2. -- Xfer was here (T.V.K)
  3. -- Left Alt is ESP - Ctrl (Hold) is aimbot - "Q" is to switch [Head or Torso]
  4.  
  5. PLAYER  = game.Players.LocalPlayer
  6. MOUSE   = PLAYER:GetMouse()
  7. CC      = game.Workspace.CurrentCamera
  8.  
  9. ENABLED      = false
  10. ESP_ENABLED  = false
  11.  
  12. _G.FREE_FOR_ALL = true
  13.  
  14. _G.BIND        = 50
  15. _G.ESP_BIND    = 52
  16. _G.CHANGE_AIM  = 'q'
  17.  
  18. _G.AIM_AT = 'Head'
  19.  
  20. wait(1)
  21.  
  22. function GetNearestPlayerToMouse()
  23.     local PLAYERS      = {}
  24.     local PLAYER_HOLD  = {}
  25.     local DISTANCES    = {}
  26.     for i, v in pairs(game.Players:GetPlayers()) do
  27.         if v ~= PLAYER then
  28.             table.insert(PLAYERS, v)
  29.         end
  30.     end
  31.     for i, v in pairs(PLAYERS) do
  32.         if _G.FREE_FOR_ALL == false then
  33.             if v and (v.Character) ~= nil and v.TeamColor ~= PLAYER.TeamColor then
  34.                 local AIM = v.Character:FindFirstChild(_G.AIM_AT)
  35.                 if AIM ~= nil then
  36.                     local DISTANCE                 = (AIM.Position - game.Workspace.CurrentCamera.CoordinateFrame.p).magnitude
  37.                     local RAY                      = Ray.new(game.Workspace.CurrentCamera.CoordinateFrame.p, (MOUSE.Hit.p - CC.CoordinateFrame.p).unit * DISTANCE)
  38.                     local HIT,POS                  = game.Workspace:FindPartOnRay(RAY, game.Workspace)
  39.                     local DIFF                     = math.floor((POS - AIM.Position).magnitude)
  40.                     PLAYER_HOLD[v.Name .. i]       = {}
  41.                     PLAYER_HOLD[v.Name .. i].dist  = DISTANCE
  42.                     PLAYER_HOLD[v.Name .. i].plr   = v
  43.                     PLAYER_HOLD[v.Name .. i].diff  = DIFF
  44.                     table.insert(DISTANCES, DIFF)
  45.                 end
  46.             end
  47.         elseif _G.FREE_FOR_ALL == true then
  48.             local AIM = v.Character:FindFirstChild(_G.AIM_AT)
  49.             if AIM ~= nil then
  50.                 local DISTANCE                 = (AIM.Position - game.Workspace.CurrentCamera.CoordinateFrame.p).magnitude
  51.                 local RAY                      = Ray.new(game.Workspace.CurrentCamera.CoordinateFrame.p, (MOUSE.Hit.p - CC.CoordinateFrame.p).unit * DISTANCE)
  52.                 local HIT,POS                  = game.Workspace:FindPartOnRay(RAY, game.Workspace)
  53.                 local DIFF                     = math.floor((POS - AIM.Position).magnitude)
  54.                 PLAYER_HOLD[v.Name .. i]       = {}
  55.                 PLAYER_HOLD[v.Name .. i].dist  = DISTANCE
  56.                 PLAYER_HOLD[v.Name .. i].plr   = v
  57.                 PLAYER_HOLD[v.Name .. i].diff  = DIFF
  58.                 table.insert(DISTANCES, DIFF)
  59.             end
  60.         end
  61.     end
  62.  
  63.     if unpack(DISTANCES) == nil then
  64.         return false
  65.     end
  66.  
  67.     local L_DISTANCE = math.floor(math.min(unpack(DISTANCES)))
  68.     if L_DISTANCE > 20 then
  69.         return false
  70.     end
  71.  
  72.     for i, v in pairs(PLAYER_HOLD) do
  73.         if v.diff == L_DISTANCE then
  74.             return v.plr
  75.         end
  76.     end
  77.     return false
  78. end
  79.  
  80. GUI_MAIN                           = Instance.new('ScreenGui', game.CoreGui)
  81. GUI_TARGET                         = Instance.new('TextLabel', GUI_MAIN)
  82. GUI_AIM_AT                         = Instance.new('TextLabel', GUI_MAIN)
  83.  
  84. GUI_MAIN.Name                      = 'AIMBOT'
  85.  
  86. GUI_TARGET.Size                    = UDim2.new(0,200,0,30)
  87. GUI_TARGET.BackgroundTransparency  = 0.5
  88. GUI_TARGET.BackgroundColor         = BrickColor.new('Fossil')
  89. GUI_TARGET.BorderSizePixel         = 0
  90. GUI_TARGET.Position                = UDim2.new(0.5,-100,0,0)
  91. GUI_TARGET.Text                    = 'AIMBOT : OFF'
  92. GUI_TARGET.TextColor3              = Color3.new(1,1,1)
  93. GUI_TARGET.TextStrokeTransparency  = 1
  94. GUI_TARGET.TextWrapped             = true
  95. GUI_TARGET.FontSize                = 'Size24'
  96. GUI_TARGET.Font                    = 'SourceSansBold'
  97.  
  98. GUI_AIM_AT.Size                    = UDim2.new(0,200,0,20)
  99. GUI_AIM_AT.BackgroundTransparency  = 0.5
  100. GUI_AIM_AT.BackgroundColor         = BrickColor.new('Fossil')
  101. GUI_AIM_AT.BorderSizePixel         = 0
  102. GUI_AIM_AT.Position                = UDim2.new(0.5,-100,0,30)
  103. GUI_AIM_AT.Text                    = 'AIMING : HEAD'
  104. GUI_AIM_AT.TextColor3              = Color3.new(1,1,1)
  105. GUI_AIM_AT.TextStrokeTransparency  = 1
  106. GUI_AIM_AT.TextWrapped             = true
  107. GUI_AIM_AT.FontSize                = 'Size18'
  108. GUI_AIM_AT.Font                    = 'SourceSansBold'
  109.  
  110. local TRACK = false
  111.  
  112. function CREATE(BASE, TEAM)
  113.     local ESP_MAIN                   = Instance.new('BillboardGui', PLAYER.PlayerGui)
  114.     local ESP_DOT                    = Instance.new('Frame', ESP_MAIN)
  115.     local ESP_NAME                   = Instance.new('TextLabel', ESP_MAIN)
  116.  
  117.     ESP_MAIN.Name                    = 'ESP'
  118.     ESP_MAIN.Adornee                 = BASE
  119.     ESP_MAIN.AlwaysOnTop             = true
  120.     ESP_MAIN.ExtentsOffset           = Vector3.new(0, 1, 0)
  121.     ESP_MAIN.Size                    = UDim2.new(0, 5, 0, 5)
  122.  
  123.     ESP_DOT.Name                     = 'DOT'
  124.     ESP_DOT.BackgroundColor          = BrickColor.new('Bright red')
  125.     ESP_DOT.BackgroundTransparency   = 0.3
  126.     ESP_DOT.BorderSizePixel          = 0
  127.     ESP_DOT.Position                 = UDim2.new(-0.5, 0, -0.5, 0)
  128.     ESP_DOT.Size                     = UDim2.new(2, 0, 2, 0)
  129.     ESP_DOT.Visible                  = true
  130.     ESP_DOT.ZIndex                   = 10
  131.  
  132.     ESP_NAME.Name                    = 'NAME'
  133.     ESP_NAME.BackgroundColor3        = Color3.new(255, 255, 255)
  134.     ESP_NAME.BackgroundTransparency  = 1
  135.     ESP_NAME.BorderSizePixel         = 0
  136.     ESP_NAME.Position                = UDim2.new(0, 0, 0, -40)
  137.     ESP_NAME.Size                    = UDim2.new(1, 0, 10, 0)
  138.     ESP_NAME.Visible                 = true
  139.     ESP_NAME.ZIndex                  = 10
  140.     ESP_NAME.Font                    = 'ArialBold'
  141.     ESP_NAME.FontSize                = 'Size14'
  142.     ESP_NAME.Text                    = BASE.Parent.Name:upper()
  143.     ESP_NAME.TextColor               = BrickColor.new('Bright red')
  144. end
  145.  
  146. function CLEAR()
  147.     for _,v in pairs(PLAYER.PlayerGui:children()) do
  148.         if v.Name == 'ESP' and v:IsA('BillboardGui') then
  149.             v:Destroy()
  150.         end
  151.     end
  152. end
  153.  
  154. function FIND()
  155.     CLEAR()
  156.     TRACK = true
  157.     spawn(function()
  158.         while wait() do
  159.             if TRACK then
  160.                 CLEAR()
  161.                 for i,v in pairs(game.Players:GetChildren()) do
  162.                     if v.Character and v.Character:FindFirstChild('Head') then
  163.                         if _G.FREE_FOR_ALL == false then
  164.                             if v.TeamColor ~= PLAYER.TeamColor then
  165.                                 if v.Character:FindFirstChild('Head') then
  166.                                     CREATE(v.Character.Head, true)
  167.                                 end
  168.                             end
  169.                         else
  170.                             if v.Character:FindFirstChild('Head') then
  171.                                 CREATE(v.Character.Head, true)
  172.                             end
  173.                         end
  174.                     end
  175.                 end
  176.             end
  177.         end
  178.         wait(1)
  179.     end)
  180. end
  181.  
  182. MOUSE.KeyDown:connect(function(KEY)
  183.     KEY = KEY:lower():byte()
  184.     if KEY == _G.BIND then
  185.         ENABLED = true
  186.     end
  187. end)
  188.  
  189. MOUSE.KeyUp:connect(function(KEY)
  190.     KEY = KEY:lower():byte()
  191.     if KEY == _G.BIND then
  192.         ENABLED = false
  193.     end
  194. end)
  195.  
  196. MOUSE.KeyDown:connect(function(KEY)
  197.     KEY = KEY:lower():byte()
  198.     if KEY == _G.ESP_BIND then
  199.         if ESP_ENABLED == false then
  200.             FIND()
  201.             ESP_ENABLED = true
  202.             print('ESP : ON')
  203.         elseif ESP_ENABLED == true then
  204.             wait()
  205.             CLEAR()
  206.             TRACK = false
  207.             ESP_ENABLED = true
  208.             print('ESP : OFF')
  209.         end
  210.     end
  211. end)
  212.  
  213. MOUSE.KeyDown:connect(function(KEY)
  214.     if KEY == _G.CHANGE_AIM then
  215.         if _G.AIM_AT == 'Head' then
  216.             _G.AIM_AT = 'Torso'
  217.             GUI_AIM_AT.Text = 'AIMING : TORSO'
  218.         elseif _G.AIM_AT == 'Torso' then
  219.             _G.AIM_AT = 'Head'
  220.             GUI_AIM_AT.Text = 'AIMING : HEAD'
  221.         end
  222.     end
  223. end)
  224.  
  225. game:GetService('RunService').RenderStepped:connect(function()
  226.     if ENABLED then
  227.         local TARGET = GetNearestPlayerToMouse()
  228.         if (TARGET ~= false) then
  229.             local AIM = TARGET.Character:FindFirstChild(_G.AIM_AT)
  230.             if AIM then
  231.                 CC.CoordinateFrame = CFrame.new(CC.CoordinateFrame.p, AIM.CFrame.p)
  232.             end
  233.             GUI_TARGET.Text = 'AIMBOT : '.. TARGET.Name:sub(1, 5)
  234.         else
  235.             GUI_TARGET.Text = 'AIMBOT : OFF'
  236.         end
  237.     end
  238. end)
  239.  
  240. repeat
  241.     wait()
  242.     if ESP_ENABLED == true then
  243.         FIND()
  244.     end
  245. until ESP_ENABLED == false
  246. wait()
  247. _G.FREE_FOR_ALL = true
  248. _G.BIND = 50 -- LEFT CTRL
  249. _G.ESP_BIND = 52 -- LEFT ALT
RAW Paste Data