Advertisement
Guest User

phantom forces hax/script

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