Phantom-Vakz

Phantom Forces Hacks.

Jun 27th, 2019
3,639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --I posted this on a guest account because i forgot to login--.--Now its on this account--.--This may have been posted before, im not sure--
  2. --if not getgenv().MTAPIMutex then loadstring(game:HttpGet("https://pastebin.com/raw/UwFCVrhS", true))() end
  3.  
  4. local pr=print;
  5.  
  6. print=function(...)
  7.     local args={...}
  8.     local printStr=''
  9.     for i,v in next, args do
  10.         if(v==nil)then v='nil' end
  11.         printStr=printStr.. tostring(v) ..'\n'
  12.     end
  13.     pr(printStr)
  14. end
  15. script.Name = "Base_Script"
  16.  
  17. local ps = game:GetService("Players")
  18. local i = game:GetService("UserInputService")
  19. local r = game:GetService("RunService")
  20. local cg = game:GetService("CoreGui")
  21. local sg = game:GetService("StarterGui")
  22. local ts = game:GetService("TweenService")
  23. local rs = game:GetService("ReplicatedStorage")
  24. local sc = game:GetService("ScriptContext")
  25. local http = game:GetService("HttpService")
  26. local light = game:GetService("Lighting")
  27. local pathservice = game:GetService("PathfindingService")
  28. local p = ps.LocalPlayer
  29. local c = p.Character
  30. local mo = p:GetMouse()
  31. local b = p:FindFirstChild("Backpack") or p:WaitForChild("Backpack")
  32. local g = p:FindFirstChild("PlayerGui") or p:WaitForChild("PlayerGui")
  33. local ca = workspace.CurrentCamera
  34.  
  35. local loadtime = tick()
  36. local hint = Instance.new("Hint", cg)
  37. hint.Text = "Initializing... Please wait... (This can take up to 30 seconds!)"
  38.  
  39. local getupval = debug.getupvalue or getupvalue
  40. local getupvals = debug.getupvalues or getupvalues
  41. local getreg = debug.getregistry or getregistry or getreg
  42. local setupval = debug.setupvalue or setupvalue
  43. local getlocalval = debug.getlocal or getlocal
  44. local getlocalvals = debug.getlocals or getlocals
  45. local setlocalval = debug.setlocal or setlocal
  46. local getmetat = getrawmetatable
  47. local setreadonly1 = make_writeable or setreadonly
  48. local copy = setclipboard or clipboard.set or copystring
  49.  
  50. --print(getupval, getupvals, getreg, setupval, getlocalval, getlocalvals, setlocalval, getmetat, setreadonly1)
  51. if getupval == nil or getupvals == nil or getreg == nil or setupval == nil or setreadonly1 == nil or getrenv == nil then
  52.     hint.Text = "Unfortunately the exploit you're using is not supported. :C"
  53.     wait(10)
  54.     hint:Destroy()
  55.     spawn(function()
  56.         pcall(function()
  57.             local m = getmetat(game)
  58.             setreadonly1(m, false)
  59.  
  60.             for i, v in next, m do
  61.                 m[i] = "pornhub.com"
  62.             end
  63.         end)
  64.     end)
  65.  
  66.     return
  67. end
  68.  
  69. local m = getmetat(game)
  70. setreadonly1(m, false)
  71.  
  72. local oldindex = m.__index
  73. local oldnewindex = m.__newindex
  74. local oldnamecall = m.__namecall
  75.  
  76. local functions = { }
  77. local main = { }
  78. local esp_stuff = { }
  79. local faggot_esp = { }
  80. local cham_stuff = { }
  81. local fullbright_stuff = { }
  82. local radar_esp = { }
  83. local developer_stuff = { }
  84. local gui = { }
  85. local loops = { }
  86. local client = { }
  87.  
  88. local version = "2.41"
  89. local messages_of_the_day = nil
  90. local blacklist = nil
  91. local admin_api = nil
  92.  
  93. do -- functions
  94.     functions = {
  95.         data = http:JSONDecode(game:HttpGet("https://raw.githubusercontent.com/iamcal/emoji-data/master/emoji.json"))
  96.     }
  97.  
  98.     -- IDK who the original creator of this is but credit to that dude
  99.     function functions.parseEmoji(emoji)
  100.         for _, v in next, functions.data do
  101.             if string.lower(emoji) == v["short_name"] then
  102.                 return utf8.char(tonumber(v["unified"], 16))
  103.             end
  104.         end
  105.     end
  106.  
  107.     function functions.split(self, sep)
  108.         local sep, fields = sep or ":", {}
  109.         local pattern = string.format("([^%s]+)", sep)
  110.         string.gsub(self, pattern, function(c) fields[#fields+1] = c end)
  111.         return fields
  112.     end
  113.  
  114.     function functions.detectEmoji(str)
  115.         for i = 1, #str do
  116.             if string.sub(str, i, i) == ":" then
  117.                 local substr = string.sub(str, i + 1, #str)
  118.                 local pos = string.find(substr, ":")
  119.                 if pos then
  120.                     return pos
  121.                 end
  122.             end
  123.         end
  124.  
  125.         return nil
  126.     end
  127.  
  128.     function functions.parseSemicolon(rawStr)
  129.         local tbl = functions.split(rawStr, " ")
  130.         local newtbl = { }
  131.  
  132.         for i, v in next, tbl do
  133.             local pos = functions.detectEmoji(v)
  134.             if pos then
  135.                 v = string.sub(v, 2, pos)
  136.                 v = functions.parseEmoji(v)
  137.             end
  138.             newtbl[i] = v
  139.         end
  140.  
  141.         return table.concat(newtbl, ' ')
  142.     end
  143.  
  144.     function functions:LoopRunning(name)
  145.         return loops[name].Running
  146.     end
  147.  
  148.     function functions:CreateLoop(name, func, waitt, ...)
  149.         if loops[name] ~= nil then return end
  150.  
  151.         loops[name] = { }
  152.         loops[name].Running = false
  153.         loops[name].Destroy = false
  154.         loops[name].Loop = coroutine.create(function(...)
  155.             while true do
  156.                 if loops[name].Running then
  157.                     func(...)
  158.                 end
  159.  
  160.                 if loops[name].Destroy then
  161.                     break
  162.                 end
  163.  
  164.                 if type(wait) == "userdata" then
  165.                     waitt:wait()
  166.                 else
  167.                     wait(waitt)
  168.                 end
  169.             end
  170.         end)
  171.     end
  172.  
  173.     function functions:RunLoop(name, func, waitt, ...)
  174.         if loops[name] == nil then
  175.             if func ~= nil then
  176.                 self:CreateLoop(name, func, waitt, ...)
  177.             end
  178.         end
  179.  
  180.         loops[name].Running = true
  181.         local succ, out = coroutine.resume(loops[name].Loop)
  182.         if not succ then
  183.             warn("Loop: " .. tostring(name) .. " ERROR: " .. tostring(out))
  184.         end
  185.     end
  186.  
  187.     function functions:StopLoop(name)
  188.         if loops[name] == nil then return end
  189.  
  190.         loops[name].Running = false
  191.     end
  192.  
  193.     function functions:DestroyLoop(name)
  194.         if loops[name] == nil then return end
  195.  
  196.         self:StopLoop(name)
  197.         loops[name].Destroy = true
  198.  
  199.         loops[name] = nil
  200.     end
  201.  
  202.     function functions:AddComma(str) -- stole from Mining Simulator :)
  203.         local f, k = str, nil
  204.         while true do
  205.             f, k = string.gsub(f, "^(-?%d+)(%d%d%d)", "%1,%2")
  206.             if k == 0 then
  207.                 break
  208.             end
  209.         end
  210.         return f
  211.     end
  212.  
  213.     function functions:deepcopy(orig) -- http://lua-users.org/wiki/CopyTable
  214.         local orig_type = type(orig)
  215.         local copy
  216.         if orig_type == 'table' then
  217.             copy = {}
  218.             for orig_key, orig_value in next, orig, nil do
  219.                 copy[functions:deepcopy(orig_key)] = functions:deepcopy(orig_value)
  220.             end
  221.             setmetatable(copy, functions:deepcopy(getmetatable(orig)))
  222.         else -- number, string, boolean, etc
  223.             copy = orig
  224.         end
  225.         return copy
  226.     end
  227.  
  228.     function functions:GetSizeOfObj(obj)
  229.         if obj:IsA("BasePart") then
  230.             return obj.Size
  231.         elseif obj:IsA("Model") then
  232.             return obj:GetExtentsSize()
  233.         end
  234.     end
  235.  
  236.     function functions:GetTeamColor(plr)
  237.         if p.Team == plr.Team then
  238.             return Color3.new(0, 1, 0)
  239.         end
  240.  
  241.         return Color3.new(1, 0, 0)
  242.     end
  243.  
  244.     function functions:GetClosestPlayer()
  245.         local players = { }
  246.         local current_closest_player = nil
  247.         local selected_player = nil
  248.  
  249.         for i, v in pairs(ps:GetPlayers()) do
  250.             if v ~= p and v.Team ~= p.Team then
  251.                 local char = v.Character
  252.                 if c and char then
  253.                     local my_head, my_tor, my_hum = c:FindFirstChild("Head"), c:FindFirstChild("HumanoidRootPart"), c:FindFirstChild("Humanoid")
  254.                     local their_head, their_tor, their_hum = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart"), char:FindFirstChild("Humanoid")
  255.                     if my_head and my_tor and my_hum and their_head and their_tor and their_hum then
  256.                         if my_hum.Health > 1 and their_hum.Health > 1 then
  257.                             --local ray = Ray.new(ca.CFrame.p, (their_head.Position - ca.CFrame.p).unit * 2048)
  258.                             --local part = workspace:FindPartOnRayWithIgnoreList(ray, {c, ca})
  259.                             --if part ~= nil then
  260.                                 --if part:IsDescendantOf(char) then
  261.                                     local dist = (mo.Hit.p - their_tor.Position).magnitude
  262.                                     players[v] = dist
  263.                                 --end
  264.                             --end
  265.                         end
  266.                     end
  267.                 end
  268.             end
  269.         end
  270.  
  271.         for i, v in next, players do
  272.             if current_closest_player ~= nil then
  273.                 if v <= current_closest_player then
  274.                     current_closest_player = v
  275.                     selected_player = i
  276.                 end
  277.             else
  278.                 current_closest_player = v
  279.                 selected_player = i
  280.             end
  281.         end
  282.  
  283.         return selected_player
  284.     end
  285.  
  286.     function functions:TypeWriter(label, speed)
  287.         local speed = speed or 2
  288.         local text = label.Text
  289.         label.Text = ""
  290.         spawn(function()
  291.             for i = 1, string.len(text) do
  292.                 if i % 2 == 0 then
  293.                     client.sound.play("ui_typeout", 0.2)
  294.                 end
  295.                 label.Text = string.sub(text, 1, speed * i)
  296.                 wait(0.016666666666666666)
  297.             end
  298.         end)
  299.     end
  300.  
  301.     function functions:ModifyAllVarsInTable(t, var, val)
  302.         for i, v in pairs(t) do
  303.             if i == var then
  304.                 t[i] = val
  305.             end
  306.  
  307.             if type(v) == "table" then
  308.                 functions:ModifyAllVarsInTable(t[i], var, val)
  309.             end
  310.         end
  311.     end
  312. end
  313.  
  314. do -- gui
  315.     gui = {
  316.         name = "Base",
  317.         gui_objs = {
  318.             main = nil,
  319.             mainframes = { },
  320.         }
  321.     }
  322.  
  323.     function gui:AddTextBox(mainframe, name, text)
  324.         self.gui_objs.mainframes[mainframe].buttons[name] = { }
  325.  
  326.         self.gui_objs.mainframes[mainframe].buttons[name].main = Instance.new("Frame")
  327.         self.gui_objs.mainframes[mainframe].buttons[name].main.BackgroundTransparency = 1
  328.         self.gui_objs.mainframes[mainframe].buttons[name].main.Name = name
  329.         self.gui_objs.mainframes[mainframe].buttons[name].main.Position = UDim2.new(0, 0, 0, 5 + self.gui_objs.mainframes[mainframe].buttonsnum)
  330.         self.gui_objs.mainframes[mainframe].buttons[name].main.Size = UDim2.new(1, 0, 0, 15)
  331.         self.gui_objs.mainframes[mainframe].buttons[name].main.Parent = self.gui_objs.mainframes[mainframe].buttonsframe
  332.  
  333.         self.gui_objs.mainframes[mainframe].buttons[name].textbox = Instance.new("TextBox")
  334.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.BackgroundColor3 = Color3.new(66 / 255, 66 / 255, 66 / 255)
  335.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.BackgroundTransparency = 0.3
  336.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.BorderSizePixel = 0
  337.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.Position = UDim2.new(0, 5, 0, 0)
  338.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.Size = UDim2.new(1, -10, 1, 0)
  339.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.Font = Enum.Font.SciFi
  340.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.Text = text
  341.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextScaled = true
  342.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextColor3 = Color3.new(1, 1, 1)
  343.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextXAlignment = Enum.TextXAlignment.Left
  344.         self.gui_objs.mainframes[mainframe].buttons[name].textbox.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
  345.  
  346.         self.gui_objs.mainframes[mainframe].main.Size = UDim2.new(0, 200, 0, 25 + self.gui_objs.mainframes[mainframe].buttonsnum)
  347.  
  348.         self.gui_objs.mainframes[mainframe].buttonsnum = self.gui_objs.mainframes[mainframe].buttonsnum + 20
  349.  
  350.         return self.gui_objs.mainframes[mainframe].buttons[name].textbox
  351.     end
  352.  
  353.     function gui:AddButton(mainframe, name, text)
  354.         self.gui_objs.mainframes[mainframe].buttons[name] = { }
  355.  
  356.         self.gui_objs.mainframes[mainframe].buttons[name].main = Instance.new("Frame")
  357.         self.gui_objs.mainframes[mainframe].buttons[name].main.BackgroundTransparency = 1
  358.         self.gui_objs.mainframes[mainframe].buttons[name].main.Name = name
  359.         self.gui_objs.mainframes[mainframe].buttons[name].main.Position = UDim2.new(0, 0, 0, 5 + self.gui_objs.mainframes[mainframe].buttonsnum)
  360.         self.gui_objs.mainframes[mainframe].buttons[name].main.Size = UDim2.new(1, 0, 0, 15)
  361.         self.gui_objs.mainframes[mainframe].buttons[name].main.Parent = self.gui_objs.mainframes[mainframe].buttonsframe
  362.  
  363.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton = Instance.new("TextButton")
  364.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.BackgroundTransparency = 1
  365.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Position = UDim2.new(0, 5, 0, 0)
  366.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Size = UDim2.new(1, -5, 1, 0)
  367.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.ZIndex = 2
  368.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Font = Enum.Font.SciFi
  369.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Text = text
  370.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextColor3 = Color3.new(1, 1, 1)
  371.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextScaled = true
  372.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextXAlignment = Enum.TextXAlignment.Left
  373.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Modal = true
  374.         self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
  375.  
  376.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel = Instance.new("TextLabel")
  377.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.BackgroundTransparency = 1
  378.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Position = UDim2.new(1, -25, 0, 0)
  379.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Size = UDim2.new(0, 25, 1, 0)
  380.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Font = Enum.Font.Code
  381.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Text = "OFF"
  382.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextColor3 = Color3.new(1, 0, 0)
  383.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextScaled = true
  384.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextXAlignment = Enum.TextXAlignment.Right
  385.         self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
  386.  
  387.         self.gui_objs.mainframes[mainframe].main.Size = UDim2.new(0, 200, 0, 25 + self.gui_objs.mainframes[mainframe].buttonsnum)
  388.  
  389.         self.gui_objs.mainframes[mainframe].buttonsnum = self.gui_objs.mainframes[mainframe].buttonsnum + 20
  390.  
  391.         return self.gui_objs.mainframes[mainframe].buttons[name].textbutton, self.gui_objs.mainframes[mainframe].buttons[name].textlabel
  392.     end
  393.  
  394.     function gui:AddMainFrame(name)
  395.         if self.gui_objs.mainframes.numX == nil then self.gui_objs.mainframes.numX = 0 end
  396.         if self.gui_objs.mainframes.numY == nil then self.gui_objs.mainframes.numY = 0 end
  397.  
  398.         self.gui_objs.mainframes[name] = { }
  399.         self.gui_objs.mainframes[name].buttons = { }
  400.  
  401.         self.gui_objs.mainframes[name].main = Instance.new("Frame")
  402.         self.gui_objs.mainframes[name].main.BackgroundColor3 = Color3.new(0, 0, 0)
  403.         self.gui_objs.mainframes[name].main.BackgroundTransparency = 0.3
  404.         self.gui_objs.mainframes[name].main.BorderColor3 = Color3.new(0, 0, 139 / 255)
  405.         self.gui_objs.mainframes[name].main.BorderSizePixel = 3
  406.         self.gui_objs.mainframes[name].main.Name = name
  407.         self.gui_objs.mainframes[name].main.Position = UDim2.new(0, 50 + self.gui_objs.mainframes.numX, 0, 50 + self.gui_objs.mainframes.numY)
  408.         self.gui_objs.mainframes[name].main.Size = UDim2.new(0, 200, 0, 350)
  409.         self.gui_objs.mainframes[name].main.Active = true
  410.         self.gui_objs.mainframes[name].main.Draggable = true
  411.  
  412.         self.gui_objs.mainframes[name].titleframe = Instance.new("Frame")
  413.         self.gui_objs.mainframes[name].titleframe.BackgroundColor3 = Color3.new(0, 0, 0)
  414.         self.gui_objs.mainframes[name].titleframe.BackgroundTransparency = 0.3
  415.         self.gui_objs.mainframes[name].titleframe.BorderColor3 = Color3.new(0, 0, 139 / 255)
  416.         self.gui_objs.mainframes[name].titleframe.BorderSizePixel = 3
  417.         self.gui_objs.mainframes[name].titleframe.Name = "titleframe"
  418.         self.gui_objs.mainframes[name].titleframe.Position = UDim2.new(0, 0, 0, -35)
  419.         self.gui_objs.mainframes[name].titleframe.Size = UDim2.new(1, 0, 0, 25)
  420.         self.gui_objs.mainframes[name].titleframe.Parent = self.gui_objs.mainframes[name].main
  421.  
  422.         self.gui_objs.mainframes[name].title = Instance.new("TextLabel")
  423.         self.gui_objs.mainframes[name].title.BackgroundTransparency = 1
  424.         self.gui_objs.mainframes[name].title.Name = "title"
  425.         self.gui_objs.mainframes[name].title.Size = UDim2.new(1, 0, 1, 0)
  426.         self.gui_objs.mainframes[name].title.Font = Enum.Font.Code
  427.         self.gui_objs.mainframes[name].title.Text = name
  428.         self.gui_objs.mainframes[name].title.TextColor3 = Color3.new(1, 1, 1) -- 0, 0, 1
  429.         self.gui_objs.mainframes[name].title.TextSize = 20
  430.         self.gui_objs.mainframes[name].title.Parent = self.gui_objs.mainframes[name].titleframe
  431.  
  432.         self.gui_objs.mainframes[name].buttonsframe = Instance.new("Frame")
  433.         self.gui_objs.mainframes[name].buttonsframe.BackgroundTransparency = 1
  434.         self.gui_objs.mainframes[name].buttonsframe.Name = "buttons"
  435.         self.gui_objs.mainframes[name].buttonsframe.Size = UDim2.new(1, 0, 1, 0)
  436.         self.gui_objs.mainframes[name].buttonsframe.Parent = self.gui_objs.mainframes[name].main
  437.  
  438.         self.gui_objs.mainframes[name].infoframe = self.gui_objs.mainframes[name].titleframe:clone()
  439.         self.gui_objs.mainframes[name].infoframe.title:Destroy()
  440.         self.gui_objs.mainframes[name].infoframe.Name = "infoframe"
  441.         self.gui_objs.mainframes[name].infoframe.Position = UDim2.new(0, 0, 1, 10)
  442.         self.gui_objs.mainframes[name].infoframe.Parent = self.gui_objs.mainframes[name].main
  443.  
  444.         self.gui_objs.mainframes[name].infotitle = self.gui_objs.mainframes[name].title:clone()
  445.         self.gui_objs.mainframes[name].infotitle.Name = "infotitle"
  446.         self.gui_objs.mainframes[name].infotitle.Text = "Press the \"P\" key to toggle the GUI\nMade by: @Racist Dolphin#8943"
  447.         self.gui_objs.mainframes[name].infotitle.TextColor3 = Color3.new(1, 1, 1)
  448.         self.gui_objs.mainframes[name].infotitle.TextScaled = true
  449.         self.gui_objs.mainframes[name].infotitle.Parent = self.gui_objs.mainframes[name].infoframe
  450.  
  451.         self.gui_objs.mainframes[name].buttonsnum = 0
  452.         self.gui_objs.mainframes.numX = self.gui_objs.mainframes.numX + 250
  453.  
  454.         if (50 + (self.gui_objs.mainframes.numX + 200)) >= ca.ViewportSize.X then
  455.             self.gui_objs.mainframes.numX = 0
  456.             self.gui_objs.mainframes.numY = self.gui_objs.mainframes.numY + 450
  457.         end
  458.  
  459.         self.gui_objs.mainframes[name].main.Parent = self.gui_objs.main
  460.     end
  461.  
  462.     function gui:Init()
  463.         self.gui_objs.main = Instance.new("ScreenGui")
  464.         self.gui_objs.main.Name = self.name
  465.         self.gui_objs.main.Parent = cg
  466.  
  467.         do -- Visual Cheats
  468.             self:AddMainFrame("Visual Cheats")
  469.  
  470.             local ESPBut, ESPStatus = self:AddButton("Visual Cheats", "ESP", "ESP")
  471.             local FagESPBut, FagESPStatus = self:AddButton("Visual Cheats", "FagESP", "Spotted ESP")
  472.             local ChamsBut, ChamsStatus = self:AddButton("Visual Cheats", "Chams", "Chams")
  473.             local AllyChamsBut, AllyChamsStatus = self:AddButton("Visual Cheats", "Ally Chams", "Ally Chams")
  474.             AllyChamsStatus.Text = "ON"
  475.             AllyChamsStatus.TextColor3 = Color3.new(0, 1, 0)
  476.             local RadarESP, RadarStatus = self:AddButton("Visual Cheats", "Radar", "Radar ESP")
  477.             local FullbrightToggle, FullbrightStatus = self:AddButton("Visual Cheats", "Fullbright", "Fullbright")
  478.             local RemoveSunFlare, RemoveSunFlareStatus = self:AddButton("Visual Cheats", "Remove Sun Glare", "Remove Sun Glare")
  479.             local RemoveBloodToggle, RemoveBloodStatus = self:AddButton("Visual Cheats", "Remove Blood", "Remove Blood Effects")
  480.             RemoveSunFlareStatus:Destroy()
  481.  
  482.             ESPBut.MouseButton1Click:connect(function()
  483.                 esp_stuff.enabled = not esp_stuff.enabled
  484.                 ESPStatus.Text = esp_stuff.enabled and "ON" or "OFF"
  485.                 ESPStatus.TextColor3 = esp_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  486.  
  487.                 for i, v in next, esp_stuff.esp_folder:GetChildren() do
  488.                     v.Frame.Visible = esp_stuff.enabled
  489.                 end
  490.             end)
  491.  
  492.             FagESPBut.MouseButton1Click:connect(function()
  493.                 faggot_esp.enabled = not faggot_esp.enabled
  494.                 FagESPStatus.Text = faggot_esp.enabled and "ON" or "OFF"
  495.                 FagESPStatus.TextColor3 = faggot_esp.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  496.  
  497.                 if faggot_esp.enabled then
  498.                     faggot_esp:Start()
  499.                 else
  500.                     faggot_esp:Stop()
  501.                 end
  502.             end)
  503.  
  504.             ChamsBut.MouseButton1Click:connect(function()
  505.                 cham_stuff.enabled = not cham_stuff.enabled
  506.                 ChamsStatus.Text = cham_stuff.enabled and "ON" or "OFF"
  507.                 ChamsStatus.TextColor3 = cham_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  508.  
  509.                 --cham_stuff:SetTrans(cham_stuff.enabled and 0 or 1)
  510.             end)
  511.  
  512.             AllyChamsBut.MouseButton1Click:connect(function()
  513.                 cham_stuff.ally_chams = not cham_stuff.ally_chams
  514.  
  515.                 AllyChamsStatus.Text = cham_stuff.ally_chams and "ON" or "OFF"
  516.                 AllyChamsStatus.TextColor3 = cham_stuff.ally_chams and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  517.             end)
  518.  
  519.             RadarESP.MouseButton1Click:connect(function()
  520.                 if main.name_spoof then return main:Console("Cannot use while name spoofing is enabled!") end
  521.                 radar_stuff.enabled = not radar_stuff.enabled
  522.  
  523.                 RadarStatus.Text = radar_stuff.enabled and "ON" or "OFF"
  524.                 RadarStatus.TextColor3 = radar_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  525.  
  526.                 if radar_stuff.enabled then
  527.                     radar_stuff:Start()
  528.                 else
  529.                     radar_stuff:Stop()
  530.                 end
  531.             end)
  532.  
  533.             FullbrightToggle.MouseButton1Click:connect(function()
  534.                 fullbright_stuff.enabled = not fullbright_stuff.enabled
  535.                 FullbrightStatus.Text = fullbright_stuff.enabled and "ON" or "OFF"
  536.                 FullbrightStatus.TextColor3 = fullbright_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  537.  
  538.                 if fullbright_stuff.enabled then
  539.                     fullbright_stuff:Enable()
  540.                 else
  541.                     fullbright_stuff:Disable()
  542.                 end
  543.             end)
  544.  
  545.             RemoveSunFlare.MouseButton1Click:connect(function()
  546.                 for i, v in pairs(light:GetChildren()) do
  547.                     if v:IsA("SunRaysEffect") or v:IsA("BloomEffect") or v:IsA("ColorCorrectionEffect") then
  548.                         v:Destroy()
  549.                     end
  550.                 end
  551.  
  552.                 main:Console("Removed Sun Glares")
  553.             end)
  554.  
  555.             RemoveBloodToggle.MouseButton1Click:connect(function()
  556.                 main.remove_blood = not main.remove_blood
  557.  
  558.                 RemoveBloodStatus.Text = main.remove_blood and "ON" or "OFF"
  559.                 RemoveBloodStatus.TextColor3 = main.remove_blood and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  560.  
  561.                 if main.remove_blood then
  562.                     client.funcs["createblood"] = function(...) return end
  563.                 else
  564.                     client.funcs["createblood"] = client.createblood
  565.                 end
  566.             end)
  567.         end
  568.  
  569.         do -- Gun Cheats
  570.             self:AddMainFrame("Gun Cheats")
  571.  
  572.             local AimbotToggle, AimbotStatus = self:AddButton("Gun Cheats", "Aimbot", "Aimbot (Obvious)")
  573.             local Aimbot2Toggle, Aimbot2Status = self:AddButton("Gun Cheats", "Aimbot2", "Aimbot (Suspicious)")
  574.             local InstantKillToggle, InstantKillStatus = self:AddButton("Gun Cheats", "Instant Kill", "Instant Kill")
  575.             local AllHeadshotsToggle, AllHeadshotsStatus = self:AddButton("Gun Cheats", "All Headshots", "All Headshots")
  576.             local WallBangToggle, WallBangStatus = self:AddButton("Gun Cheats", "Wall Bang Bonus", "Wall Bang Bonus")
  577.             local InfiniteAmmoToggle, InfiniteAmmoStatus = self:AddButton("Gun Cheats", "Infinite Ammo", "Infinite Ammo")
  578.             local InfiniteMagToggle, InfiniteMagStatus = self:AddButton("Gun Cheats", "Infinite Mag", "Infinite Mag")
  579.             local NoRecoilToggle, NoRecoilStatus = self:AddButton("Gun Cheats", "No Recoil", "No Recoil")
  580.             local NoSpreadToggle, NoSpreadStatus = self:AddButton("Gun Cheats", "No Spread", "No Spread")
  581.             local RapidFireToggle, RapidFireStatus = self:AddButton("Gun Cheats", "Rapid Fire", "Rapid Fire")
  582.             local RapidFireEdit = self:AddTextBox("Gun Cheats", "Rapid Fire Edit", "Modify Fire Rate")
  583.             local FastReloadToggle, FastReloadStatus = self:AddButton("Gun Cheats", "Fast Reload", "Fast Reload")
  584.             local NoReloadToggle, NoReloadStatus = self:AddButton("Gun Cheats", "No Reload", "No Reload")
  585.             local InfiniteRangeToggle, InfiniteRangeStatus = self:AddButton("Gun Cheats", "Infinite Range", "Infinite Range")
  586.             local IncreasedZoomToggle, IncreasedZoomStatus = self:AddButton("Gun Cheats", "Increased Zoom", "Increased Sniper Zoom")
  587.             local MaxBulletPenToggle, MaxBulletPenStatus = self:AddButton("Gun Cheats", "Max Bullet Penetration", "Max Bullet Penetration")
  588.             local NoGunBobToggle, NoGunBobStatus = self:AddButton("Gun Cheats", "No GunBob", "No Gun Bob")
  589.             local NoGunSwayToggle, NoGunSwayStatus = self:AddButton("Gun Cheats", "No GunSway", "No Gun Sway")
  590.             local NoOnFireAnimToggle, NoOnFireAnimStatus = self:AddButton("Gun Cheats", "No On Fire Anim", "Remove On Fire Animation")
  591.             local PermanentBalTrackerToggle, PermanentBalTrackerStatus = self:AddButton("Gun Cheats", "Ballistic Tracker", "Ballistic Tracker")
  592.             local WallHackToggle, WallHackStatus = self:AddButton("Gun Cheats", "WallHack", "Wall Hack")
  593.             local HideFromRadarToggle, HideFromRadarStatus = self:AddButton("Gun Cheats", "Hide From Radar", "Hide From Radar")
  594.             local UnlockAll, UnlockAllStatus = self:AddButton("Gun Cheats", "Unlock All", "Unlock All")
  595.             UnlockAllStatus:Destroy()
  596.  
  597.             AimbotToggle.MouseButton1Click:connect(function()
  598.                 main.aimbot = not main.aimbot
  599.  
  600.                 AimbotStatus.Text = main.aimbot and "ON" or "OFF"
  601.                 AimbotStatus.TextColor3 = main.aimbot and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  602.             end)
  603.  
  604.             Aimbot2Toggle.MouseButton1Click:connect(function()
  605.                 if client.engine == nil then return main:Console("ERROR: client.engine is missing. The exploit you are using is most likely not supported.") end
  606.                 main.aimbot2 = not main.aimbot2
  607.  
  608.                 Aimbot2Status.Text = main.aimbot2 and "ON" or "OFF"
  609.                 Aimbot2Status.TextColor3 = main.aimbot2 and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  610.  
  611.                 if main.aimbot2 then
  612.                     main:Console("Thank you Wally for sending me the old Framework script <3")
  613.                 end
  614.             end)
  615.  
  616.             InstantKillToggle.MouseButton1Click:connect(function()
  617.                 main.instant_kill = not main.instant_kill
  618.  
  619.                 InstantKillStatus.Text = main.instant_kill and "ON" or "OFF"
  620.                 InstantKillStatus.TextColor3 = main.instant_kill and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  621.             end)
  622.  
  623.             AllHeadshotsToggle.MouseButton1Click:connect(function()
  624.                 main.all_headshots = not main.all_headshots
  625.  
  626.                 AllHeadshotsStatus.Text = main.all_headshots and "ON" or "OFF"
  627.                 AllHeadshotsStatus.TextColor3 = main.all_headshots and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  628.             end)
  629.  
  630.             WallBangToggle.MouseButton1Click:connect(function()
  631.                 main.wall_bangs = not main.wall_bangs
  632.  
  633.                 WallBangStatus.Text = main.wall_bangs and "ON" or "OFF"
  634.                 WallBangStatus.TextColor3 = main.wall_bangs and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  635.             end)
  636.  
  637.             InfiniteAmmoToggle.MouseButton1Click:connect(function()
  638.                 main.infinite_ammo = not main.infinite_ammo
  639.  
  640.                 InfiniteAmmoStatus.Text = main.infinite_ammo and "ON" or "OFF"
  641.                 InfiniteAmmoStatus.TextColor3 = main.infinite_ammo and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  642.                 main:Respawn()
  643.             end)
  644.  
  645.             InfiniteMagToggle.MouseButton1Click:connect(function()
  646.                 main.infinite_mag = not main.infinite_mag
  647.  
  648.                 InfiniteMagStatus.Text = main.infinite_mag and "ON" or "OFF"
  649.                 InfiniteMagStatus.TextColor3 = main.infinite_mag and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  650.                 main:Respawn()
  651.             end)
  652.  
  653.             NoRecoilToggle.MouseButton1Click:connect(function()
  654.                 main.no_recoil = not main.no_recoil
  655.  
  656.                 NoRecoilStatus.Text = main.no_recoil and "ON" or "OFF"
  657.                 NoRecoilStatus.TextColor3 = main.no_recoil and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  658.                 main:Respawn()
  659.             end)
  660.  
  661.             NoSpreadToggle.MouseButton1Click:connect(function()
  662.                 main.no_spread = not main.no_spread
  663.  
  664.                 NoSpreadStatus.Text = main.no_spread and "ON" or "OFF"
  665.                 NoSpreadStatus.TextColor3 = main.no_spread and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  666.                 main:Respawn()
  667.             end)
  668.  
  669.             RapidFireToggle.MouseButton1Click:connect(function()
  670.                 main.rapid_fire = not main.rapid_fire
  671.  
  672.                 RapidFireStatus.Text = main.rapid_fire and "ON" or "OFF"
  673.                 RapidFireStatus.TextColor3 = main.rapid_fire and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  674.                 main:Respawn()
  675.             end)
  676.  
  677.             RapidFireEdit.FocusLost:connect(function()
  678.                 local n = tonumber(RapidFireEdit.Text)
  679.                 if type(n) == "number" then
  680.                     main.firerate = n
  681.                     RapidFireEdit.Text = "Modify Fire Rate"
  682.  
  683.                     main:Respawn()
  684.  
  685.                     main:Console("Fire Rate Set to: " .. tostring(n))
  686.                 end
  687.             end)
  688.  
  689.             FastReloadToggle.MouseButton1Click:connect(function()
  690.                 main.fast_reload = not main.fast_reload
  691.  
  692.                 FastReloadStatus.Text = main.fast_reload and "ON" or "OFF"
  693.                 FastReloadStatus.TextColor3 = main.fast_reload and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  694.  
  695.                 if main.fast_reload then
  696.                     main.no_reload = false
  697.                     NoReloadStatus.Text = "OFF"
  698.                     NoReloadStatus.TextColor3 = Color3.new(1, 0, 0)
  699.                 end
  700.  
  701.                 main:Respawn()
  702.             end)
  703.  
  704.             NoReloadToggle.MouseButton1Click:connect(function()
  705.                 main.no_reload = not main.no_reload
  706.  
  707.                 NoReloadStatus.Text = main.no_reload and "ON" or "OFF"
  708.                 NoReloadStatus.TextColor3 = main.no_reload and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  709.  
  710.                 if main.no_reload then
  711.                     main.fast_reload = false
  712.                     FastReloadStatus.Text = "OFF"
  713.                     FastReloadStatus.TextColor3 = Color3.new(1, 0, 0)
  714.                 end
  715.  
  716.                 main:Respawn()
  717.             end)
  718.  
  719.             InfiniteRangeToggle.MouseButton1Click:connect(function()
  720.                 main.infinite_range = not main.infinite_range
  721.  
  722.                 InfiniteRangeStatus.Text = main.infinite_range and "ON" or "OFF"
  723.                 InfiniteRangeStatus.TextColor3 = main.infinite_range and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  724.                 main:Respawn()
  725.             end)
  726.  
  727.             IncreasedZoomToggle.MouseButton1Click:connect(function()
  728.                 main.increased_zoom = not main.increased_zoom
  729.  
  730.                 IncreasedZoomStatus.Text = main.increased_zoom and "ON" or "OFF"
  731.                 IncreasedZoomStatus.TextColor3 = main.increased_zoom and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  732.                 main:Respawn()
  733.             end)
  734.  
  735.             MaxBulletPenToggle.MouseButton1Click:connect(function()
  736.                 main.max_bullet_pen = not main.max_bullet_pen
  737.  
  738.                 MaxBulletPenStatus.Text = main.max_bullet_pen and "ON" or "OFF"
  739.                 MaxBulletPenStatus.TextColor3 = main.max_bullet_pen and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  740.                 main:Respawn()
  741.             end)
  742.  
  743.             NoGunBobToggle.MouseButton1Click:connect(function()
  744.                 main.no_gunbob = not main.no_gunbob
  745.  
  746.                 NoGunBobStatus.Text = main.no_gunbob and "ON" or "OFF"
  747.                 NoGunBobStatus.TextColor3 = main.no_gunbob and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  748.             end)
  749.  
  750.             NoGunSwayToggle.MouseButton1Click:connect(function()
  751.                 main.no_gunsway = not main.no_gunsway
  752.  
  753.                 NoGunSwayStatus.Text = main.no_gunsway and "ON" or "OFF"
  754.                 NoGunSwayStatus.TextColor3 = main.no_gunsway and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  755.             end)
  756.  
  757.             HideFromRadarToggle.MouseButton1Click:connect(function()
  758.                 main.hide_from_radar = not main.hide_from_radar
  759.  
  760.                 HideFromRadarStatus.Text = main.hide_from_radar and "ON" or "OFF"
  761.                 HideFromRadarStatus.TextColor3 = main.hide_from_radar and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  762.                 main:Respawn()
  763.             end)
  764.  
  765.             NoOnFireAnimToggle.MouseButton1Click:connect(function()
  766.                 main.remove_on_fire_anim = not main.remove_on_fire_anim
  767.  
  768.                 NoOnFireAnimStatus.Text = main.remove_on_fire_anim and "ON" or "OFF"
  769.                 NoOnFireAnimStatus.TextColor3 = main.remove_on_fire_anim and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  770.                 main:Respawn()
  771.             end)
  772.  
  773.             PermanentBalTrackerToggle.MouseButton1Click:connect(function()
  774.                 main.ballistic_tacker = not main.ballistic_tacker
  775.  
  776.                 PermanentBalTrackerStatus.Text = main.ballistic_tacker and "ON" or "OFF"
  777.                 PermanentBalTrackerStatus.TextColor3 = main.ballistic_tacker and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  778.             end)
  779.  
  780.             WallHackToggle.MouseButton1Click:connect(function()
  781.                 main.wallhack = not main.wallhack
  782.  
  783.                 WallHackStatus.Text = main.wallhack and "ON" or "OFF"
  784.                 WallHackStatus.TextColor3 = main.wallhack and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  785.             end)
  786.  
  787.             UnlockAll.MouseButton1Click:connect(function()
  788.                 local fuck = { }
  789.                 local you = getfenv(client.funcs.displayaward)
  790.                 local too = getupvals(you.updateplayercard).pdata
  791.  
  792.                 for i, v in next, rs.GunModules:GetChildren() do
  793.                     fuck[tostring(v)] = {paid = true}
  794.                     for i2, v2 in next, rs.AttachmentModels:GetChildren() do
  795.                         fuck[tostring(v)][tostring(v2)] = true
  796.                     end
  797.  
  798.                     local suc, out = coroutine.resume(coroutine.create(function()
  799.                         for i2, v2 in next, getupvals(getupvals(getfenv(client.funcs.displayaward).opencamopage).gencamolist).bigcamolist do
  800.                             too.settings.inventorydata[#too.settings.inventorydata + 1] = {Type = "Skin", Name = i2, Wep = tostring(v)}
  801.                         end
  802.                     end))
  803.                     if not suc then
  804.                         warn("Unlock All Failed to unlock Camos!", out)
  805.                     end
  806.                 end
  807.  
  808.                 too.unlocks = fuck
  809.  
  810.                 main:Respawn()
  811.  
  812.                 main:Console("Unlocked everything. :)")
  813.             end)
  814.         end
  815.  
  816.         do -- Character Cheats
  817.             self:AddMainFrame("Character Cheats")
  818.  
  819.             local SuperSpeedToggle, SuperSpeedStatus = self:AddButton("Character Cheats", "Super Speed", "Super Speed")
  820.             local SuperJumpToggle = self:AddTextBox("Character Cheats", "Super Jump", "Jump Height Multiplier")
  821.             local InfiniteJumpToggle, InfiniteJumpStatus = self:AddButton("Character Cheats", "Infinite Jumping", "Infinite Jumps")
  822.             local NoClipFlyToggle, NoClipFlyStatus = self:AddButton("Character Cheats", "NoClip / Fly Hack", "NoClip / Fly Hack")
  823.             local InstantDespawnToggle, InstantDespawnStatus = self:AddButton("Character Cheats", "Instant Despawn", "Instant Despawn")
  824.             local InstantRespawnToggle, InstantRespawnStatus = self:AddButton("Character Cheats", "Instant Respawn", "Instant Respawn")
  825.             local SlowmotionToggle, SlowmotionStatus = self:AddButton("Character Cheats", "Slow Motion", "Slow Motion")
  826.             local NormalmotionToggle, NormalmotionStatus = self:AddButton("Character Cheats", "Normal Motion", "Normal Motion")
  827.             NormalmotionStatus.Text = "ON"
  828.             NormalmotionStatus.TextColor3 = Color3.new(0, 1, 0)
  829.             local FastmotionToggle, FastmotionStatus = self:AddButton("Character Cheats", "Fast Motion", "Fast Motion")
  830.  
  831.             SuperSpeedToggle.MouseButton1Click:connect(function()
  832.                
  833.             end)
  834.  
  835.             SuperJumpToggle.FocusLost:connect(function()
  836.                 main.super_jump = tonumber(SuperJumpToggle.Text) or 1
  837.                 main:Console("Set Jump Height Multiplier to: " .. main.super_jump)
  838.                 main:Console("Default Value: 1")
  839.                 SuperJumpToggle.Text = "Jump Height Multiplier"
  840.             end)
  841.  
  842.             InfiniteJumpToggle.MouseButton1Click:connect(function()
  843.                 main.infinite_jumps = not main.infinite_jumps
  844.  
  845.                 InfiniteJumpStatus.Text = main.infinite_jumps and "ON" or "OFF"
  846.                 InfiniteJumpStatus.TextColor3 = main.infinite_jumps and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  847.             end)
  848.  
  849.             NoClipFlyToggle.MouseButton1Click:connect(function()
  850.                 main.noclip = not main.noclip
  851.  
  852.                 NoClipFlyStatus.Text = main.noclip and "ON" or "OFF"
  853.                 NoClipFlyStatus.TextColor3 = main.noclip and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  854.  
  855.                 if main.noclip then
  856.                     main:Console("Hotkey to Enable/Disable: .")
  857.                 end
  858.             end)
  859.  
  860.             InstantDespawnToggle.MouseButton1Click:connect(function()
  861.                 main.instant_despawn = not main.instant_despawn
  862.  
  863.                 InstantDespawnStatus.Text = main.instant_despawn and "ON" or "OFF"
  864.                 InstantDespawnStatus.TextColor3 = main.instant_despawn and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  865.             end)
  866.  
  867.             InstantRespawnToggle.MouseButton1Click:connect(function()
  868.                 main.instant_respawn = not main.instant_respawn
  869.  
  870.                 InstantRespawnStatus.Text = main.instant_respawn and "ON" or "OFF"
  871.                 InstantRespawnStatus.TextColor3 = main.instant_respawn and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  872.             end)
  873.  
  874.             --[[MartyrdomToggle.MouseButton1Click:connect(function()
  875.                 main.martyrdom = not main.martyrdom
  876.  
  877.                 MartyrdomStatus.Text = main.martyrdom and "ON" or "OFF"
  878.                 MartyrdomStatus.TextColor3 = main.martyrdom and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  879.             end)]]
  880.  
  881.             SlowmotionToggle.MouseButton1Click:connect(function()
  882.                 main.timescale = 0.3
  883.  
  884.                 SlowmotionStatus.Text = "ON"
  885.                 SlowmotionStatus.TextColor3 = Color3.new(0, 1, 0)
  886.                 NormalmotionStatus.Text = "OFF"
  887.                 NormalmotionStatus.TextColor3 = Color3.new(1, 0, 0)
  888.                 FastmotionStatus.Text = "OFF"
  889.                 FastmotionStatus.TextColor3 = Color3.new(1, 0, 0)
  890.             end)
  891.  
  892.             NormalmotionToggle.MouseButton1Click:connect(function()
  893.                 main.timescale = 1
  894.  
  895.                 SlowmotionStatus.Text = "OFF"
  896.                 SlowmotionStatus.TextColor3 = Color3.new(1, 0, 0)
  897.                 NormalmotionStatus.Text = "ON"
  898.                 NormalmotionStatus.TextColor3 = Color3.new(0, 1, 0)
  899.                 FastmotionStatus.Text = "OFF"
  900.                 FastmotionStatus.TextColor3 = Color3.new(1, 0, 0)
  901.             end)
  902.  
  903.             FastmotionToggle.MouseButton1Click:connect(function()
  904.                 main.timescale = 5
  905.  
  906.                 SlowmotionStatus.Text = "OFF"
  907.                 SlowmotionStatus.TextColor3 = Color3.new(1, 0, 0)
  908.                 NormalmotionStatus.Text = "OFF"
  909.                 NormalmotionStatus.TextColor3 = Color3.new(1, 0, 0)
  910.                 FastmotionStatus.Text = "ON"
  911.                 FastmotionStatus.TextColor3 = Color3.new(0, 1, 0)
  912.             end)
  913.         end
  914.  
  915.         do -- Miscellaneous Cheats
  916.             self:AddMainFrame("Miscellaneous Cheats")
  917.             local TestingToggle, TestingStatus
  918.  
  919.             local GetBannedToggle, GetBannedStatus = self:AddButton("Miscellaneous Cheats", "Kill Game", "Kill Game (Obvious Hacking)")
  920.             local CamoHackTest, CamoHackTestStatus = self:AddButton("Miscellaneous Cheats", "Camo Hack", "Camo Hack")
  921.             local GravityHackToggle, GravityHackStatus = self:AddButton("Miscellaneous Cheats", "Gravity Hack", "Low Gravity")
  922.             local NameSpoofToggle, NameSpoofStatus = self:AddButton("Miscellaneous Cheats", "Name Spoof", "Name Spoofing")
  923.             local LevelHackBox = self:AddTextBox("Miscellaneous Cheats", "Level Hack", "Level Hack")
  924.             local KillAllToggle, KillAllStatus = self:AddButton("Miscellaneous Cheats", "Kill All", "Kill All")
  925.             KillAllStatus:Destroy()
  926.             local KillAll2Toggle, KillAll2Status = self:AddButton("Miscellaneous Cheats", "Kill All2", "Kill All (Un-Noticable)")
  927.             KillAll2Status:Destroy()
  928.             local BreakWindowsToggle, BreakWindowsStatus = self:AddButton("Miscellaneous Cheats", "Break Windows", "Break All Windows")
  929.             BreakWindowsStatus:Destroy()
  930.             local AdvertiseToggle, AdvertiseStatus = self:AddButton("Miscellaneous Cheats", "Advertise", "Advertise")
  931.             AdvertiseStatus:Destroy()
  932.             local DiscordToggle, DiscordStatus = self:AddButton("Miscellaneous Cheats", "Discord", "Copy Discord Invite")
  933.             DiscordStatus:Destroy()
  934.  
  935.             GetBannedToggle.MouseButton1Click:connect(function()
  936.                 main.kill_game = not main.kill_game
  937.  
  938.                 GetBannedStatus.Text = main.kill_game and "ON" or "OFF"
  939.                 GetBannedStatus.TextColor3 = main.kill_game and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  940.             end)
  941.  
  942.             CamoHackTest.MouseButton1Click:connect(function()
  943.                 main.camotest = not main.camotest
  944.  
  945.                 CamoHackTestStatus.Text = main.camotest and "ON" or "OFF"
  946.                 CamoHackTestStatus.TextColor3 = main.camotest and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  947.             end)
  948.  
  949.             GravityHackToggle.MouseButton1Click:connect(function()
  950.                 main.gravity_hack = not main.gravity_hack
  951.  
  952.                 GravityHackStatus.Text = main.gravity_hack and "ON" or "OFF"
  953.                 GravityHackStatus.TextColor3 = main.gravity_hack and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  954.  
  955.                 if main.gravity_hack then
  956.                     workspace.Gravity = 10
  957.                 else
  958.                     workspace.Gravity = 192.6
  959.                 end
  960.             end)
  961.  
  962.             NameSpoofToggle.MouseButton1Click:connect(function()
  963.                 main.name_spoof = not main.name_spoof
  964.  
  965.                 NameSpoofStatus.Text = main.name_spoof and "ON" or "OFF"
  966.                 NameSpoofStatus.TextColor3 = main.name_spoof and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  967.  
  968.                 if client.gamelogic.currentgun == nil then
  969.                     client.menu.loadmenu()
  970.                 end
  971.  
  972.                 g.ChatGame.GlobalChat:ClearAllChildren()
  973.                 g.MainGui.GameGui.Killfeed:ClearAllChildren()
  974.  
  975.                 if radar_stuff.enabled then
  976.                     radar_stuff.enabled = false
  977.                     radar_stuff:Stop()
  978.                     self.gui_objs.mainframes["Visual Cheats"].buttons["Rardar"].textbutton.Text = "OFF"
  979.                     self.gui_objs.mainframes["Visual Cheats"].buttons["Rardar"].textbutton.TextColor3 = Color3.new(1, 0, 0)
  980.                 end
  981.             end)
  982.  
  983.             LevelHackBox.FocusLost:connect(function()
  984.                 local function GetEXPRequried(rank)
  985.                     local n = 0
  986.                     repeat
  987.                         if rank > 1000 then
  988.                             n = n + 100000
  989.                         elseif rank > 10000 then
  990.                             n = n + 1000000
  991.                         else
  992.                             n = n + 5000
  993.                         end
  994.                     until math.floor((0.25 + n / 500) ^ 0.5 - 0.5) >= rank
  995.  
  996.                     return n
  997.                 end
  998.  
  999.                 local n = tonumber(LevelHackBox.Text)
  1000.                 if type(n) == "number" then
  1001.                     local data = getupval(getfenv(client.funcs.displayaward).updateplayercard, "pdata")
  1002.                     local n2 = GetEXPRequried(n)
  1003.                     data.stats.experience = n2
  1004.                     LevelHackBox.Text = "Level Hack"
  1005.  
  1006.                     main:Respawn(true)
  1007.  
  1008.                     main:Console("Rank set to: " .. tostring(n))
  1009.                 end
  1010.             end)
  1011.  
  1012.             KillAllToggle.MouseButton1Click:connect(function()
  1013.                 if client.gamelogic.currentgun ~= nil then
  1014.                     for i, v in pairs(ps:GetPlayers()) do
  1015.                         if v ~= p and v.Team ~= p.Team then
  1016.                             local char = v.Character
  1017.                             if char then
  1018.                                 local my_tor = c:FindFirstChild("HumanoidRootPart")
  1019.                                 local their_head, their_tor = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart")
  1020.                                 if my_tor and their_head and their_tor then
  1021.                                     local mag = (my_tor.Position - their_tor.Position).magnitude + 1500
  1022.                                     local bv = (my_tor.Position - their_tor.Position).unit * mag
  1023.                                     client.network:send("bullethit", v, -100, tick() - .1, tick(), my_tor.Position, bv, client.gamelogic.currentgun.name, {}, {}, their_head)
  1024.                                 end
  1025.                             end
  1026.                         end
  1027.                     end
  1028.                 end
  1029.             end)
  1030.  
  1031.             KillAll2Toggle.MouseButton1Click:connect(function()
  1032.                 if client.gamelogic.currentgun ~= nil then
  1033.                     for i, v in pairs(ps:GetPlayers()) do
  1034.                         client.network:bounce("bodyparts", v, client.network:fetch("state", v).bodyparts)
  1035.                     end
  1036.                 end
  1037.  
  1038.                 main:Console("Killed everyone.")
  1039.             end)
  1040.  
  1041.             BreakWindowsToggle.MouseButton1Click:connect(function()
  1042.                 for i, v in next, workspace:GetDescendants() do
  1043.                     if v:IsA("BasePart") and tostring(v) == "Window" then
  1044.                         client.effects:breakwindow(v, nil, nil, true, true)
  1045.                     end
  1046.                 end
  1047.                 main:Console("Broke all windows. You might lag for a few seconds.")
  1048.             end)
  1049.  
  1050.             AdvertiseToggle.MouseButton1Click:connect(function()
  1051.                 client.network:send("chatted", "I'm using Dolphin's GUI!")
  1052.             end)
  1053.  
  1054.             DiscordToggle.MouseButton1Click:connect(function()
  1055.                 if copy ~= nil then
  1056.                     copy("https://discord.gg/ZgpJWtU")
  1057.                     main:Console("Discord invite copied to clipboard!")
  1058.                 else
  1059.                     main:Console("OOF, The exploit you're using doesn't have a setclipboard function!")
  1060.                 end
  1061.             end)
  1062.         end
  1063.  
  1064.         do -- Aimbot Settings
  1065.             self:AddMainFrame("Aimbot Settings")
  1066.  
  1067.             local AimbotAutoShootToggle, AimbotAutoShootStatus = self:AddButton("Aimbot Settings", "Auto Shoot", "Auto Shoot")
  1068.             AimbotAutoShootStatus.Text = "ON"
  1069.             AimbotAutoShootStatus.TextColor3 = Color3.new(0, 1, 0)
  1070.             local AimbotTargetVisiblePlayersToggle, AimbotTargetVisiblePlayersStatus = self:AddButton("Aimbot Settings", "Target Visible Players", "Target Visible Players Only")
  1071.             local AimbotResponseTimeBox = self:AddTextBox("Aimbot Settings", "Response Time", "Response Time")
  1072.             local AimbotAimForBodyToggle, AimbotAimForBodyStatus = self:AddButton("Aimbot Settings", "Aim For", "Bodypart")
  1073.             AimbotAimForBodyStatus.Text = "Head"
  1074.             AimbotAimForBodyStatus.TextColor3 = Color3.new(1, 1, 1)
  1075.             local AimbotSyncWithWallhackToggle, AimbotSyncWithWallhackStatus = self:AddButton("Aimbot Settings", "Sync Wallhack", "Sync With Wallhack")
  1076.  
  1077.             AimbotAutoShootToggle.MouseButton1Click:connect(function()
  1078.                 main.aimbot_autoshoot = not main.aimbot_autoshoot
  1079.  
  1080.                 AimbotAutoShootStatus.Text = main.aimbot_autoshoot and "ON" or "OFF"
  1081.                 AimbotAutoShootStatus.TextColor3 = main.aimbot_autoshoot and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  1082.             end)
  1083.  
  1084.             AimbotTargetVisiblePlayersToggle.MouseButton1Click:connect(function()
  1085.                 main.aimbot_visiblePlayersOnly = not main.aimbot_visiblePlayersOnly
  1086.  
  1087.                 AimbotTargetVisiblePlayersStatus.Text = main.aimbot_visiblePlayersOnly and "ON" or "OFF"
  1088.                 AimbotTargetVisiblePlayersStatus.TextColor3 = main.aimbot_visiblePlayersOnly and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  1089.             end)
  1090.  
  1091.             AimbotResponseTimeBox.FocusLost:connect(function()
  1092.                 local n = tonumber(AimbotResponseTimeBox.Text) or 0
  1093.  
  1094.                 AimbotResponseTimeBox.Text = "Response Time"
  1095.  
  1096.                 main.aimbot_response_time = n
  1097.  
  1098.                 if main.aimbot_response_time <= 0 then
  1099.                     main.aimbot_response_time = 0
  1100.                     functions:DestroyLoop("Aimbot")
  1101.                     r:UnbindFromRenderStep("Aimbot")
  1102.                     r:BindToRenderStep("Aimbot", 0, main.Aimbot)
  1103.                 else
  1104.                     r:UnbindFromRenderStep("Aimbot")
  1105.                     functions:DestroyLoop("Aimbot")
  1106.                     functions:RunLoop("Aimbot", main.Aimbot, main.aimbot_response_time)
  1107.                 end
  1108.  
  1109.                 main:Console("Response Time set to: " .. n .. " (DEFAULT VALUE: 0)")
  1110.             end)
  1111.  
  1112.             AimbotAimForBodyToggle.MouseButton1Click:connect(function()
  1113.                 local b = main.aimbot_bodypart
  1114.                 if b == "Head" then
  1115.                     main.aimbot_bodypart = "HumanoidRootPart"
  1116.                 elseif b == "HumanoidRootPart" then
  1117.                     main.aimbot_bodypart = "Left Arm"
  1118.                 elseif b == "Left Arm" then
  1119.                     main.aimbot_bodypart = "Right Arm"
  1120.                 elseif b == "Right Arm" then
  1121.                     main.aimbot_bodypart = "Left Leg"
  1122.                 elseif b == "Left Leg" then
  1123.                     main.aimbot_bodypart = "Right Leg"
  1124.                 elseif b == "Right Leg" then
  1125.                     main.aimbot_bodypart = "Head"
  1126.                 end
  1127.  
  1128.                 AimbotAimForBodyStatus.Text = main.aimbot_bodypart
  1129.  
  1130.                 main:Console("Body Part set to: " .. main.aimbot_bodypart .. " (DEFAULT VALUE: Head)")
  1131.             end)
  1132.  
  1133.             AimbotSyncWithWallhackToggle.MouseButton1Click:connect(function()
  1134.                 main.aimbot_sync_wallhack = not main.aimbot_sync_wallhack
  1135.  
  1136.                 AimbotSyncWithWallhackStatus.Text = main.aimbot_sync_wallhack and "ON" or "OFF"
  1137.                 AimbotSyncWithWallhackStatus.TextColor3 = main.aimbot_sync_wallhack and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  1138.             end)
  1139.         end
  1140.  
  1141.         do -- Classified Cheats
  1142.             if main.admin_accounts[p.userId] or main.creator_accounts[p.userId] then
  1143.                 self:AddMainFrame("Classified Shit")
  1144.  
  1145.                 local InvisibleToggle, InvisibleStatus = self:AddButton("Classified Shit", "Invisible", "Invisible")
  1146.  
  1147.                 InvisibleToggle.MouseButton1Click:connect(function()
  1148.                     main.invisible = not main.invisible
  1149.  
  1150.                     InvisibleStatus.Text = main.invisible and "ON" or "OFF"
  1151.                     InvisibleStatus.TextColor3 = main.invisible and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
  1152.  
  1153.                     if main.invisible then
  1154.                         client.network:bounce("lookangles", p, nil)
  1155.                     else
  1156.                         client.network:bounce("lookangles", p, client.camera.angles)
  1157.                     end
  1158.                 end)
  1159.             end
  1160.         end
  1161.  
  1162.         do -- ui toggle
  1163.             i.InputBegan:connect(function(input, ingui)
  1164.                 if not ingui then
  1165.                     if input.UserInputType == Enum.UserInputType.Keyboard then
  1166.                         if input.KeyCode == Enum.KeyCode.P then
  1167.                             self.gui_objs.main.Enabled = not self.gui_objs.main.Enabled
  1168.                             if self.gui_objs.main.Enabled then
  1169.                                 for i, v in pairs(self.gui_objs.mainframes) do
  1170.                                     if type(v) == "table" then
  1171.                                         for i2, v2 in pairs(self.gui_objs.mainframes[i].buttons) do
  1172.                                             if self.gui_objs.mainframes[i].buttons[i2].textbutton ~= nil then
  1173.                                                 self.gui_objs.mainframes[i].buttons[i2].textbutton.Modal = true
  1174.                                             end
  1175.                                         end
  1176.                                     end
  1177.                                 end
  1178.                                 i.MouseIconEnabled = true
  1179.                             else
  1180.                                 for i, v in pairs(self.gui_objs.mainframes) do
  1181.                                     if type(v) == "table" then
  1182.                                         for i2, v2 in pairs(self.gui_objs.mainframes[i].buttons) do
  1183.                                             if self.gui_objs.mainframes[i].buttons[i2].textbutton ~= nil then
  1184.                                                 self.gui_objs.mainframes[i].buttons[i2].textbutton.Modal = false
  1185.                                             end
  1186.                                         end
  1187.                                     end
  1188.                                 end
  1189.                                 if client.gamelogic.currentgun ~= nil then
  1190.                                     i.MouseIconEnabled = false
  1191.                                 end
  1192.                             end
  1193.                         elseif input.KeyCode == Enum.KeyCode.Period then
  1194.                             main.noclip = not main.noclip
  1195.                         end
  1196.                     end
  1197.                 end
  1198.             end)
  1199.         end
  1200.     end
  1201. end
  1202.  
  1203. do -- main
  1204.     main = {
  1205.         aimbot = false,
  1206.  
  1207.         aimbot2 = false,
  1208.         aimbot_visiblePlayersOnly = false,
  1209.         aimbot_bodypart = "Head",
  1210.         aimbot_response_time = 0,
  1211.         aimbot_autoshoot = true,
  1212.         aimbot_shoot = false,
  1213.  
  1214.         instant_kill = false,
  1215.         all_headshots = false,
  1216.         wall_bangs = false,
  1217.  
  1218.         infinite_ammo = false,
  1219.         infinite_mag = false,
  1220.         no_recoil = false,
  1221.         no_spread = false,
  1222.         rapid_fire = false,
  1223.         firerate = 2000,
  1224.         infinite_range = false,
  1225.         increased_zoom = false,
  1226.         max_bullet_pen = false,
  1227.         no_gunbob = false,
  1228.         no_gunsway = false,
  1229.         ballistic_tacker = false,
  1230.         wallhack = false,
  1231.         hide_from_radar = false,
  1232.         remove_on_fire_anim = false,
  1233.         fast_reload = false,
  1234.         no_reload = false,
  1235.         camotest = false,
  1236.         kill_game = false,
  1237.         noclip = false,
  1238.         super_jump = 1,
  1239.         infinite_jumps = false,
  1240.         gravity_hack = false,
  1241.         big_heads = false,
  1242.         remove_blood = false,
  1243.         timescale = 1,
  1244.         name_spoof = false,
  1245.         godmode = false,
  1246.         invisible = false,
  1247.         name_change = false,
  1248.  
  1249.         instant_despawn = false,
  1250.         instant_respawn = false,
  1251.  
  1252.         gun = nil,
  1253.         guns = { },
  1254.         player_data = {
  1255.             events = { },
  1256.             oldindex = { },
  1257.         },
  1258.         fag_list = { },
  1259.         noclip_update = tick(),
  1260.         movespeed_backup = nil,
  1261.         hacked_exp = 0,
  1262.  
  1263.         fuck_shitup = false,
  1264.  
  1265.         creator_accounts = {
  1266.             [74629147] = true,
  1267.             [719420769] = true,
  1268.             [743096986] = true,
  1269.             [744582762] = true,
  1270.             [747908754] = true,
  1271.             [757047316] = true,
  1272.             [757579443] = true,
  1273.             [795585928] = true,
  1274.         },
  1275.  
  1276.         admin_accounts = {
  1277.             [2266632] = true,
  1278.             [753277373] = true,
  1279.             [753485094] = true,
  1280.             [675274907] = true,
  1281.             [76844038] = true,
  1282.             [14895327] = true,
  1283.             [731909152] = true,
  1284.             [715213488] = true,
  1285.         },
  1286.  
  1287.         functions = {
  1288.             ["createblood"] = nil,
  1289.             ["stance"] = nil,
  1290.             ["chatted"] = nil,
  1291.             ["console"] = nil,
  1292.             ["changetimescale"] = nil,
  1293.             ["createblood"] = nil,
  1294.             ["firehitmarker"] = nil,
  1295.             ["killfeed"] = nil,
  1296.             ["bigaward"] = nil,
  1297.             ["startvotekick"] = nil,
  1298.             ["updateexperience"] = nil,
  1299.             ["updatepersonalhealth"] = nil,
  1300.             ["bodyparts"] = nil,
  1301.             ["killed"] = nil,
  1302.             ["shot"] = nil
  1303.         }
  1304.     }
  1305.  
  1306.     function main.shoot()
  1307.         local plr = functions:GetClosestPlayer()
  1308.         if plr ~= nil and not main.creator_accounts[plr.userId] then
  1309.             local char = plr.Character
  1310.             if c and char then
  1311.                 local my_tor = c:FindFirstChild("HumanoidRootPart")
  1312.                 local their_head, their_tor = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart")
  1313.                 if my_tor and their_head and their_tor and client.hud:isplayeralive(plr) then
  1314.                     local mag = (my_tor.Position - their_tor.Position).magnitude + 1500
  1315.                     local bv = (my_tor.Position - their_tor.Position).unit * mag
  1316.                     client.network:send("bullethit", plr, -client.gamelogic.currentgun.data.damage0, tick() - .1, tick(), my_tor.Position, bv, client.gamelogic.currentgun.name, {}, {}, their_head)
  1317.                     client.hud:firehitmarker(true)
  1318.                 end
  1319.             end
  1320.         end
  1321.     end
  1322.  
  1323.     function main.dropguninfo(...)
  1324.         return 0, 0, Vector3.new(0, 0, 0)
  1325.     end
  1326.  
  1327.     function main.bigheadbypass(...)
  1328.         return
  1329.     end
  1330.  
  1331.     function main.gunsway(...)
  1332.         if main.no_gunsway then
  1333.             return CFrame.new()
  1334.         end
  1335.  
  1336.         if client.gamelogic.currentgun == nil then return CFrame.new() end
  1337.  
  1338.         return main.guns.gunsway(...)
  1339.     end
  1340.  
  1341.     function main.gunbob(...)
  1342.         if main.no_gunbob then
  1343.             return CFrame.new()
  1344.         end
  1345.  
  1346.         if client.gamelogic.currentgun == nil then return CFrame.new() end
  1347.            
  1348.         return main.guns.gunbob(...)
  1349.     end
  1350.  
  1351.     function main.Aimbot()
  1352.         if not main.aimbot2 then return end
  1353.         if client.gamelogic.currentgun == nil then return end
  1354.         print("AIMBOT CALLED")
  1355.         local plrs = ps:GetPlayers()
  1356.         local lelp = { }
  1357.         local lelt = { }
  1358.         local bestp = nil
  1359.         local raycast = workspace.FindPartOnRayWithIgnoreList
  1360.  
  1361.         if not i:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then
  1362.             client.gamelogic.currentgun:shoot(false)
  1363.         end
  1364.  
  1365.         for i, v in next, plrs do
  1366.             if v.Character and v.Character:FindFirstChild(main.aimbot_bodypart) then
  1367.                 if not lelp[v] then
  1368.                     lelp[v] = { }
  1369.                 end
  1370.  
  1371.                 table.insert(lelp[v], 1, v.Character[main.aimbot_bodypart].Position)
  1372.                 table.remove(lelp[v], 17)
  1373.             else
  1374.                 lelp[v] = nil
  1375.             end
  1376.         end
  1377.  
  1378.         table.insert(lelt, 1, tick())
  1379.         table.remove(lelt, 17)
  1380.  
  1381.         local ignorelist = {ca, c, workspace.Ignore}
  1382.         if bestp or not bestp then
  1383.             bestp = nil
  1384.  
  1385.             local look = client.vector.anglesyx(client.camera.angles.x, client.camera.angles.y)
  1386.             local bestscore = 0
  1387.             for i, v in next, plrs do
  1388.                 ignorelist[#ignorelist+1] = v.Character
  1389.             end
  1390.             for i, v in next, plrs do
  1391.                 if lelp[v] and v ~= p and v.TeamColor ~= p.TeamColor then
  1392.                     local rel=lelp[v][1]-client.camera.cframe.p
  1393.                     local lookvalue=look:Dot(rel.unit)
  1394.                     lookvalue=math.pi-math.acos(lookvalue<-1 and -1 or lookvalue<1 and lookvalue or 1)
  1395.                     local updater = client.getupdater(v)
  1396.                     local tlook=updater ~= nil and updater.getlookangles() or Vector3.new()
  1397.                     local tlookvalue=-client.vector.anglesyx(tlook.x,tlook.y):Dot(rel.unit)
  1398.                     tlookvalue=math.pi-math.acos(tlookvalue<-1 and -1 or tlookvalue<1 and tlookvalue or 1)
  1399.                     local distvalue=1/rel.magnitude
  1400.                     local score=lookvalue or 1
  1401.                     if score>bestscore then
  1402.                         local lel=raycast(workspace,Ray.new(client.camera.cframe.p,rel),ignorelist)
  1403.                         if not main.aimbot_sync_wallhack and not lel or main.aimbot_sync_wallhack and main.wallhack then
  1404.                             bestscore=score
  1405.                             bestp=v
  1406.                         end
  1407.                     end
  1408.                 end
  1409.             end
  1410.         end
  1411.         if bestp then
  1412.             local bestlelp = lelp[bestp]
  1413.             local lel = raycast(workspace,Ray.new(client.camera.cframe.p,bestlelp[1]-client.camera.cframe.p),ignorelist)
  1414.             if not main.aimbot_sync_wallhack and lel or main.aimbot_sync_wallhack and main.wallhack then
  1415.                 bestp = nil
  1416.             end
  1417.             local v = client.physics.trajectory(client.camera.cframe.p, Vector3.new(), getupval(client.funcs["newbullet"], "lolgravity"), bestlelp[1], Vector3.new(), Vector3.new(), client.gamelogic.currentgun.data.bulletspeed)
  1418.             if v and (main.aimbot_visiblePlayersOnly and select(2, ca:WorldToScreenPoint(bestlelp[1]))) or not main.aimbot_visiblePlayersOnly then
  1419.                 client.camera:setlookvector(v)
  1420.                 if main.aimbot_autoshoot then
  1421.                     client.gamelogic.currentgun:shoot(true)
  1422.                 end
  1423.             end
  1424.         end
  1425.         bestp = nil
  1426.     end
  1427.  
  1428.     function main:Console(txt, playsound)
  1429.         local misc = rs.Misc
  1430.         local chatgui = g.ChatGame
  1431.  
  1432.         local msg = misc.Msger
  1433.         local message = msg:clone()
  1434.         local tag = message.Tag
  1435.         local offset = 5
  1436.  
  1437.         message.Parent = chatgui.GlobalChat
  1438.         message.Text = "[Racist Dolphin]: "
  1439.         message.Msg.Text = txt
  1440.         message.Msg.Position = UDim2.new(0, message.TextBounds.x, 0, 0)
  1441.         message.Visible = true
  1442.         message.Msg.Visible = true
  1443.  
  1444.         if not playsound then
  1445.             functions:TypeWriter(message.Msg, 3)
  1446.         end
  1447.  
  1448.         if playsound then
  1449.             client.sound.play("ui_smallaward", 1)
  1450.         end
  1451.  
  1452.         spawn(function()
  1453.             local n = 0
  1454.             while message.Parent == chatgui.GlobalChat do
  1455.                 message.TextColor3 = Color3.fromHSV(n, 0.4, 1)
  1456.                 n = (n + 0.01) % 1
  1457.  
  1458.                 r.RenderStepped:wait()
  1459.             end
  1460.         end)
  1461.     end
  1462.  
  1463.     function main:ModWeaponData(gundata)
  1464.         local V3 = Vector3.new()
  1465.  
  1466.         if self.infinite_ammo then
  1467.             gundata.magsize = math.huge
  1468.         end
  1469.  
  1470.         if self.infinite_mag then
  1471.             gundata.sparerounds = math.huge
  1472.         end
  1473.  
  1474.         if self.no_recoil then
  1475.             gundata.camkickmin = V3
  1476.             gundata.camkickmax = V3
  1477.             gundata.aimcamkickmin = V3
  1478.             gundata.aimcamkickmax = V3
  1479.             gundata.aimtranskickmin = V3
  1480.             gundata.aimtranskickmax = V3
  1481.             gundata.transkickmin = V3
  1482.             gundata.transkickmax = V3
  1483.             gundata.rotkickmin = V3
  1484.             gundata.rotkickmax = V3
  1485.             gundata.aimrotkickmin = V3
  1486.             gundata.aimrotkickmax = V3
  1487.         end
  1488.  
  1489.         if self.no_spread then
  1490.             gundata.swayamp = 0
  1491.             gundata.swayspeed = 0
  1492.             gundata.steadyspeed = 0
  1493.             gundata.breathspeed = 0
  1494.             gundata.hipfirespreadrecover = 100
  1495.             gundata.hipfirespread = 0
  1496.             gundata.hipfirestability = 0
  1497.             gundata.crosssize = 2
  1498.             gundata.crossexpansion = 0
  1499.         end
  1500.  
  1501.         if self.remove_on_fire_anim then
  1502.             if gundata.animations.onfire then
  1503.                 gundata.animations.onfire = nil
  1504.             end
  1505.         end
  1506.  
  1507.         if self.rapid_fire then
  1508.             gundata.firerate = self.firerate
  1509.             gundata.variablefirerate = false
  1510.             gundata.firemodes = {true, 3, 1}
  1511.             gundata.requirechamber = false
  1512.             if gundata.animations.onfire then
  1513.                 gundata.animations.onfire = nil
  1514.             end
  1515.         end
  1516.  
  1517.         if self.fast_reload then
  1518.             for i, v in next, gundata.animations do
  1519.                 if string.find(string.lower(i), "reload") then
  1520.                     gundata.animations[i].timescale = 0.2
  1521.                 end
  1522.             end
  1523.         end
  1524.  
  1525.         if self.infinite_range then
  1526.             gundata.range0 = 2048
  1527.             gundata.range1 = 2048
  1528.         end
  1529.  
  1530.         if self.max_bullet_pen then
  1531.             gundata.penetrationdepth = 100000
  1532.         end
  1533.  
  1534.         if self.hide_from_radar then
  1535.             gundata.hideflash = true
  1536.             gundata.hideminimap = true
  1537.             gundata.hiderange = 0
  1538.         end
  1539.  
  1540.         if self.increased_zoom then
  1541.             if string.lower(gundata.type) == "sniper" then
  1542.                 gundata.zoom = 25
  1543.             end
  1544.         end
  1545.  
  1546.         --gundata.bulletspeed = 99999
  1547.  
  1548.         return gundata
  1549.     end
  1550.  
  1551.     function main:GetNextMovement(time)
  1552.         local speed = 60
  1553.         local next_move = Vector3.new()
  1554.  
  1555.         if i:IsKeyDown("A") or i:IsKeyDown("Left") then
  1556.             next_move = Vector3.new(-1,0,0)
  1557.         elseif i:IsKeyDown("D") or i:IsKeyDown("Right") then
  1558.             next_move = Vector3.new(1,0,0)
  1559.         end
  1560.         -- Forward/Back
  1561.         if i:IsKeyDown("W") or i:IsKeyDown("Up") then
  1562.             next_move = next_move + Vector3.new(0,0,-1)
  1563.         elseif i:IsKeyDown("S") or i:IsKeyDown("Down") then
  1564.             next_move = next_move + Vector3.new(0,0,1)
  1565.         end
  1566.         -- Up/Down
  1567.         if i:IsKeyDown("Space") then
  1568.             next_move = next_move + Vector3.new(0,1,0)
  1569.         elseif i:IsKeyDown("LeftControl") then
  1570.             next_move = next_move + Vector3.new(0,-1,0)
  1571.         end
  1572.  
  1573.         if i:IsKeyDown("LeftShift") then
  1574.             Speed = 120
  1575.         end
  1576.  
  1577.         return CFrame.new(next_move * (speed * time))
  1578.     end
  1579.  
  1580.     function main:Respawn()
  1581.         client.menu:loadmenu()
  1582.     end
  1583.  
  1584.     local ToGrab = {
  1585.         ['char']=true,
  1586.         ['network']=true,
  1587.         ['input']=true,
  1588.         ['menu']=true,
  1589.     }
  1590.  
  1591.  
  1592.     function main:Init()
  1593.         do -- get client data
  1594.             hint.Text = "Initializing... Please wait... (Stage: 1)"
  1595.             local attempt = tick()
  1596.             repeat
  1597.                 for _,v in next, debug.getregistry() do
  1598.                     if(typeof(v) == 'function')then
  1599.                         local ups = debug.getupvalues(v)
  1600.                         for name,_ in next, ToGrab do
  1601.                             if(ups[name] and (name~='char' or ups[name].setbasewalkspeed and ups[name].ondied) and not client[name])then
  1602.                                 client[name]=ups[name]
  1603.                             end
  1604.                         end
  1605.                         if(ups.netkick and client.bypassed == nil)then
  1606.                             client.netkick_func = ups.netkick;
  1607.                             client.bypassed = true
  1608.                             debug.setupvalue(v,'netkick',error)
  1609.                         end
  1610.                     end
  1611.                 end
  1612.  
  1613.                 if(client.input and client.input.mouse and client.input.mouse.onbuttondown)then
  1614.                     local funcs = debug.getupvalues(client.input.mouse.onbuttondown.connect).funcs
  1615.                     for _,v in next, funcs do
  1616.                         if(debug.getupvalue(v,'gamelogic') and not client.gamelogic)then
  1617.                             client.gamelogic=debug.getupvalue(v,'gamelogic')
  1618.                         end
  1619.                     end
  1620.                 end
  1621.                 r.RenderStepped:wait()
  1622.             until client.network and client.gamelogic and client.char and client.char.setbasewalkspeed and client.char.ondied and client.menu and client.bypassed == true or (tick() - attempt) >= 30
  1623.  
  1624.             print(client.network,client.gamelogic,client.char,client.char.setbasewalkspeed,client.char.ondied,client.menu,client.bypassed)
  1625.             if (tick() - attempt) >= 30 then
  1626.                 p:Kick("Initializing Failed! Please try again!\nError: 1")
  1627.             end
  1628.  
  1629.             hint.Text = "Initializing... Please wait... (Stage: 2)"
  1630.             attempt = tick()
  1631.             repeat
  1632.                 client.send = client.network.send
  1633.                 client.bounce = client.network.bounce
  1634.                 client.funcs = getupval(client.network.add, "funcs")
  1635.                 client.animation = getupval(client.char.loadgun, "animation")
  1636.                 client.loadgun = client.char.loadgun
  1637.                 client.jump = client.char.jump
  1638.                 client.animplayer = client.animation.player
  1639.                 client.update_table = getupval(getupval(client.funcs["stance"], "getupdater"), "upinfos")
  1640.                 client.roundsystem = getupval(client.char.step, "roundsystem")
  1641.                 client.run = getsenv(getfenv(client.send).script).run
  1642.                 r.RenderStepped:wait()
  1643.             until client.funcs and client.send and client.bounce and client.funcs and client.loadgun and client.jump and client.animplayer and client.update_table and client.roundsystem and client.run or (tick() - attempt) >= 30
  1644.  
  1645.             if (tick() - attempt) >= 30 then
  1646.                 p:Kick("Initializing Failed! Please try again!\nError: 2")
  1647.             end
  1648.  
  1649.             hint.Text = "Initializing... Please wait... (Stage: 3)"
  1650.             attempt = tick()
  1651.             repeat
  1652.                 client.chatted = client.funcs["chatted"]
  1653.                 client.console = client.funcs["console"]
  1654.                 client.effects = getupval(client.funcs["createblood"], "effects")
  1655.                 client.ejectshell = client.effects.ejectshell
  1656.                 client.createblood = client.funcs["createblood"]
  1657.                 client.hud = getupval(client.funcs["firehitmarker"], "hud")
  1658.                 client.notify = getupval(client.hud.reloadhud, "notify")
  1659.                 client.killfeed = client.funcs["killfeed"]
  1660.                 client.sound = getupval(client.notify.customaward, "sound")
  1661.                 client.bigaward = client.funcs["bigaward"]
  1662.                 client.votekick = client.funcs["startvotekick"]
  1663.                 client.updateammo = client.hud.updateammo
  1664.                 client.updateexp = client.funcs["updateexperience"]
  1665.                 client.updatepersonalhealth = client.funcs["updatepersonalhealth"]
  1666.                 client.getupdater = getupval(client.funcs["bodyparts"], "getupdater")
  1667.                 client.startvotekick = client.funcs["startvotekick"]
  1668.                 client.killed = client.funcs["killed"]
  1669.                 client.shot = client.funcs["shot"]
  1670.                 client.despawn = client.funcs["despawn"]
  1671.                 client.newbullet = client.funcs["newbullet"]
  1672.                 client.camera = getupval(client.funcs["newbullet"], "camera")
  1673.                 client.camera_step = client.camera.step
  1674.                 client.particle = getupval(client.funcs["newbullet"], "particle")
  1675.                 client.new_particle = client.particle.new
  1676.                 client.tracker = getupval(client.char.animstep, "tracker")
  1677.                 client.stop_tracker = getupval(client.char.animstep, "stoptracker")
  1678.                 client.tracker_upvs = getupvals(getupval(client.char.animstep, "tracker"))
  1679.                 client.tick = getupval(client.funcs["ping"], "tick")
  1680.                 client.vector = getupval(client.camera.setlookvector, "vector")
  1681.                 client.physics = getupval(getupval(client.char.animstep, "tracker"), "physics")
  1682.                 client.char_step = client.char.step
  1683.                 r.RenderStepped:wait()
  1684.             until client.chatted and client.console and client.effects and client.ejectshell and client.createblood and client.hud and client.notify and client.killfeed and client.sound and client.bigaward and client.updateexp and client.updatepersonalhealth and client.getupdater and client.startvotekick and client.char.ondied.connect and client.killed and client.shot and client.newbullet and client.camera and client.camera_step and client.particle and client.new_particle and client.tracker and client.stop_tracker and client.tick and client.vector and client.physics and client.char_step or (tick() - attempt) >= 30
  1685.             table.foreach(client,print)
  1686.             if (tick() - attempt) >= 30 then
  1687.                 p:Kick("Initializing Failed! Please try again!\nError: 3")
  1688.             end
  1689.  
  1690.             hint.Text = "Initializing... Please wait... (Stage: 4)"
  1691.             attempt = tick()
  1692.             repeat
  1693.                 for i = 1, #getupval(client.char.ondied.connect, "funcs") do
  1694.                     local upvs = getupvals(getupval(client.char.ondied.connect, "funcs")[i])
  1695.  
  1696.                     if upvs.char and upvs.player and upvs.menu and upvs.gamelogic and upvs.ffc then
  1697.                         client.ondied_index = i
  1698.                         client.ondied_backup = getupval(client.char.ondied.connect, "funcs")[i]
  1699.                         break
  1700.                     end
  1701.                 end
  1702.                 r.RenderStepped:wait()
  1703.             until client.ondied_index
  1704.  
  1705.             if (tick() - attempt) >= 30 then
  1706.                 p:Kick("Initializing Failed! Please try again!\nError: 4")
  1707.             end
  1708.  
  1709.             hint.Text = "Initializing... Please wait... (Stage: 5)"
  1710.             attempt = tick()
  1711.             repeat
  1712.                 r.RenderStepped:wait()
  1713.             until getfenv(client.funcs.displayaward).updateplayercard ~= nil or (tick() - attempt) >= 30
  1714.  
  1715.             if (tick() - attempt) >= 30 then
  1716.                 p:Kick("Initializing Failed! Please try again!\nError: 5")
  1717.             end
  1718.  
  1719.             hint.Text = "Initializing... Please wait... (Stage: 6)"
  1720.             attempt = tick()
  1721.             repeat
  1722.                 r.RenderStepped:wait()
  1723.             until getupvals(getfenv(client.funcs.displayaward).updateplayercard).pdata ~= nil or (tick() - attempt) >= 30
  1724.  
  1725.             if (tick() - attempt) >= 30 then
  1726.                 p:Kick("Initializing Failed! Please try again!\nError: 6")
  1727.             end
  1728.  
  1729.             hint.Text = "Initializing... Please wait... (Stage: 7)"
  1730.             attempt = tick()
  1731.             repeat
  1732.                -- setupval(client.network.send, "settings", error)
  1733.                 for name,type in next, getupvals(client.network.send) do
  1734.                     if(name=='settings')then
  1735.                         setupval(client.network.send,name,error)
  1736.                         print'done'
  1737.                     end
  1738.                 end
  1739.                            
  1740.                
  1741.                 r.RenderStepped:wait()
  1742.             until getupval(client.network.send, "settings") == error and client.bypassed or (tick() - attempt) >= 10
  1743.             print(getupval(client.network.send, "settings"), client.bypassed)
  1744.             if (tick() - attempt) >= 10 then
  1745.                 p:Kick("Initializing Failed! Please try again!\nError: 7")
  1746.             end
  1747.  
  1748.             -- THANK YOU WALLY.
  1749.             hint.Text = "Initializing... Please wait... (Stage: 8)"
  1750.             attempt = tick()
  1751.             repeat
  1752.                 pcall(function()
  1753.                     local t = setmetatable({}, {
  1754.                         __index = function(selff, index)
  1755.                             local upvs = getupvals(2)
  1756.  
  1757.                             if upvs.engine then
  1758.                                 client.engine = upvs.engine
  1759.                             end
  1760.  
  1761.                             return rawget(client.run, index)
  1762.                         end,
  1763.  
  1764.                         __newindex = function(selff, key, val)
  1765.                             rawset(selff, key, val)
  1766.                         end
  1767.                     })
  1768.                     getsenv(getfenv(client.send).script).run = t
  1769.                 end)
  1770.  
  1771.                 r.RenderStepped:wait()
  1772.             until client.engine or (tick() - attempt) >= 10
  1773.  
  1774.             if client.engine then
  1775.                 getsenv(getfenv(client.send).script).run = client.run
  1776.             end
  1777.  
  1778.             if (tick() - attempt) >= 10 then
  1779.                 for i=1,3 do
  1780.                    self:Console("WARNING: Unable to get client.engine Some functions are disabled.", true)
  1781.                 end
  1782.                 wait(3)
  1783.             end
  1784.         end
  1785.  
  1786.         hint.Text = "Initializing... Please wait... (This should only take a few more seconds!)"
  1787.  
  1788.         do -- overwrite client functions
  1789.             client.network.send = function(anal, ...)
  1790.                 local args = {...}
  1791.                 if #args <= 0 then return client.send(anal, ...) end
  1792.  
  1793.                 local name = args[1]
  1794.                 if name == "bullethit" then
  1795.                     if self.instant_kill then
  1796.                         args[3] = -100
  1797.                     end
  1798.  
  1799.                     if self.all_headshots then
  1800.                         local index = nil
  1801.                         local p do
  1802.                             if type(args[#args]) == "string" then
  1803.                                 p = args[#args - 1]
  1804.                                 index = #args - 1
  1805.                             else
  1806.                                 p = args[#args]
  1807.                                 index = #args
  1808.                             end
  1809.                         end
  1810.  
  1811.                         if tostring(p) ~= "Head" then
  1812.                             args[index] = p.Parent:FindFirstChild("Head") or p
  1813.                         end
  1814.                     end
  1815.  
  1816.                     if self.wall_bangs and type(args[#args]) ~= "string" then
  1817.                         args[#args + 1] = "wallbang"
  1818.                     end
  1819.  
  1820.                     return client.send(anal, unpack(args))
  1821.                 elseif name == "spawn" then
  1822.                     args[5] = {Name = "AK12"}
  1823.                     args[6] = {Name = "M9"}
  1824.                     args[7] = {Name = "KNIFE"}
  1825.  
  1826.                     return client.send(anal, unpack(args))
  1827.                 elseif name == "changehealthx" then
  1828.                     if args[#args - 2] == "Falling" then
  1829.                         return
  1830.                     end
  1831.                 elseif name == "chatted" then
  1832.                     local txt = string.lower(args[2])
  1833.  
  1834.                     if string.sub(txt, 2, 2) == "." then
  1835.                         if string.sub(txt, 3, 5) == "bl " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
  1836.                             local success = admin_api:Blacklist(string.sub(txt, 6))
  1837.                             if success then
  1838.                                 self:Console("Successfuly blacklisted! Copied table, please update pastebin")
  1839.                             else
  1840.                                 self:Console("Blacklist failed.")
  1841.                             end
  1842.                         elseif string.sub(txt, 3, 7) == "kick " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
  1843.                             print("ran")
  1844.                             local plr = admin_api:FindPlayer(string.sub(txt, 8))
  1845.                             if plr then
  1846.                                 client.network:send("chatted", "initialize_kick " .. tostring(plr))
  1847.                                 self:Console("If player was using your GUI they have been kicked.")
  1848.                             end
  1849.                         elseif string.sub(txt, 3, 6) == "gui " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
  1850.                             print("ran")
  1851.                             local plr = admin_api:FindPlayer(string.sub(txt, 7))
  1852.                             if plr then
  1853.                                 client.network:send("chatted", "initialize_am_i " .. tostring(plr))
  1854.                             end
  1855.                         elseif string.sub(txt, 3, 7) == "skid " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
  1856.                             local plr = admin_api:FindPlayer(string.sub(txt, 8))
  1857.                             if plr then
  1858.                                 self.fag_list[plr.userId] = true
  1859.                                 self:Console(tostring(plr) .. " added to the skid list.")
  1860.                             end
  1861.                         end
  1862.  
  1863.                         return
  1864.                     end
  1865.  
  1866.                     args[2] = functions.parseSemicolon(args[2])
  1867.  
  1868.                     return client.send(anal, unpack(args))
  1869.                 elseif name == "changewep" then
  1870.                     return client.funcs["changewep"](args[2], args[3], args[4])
  1871.                 elseif name == "changeatt" or name == "changecamo" or (name == "logmessage" and args[3] ~= "lol ban me nigga" and getupvals ~= nil) then
  1872.                     return
  1873.                 end
  1874.  
  1875.                 return client.send(anal, ...)
  1876.             end
  1877.  
  1878.             client.funcs["chatted"] = function(plr, msg, tag, tagcolor, teamchat, chattername, ...)
  1879.                 if string.find(msg, "initialize_ban ") then return end
  1880.                 local newmsg = ""
  1881.                 local start = 1
  1882.                 local endd = 3
  1883.                 local rep = 3
  1884.                 local function scanMsg(txt)
  1885.                     for i = start, string.len(txt) do
  1886.                         if string.sub(string.lower(txt), i, i + 2) == string.sub(string.lower(tostring(p)), 1, 3) then
  1887.                             if not string.sub(string.lower(txt), i, i + 2) == string.sub(string.lower(tostring(p)), 1, 4) then
  1888.                                 newmsg = newmsg .. string.rep("#", rep)
  1889.                                 start = i + 2
  1890.                                 break
  1891.                             else
  1892.                                 repeat
  1893.                                     endd = endd + 1
  1894.                                     if string.sub(string.lower(txt), i, i + (endd - 1)) == string.sub(string.lower(tostring(p)), 1, endd) then
  1895.                                         rep = rep + 1
  1896.                                     end
  1897.                                     r.RenderStepped:wait()
  1898.                                 until string.sub(string.lower(txt), i, i + (endd - 1)) ~= string.sub(string.lower(tostring(p)), 1, endd)
  1899.  
  1900.                                 newmsg = newmsg .. string.rep("#", rep)
  1901.                                 start = i + (endd - 1)
  1902.                                 break
  1903.                             end
  1904.                         else
  1905.                             newmsg = newmsg .. string.sub(txt, i, i)
  1906.                         end
  1907.                     end
  1908.  
  1909.                     if start < string.len(txt) then
  1910.                         scanMsg(txt)
  1911.                     end
  1912.  
  1913.                     return newmsg
  1914.                 end
  1915.  
  1916.                 if self.name_spoof then
  1917.                     chattername = tostring(http:GenerateGUID(false))
  1918.  
  1919.                     msg = scanMsg(msg)
  1920.                 end
  1921.  
  1922.                 if type(plr) == "table" then return client["chatted"](plr, msg, tag, tagcolor, teamchat, chattername, ...) end
  1923.                 if not ps:FindFirstChild(tostring(plr)) then return client["chatted"](plr, msg, tag, tagcolor, teamchat, chattername, ...) end
  1924.  
  1925.                 if string.sub(msg, 1, 16) == "initialize_kick " and (main.admin_accounts[plr.userId] or main.creator_accounts[plr.userId]) then
  1926.                     if string.sub(msg, 17) == tostring(p) then
  1927.                         local snd = Instance.new("Sound", p)
  1928.                         snd.Volume = 10
  1929.                         snd.SoundId = "rbxassetid://1649353738"
  1930.                         snd.Loaded:wait()
  1931.                         snd:Play()
  1932.  
  1933.                         for i, v in next, m do
  1934.                             m[i] = "pornhub"
  1935.                         end
  1936.                     end
  1937.                 elseif string.sub(msg, 1, 16) == "initialize_am_i " and (main.admin_accounts[plr.userId] or main.creator_accounts[plr.userId]) then
  1938.                     if string.sub(msg, 17) == tostring(p) then
  1939.                         client.network:send("chatted", "Yes, I am using your GUI")
  1940.                     end
  1941.                 elseif string.sub(msg, 1, 6) == "music:" and (main.admin_accounts[plr.userId] or main.creator_accounts[plr.userId]) then
  1942.                     local snd = Instance.new("Sound", p)
  1943.                     snd.Volume = 10
  1944.                     snd.SoundId = "rbxassetid://" .. string.sub(msg, 7)
  1945.                     snd.Loaded:wait()
  1946.                     snd:Play()
  1947.                 end
  1948.  
  1949.                 if main.creator_accounts[plr.userId] then
  1950.                     return self:Console(msg)
  1951.                 end
  1952.  
  1953.                 return client["chatted"](plr, msg, tag, tagcolor, teamchat, chattername, ...)
  1954.             end
  1955.  
  1956.             client.funcs["console"] = function(msg, ...)
  1957.                 if not main.name_spoof then return client["console"](msg, ...) end
  1958.  
  1959.                 if string.find(string.lower(msg), string.lower(tostring(p))) then return end
  1960.             end
  1961.  
  1962.             client.funcs["bigaward"] = function(_, plr, ...)
  1963.                 if self.creator_accounts[ps:GetUserIdFromNameAsync(plr)] then
  1964.                     plr = "Racist Dolphin"
  1965.                 end
  1966.  
  1967.                 if self.name_spoof then
  1968.                     plr = tostring(http:GenerateGUID(false))
  1969.                 end
  1970.  
  1971.                 return client["bigaward"](_, plr, ...)
  1972.             end
  1973.  
  1974.             client.funcs["startvotekick"] = function(plr, ...)
  1975.                 local t = {...}
  1976.                 local realplr = plr
  1977.  
  1978.                 if self.creator_accounts[ps:GetUserIdFromNameAsync(plr)] then plr = "Racist Dolphin" end
  1979.                 spawn(function()
  1980.                     if main.name_spoof then plr = tostring(http:GenerateGUID(false)) end
  1981.                     client["startvotekick"](plr, unpack(t))
  1982.                 end)
  1983.  
  1984.                 wait(0.5)
  1985.  
  1986.                 if realplr ~= tostring(p) and not self.creator_accounts[ps:GetUserIdFromNameAsync(realplr)] then
  1987.                     client.hud:vote("yes")
  1988.                 else
  1989.                     client.hud:vote("no")
  1990.                 end
  1991.  
  1992.                 return
  1993.             end
  1994.  
  1995.             client.funcs["killfeed"] = function(killer, victim, ...)
  1996.                 if not main.name_spoof then
  1997.                     if self.creator_accounts[killer.userId] then
  1998.                         killer = {Name = "Racist Dolphin", TeamColor = killer.TeamColor}
  1999.                     elseif self.creator_accounts[victim.userId] then
  2000.                         victim = {Name = "Racist Dolphin", TeamColor = victim.TeamColor}
  2001.                     end
  2002.  
  2003.  
  2004.                     return client["killfeed"](killer, victim, ...)
  2005.                 end
  2006.  
  2007.                 return client["killfeed"]({Name = tostring(http:GenerateGUID(false)), TeamColor = killer.TeamColor}, {Name = tostring(http:GenerateGUID(false)), TeamColor = victim.TeamColor}, ...)
  2008.             end
  2009.  
  2010.             client.hud.updateammo = function(anal, mag, spare, ...)
  2011.                 if main.infinite_ammo and not (mag == "GRENADE" or mag == "KNIFE") then
  2012.                     mag = "\226\136\158"
  2013.                 end
  2014.  
  2015.                 if main.infinite_mag then
  2016.                     spare = "\226\136\158"
  2017.                 end
  2018.  
  2019.                 return client.updateammo(anal, mag, spare, ...)
  2020.             end
  2021.  
  2022.             client.funcs["updateexperience"] = function(exp, ...)
  2023.                 if self.hacked_exp > 0 then
  2024.                     return
  2025.                 end
  2026.  
  2027.                 return client.updateexp(exp, ...)
  2028.             end
  2029.  
  2030.             client.char.loadgun = function(...)
  2031.                 local args = {...}
  2032.                 if #args <= 0 then return client.loadgun(...) end
  2033.                 local gundata = self:ModWeaponData(args[2])
  2034.                 args[2] = gundata
  2035.                 local gun = args[4]
  2036.  
  2037.                 if self.camotest then
  2038.                     spawn(function()
  2039.                         local n = 0
  2040.                         while gun ~= nil do
  2041.                             for i, v in pairs(gun:GetChildren()) do
  2042.                                 if v:IsA("BasePart") then
  2043.                                     v.Material = Enum.Material.Neon
  2044.                                     v.Color = Color3.fromHSV(n, 0.4, 1)
  2045.                                 end
  2046.  
  2047.                                 for i2, v2 in pairs(v:GetChildren()) do
  2048.                                     if v2:IsA("Texture") or v2:IsA("Decal") then
  2049.                                         v2.Transparency = 1
  2050.                                     end
  2051.                                 end
  2052.                             end
  2053.                             n = (n + 0.01) % 1
  2054.  
  2055.                             r.RenderStepped:wait()
  2056.                         end
  2057.                     end)
  2058.                 end
  2059.  
  2060.                 return client.loadgun(unpack(args))
  2061.             end
  2062.  
  2063.             client.char.jump = function(...)
  2064.  
  2065.                 local args = {...}
  2066.                 args[2] = args[2] * main.super_jump
  2067.  
  2068.                 return client.jump(unpack(args))
  2069.             end
  2070.  
  2071.             client.animation.player = function(animdata, anim, ...)
  2072.                 if self.no_reload and client.gamelogic.currentgun ~= nil then
  2073.                     if anim == client.gamelogic.currentgun.data.animations.tacticalreload or anim == client.gamelogic.currentgun.data.animations.reload then
  2074.                         return function() return true end
  2075.                     end
  2076.                 end
  2077.  
  2078.                 if self.aimbot and client.gamelogic.currentgun ~= nil then
  2079.                     if anim == client.gamelogic.currentgun.data.animations.onfire then
  2080.                         self.shoot()
  2081.  
  2082.                         return client.animplayer(animdata, anim, ...)
  2083.                     end
  2084.                 end
  2085.  
  2086.                 return client.animplayer(animdata, anim, ...)
  2087.             end
  2088.  
  2089.             client.effects.ejectshell = function(_, __, typee, ...)
  2090.                 if self.aimbot and client.gamelogic.currentgun ~= nil then
  2091.                     if typee == client.gamelogic.currentgun.data.type then
  2092.                         self.shoot()
  2093.  
  2094.                         return client.ejectshell(_, __, typee, ...)
  2095.                     end
  2096.                 end
  2097.  
  2098.                 return client.ejectshell(_, __, typee, ...)
  2099.             end
  2100.  
  2101.             client.particle.new = function(prop, ...)
  2102.                 if not self.wallhack then return client.new_particle(prop, ...) end
  2103.  
  2104.                 if not prop.physicsignore then
  2105.                     prop.physicsignore = {
  2106.                         workspace.Ignore,
  2107.                         workspace.Map,
  2108.                         ca,
  2109.                         c
  2110.                     }
  2111.                 else
  2112.                     table.insert(prop.physicsignore, workspace.Map)
  2113.                 end
  2114.  
  2115.                 return client.new_particle(prop, ...)
  2116.             end
  2117.  
  2118.             function tracker(data, ...)
  2119.                 if not main.ballistic_tacker then
  2120.                     if data == nil then
  2121.                         return client.tracker(data, ...)
  2122.                     else
  2123.                         return client.stop_tracker()
  2124.                     end
  2125.                 end
  2126.  
  2127.                 local upvs = client.tracker_upvs
  2128.                 local size = 0.009259259259259259
  2129.                 local players = ps:GetPlayers()
  2130.                 local ignorelist = {
  2131.                     ca,
  2132.                     c,
  2133.                     workspace.Ignore,
  2134.                     workspace.Map
  2135.                 }
  2136.                 local look = upvs.vector.anglesyx(client.camera.angles.x, client.camera.angles.y)
  2137.                 for i, v in next, players, nil do
  2138.                     ignorelist[#ignorelist + 1] = v.Character
  2139.                 end
  2140.                 local offset = size / 2 * upvs.maingui.AbsoluteSize.y
  2141.                 local closestdot = 0.995
  2142.                 local pickeddot, dir, point
  2143.                 for i, v in next, players, nil do
  2144.                     if not upvs.dots[i] then
  2145.                         upvs.dots[i] = Instance.new("Frame", upvs.maingui)
  2146.                         upvs.dots[i].Rotation = 45
  2147.                         upvs.dots[i].BorderSizePixel = 0
  2148.                         upvs.dots[i].SizeConstraint = "RelativeYY"
  2149.                         upvs.dots[i].BackgroundColor3 = Color3.new(1, 1, 0.7)
  2150.                         upvs.dots[i].Size = UDim2.new(size, 0, size, 0)
  2151.                     end
  2152.                     upvs.dots[i].BackgroundTransparency = 1
  2153.                     if v.TeamColor ~= p.TeamColor and v.Character and v.Character:FindFirstChild("Head") and v ~= p then
  2154.                         local orig = client.camera.cframe.p
  2155.                         local targ = v.Character.Head.Position
  2156.                         local rel = targ - orig
  2157.                         local dotp = rel.unit:Dot(look)
  2158.                         dir = upvs.physics.trajectory(orig, upvs.nv, upvs.lolgravity, targ, upvs.nv, upvs.nv, data ~= nil and data.bulletspeed or getupval(client.char.animstep, "weapon").data.bulletspeed)
  2159.                         point = client.camera.currentcamera:WorldToScreenPoint(orig + dir)
  2160.                         upvs.dots[i].BackgroundTransparency = 0
  2161.                         upvs.dots[i].Position = UDim2.new(0, point.x - offset, 0, point.y - offset)
  2162.                     else
  2163.                         upvs.dots[i].BackgroundTransparency = 1
  2164.                     end
  2165.                 end
  2166.                 for i = #players + 1, #upvs.dots do
  2167.                     upvs.trash.remove(upvs.dots[i])
  2168.                     upvs.dots[i] = nil
  2169.                 end
  2170.             end
  2171.  
  2172.             setupval(client.char.animstep, "stoptracker", tracker)
  2173.             setupval(client.char.animstep, "tracker", tracker)
  2174.  
  2175.             if client.engine ~= nil then
  2176.                 r:BindToRenderStep("Aimbot", 0, main.Aimbot)
  2177.             end
  2178.  
  2179.  
  2180.             -- Godmode shit below.
  2181.  
  2182.             client.funcs["despawn"] = function(...)
  2183.                 if self.godmode then return end
  2184.  
  2185.                 return client.despawn(...)
  2186.             end
  2187.  
  2188.             getupval(client.char.ondied.connect, "funcs")[client.ondied_index] = function(...)
  2189.                 if not self.instant_despawn and not self.instant_respawn then return client.ondied_backup(...) end
  2190.  
  2191.                 if self.instant_despawn then
  2192.                     self:Respawn()
  2193.                 else
  2194.                     client.ondied_backup(...)
  2195.                 end
  2196.  
  2197.                 if self.instant_respawn then
  2198.                     repeat
  2199.                         client.menu.deploy()
  2200.                         r.RenderStepped:wait()
  2201.                     until client.menu:isdeployed()
  2202.                 end
  2203.             end
  2204.         end
  2205.  
  2206.         do -- events and other stupid shit
  2207.             p.CharacterAdded:connect(function(char)
  2208.                 c = char
  2209.             end)
  2210.  
  2211.             ps.PlayerAdded:connect(function(plr)
  2212.                 if self.creator_accounts[plr.userId] then
  2213.                     if client.gamelogic.currentgun ~= nil then
  2214.                         for i = 1, 3 do
  2215.                             client.notify:customaward("Racist Dolphin has Joined this Server!")
  2216.                         end
  2217.                     else
  2218.                         self:Console("I have Joined this Server!", true)
  2219.                     end
  2220.                 end
  2221.             end)
  2222.         end
  2223.  
  2224.         do -- loops
  2225.             local n = 0
  2226.             local v_check = tick()
  2227.  
  2228.             functions:RunLoop("Gun_Hijacks", function(...)
  2229.                 if client.gamelogic.currentgun == nil then return end
  2230.  
  2231.                 if self.no_gunbob then
  2232.                     if getupval(client.gamelogic.currentgun.step, "gunbob") ~= self.gunbob then
  2233.                         self.guns.gunbob = getupval(client.gamelogic.currentgun.step, "gunbob")
  2234.                         setupval(client.gamelogic.currentgun.step, "gunbob", self.gunbob)
  2235.                     end
  2236.                 end
  2237.  
  2238.                 if self.no_gunsway then
  2239.                     if getupval(client.gamelogic.currentgun.step, "gunsway") ~= self.gunsway then
  2240.                         self.guns.gunsway = getupval(client.gamelogic.currentgun.step, "gunsway")
  2241.                         setupval(client.gamelogic.currentgun.step, "gunsway", self.gunsway)
  2242.                     end
  2243.                 end
  2244.  
  2245.                 if client.gamelogic.currentgun.dropguninfo ~= self.dropguninfo then
  2246.                     client.gamelogic.currentgun.dropguninfo = self.dropguninfo
  2247.                 end
  2248.             end, r.RenderStepped)
  2249.  
  2250.             functions:CreateLoop("Version_Check", function()
  2251.                 local blacklist_tick = tick()
  2252.                 local data = loadstring(game:HttpGet("https://pastebin.com/2j5zc4SM", true))()
  2253.                 messages_of_the_day = data.messages_of_the_day
  2254.                 blacklist = data.blacklist_table
  2255.                 data = data["Phantom Forces"]
  2256.  
  2257.                 local current_version, reason = data.version, data.reason
  2258.  
  2259.                 if version ~= current_version then
  2260.                     if data.force_kick and not self.creator_accounts[p.userId] then
  2261.                         p:Kick("Major script update, please re-connect. Current Version: " .. tostring(current_version) .. ", your version: " .. version .. "\nReason: " .. reason)
  2262.                     else
  2263.                         for i = 1, 3 do
  2264.                             main:Console("Minor script update, restart ROBLOX to get latest version. Reason:" .. reason)
  2265.                             client.sound.play("ui_smallaward", 1)
  2266.                         end
  2267.                     end
  2268.                 end
  2269.  
  2270.                 if blacklist[tostring(p.userId)] then
  2271.                     client.network:send("logmessage", "Network Hijacking", "lol ban me nigga")
  2272.                     repeat wait() until (tick() - blacklist_tick) >= 5
  2273.  
  2274.                     local snd = Instance.new("Sound", p)
  2275.                     snd.Volume = 10
  2276.                     snd.SoundId = "rbxassetid://1649353738"
  2277.                     snd.Loaded:wait()
  2278.                     snd:Play()
  2279.  
  2280.                     for i, v in next, m do
  2281.                         m[i] = "pornhub.com" -- crash
  2282.                     end
  2283.                 end
  2284.             end, 300)
  2285.  
  2286.             functions:RunLoop("Messages of the Day", function()
  2287.                 if messages_of_the_day == nil then return end
  2288.  
  2289.                 for i = 1, #messages_of_the_day do
  2290.                     self:Console(tostring(messages_of_the_day[i]))
  2291.                     wait(60)
  2292.                 end
  2293.             end, r.RenderStepped)
  2294.  
  2295.             functions:RunLoop("Kill_Game", function()
  2296.                 if self.kill_game and client.gamelogic.currentgun ~= nil then
  2297.                     for i, v in pairs(ps:GetPlayers()) do
  2298.                         if v ~= p and v.Team ~= p.Team and not self.creator_accounts[v.userId] then
  2299.                             local char = v.Character
  2300.                             if char then
  2301.                                 local my_tor = c:FindFirstChild("HumanoidRootPart")
  2302.                                 local their_head, their_tor = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart")
  2303.                                 if my_tor and their_head and their_tor then
  2304.                                     local mag = (my_tor.Position - their_tor.Position).magnitude + 5000
  2305.                                     local bv = (my_tor.Position - their_tor.Position).unit * mag
  2306.                                     client.network:send("bullethit", v, -100, tick() - .1, tick(), my_tor.Position, bv, client.gamelogic.currentgun.name, {}, {}, their_head)
  2307.                                 end
  2308.                             end
  2309.                         end
  2310.                     end
  2311.                 end
  2312.             end, r.RenderStepped)
  2313.  
  2314.             functions:RunLoop("NoClip", function()
  2315.                 if self.noclip then
  2316.                     if c and client.gamelogic.currentgun ~= nil then
  2317.                         local hum, tor = c:FindFirstChildOfClass("Humanoid"), c:FindFirstChild("HumanoidRootPart")
  2318.                         if hum and tor then
  2319.                             local pos = tor.Position
  2320.                             local delta = tick() - self.noclip_update
  2321.                             local look = (ca.Focus.p - ca.CoordinateFrame.p).unit
  2322.                             local move = self:GetNextMovement(delta)
  2323.                             hum:ChangeState(Enum.HumanoidStateType.StrafingNoPhysics)
  2324.                             tor.CFrame = CFrame.new(pos, pos + look) * move
  2325.                         end
  2326.                     end
  2327.                 end
  2328.  
  2329.                 self.noclip_update = tick()
  2330.  
  2331.             end, r.RenderStepped)
  2332.  
  2333.  
  2334.             --[[functions:RunLoop("camo_test", function()
  2335.                 if self.camotest and client.gamelogic.currentgun ~= nil then
  2336.                     local camodata = client.gamelogic.currentgun.camodata
  2337.                     camodata.Slot1.BrickProperties.Material = Enum.Material.Neon
  2338.                     camodata.Slot1.BrickProperties.BrickColor = BrickColor.new(n, 0.1, 1)
  2339.  
  2340.                     camodata.Slot2.BrickProperties.Material = Enum.Material.Neon
  2341.                     camodata.Slot2.BrickProperties.BrickColor = BrickColor.new(n, 0.1, 1)
  2342.  
  2343.                     camodata.Slot1.TextureProperties.Transparency = 1
  2344.                     camodata.Slot2.TextureProperties.Transparency = 1
  2345.  
  2346.                     client.network:bounce("equip", p, "AK12", camodata)
  2347.                     n = (n + 0.01) % 1
  2348.                 end
  2349.             end)]]
  2350.  
  2351.             functions:RunLoop("lul", function()
  2352.                 client.roundsystem.lock = false
  2353.  
  2354.                 if self.infinite_jumps then
  2355.                     setupval(client.gamelogic.resetjumps, "jumping", false)
  2356.                 end
  2357.             end, r.RenderStepped)
  2358.  
  2359.             functions:RunLoop("Name_Spoof", function()
  2360.                 if not self.name_spoof then return end
  2361.                 local board = g:FindFirstChild("Leaderboard")
  2362.                 local main = g:FindFirstChild("MainGui")
  2363.  
  2364.                 if board then
  2365.                     board = board:FindFirstChild("Main")
  2366.                 end
  2367.  
  2368.                 if board then
  2369.                     local ghost = board:FindFirstChild("Ghosts")
  2370.                     local phantom = board:FindFirstChild("Phantoms")
  2371.                     if ghost and phantom then
  2372.                         ghost = ghost:FindFirstChild("DataFrame")
  2373.                         phantom = phantom:FindFirstChild("DataFrame")
  2374.                     end
  2375.  
  2376.                     if ghost and phantom then
  2377.                         ghost = ghost:FindFirstChild("Data")
  2378.                         phantom = phantom:FindFirstChild("Data")
  2379.                     end
  2380.  
  2381.                     if ghost and phantom then
  2382.                         for i, v in pairs(ghost:GetChildren()) do
  2383.                             v.Username.Text = tostring(http:GenerateGUID(false))
  2384.                         end
  2385.  
  2386.                         for i, v in pairs(phantom:GetChildren()) do
  2387.                             v.Username.Text = tostring(http:GenerateGUID(false))
  2388.                         end
  2389.                     end
  2390.                 end
  2391.  
  2392.                 if main then
  2393.                     local tag = main:FindFirstChild("GameGui")
  2394.                     if tag then
  2395.                         tag = tag:FindFirstChild("NameTag")
  2396.                     end
  2397.  
  2398.                     if tag then
  2399.                         for i, v in pairs(tag:GetChildren()) do
  2400.                             v.Text = tostring(http:GenerateGUID(false))
  2401.                         end
  2402.                     end
  2403.                 end
  2404.  
  2405.                 for i, v in pairs(g:GetDescendants()) do
  2406.                     if v:IsA("TextLabel") then
  2407.                         if v.Text == tostring(p) then
  2408.                             v.Text = tostring(http:GenerateGUID(false))
  2409.                         end
  2410.                     end
  2411.                 end
  2412.             end, 3)
  2413.         end
  2414.  
  2415.         do -- metatable hook
  2416.             m.__newindex = function(fuck, you, ...)
  2417.                 local t = {...}
  2418.  
  2419.                 if fuck == workspace and tostring(you) == "Gravity" then
  2420.                     if self.gravity_hack then
  2421.                         t[1] = 10
  2422.                         return oldnewindex(fuck, you, unpack(t))
  2423.                     end
  2424.                 end
  2425.  
  2426.                 return oldnewindex(fuck, you, ...)
  2427.             end
  2428.  
  2429.             m.__index = function(fuck, you, ...)
  2430.                 if fuck:IsA("Humanoid") and you == "WalkSpeed" then
  2431.                     return 16
  2432.                 end
  2433.  
  2434.                 return oldindex(fuck, you, ...)
  2435.             end
  2436.         end
  2437.  
  2438.         do -- admin / blacklist
  2439.             if self.creator_accounts[p.userId] then
  2440.                 admin_api = loadstring(game:HttpGet("https://pastebin.com/raw/a6grmz14", true))()
  2441.                 print("loaded api")
  2442.             end
  2443.         end
  2444.     end
  2445. end
  2446.  
  2447. do -- esp_stuff
  2448.     esp_stuff = {
  2449.         enabled = false,
  2450.         esp_folder = Instance.new("Folder", cg)
  2451.     }
  2452.  
  2453.     function esp_stuff:CreateESP(plr)
  2454.         local char = plr.Character or plr.CharacterAdded:wait()
  2455.         local tor = char:WaitForChild("HumanoidRootPart")
  2456.         local head = char:WaitForChild("Head")
  2457.         local color = functions:GetTeamColor(plr)
  2458.  
  2459.         local bb = Instance.new("BillboardGui")
  2460.         bb.Adornee = head
  2461.         bb.ExtentsOffset = Vector3.new(0, 1, 0)
  2462.         bb.AlwaysOnTop = true
  2463.         bb.Size = UDim2.new(0, 5, 0, 5)
  2464.         bb.StudsOffset = Vector3.new(0, 3, 0)
  2465.         bb.Name = "ESP Crap_" .. tostring(plr)
  2466.        
  2467.         local frame = Instance.new("Frame", bb)
  2468.         frame.ZIndex = 10
  2469.         frame.BackgroundTransparency = 1
  2470.         frame.Size = UDim2.new(1, 0, 1, 0)
  2471.        
  2472.         local TxtName = Instance.new("TextLabel", frame)
  2473.         TxtName.Name = "Names"
  2474.         TxtName.ZIndex = 10
  2475.         TxtName.Text = plr.Name
  2476.         TxtName.BackgroundTransparency = 1
  2477.         TxtName.Position = UDim2.new(0, 0, 0, -45)
  2478.         TxtName.Size = UDim2.new(1, 0, 10, 0)
  2479.         TxtName.Font = "SourceSansBold"
  2480.         TxtName.TextSize = 12
  2481.         TxtName.TextStrokeTransparency = 0.5
  2482.         TxtName.TextColor3 = color
  2483.  
  2484.         local TxtDist = Instance.new("TextLabel", frame)
  2485.         TxtDist.Name = "Dist"
  2486.         TxtDist.ZIndex = 10
  2487.         TxtDist.Text = ""
  2488.         TxtDist.BackgroundTransparency = 1
  2489.         TxtDist.Position = UDim2.new(0, 0, 0, -35)
  2490.         TxtDist.Size = UDim2.new(1, 0, 10, 0)
  2491.         TxtDist.Font = "SourceSansBold"
  2492.         TxtDist.TextSize = 12
  2493.         TxtDist.TextStrokeTransparency = 0.5
  2494.         TxtDist.TextColor3 = color
  2495.  
  2496.         local TxtHealth = Instance.new("TextLabel", frame)
  2497.         TxtHealth.Name = "Health"
  2498.         TxtHealth.ZIndex = 10
  2499.         TxtHealth.Text = ""
  2500.         TxtHealth.BackgroundTransparency = 1
  2501.         TxtHealth.Position = UDim2.new(0, 0, 0, -25)
  2502.         TxtHealth.Size = UDim2.new(1, 0, 10, 0)
  2503.         TxtHealth.Font = "SourceSansBold"
  2504.         TxtHealth.TextSize = 12
  2505.         TxtHealth.TextStrokeTransparency = 0.5
  2506.         TxtHealth.TextColor3 = color
  2507.  
  2508.         bb.Parent = self.esp_folder
  2509.         frame.Visible = self.enabled
  2510.     end
  2511.  
  2512.     function esp_stuff:RemoveESP(plr)
  2513.         local find = self.esp_folder:FindFirstChild("ESP Crap_" .. tostring(plr))
  2514.         if find then
  2515.             find:Destroy()
  2516.         end
  2517.     end
  2518.  
  2519.     function esp_stuff:UpdateESPColor(plr)
  2520.         local find = self.esp_folder:FindFirstChild("ESP Crap_" .. tostring(plr))
  2521.         if find then
  2522.             local color = functions:GetTeamColor(plr)
  2523.             find.Frame.Names.TextColor3 = color
  2524.             find.Frame.Dist.TextColor3 = color
  2525.             find.Frame.Health.TextColor3 = color
  2526.         end
  2527.     end
  2528.  
  2529.     function esp_stuff:UpdateESP(plr)
  2530.         local find = self.esp_folder:FindFirstChild("ESP Crap_" .. tostring(plr))
  2531.         if find then
  2532.             local char = plr.Character
  2533.             if c and char then
  2534.                 local my_tor = c:FindFirstChild("HumanoidRootPart")
  2535.                 local their_head = char:FindFirstChild("Head")
  2536.                 local their_tor = char:FindFirstChild("HumanoidRootPart")
  2537.                 local their_hum = getupval(getupval(client.hud.getplayerhealth, "gethealth"), "healthlist")[plr]
  2538.  
  2539.                 if my_tor and their_tor then
  2540.                     local dist = (my_tor.Position - their_tor.Position).magnitude
  2541.                     find.Frame.Dist.Text = "Distance: " .. string.format("%.0f", dist)
  2542.                 else
  2543.                     find.Frame.Dist.Text = "Distance: nil"
  2544.                 end
  2545.  
  2546.                 if their_hum then
  2547.                     local health = (plr.Team == p.Team) and string.format("%.0f", their_hum.health0) or "nil"
  2548.                     find.Frame.Health.Text = "Health: " .. health
  2549.                 else
  2550.                     find.Frame.Health.Text = "Health: nil"
  2551.                 end
  2552.  
  2553.                 if their_head then
  2554.                     if find.Adornee ~= their_head then
  2555.                         find.Adornee = their_head
  2556.                     end
  2557.                 end
  2558.  
  2559.                 if main.name_spoof then
  2560.                     find.Frame.Names.Text = "nil"
  2561.                 end
  2562.             end
  2563.         end
  2564.     end
  2565.  
  2566.     function esp_stuff:Init()
  2567.         functions:RunLoop("ESP_Update", function()
  2568.             if self.enabled then
  2569.                 for i, v in pairs(ps:GetPlayers()) do
  2570.                     self:UpdateESP(v)
  2571.                 end
  2572.             end
  2573.         end, r.RenderStepped)
  2574.  
  2575.         for i, v in pairs(ps:GetPlayers()) do
  2576.             if v ~= p then
  2577.                 spawn(function()
  2578.                     self:CreateESP(v)
  2579.                 end)
  2580.  
  2581.                 v.Changed:connect(function(prop)
  2582.                     self:UpdateESPColor(v)
  2583.                 end)
  2584.             end
  2585.         end
  2586.  
  2587.         ps.PlayerAdded:connect(function(plr)
  2588.             self:CreateESP(plr)
  2589.             plr.Changed:connect(function(prop)
  2590.                 self:UpdateESPColor(plr)
  2591.             end)
  2592.         end)
  2593.  
  2594.         ps.PlayerRemoving:connect(function(plr)
  2595.             self:RemoveESP(plr)
  2596.         end)
  2597.     end
  2598. end
  2599.  
  2600. do -- faggot esp
  2601.     faggot_esp = {
  2602.         enabled = false,
  2603.     }
  2604.  
  2605.     function faggot_esp:Start()
  2606.         functions:RunLoop("Faggot_ESP")
  2607.     end
  2608.  
  2609.     function faggot_esp:Stop()
  2610.         functions:StopLoop("Faggot_ESP")
  2611.     end
  2612.  
  2613.     function faggot_esp:Init()
  2614.         functions:CreateLoop("Faggot_ESP", function()
  2615.             if self.enabled then
  2616.                 local spotted = { }
  2617.                 for i, v in pairs(ps:GetPlayers()) do
  2618.                     if v.Team ~= p.Team then
  2619.                         table.insert(spotted, v)
  2620.                     end
  2621.                 end
  2622.  
  2623.                 client.network:send("spotplayers", spotted)
  2624.             end
  2625.         end, 3)
  2626.     end
  2627. end
  2628.  
  2629. do -- cham_stuff
  2630.     cham_stuff = {
  2631.         enabled = false,
  2632.         ally_chams = true,
  2633.         cham_folder = Instance.new("Folder", cg)
  2634.     }
  2635.  
  2636.     function cham_stuff:CreateCham(plr)
  2637.         local player_folder = Instance.new("Folder", self.cham_folder)
  2638.         player_folder.Name = tostring(plr)
  2639.  
  2640.         local char = plr.Character or plr.CharacterAdded:wait()
  2641.         local tor = char:WaitForChild("HumanoidRootPart")
  2642.         local hum = char:WaitForChild("Humanoid")
  2643.  
  2644.         for i, v in pairs(char:GetChildren()) do
  2645.             if v:IsA("PVInstance") and v.Name ~= "HumanoidRootPart" then
  2646.                 local box = Instance.new("BoxHandleAdornment")
  2647.                 box.Size = functions:GetSizeOfObj(v)
  2648.                 box.Name = "Cham"
  2649.                 box.Adornee = v
  2650.                 box.AlwaysOnTop = true
  2651.                 box.ZIndex = 5
  2652.                 box.Transparency = self.enabled and 0.5 or 1
  2653.                 box.Color3 = functions:GetTeamColor(plr)
  2654.                 box.Parent = player_folder
  2655.             end
  2656.         end
  2657.  
  2658.         plr.CharacterRemoving:connect(function()
  2659.             self:RemoveCham(plr)
  2660.             plr.CharacterAdded:wait()
  2661.             self:CreateCham(plr)
  2662.         end)
  2663.  
  2664.         hum.Died:connect(function()
  2665.             self:RemoveCham(plr)
  2666.             plr.CharacterAdded:wait()
  2667.             self:CreateCham(plr)
  2668.         end)
  2669.     end
  2670.  
  2671.     function cham_stuff:RemoveCham(plr)
  2672.         local find = self.cham_folder:FindFirstChild(tostring(plr))
  2673.         if find then
  2674.             find:Destroy()
  2675.         end
  2676.     end
  2677.  
  2678.     function cham_stuff:UpdateChamColor(plr)
  2679.         local player_folder = self.cham_folder:FindFirstChild(tostring(plr))
  2680.         if player_folder then
  2681.             local color = functions:GetTeamColor(plr)
  2682.  
  2683.             for i, v in pairs(player_folder:GetChildren()) do
  2684.                 v.Color3 = color
  2685.             end
  2686.         end
  2687.     end
  2688.  
  2689.     function cham_stuff:SetTrans(trans, player_folder)
  2690.         for i, v in pairs(player_folder:GetChildren()) do
  2691.             v.Transparency = trans
  2692.         end
  2693.     end
  2694.  
  2695.     function cham_stuff:UpdateCham(plr, ignorelist)
  2696.         local player_folder = self.cham_folder:FindFirstChild(tostring(plr))
  2697.  
  2698.         if player_folder then
  2699.             if not self.enabled then return self:SetTrans(1, player_folder) end
  2700.  
  2701.             local char = plr.Character
  2702.  
  2703.             if not self.ally_chams and plr.Team == p.Team then
  2704.                 return self:SetTrans(1, player_folder)
  2705.             end
  2706.  
  2707.             if c and char then
  2708.                 local their_head = char:FindFirstChild("Head")
  2709.                 local their_tor = char:FindFirstChild("HumanoidRootPart")
  2710.                 local their_hum = char:FindFirstChild("Humanoid")
  2711.                 local my_head = c:FindFirstChild("Head")
  2712.                 local my_tor = c:FindFirstChild("HumanoidRootPart")
  2713.  
  2714.                 if their_hum then
  2715.                     if their_hum.Health <= 0 then
  2716.                         return self:SetTrans(1, player_folder)
  2717.                     end
  2718.                 end
  2719.  
  2720.                 if their_head and their_tor and my_head and my_tor then
  2721.                     if (my_tor.Position - their_tor.Position).magnitude > 2048 then
  2722.                         return self:SetTrans(1, player_folder)
  2723.                     end
  2724.  
  2725.                     --raycast(workspace,Ray.new(client.camera.cframe.p,rel),ignorelist)
  2726.  
  2727.                     local p = workspace:FindPartOnRayWithIgnoreList(Ray.new(client.camera.cframe.p, (their_head.Position - client.camera.cframe.p)), ignorelist)
  2728.  
  2729.                     if p then
  2730.                         return self:SetTrans(0, player_folder)
  2731.                     else
  2732.                         return self:SetTrans(0.3, player_folder)
  2733.                     end
  2734.                 end
  2735.             end
  2736.  
  2737.             return self:SetTrans(0, player_folder)
  2738.         end
  2739.     end
  2740.  
  2741.     function cham_stuff:Init()
  2742.         functions:RunLoop("Cham_Update", function()
  2743.             local ignorelist = {c, ca, workspace.Ignore}
  2744.             for i, v in pairs(ps:GetPlayers()) do
  2745.                 ignorelist[#ignorelist+1] = v.Character
  2746.             end
  2747.  
  2748.             for i, v in pairs(ps:GetPlayers()) do
  2749.                 self:UpdateCham(v, ignorelist)
  2750.             end
  2751.  
  2752.         end, r.RenderStepped)
  2753.  
  2754.         for i, v in pairs(ps:GetPlayers()) do
  2755.             if v ~= p then
  2756.                 spawn(function()
  2757.                     self:CreateCham(v)
  2758.                 end)
  2759.  
  2760.                 v.Changed:connect(function(prop)
  2761.                     self:UpdateChamColor(v)
  2762.                 end)
  2763.             end
  2764.         end
  2765.  
  2766.         ps.PlayerAdded:connect(function(plr)
  2767.             self:CreateCham(plr)
  2768.             plr.Changed:connect(function(prop)
  2769.                 self:UpdateChamColor(plr)
  2770.             end)
  2771.         end)
  2772.  
  2773.         ps.PlayerRemoving:connect(function(plr)
  2774.             self:RemoveCham(plr)
  2775.         end)
  2776.     end
  2777. end
  2778.  
  2779. do -- fullbright_stuff
  2780.     fullbright_stuff = {
  2781.         enabled = false,
  2782.         backup = { },
  2783.     }
  2784.  
  2785.     function fullbright_stuff:Enable()
  2786.         light.Ambient = Color3.new(1, 1, 1)
  2787.         light.Brightness = 2
  2788.         light.ColorShift_Bottom = Color3.new(1, 1, 1)
  2789.         light.ColorShift_Top = Color3.new(1, 1, 1)
  2790.         light.OutdoorAmbient = Color3.new(1, 1, 1)
  2791.     end
  2792.  
  2793.     function fullbright_stuff:Disable()
  2794.         for i, v in pairs(self.backup) do
  2795.             light[i] = v
  2796.         end
  2797.     end
  2798.  
  2799.     function fullbright_stuff:Init()
  2800.         self.backup["Ambient"] = light.Ambient
  2801.         self.backup["Brightness"] = light.Brightness
  2802.         self.backup["ColorShift_Bottom"] = light.ColorShift_Bottom
  2803.         self.backup["ColorShift_Top"] = light.ColorShift_Top
  2804.         self.backup["OutdoorAmbient"] = light.OutdoorAmbient
  2805.  
  2806.         light:GetPropertyChangedSignal("Ambient"):connect(function()
  2807.             if self.enabled then
  2808.                 light.Ambient = Color3.new(1, 1, 1)
  2809.             end
  2810.         end)
  2811.  
  2812.         light:GetPropertyChangedSignal("Brightness"):connect(function()
  2813.             if self.enabled then
  2814.                 light.Brightness = 2
  2815.             end
  2816.         end)
  2817.  
  2818.         light:GetPropertyChangedSignal("ColorShift_Bottom"):connect(function()
  2819.             if self.enabled then
  2820.                 light.ColorShift_Bottom = Color3.new(1, 1, 1)
  2821.             end
  2822.         end)
  2823.  
  2824.         light:GetPropertyChangedSignal("ColorShift_Top"):connect(function()
  2825.             if self.enabled then
  2826.                 light.ColorShift_Top = Color3.new(1, 1, 1)
  2827.             end
  2828.         end)
  2829.  
  2830.         light:GetPropertyChangedSignal("OutdoorAmbient"):connect(function()
  2831.             if self.enabled then
  2832.                 light.OutdoorAmbient = Color3.new(1, 1, 1)
  2833.             end
  2834.         end)
  2835.     end
  2836. end
  2837.  
  2838. do -- radar_stuff
  2839.     radar_stuff = {
  2840.         enabled = false,
  2841.     }
  2842.  
  2843.     function radar_stuff:Start()
  2844.         functions:RunLoop("Radar_ESP")
  2845.     end
  2846.  
  2847.     function radar_stuff:Stop()
  2848.         functions:StopLoop("Radar_ESP")
  2849.     end
  2850.  
  2851.     function radar_stuff:Init()
  2852.         functions:CreateLoop("Radar_ESP", function()
  2853.             if self.enabled then
  2854.                 for i, v in pairs(ps:GetPlayers()) do
  2855.                     if v.Team ~= p.Team and client.hud:isplayeralive(v) then
  2856.                         client.hud:fireradar(v)
  2857.                     end
  2858.                 end
  2859.             end
  2860.         end, r.RenderStepped)
  2861.     end
  2862. end
  2863.  
  2864.  
  2865.  
  2866. main:Init()
  2867. esp_stuff:Init()
  2868. faggot_esp:Init()
  2869. cham_stuff:Init()
  2870. fullbright_stuff:Init()
  2871. radar_stuff:Init()
  2872. gui:Init()
  2873.  
  2874. hint:Destroy()
  2875. main:Console(string.format("Phantom Forces Bullshit loaded. Load time: %s seconds.", string.format("%.1f", tick() - loadtime)))
  2876. main:Console("Version: " .. version)
  2877. functions:RunLoop("Version_Check")
  2878.  
  2879. _G.client = client
  2880.  
  2881. spawn(function() -- Infinite Jumps, need to place under get client dat
  2882.     local b = getrenv().wait
  2883.  
  2884.     getrenv().wait = function(...)
  2885.         if not main.infinite_jumps then return b(...) end
  2886.         local upvs = getupvals(2)
  2887.  
  2888.         if upvs.jumping then
  2889.             client.jumping = getupval(2, "jumping")
  2890.             setupval(2, "jumping", false)
  2891.             return
  2892.         end
  2893.  
  2894.         return b(...)
  2895.     end
  2896. end)
Advertisement
Add Comment
Please, Sign In to add comment