Lenngotmelol

pastewarepremiumgmod

Apr 15th, 2020 (edited)
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 184.27 KB | None | 0 0
  1. -- Pasteware gmod premium by crave 4
  2. -- cracked in 2019 by triggered (discord)
  3. -- pasteware is a gma??????????
  4. -- 12$ of money wasted, gave source code to phizz on libbys
  5. -- idiotbox best cheat?????????????????????????????????????
  6. -- lol watch out for that grabify.link cuz if crave 4 joins u he has ur ip <_<
  7.  
  8. -- 8/11/2020 unlisted this because why not lol.
  9.  
  10.  
  11. -- crave plez don't get mad at me
  12.  
  13.  
  14. --[[
  15.     LOCALIZATION
  16.  
  17.     ( "DoAnimationEvent", "Hook", event(player, event, data) )
  18.  
  19.     LABEL LIMIT
  20.     STATIC ESP
  21.     "REMOVE THIS WINDOW?"
  22.     CUSTOM SPAM AFTER KILL
  23. ]]
  24.  
  25. local me = LocalPlayer()
  26. local steam = me:SteamID64()
  27. local realname = me:Nick()
  28.  
  29. local cheatname = "Pasteware"
  30. local version = "2.1.32"
  31. local modules = "mega.nz/#!ZZZFEYJa!Nc3yuXj_FhOARg1TsiStEnM3YmWCMXXh211-qxJL7Uk"
  32.  
  33. local supported_modes, all_hooks, visible, dists, spam_messages, tauntspam, added, drawn_ents, priority_list, ignore_list, titles = { "sandbox", "murder", "darkrp", "terrortown" }, {}, {}, {}, { "A free version is available on the workshop!", "TAP 'EM ALL!", "Current build is v"..version.."!", "Godlike Anti-Aims and pResolvers!", "Deadly precise cheat for gmod!", "One of the greatest cheats for Garry's Mod!", "Way to the top!", "Prevent getting owned today!", "Superiority at it's finest!", "Reduce your risk of getting owned!" }, { "funny", "help", "scream", "morose" }, {}, {}, {}, {}, { "You have been reported! Please answer all your reports.", "Du wurdest gemeldet! Bitte beantworte all deine Berichte.", "You have been reported!", "Du wurdest gemeldet!", "Zostałeś zgłoszony! Proszę, odpowiedz na wszystkie swoje zgłoszenia." }
  34.  
  35. local chamsmat = CreateMaterial("Invisible", "VertexLitGeneric", { ["$ignorez"] = 1, ["$model"] = 1, ["$basetexture"] = "models/debug/debugwhite" })
  36. local chamsmat2 = CreateMaterial("Visible", "VertexLitGeneric", { ["$ignorez"] = 0, ["$model"] = 1, ["$basetexture"] = "models/debug/debugwhite" })
  37.  
  38. local insertdown, insertdown2, menuopen, closemenu, draw_fov, windowopen = false
  39. local loaded1, loaded2, loaded3, loaded4, loaded5 = false
  40. local displayed, footprints, blackscreen, said, said_info, bullied, already_bullied, looped_props, rotate, pressed, rot_pressed, applied, yaw_auto, name_changed, removewindow = false
  41.  
  42. local ox, oy, faketick, crouched, strafe_val, yaw_timer, prop_val, prop_delay = 0, 0, 0, 0, 0, 0, 0, 0
  43. local murderer = ""
  44.  
  45. local og_read, og_open, og_exists, og_Receive = file.Read, file.Open, file.Exists, net.Receive
  46.  
  47. local PrimaryCol, FriendCol, NpcCol, AdminCol, AimCol, MenuCol, EntCol = Color(0,125,255), Color(140, 45, 255), Color(200,200,200), Color(255,0,0), Color(255,60,160), Color(255,125,0), Color(100,255,100), Color(255,255,255), Color(255, 60, 160)
  48.  
  49. local mousedown, candoslider, drawlast, notyetselected, insertdown2, insertdown, menuopen, aimtarget, fa, aa, audio
  50. local servertime = CurTime()
  51. local ten_sec = CurTime() + 15
  52. local wep = me:GetActiveWeapon()
  53.  
  54. surface.CreateFont("Verdana", { font = "Verdana", size = 12, antialias = false, outline = true })
  55. surface.CreateFont("Arial", { font = "Arial", size = 13, antialias = false, outline = true })
  56. surface.CreateFont("ArialB", { font = "Arial Black", size = 12, antialias = false, outline = true })
  57. surface.CreateFont("TNR", { font = "Times New Roman", size = 15, antialias = false, outline = true })
  58. surface.CreateFont("ComicSans", { font = "Comic Sans MS", size = 14, antialias = false, outline = true })
  59. surface.CreateFont("Tahoma", { font = "Tahoma", size = 12, antialias = false, outline = true })
  60. surface.CreateFont("SegoeUI", { font = "Segoe UI", size = 13, antialias = false, outline = true })
  61. surface.CreateFont("Consolas", { font = "Consolas", size = 13, antialias = false, outline = true })
  62.  
  63. surface.CreateFont("Verdana_Bold", { font = "Verdana", size = 12, weight = 1500, antialias = false, outline = true })
  64. surface.CreateFont("Arial_Bold", { font = "Arial", size = 13, weight = 1500, antialias = false, outline = true })
  65. surface.CreateFont("ArialB_Bold", { font = "Arial Black", size = 12, weight = 1500, antialias = false, outline  = true })
  66. surface.CreateFont("TNR_Bold", { font = "Times New Roman", size = 15, weight = 1500, antialias = false, outline = true })
  67. surface.CreateFont("ComicSans_Bold", { font = "Comic Sans MS", size = 14, weight = 1500, antialias = false, outline = true })
  68. surface.CreateFont("Tahoma_Bold", { font = "Tahoma", size = 12, weight = 1500, antialias = false, outline = true })
  69. surface.CreateFont("SegoeUI_Bold", { font = "Segoe UI", size = 13, weight = 1500, antialias = false, outline = true })
  70. surface.CreateFont("Consolas_Bold", { font = "Consolas", size = 13, weight = 1500, antialias = false, outline = true })
  71.  
  72. --[[
  73.     MISCELLANEOUS FUNCTIONS PT.1
  74. ]]
  75.  
  76. local function msg(time, text)
  77.     if not windowopen then
  78.         windowopen = true
  79.  
  80.         local window = vgui.Create("DFrame")
  81.         window:SetPos(ScrW()/2.7, 0)
  82.         window:SetSize(500,25)
  83.         window:SlideDown(0.3)
  84.         window:SetTitle("")
  85.         window:ShowCloseButton(false)
  86.         window:SetDraggable(false)
  87.         window.Paint = function(s, w, h)
  88.             surface.SetDrawColor(40,40,40,240)
  89.             surface.DrawRect(0, 0, w, h)
  90.             --draw.RoundedBox(8, 0, 0, w, h, Color(40, 40, 40, 240))
  91.  
  92.             draw.DrawText(text, "Verdana", w/2, 6, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  93.         end
  94.  
  95.         timer.Simple(time, function()
  96.             if windowopen then
  97.                 window:SlideUp(0.3)
  98.                 timer.Simple(0.3, function()
  99.                     windowopen = false
  100.                     window:Remove()
  101.                 end)
  102.             end
  103.         end)
  104.     end
  105.  
  106.     chat.PlaySound()
  107.     print("\n"..text.."\n")
  108. end
  109.  
  110. local function RandomString()
  111.     local str = ""
  112.  
  113.     for i = 1, 15 do
  114.         str = str .. string.char(math.random(32, 126))
  115.     end
  116.  
  117.     return str
  118. end
  119.  
  120. local function addhook(event_name, func) -- Thank you for making my life so much easier, Cyäegha.
  121.     local name = RandomString()
  122.  
  123.     hook.Add(event_name, name, func)
  124.  
  125.     if not all_hooks[event_name] then
  126.         all_hooks[event_name] = {}
  127.     end
  128.  
  129.     all_hooks[event_name][name] = func
  130. end
  131.  
  132. local function command(cmd)
  133.     me:ConCommand(cmd)
  134. end
  135.  
  136. local function disconnect(reason)
  137.   msg(4, "Disconnected from the server. (Reason: "..reason..")")
  138.   command("disconnect")
  139. end
  140.  
  141. local function crash(reason) end
  142.  
  143. --[[
  144.     USER MANAGEMENT
  145. ]]
  146.  
  147. local function license() -- DAY/MONTH/YEAR
  148.     return "Lifetime"
  149. end
  150.  
  151. local function license_num() -- YEAR/MONTH/DAY
  152.     return "Lifetime"
  153. end
  154.  
  155. local function valid_user(id)
  156.     return true
  157. end
  158.  
  159. local function user(id)
  160.     return "tapped by triggered"
  161. end
  162.  
  163. --[[
  164.     SETUP
  165. ]]
  166.  
  167. do
  168.     if _G.Loaded then
  169.         msg(3, "Cheat already loaded.")
  170.         return
  171.     else
  172.         if SERVER then return end
  173.        
  174.         if gui.IsGameUIVisible() then
  175.             gui.HideGameUI()
  176.         end
  177.  
  178. -- SNEAKY FUCKING IP LOGGER <_<
  179. -- SNEAKY FUCKING IP LOGGER <_<
  180. -- SNEAKY FUCKING IP LOGGER <_<
  181. -- SNEAKY FUCKING IP LOGGER <_<
  182. -- SNEAKY FUCKING IP LOGGER <_<
  183. -- SNEAKY FUCKING IP LOGGER <_<
  184. -- SNEAKY FUCKING IP LOGGER <_<
  185. -- SNEAKY FUCKING IP LOGGER <_<
  186. -- SNEAKY FUCKING IP LOGGER <_<
  187.  
  188.         if not system.IsWindows() then
  189.             msg(7, "This cheat only works on Windows. Change your operating system in order to use it.")
  190.             return
  191.         end
  192.  
  193.  
  194.         if ScrW() <= 900 or ScrH() <= 700 then
  195.             msg(8, "The menu's size is 900x700. Please use a resolution higher than that.")
  196.             return
  197.         end
  198.  
  199.         if not file.Exists("lua/bin/gmcl_hi_win32.dll", "MOD") or not file.Exists("lua/bin/gmcl_fhook_win32.dll", "MOD") or not file.Exists("lua/bin/gmcl_stringtables_win32.dll", "MOD") or not file.Exists("lua/bin/gmcl_chatclear_win32.dll", "MOD") then
  200.             SetClipboardText(modules)
  201.             msg(7, "Please download the modules first. The download link has been copied to your clipboard.")
  202.             chat.AddText(PrimaryCol, modules)
  203.             return
  204.         else
  205.             if _G.QAC or _G.qac then
  206.                 disconnect("Detected QAC.")
  207.                 return
  208.             elseif _G.TAC or _G.tac then
  209.                 msg(3, "Detected TAC. Blocking incoming checks.")
  210.             elseif _G.CAC or _G.cac then
  211.                 if not file.IsDir(cheatname, "DATA") then
  212.                     msg(5, "Welcome, "..me:Nick()..". Press Insert, F11 or Home to open the menu.")
  213.                     file.CreateDir(cheatname)
  214.                 else
  215.                     msg(5, "Detected CAC. If you're using the correct bypass, you shouldn't get banned.")
  216.                 end
  217.             else
  218.                 if not file.IsDir(cheatname, "DATA") then
  219.                     msg(5, "Welcome, "..me:Nick()..". Press Insert, F11 or Home to open the menu.")
  220.                     file.CreateDir(cheatname)
  221.                 else
  222.                     if table.HasValue(supported_modes, engine.ActiveGamemode()) then
  223.                         if not file.IsDir(cheatname, "DATA") then
  224.                             msg(5, "Welcome, "..me:Nick()..". Press Insert, F11 or Home to open the menu.")
  225.                         else
  226.                             if not file.Exists(cheatname.."/version.txt", "DATA") then
  227.                                 msg(3, cheatname.." loaded successfully!")
  228.                                 file.Write(cheatname.."/version.txt", version)
  229.                             else
  230.                                 if file.Read(cheatname.."/version.txt", "DATA") ~= version then
  231.                                     http.Fetch("https://pastebin.com/raw/aWc5WwHd",function(body) print("\n===========================================================\n\n"..body.."\n\n===========================================================\n") end)
  232.                                     msg(6, cheatname.." has been updated from v"..file.Read(cheatname.."/version.txt", "DATA").." to v"..version..". Changelog is printed in the console.")
  233.                                     file.Write(cheatname.."/version.txt", version)
  234.                                 else
  235.                                     msg(3, cheatname.." loaded successfully!")
  236.                                 end
  237.                             end
  238.                         end
  239.                     else
  240.                         msg(5, cheatname.." loaded successfully, but this gamemode isn't supported.")
  241.                     end
  242.                 end
  243.             end
  244.  
  245.             require("hi")
  246.             require("fhook")
  247.             require("stringtables")
  248.             require("ChatClear")
  249.  
  250.             --[[if file.Exists("lua/bin/gmcl_cat_win32.dll", "MOD") then
  251.                 require("cat")
  252.                 print("\nLoaded sv_allowcslua bypass.\n\n")
  253.             end]]
  254.  
  255.             memesendpacket = true
  256.         end
  257.     end
  258.  
  259.     _G.Loaded = true
  260.  
  261.     game.RemoveRagdolls()
  262.     command("cl_lagcompensation 1; r_cleardecals; cl_interp 0; cl_interp_ratio 2; cl_updaterate 30; gmod_mcore_test 1; r_queued_ropes 1; cl_threaded_bone_setup 1; cl_threaded_client_leaf_system 1; mat_queue_mode -1; r_threaded_renderables 1; r_threaded_particles 1; M9KGasEffect 0; hud_draw_fixed_reticle 0")
  263.  
  264.     if file.Exists(cheatname.."/entities.txt", "DATA") then
  265.         drawn_ents = util.JSONToTable(file.Read(cheatname.."/entities.txt", "DATA"))
  266.     else
  267.         drawn_ents = {"spawned_money", "spawned_shipment", "spawned_weapon", "money_printer", "weapon_ttt_knife", "weapon_ttt_c4", "npc_tripmine"}
  268.     end
  269.  
  270.     if file.Exists(cheatname.."/priorities.txt", "DATA") then
  271.         priority_list = util.JSONToTable(file.Read(cheatname.."/priorities.txt", "DATA"))
  272.     else
  273.         file.Write(cheatname.."/priorities.txt", "[]")
  274.     end
  275.  
  276.     if file.Exists(cheatname.."/ignore.txt", "DATA") then
  277.         ignore_list = util.JSONToTable(file.Read(cheatname.."/ignore.txt", "DATA"))
  278.     else
  279.         file.Write(cheatname.."/ignore.txt", "[]")
  280.     end
  281. end
  282.  
  283. local options = {
  284.     ["Aimbot"] = {
  285.         {
  286.             {"Aimbot", 85, 40, 350, 235, 175},
  287.             {"Enabled", "Checkbox", false, 0},
  288.             {"Silent Aimbot", "Checkbox", false, 0},
  289.             {"Auto Fire", "Checkbox", false, 0},
  290.             {"Auto Stop", "Checkbox", false, 0},
  291.             {"Auto Crouch", "Checkbox", false, 0},
  292.             {"Auto Zoom", "Checkbox", false, 0},
  293.             {"Aim Key", "Selection", "None", {"None", "Mouse3", "Mouse4", "Mouse5", "L-ALT", "L-CTRL", "Shift", "Letter: E", "Letter: F", "Letter: Q"}, 125},
  294.             {"Aimbot FOV", "Slider", 0, 90, 125},
  295.                         {"Anti-Spread", "Checkbox", false, 0},
  296.         },
  297.         {
  298.             {"Misc", 85, 290, 350, 130, 175},
  299.             {"Projectile Prediction", "Checkbox", false, 0},
  300.             {"Fake Lag Prediction", "Selection", "Off", {"Off", "On", "Rage Targets Only"}, 125},
  301.             {"No Lerp", "Checkbox", false, 0},
  302.             {"Auto Fire Delay", "Slider", 10, 100, 125},
  303.         },
  304.         {
  305.             {"Other", 445, 40, 350, 305, 175},
  306.             {"Priority", "Selection", "FOV", {"FOV", "Nearest", "Lowest Health"}, 125},
  307.             {"Aim Position", "Selection", "Auto", {"Head only", "Body only", "Auto"}, 125},
  308.             {"Ignore Players", "Checkbox", false, 0},
  309.             {"Ignore NPCs", "Checkbox", false, 0},
  310.             {"Ignore Team", "Checkbox", false, 0},
  311.             {"Ignore Friends", "Checkbox", false, 0},
  312.             {"Ignore Bots", "Checkbox", false, 0},
  313.             {"Ignore Admins", "Checkbox", false, 0},
  314.             {"Ignore driving Players", "Checkbox", false, 0},
  315.             {"Ignore noclipping Players", "Checkbox", false, 0},
  316.             {"Ignore transparent Players", "Checkbox", false, 0},
  317.         },
  318.     },
  319.     ["Triggerbot"] = {
  320.         {
  321.             {"Triggerbot", 85, 40, 350, 155, 175},
  322.             {"Enabled", "Checkbox", false, 0},
  323.             {"Auto Stop", "Checkbox", false, 0},
  324.             {"Auto Crouch", "Checkbox", false, 0},
  325.             {"Auto Zoom", "Checkbox", false, 0},
  326.             {"Trigger Key", "Selection", "None", {"None", "Mouse3", "Mouse4", "Mouse5", "L-ALT", "L-CTRL", "Shift", "Letter: E", "Letter: F", "Letter: Q"}, 125},
  327.         },
  328.         {
  329.             {"Other", 445, 40, 350, 275, 175},
  330.             {"Trigger Position", "Selection", "Auto", {"Head only", "Body only", "Auto"}, 125 },
  331.             {"Ignore Players", "Checkbox", false, 0},
  332.             {"Ignore NPCs", "Checkbox", false, 0},
  333.             {"Ignore Team", "Checkbox", false, 0},
  334.             {"Ignore Friends", "Checkbox", false, 0},
  335.             {"Ignore Bots", "Checkbox", false, 0},
  336.             {"Ignore Admins", "Checkbox", false, 0},
  337.             {"Ignore driving Players", "Checkbox", false, 0},
  338.             {"Ignore noclipping Players", "Checkbox", false, 0},
  339.             {"Ignore transparent Players", "Checkbox", false, 0},
  340.         },
  341.     },
  342.     ["Hack vs Hack"] = {
  343.         {
  344.             {"Anti-Aim", 85, 40, 350, 210, 175},
  345.             {"Enabled", "Checkbox", false, 0},
  346.             {"Follow closest Target", "Checkbox", false, 0},
  347.             {"Rotation", "Selection", "Left", {"Left", "Right", "Switch on key"}, 125},
  348.             {"Switch Rotation Key", "Selection", "Right Arrow", {"Left Arrow", "Right Arrow", "Mouse3", "Mouse4", "Mouse5", "L-ALT", "L-CTRL", "Shift", "Letter: E", "Letter: R", "Letter: F", "Letter: Q", "Letter: G"}, 125},
  349.             {"Pitch", "Selection", "None", {"None", "Up", "Down", "Center", "Fake-Down", "Jitter", "Spin"}, 125},
  350.             {"Yaw", "Selection", "None", {"None", "Sideways", "Backwards", "Spin", "Jitter", "Fake-Sideways", "Fake-Forwards", "Fake-Backwards"}, 125},
  351.             {"Spin Speed", "Slider", 30, 180, 125},
  352.         },
  353.         {
  354.             {"Anti-Aim Resolver", 445, 40, 350, 130, 175},
  355.             {"Enabled", "Checkbox", false, 0},
  356.             {"Rage Targets Only", "Checkbox", false, 0},
  357.             {"Pitch", "Selection", "Auto", {"Off", "Up", "Down", "Center", "Invert", "Random", "Auto"}, 125},
  358.             {"Yaw", "Selection", "Auto", {"Off", "Invert", "-90", "+90", "Random", "Auto"}, 125},
  359.         },
  360.     },
  361.     ["Visuals"] = {
  362.         {
  363.             {"ESP", 85, 40, 350, 350, 175},
  364.             {"Enabled", "Checkbox", false, 0},
  365.             {"Names", "Checkbox", false, 0},
  366.             {"Conditions", "Checkbox", false, 0},
  367.             {"Bones", "Checkbox", false, 0},
  368.             {"Highlight Friends", "Checkbox", false, 0},
  369.             {"Highlight Admins", "Checkbox", false, 0},
  370.             {"Highlight Aim Target", "Checkbox", false, 0},
  371.             {"Draw Mode", "Selection", "Players only", {"Players only", "NPCs only", "Both"}, 125},
  372.             {"Text Position", "Selection", "Right", {"Right", "Left", "Bottom", "Center"}, 125},
  373.             {"Box", "Selection", "Off", {"Off", "2D (Outlined)", "2D (Semi-Solid)", "2D (Solid)", "2D (Edged)", "3D"}, 125},
  374.             {"Health", "Selection", "Off", {"Off", "Value only", "Bar only", "Both"}, 125},
  375.             {"Lines", "Selection", "Off", {"Off", "Top", "Bottom", "Center"}, 125},
  376.             {"Chams", "Selection", "Off", {"Off", "Visible only", "On"}, 125},
  377.         },
  378.         {
  379.             {"Player List", 85, 405, 350, 100, 175},
  380.             {"Enabled", "Checkbox", false, 0},
  381.             {"Colors", "Selection", "Team", {"Team", "Menu", "Custom"}, 125},
  382.             {"Spacing", "Slider", 0, 10, 125},
  383.         },
  384.         {
  385.             {"Other", 445, 40, 350, 275, 175},
  386.             {"Aiming Player Alert", "Checkbox", false, 0},
  387.             {"Spectating Player Alert", "Selection", "Off", {"Off", "On me", "On anyone"}, 125},
  388.             {"Team Colors", "Checkbox", false, 0},
  389.             {"Crosshair", "Checkbox", false, 0},
  390.             {"Glow", "Checkbox", false, 0},
  391.             {"No Recoil", "Checkbox", false, 0},
  392.             {"Custom FOV", "Slider", 0, 80, 125},
  393.             {"Thirdperson", "Slider", 0, 50, 125},
  394.             {"Font", "Selection", "Verdana", {"Verdana", "Arial", "Arial Black", "Consolas", "Times New Roman", "Comic Sans MS", "Tahoma", "Segoe UI"}, 125},
  395.             {"Bold Font", "Checkbox", false, 0},
  396.         },
  397.         {
  398.             {"Radar", 445, 330, 350, 195, 175},
  399.             {"Enabled", "Checkbox", false, 0},
  400.             {"Names", "Checkbox", false, 0},
  401.             {"Size", "Slider", 100, 200, 125},
  402.             {"Distance", "Slider", 15, 60, 125},
  403.             {"Y-Position", "Slider", 100, ScrH()-300, 125},
  404.             {"X-Position", "Slider", 150, ScrW()-300, 125},
  405.         },
  406.     },
  407.     ["Misc"] = {
  408.         {
  409.             {"Misc", 85, 40, 350, 350, 175},
  410.             {"Bunny Hop", "Checkbox", false, 0},
  411.             {"Auto Strafe", "Checkbox", false, 0},
  412.             {"Circle Strafe", "Selection", "Off", {"Off", "Mouse3", "Mouse4", "Mouse5", "L-ALT", "L-CTRL", "Shift", "Letter: E", "Letter: F", "Letter: Q", "Letter: G"}, 125},
  413.             {"Auto Reload", "Checkbox", false, 0},
  414.             {"Rapid Fire", "Checkbox", false, 0},
  415.             {"Log Kills in Chat", "Checkbox", false, 0},
  416.             {"Name Stealer", "Checkbox", false, 0},
  417.             {"Chat Spam", "Selection", "Off", {"Off", "Advertisements", "Clear Chat"}, 125},
  418.             {"Spam after Kill", "Selection", "Off", {"Off", "On", "Rage Targets Only"}, 125},
  419.             {"Spam after Disconnect", "Checkbox", false, 0},
  420.             {"Spam after Cheater Callout", "Checkbox", false, 0},
  421.             {"Hitsound", "Checkbox", false, 0},
  422.             {"Mute Footsteps", "Checkbox", false, 0},
  423.             {"Grandpa Walk", "Checkbox", false, 0},
  424.         },
  425.         {
  426.             {"VIP", 85, 405, 350, 105, 175},
  427.             {"Entity Finder", "Checkbox", false, 0},
  428.             {"Open Entity Finder", "Button", "", 125},
  429.             {"Open Plugin Loader", "Button", "", 125},
  430.         },
  431.         {
  432.             {"Fake Lag", 445, 40, 350, 75, 175},
  433.             {"Density", "Slider", 0, 14, 125},
  434.             {"Disable on Attack", "Checkbox", false, 0},
  435.         },
  436.         {
  437.             {"Configuration", 445, 130, 350, 170, 175},
  438.             {"Load Config", "Selection", "Config #1", {"Config #1", "Config #2", "Config #3", "Config #4", "Config #5"}, 125},
  439.             {"Config Path: GarrysMod\\garrysmod\\data\\"..cheatname, "Checkbox", false, 9999},
  440.             {"Save selected config", "Button", "", 125},
  441.             {"Load selected config", "Button", "", 125},
  442.             {"Delete selected config", "Button", "", 125},
  443.             {"Automatically save", "Checkbox", false, 0},
  444.         },
  445.         {
  446.             {"Other", 445, 315, 350, 150, 175},
  447.             {"Let TTS read chat", "Checkbox", false, 0},
  448.             {"List Staff", "Button", "", 125},
  449.             {"Changelog", "Button", "", 125},
  450.             {"Unload "..cheatname, "Button", "", 125},
  451.             {"Debug Information", "Checkbox", false, 0},
  452.         },
  453.     },
  454.     ["Gamemode"] = {
  455.         {
  456.             {"Murder", 85, 40, 350, 355, 175},
  457.             {"Draw Magnum", "Checkbox", false, 0},
  458.             {"Draw Knife", "Checkbox", false, 0},
  459.             {"Draw Loot", "Checkbox", false, 0},
  460.             {"Draw Bystander Names", "Checkbox", false, 0},
  461.             {"Highlight Murderer", "Checkbox", false, 0},
  462.             {"Highlight armed Bystander", "Checkbox", false, 0},
  463.             {"Hide End Round Board", "Checkbox", false, 0},
  464.             {"Hide Footprints", "Checkbox", false, 0},
  465.             {"Don't become Murderer", "Checkbox", false, 0},
  466.             {"No Black Screens", "Checkbox", false, 0},
  467.             {"Murderer Notification", "Checkbox", false, 0},
  468.             {"Murderer Announcer", "Selection", "Off", {"Off", "Announce every round", "Spam"}, 125},
  469.             {"Taunt Spam", "Selection", "Off", {"Off", "Funny", "Help", "Scream", "Morose", "Random"}, 125},
  470.         },
  471.         {
  472.             {"DarkRP", 445, 40, 350, 90, 175},
  473.             {"Suicide near Arrest Batons", "Checkbox", false, 0},
  474.             {"Prop Transparency", "Slider", 0, 230, 125},
  475.         },
  476.         {
  477.             {"TTT", 445, 145, 350, 115, 175},
  478.             {"Hide Round Report", "Checkbox", false, 0},
  479.             {"Panel Remover", "Checkbox", false, 0},
  480.             {"Prop Kill Key", "Selection", "Off", {"Off", "Mouse3", "Mouse4", "Mouse5", "L-ALT", "L-CTRL", "Shift", "Letter: E", "Letter: F", "Letter: Q", "Letter: G"}, 125},
  481.         },
  482.     },
  483.     ["Settings"] = {
  484.         {
  485.             {"Primary Color", 50, 20, 250, 105, 130},
  486.             {"Red", "Slider", 0, 255, 88},
  487.             {"Green", "Slider", 125, 255, 88},
  488.             {"Blue", "Slider", 255, 255, 88},
  489.         },
  490.         {
  491.             {"Friend Color", 50, 145, 250, 105, 130},
  492.             {"Red", "Slider", 140, 255, 88},
  493.             {"Green", "Slider",45, 255, 88},
  494.             {"Blue", "Slider", 255, 255, 88},
  495.         },
  496.         {
  497.             {"NPC Color", 50, 270, 250, 105, 130},
  498.             {"Red", "Slider", 200, 255, 88},
  499.             {"Green", "Slider", 200, 255, 88},
  500.             {"Blue", "Slider", 200, 255, 88},
  501.         },
  502.         {
  503.             {"Admin Color", 320, 270, 250, 105, 130},
  504.             {"Red", "Slider", 255, 255, 88},
  505.             {"Green", "Slider", 0, 255, 88},
  506.             {"Blue", "Slider", 0, 255, 88},
  507.         },
  508.         {
  509.             {"Menu Color", 320, 20, 250, 105, 130},
  510.             {"Red", "Slider", 0, 255, 88},
  511.             {"Green", "Slider", 180, 255, 88},
  512.             {"Blue", "Slider", 255, 255, 88},
  513.         },
  514.         {
  515.             {"Aim Target Color", 320, 145, 250, 105, 130},
  516.             {"Red", "Slider", 255, 255, 88},
  517.             {"Green", "Slider", 60, 255, 88},
  518.             {"Blue", "Slider", 160, 255, 88},
  519.         },
  520.         {
  521.             {"Visible Chams Color", 590, 20, 250, 105, 130},
  522.             {"Red", "Slider", 0, 255, 88},
  523.             {"Green", "Slider", 125, 255, 88},
  524.             {"Blue", "Slider", 255, 255, 88},
  525.         },
  526.         {
  527.             {"Invisible Chams Color", 590, 145, 250, 105, 130},
  528.             {"Red", "Slider", 255, 255, 88},
  529.             {"Green", "Slider", 125, 255, 88},
  530.             {"Blue", "Slider", 0, 255, 88},
  531.         },
  532.         {
  533.             {"ESP Distance", 590, 270, 250, 105, 130},
  534.             {"Enabled", "Checkbox", true, 0},
  535.             {"Distance Limit", "Slider", 950, 1500, 88},
  536.         },
  537.         {
  538.             {"Entity Color", 50, 395, 250, 105, 130},
  539.             {"Red", "Slider", 255, 255, 88},
  540.             {"Green", "Slider", 60, 255, 88},
  541.             {"Blue", "Slider", 160, 255, 88},
  542.         },
  543.         {
  544.             {"Menu", 320, 395, 250, 105, 130},
  545.             {"Feature Information", "Checkbox", true, 0},
  546.             {"Menu Box", "Selection", "Rounded", {"Rounded", "Edged"}, 88},
  547.             {"Darkness", "Slider", 20, 25, 88},
  548.         },
  549.     },
  550. }
  551.  
  552. local order = {
  553.     "Aimbot",
  554.     "Triggerbot",
  555.     "Hack vs Hack",
  556.     "Visuals",
  557.     "Misc",
  558.     "Gamemode",
  559.     "Settings",
  560. }
  561.  
  562. for k,v in next, order do
  563.     visible[v] = false
  564. end
  565.  
  566. --[[
  567.     MISCELLANEOUS FUNCTIONS PT.2
  568. ]]
  569.  
  570. gameevent.Listen("entity_killed")
  571. gameevent.Listen("player_say")
  572. --gameevent.Listen("player_connect")
  573. gameevent.Listen("player_disconnect")
  574. gameevent.Listen("player_hurt")
  575.  
  576. local function updatevar( men, sub, lookup, new )
  577.     for aa,aaa in next, options[men] do
  578.         for key, val in next, aaa do
  579.             if aaa[1][1] ~= sub then
  580.                 continue
  581.             end
  582.             if val[1] == lookup then
  583.                 val[3] = new
  584.             end
  585.         end
  586.     end
  587. end
  588.  
  589. local function saveconfig1()
  590.     file.Write(cheatname.."/config_1.txt", util.TableToJSON(options))
  591. end
  592.  
  593. local function saveconfig2()
  594.     file.Write(cheatname.."/config_2.txt", util.TableToJSON(options))
  595. end
  596.  
  597. local function saveconfig3()
  598.     file.Write(cheatname.."/config_3.txt", util.TableToJSON(options))
  599. end
  600.  
  601. local function saveconfig4()
  602.     file.Write(cheatname.."/config_4.txt", util.TableToJSON(options))
  603. end
  604.  
  605. local function saveconfig5()
  606.     file.Write(cheatname.."/config_5.txt", util.TableToJSON(options))
  607. end
  608.  
  609. local function loadconfig1()
  610.     if file.Exists(cheatname.."/config_1.txt", "DATA") then
  611.         local tab = util.JSONToTable( file.Read(cheatname.."/config_1.txt", "DATA") )
  612.         local cursub
  613.         for k,v in next, tab do
  614.             if not options[k] then continue end
  615.             for men, subtab in next, v do
  616.                 for key, val in next, subtab do
  617.                     if key == 1 then
  618.                         cursub = val[1]
  619.                         continue
  620.                     end
  621.                     updatevar(k, cursub, val[1], val[3])
  622.                 end
  623.             end
  624.         end
  625.     end
  626. end
  627.  
  628. local function loadconfig2()
  629.     if file.Exists(cheatname.."/config_2.txt", "DATA") then
  630.         local tab = util.JSONToTable( file.Read(cheatname.."/config_2.txt", "DATA") )
  631.         local cursub
  632.         for k,v in next, tab do
  633.             if not options[k] then continue end
  634.             for men, subtab in next, v do
  635.                 for key, val in next, subtab do
  636.                     if key == 1 then
  637.                         cursub = val[1]
  638.                         continue
  639.                     end
  640.                     updatevar(k, cursub, val[1], val[3])
  641.                 end
  642.             end
  643.         end
  644.     end
  645. end
  646.  
  647. local function loadconfig3()
  648.     if file.Exists(cheatname.."/config_3.txt", "DATA") then
  649.         local tab = util.JSONToTable( file.Read(cheatname.."/config_3.txt", "DATA") )
  650.         local cursub
  651.         for k,v in next, tab do
  652.             if not options[k] then continue end
  653.             for men, subtab in next, v do
  654.                 for key, val in next, subtab do
  655.                     if key == 1 then
  656.                         cursub = val[1]
  657.                         continue
  658.                     end
  659.                     updatevar(k, cursub, val[1], val[3])
  660.                 end
  661.             end
  662.         end
  663.     end
  664. end
  665.  
  666. local function loadconfig4()
  667.     if file.Exists(cheatname.."/config_4.txt", "DATA") then
  668.         local tab = util.JSONToTable( file.Read(cheatname.."/config_4.txt", "DATA") )
  669.         local cursub
  670.         for k,v in next, tab do
  671.             if not options[k] then continue end
  672.             for men, subtab in next, v do
  673.                 for key, val in next, subtab do
  674.                     if key == 1 then
  675.                         cursub = val[1]
  676.                         continue
  677.                     end
  678.                     updatevar(k, cursub, val[1], val[3])
  679.                 end
  680.             end
  681.         end
  682.     end
  683. end
  684.  
  685. local function loadconfig5()
  686.     if file.Exists(cheatname.."/config_5.txt", "DATA") then
  687.         local tab = util.JSONToTable( file.Read(cheatname.."/config_5.txt", "DATA") )
  688.         local cursub
  689.         for k,v in next, tab do
  690.             if not options[k] then continue end
  691.             for men, subtab in next, v do
  692.                 for key, val in next, subtab do
  693.                     if key == 1 then
  694.                         cursub = val[1]
  695.                         continue
  696.                     end
  697.                     updatevar(k, cursub, val[1], val[3])
  698.                 end
  699.             end
  700.         end
  701.     end
  702. end
  703.  
  704. local function gBool(men, sub, lookup)
  705.     if not options[men] then return end
  706.     for aa,aaa in next, options[men] do
  707.         for key, val in next, aaa do
  708.             if aaa[1][1] ~= sub then
  709.                 continue
  710.             end
  711.             if val[1] == lookup then
  712.                 return val[3]
  713.             end
  714.         end
  715.     end
  716. end
  717.  
  718. local function gOption(men, sub, lookup)
  719.     if not options[men] then return "" end
  720.     for aa,aaa in next, options[men] do
  721.         for key, val in next, aaa do
  722.             if aaa[1][1] ~= sub then
  723.                 continue
  724.             end
  725.             if val[1] == lookup then
  726.                 return val[3]
  727.             end
  728.         end
  729.     end
  730.     return ""
  731. end
  732.  
  733. local function gInt(men, sub, lookup)
  734.     if not options[men] then return 0 end
  735.     for aa,aaa in next, options[men] do
  736.         for key, val in next, aaa do
  737.             if aaa[1][1] ~= sub then
  738.                 continue
  739.             end
  740.             if val[1] == lookup then
  741.                 return val[3]
  742.             end
  743.         end
  744.     end
  745.     return 0
  746. end
  747.  
  748. local function unload()
  749.     if gui.IsGameUIVisible() then
  750.         gui.HideGameUI()
  751.     end
  752.  
  753.     for k, v in next, all_hooks do
  754.         for _k, _v in next, v do
  755.             hook.Remove(k, _k)
  756.         end
  757.     end
  758.  
  759.     if gBool("Misc", "Configuration", "Automatically save") then
  760.         if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  761.             saveconfig1()
  762.         elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  763.             saveconfig2()
  764.         elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  765.             saveconfig3()
  766.         elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  767.             saveconfig4()
  768.         elseif gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  769.             saveconfig5()
  770.         end
  771.     end
  772.  
  773.     command("cl_interp 0; cl_interp_ratio 2; cl_updaterate 30")
  774.  
  775.     memesendpacket = true
  776.     _G.Loaded = false
  777.  
  778.     msg(3, "Cheat unloaded successfully.")
  779. end
  780.  
  781. local function font()
  782.     if gBool("Visuals", "Other", "Bold Font") then
  783.         if gOption("Visuals", "Other", "Font") == "Verdana" then
  784.             return "Verdana_Bold"
  785.         elseif gOption("Visuals", "Other", "Font") == "Arial" then
  786.             return "Arial_Bold"
  787.         elseif gOption("Visuals", "Other", "Font") == "Arial Black" then
  788.             return "ArialB_Bold"
  789.         elseif gOption("Visuals", "Other", "Font") == "Times New Roman" then
  790.             return "TNR_Bold"
  791.         elseif gOption("Visuals", "Other", "Font") == "Comic Sans MS" then
  792.             return "ComicSans_Bold"
  793.         elseif gOption("Visuals", "Other", "Font") == "Tahoma" then
  794.             return "Tahoma_Bold"
  795.         elseif gOption("Visuals", "Other", "Font") == "Segoe UI" then
  796.             return "SegoeUI_Bold"
  797.         elseif gOption("Visuals", "Other", "Font") == "Consolas" then
  798.             return "Consolas_Bold"
  799.         end
  800.     else
  801.         if gOption("Visuals", "Other", "Font") == "Verdana" then
  802.             return "Verdana"
  803.         elseif gOption("Visuals", "Other", "Font") == "Arial" then
  804.             return "Arial"
  805.         elseif gOption("Visuals", "Other", "Font") == "Arial Black" then
  806.             return "ArialB"
  807.         elseif gOption("Visuals", "Other", "Font") == "Times New Roman" then
  808.             return "TNR"
  809.         elseif gOption("Visuals", "Other", "Font") == "Comic Sans MS" then
  810.             return "ComicSans"
  811.         elseif gOption("Visuals", "Other", "Font") == "Tahoma" then
  812.             return "Tahoma"
  813.         elseif gOption("Visuals", "Other", "Font") == "Segoe UI" then
  814.             return "SegoeUI"
  815.         elseif gOption("Visuals", "Other", "Font") == "Consolas" then
  816.             return "Consolas"
  817.         end
  818.     end
  819. end
  820.  
  821. local function MouseInArea(minx, miny, maxx, maxy)
  822.     local mousex, mousey = gui.MousePos()
  823.     return(mousex < maxx and mousex > minx and mousey < maxy and mousey > miny)
  824. end
  825.  
  826. local function DrawOptions(self, w, h)
  827.     local mx, my = self:GetPos()
  828.     local sizeper = (w - 10) / #order
  829.     local maxx = 0
  830.  
  831.     for k,v in next, order do
  832.         local bMouse = MouseInArea(mx + 5 + maxx, my + 31, mx + 5 + maxx + sizeper, my + 31 + 30)
  833.         if visible[v] then
  834.             local curcol = Color(MenuCol.r / 2, MenuCol.g / 2, MenuCol.b / 2, 100)
  835.             for i = 0, 30 do
  836.                 surface.SetDrawColor(curcol)
  837.                 curcol.r, curcol.g, curcol.b = curcol.r + 0, curcol.g + 0, curcol.b + 0
  838.                 surface.DrawLine( 5 + maxx, 31 + i, 5 + maxx + sizeper, 31 + i)
  839.             end
  840.         elseif bMouse then
  841.             local curcol = Color(255, 255, 255, 3)
  842.             for i = 0, 30 do
  843.                 surface.SetDrawColor(curcol)
  844.                 curcol.r, curcol.g, curcol.b = curcol.r - 1.7, curcol.g - 1.7, curcol.b - 1.7
  845.                 surface.DrawLine( 5 + maxx, 31 + i, 5 + maxx + sizeper, 31 + i)
  846.             end
  847.         else
  848.             local curcol = Color(0, 0, 0, 0)
  849.             for i = 0, 30 do
  850.                 surface.SetDrawColor(curcol)
  851.                 curcol.r, curcol.g, curcol.b = curcol.r - 1.7, curcol.g - 1.7, curcol.b - 1.7
  852.                 surface.DrawLine( 5 + maxx, 31 + i, 5 + maxx + sizeper, 31 + i)
  853.             end
  854.         end
  855.         if bMouse and input.IsMouseDown(MOUSE_LEFT) and not mousedown and not visible[v] then
  856.             local nb = visible[v]
  857.             for key,val in next, visible do
  858.                 visible[key] = false
  859.             end
  860.             visible[v] = not nb
  861.         end
  862.  
  863.         surface.SetFont(font())
  864.         surface.SetTextColor(MenuCol.r, MenuCol.g, MenuCol.b, 215)
  865.         local tw, th = surface.GetTextSize(v)
  866.         surface.SetTextPos( 5 + maxx + sizeper / 2 - tw / 2, 31 + 15 - th / 2 )
  867.         surface.DrawText(v)
  868.         maxx = maxx + sizeper
  869.     end
  870. end
  871.  
  872. local function DrawCheckbox(self, w, h, var, maxy, posx, posy, dist)
  873.     --[[local feat = var[1]
  874.     local text = ""]]
  875.  
  876.     surface.SetFont(font())
  877.     surface.SetTextColor(MenuCol.r, MenuCol.g, MenuCol.b, 200)
  878.     surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy )
  879.     local tw, th = surface.GetTextSize(var[1])
  880.     surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 200)
  881.     local mx, my = self:GetPos()
  882.     local bMouse = MouseInArea(mx + 5 + posx + 15 + 5, my + 61 + posy + maxy, mx + 5 + posx + 15 + 5 + dist + 14 + var[4], my + 61 + posy + maxy + 16)
  883.  
  884.     if bMouse then
  885.         surface.SetTextColor(PrimaryCol.r, PrimaryCol.g, PrimaryCol.b, 200)
  886.         surface.SetDrawColor(PrimaryCol.r, PrimaryCol.g, PrimaryCol.b, 200)
  887.  
  888.         if not input.IsMouseDown(MOUSE_LEFT) then
  889.             surface.DrawRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 2, 10, 10)
  890.         end
  891.  
  892.         if gOption("Settings", "Menu", "Feature Information") ~= "Off" then
  893.             local feat = var[1]
  894.  
  895.             if feat == "Enabled" then
  896.                 info = "This checkbox toggles the entire function."
  897.             elseif feat == "Silent Aimbot" then
  898.                 info = "Clientside invisible aimbot."
  899.             elseif feat == "Auto Fire" then
  900.                 info = "Automatically fires at an aimbot target."
  901.             elseif feat == "Auto Stop" then
  902.                 info = "Automatically stops movement once a target has been found."
  903.             elseif feat == "Auto Crouch" then
  904.                 info = "Automatically crouches once a target has been found."
  905.             elseif feat == "Auto Zoom" then
  906.                 info = "Automatically zooms in with the weapon once a target has been found."
  907.             elseif feat == "Projectile Prediction" then
  908.                 info = "Aims ahead of aimbot targets and predicts their future position with projectile-based weapons."
  909.             elseif feat == "No Lerp" then
  910.                 info = "Removes linear interpolation and achieves more accurate shots, but makes animations stuttery/unsmooth."
  911.             elseif feat == "Follow closest Target" then
  912.                 info = "Follows nearest player's position with current yaw settings."
  913.             elseif feat == "Rage Targets Only" then
  914.                 info = "Only resolve marked targets through the player list, in case there are people that aren't using anti-aim."
  915.             elseif feat == "Conditions" then
  916.                 info = "Conditions: Driving, noclipping, crouching, climbing, sprinting, spawning etc."
  917.             elseif feat == "Aiming Player Alert" then
  918.                 info = "Draws a text below the crosshair, indicating whether a player is aiming at you or not."
  919.             elseif feat == "Crosshair" then
  920.                 info = "Custom crosshair. Disable GMod's default crosshair by entering \"crosshair 0\" into the console."
  921.             elseif feat == "Glow" then
  922.                 info = "May cause FPS issues."
  923.             elseif feat == "No Recoil" then
  924.                 info = "Prevents your screen/view from shaking."
  925.             elseif feat == "Bunny Hop" then
  926.                 info = "Keeps jumping when holding spacebar (or any other key that makes you jump)."
  927.             elseif feat == "Auto Strafe" then
  928.                 info = "Automatically strafes to the left or right, depending on mouse movement, while in air."
  929.             elseif feat == "Spam after Cheater Callout" then
  930.                 info = "Sends a long empty message to the chat to prevent other players from reading someone's accusations towards you."
  931.             elseif feat == "Grandpa Walk" then
  932.                 info = "Useless feature."
  933.             elseif feat == "Suicide near Arrest Batons" then
  934.                 info = "Automatically suicides near arrest batons if the player is looking at you and not a friend (except if he's not ignored)."
  935.             elseif feat == "Hide Round Report" or feat == "Hide End Round Board" then
  936.                 info = "Prevents the window that pops up at the end of every single round from showing."
  937.             elseif feat == "Panel Remover" then
  938.                 info = "Removes any panel that shows up by pressing \"G\". Useful for RDM-report windows etc."
  939.             end
  940.         end
  941.     end
  942.  
  943.     surface.DrawText(var[1])
  944.     surface.DrawOutlinedRect( posx + 25 + dist + var[4], 61 + posy + maxy , 13, 13)
  945.  
  946.     if var[3] then
  947.         surface.SetDrawColor(MenuCol.r-30,MenuCol.g-30,MenuCol.b-30, 100)
  948.         surface.DrawRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 2, 10, 10)
  949.         surface.SetDrawColor(MenuCol.r-10,MenuCol.g-10,MenuCol.b-10, 100)
  950.         surface.DrawOutlinedRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 2, 10, 10)
  951.     end
  952.  
  953.     if bMouse and input.IsMouseDown(MOUSE_LEFT) and not mousedown and not drawlast then
  954.         var[3] = not var[3]
  955.     end
  956. end
  957.  
  958. local function DrawSlider(self, w, h, var, maxy, posx, posy, dist)
  959.     local curnum = var[3]
  960.     local max = var[4]
  961.     local size = var[5]
  962.     surface.SetFont(font())
  963.     surface.SetTextColor(MenuCol.r, MenuCol.g, MenuCol.b, 200)
  964.     surface.SetTextPos( posx + 25, 61 + posy + maxy )
  965.     surface.DrawText(var[1])
  966.     local tw, th = surface.GetTextSize(var[1])
  967.     surface.SetDrawColor(50, 50, 50, 255)
  968.     surface.DrawRect( 5 + posx + 15 + 5 + dist, 61 + posy + maxy + 9, size, 2)
  969.     surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 150)
  970.     surface.DrawRect( 5 + posx + 15 + 5 + dist, 61 + posy + maxy + 9, size, 2)
  971.     local ww = math.ceil(curnum * size / max)
  972.     surface.DrawRect( 3 + posx + 15 + 5 + dist + ww, 61 + posy + maxy + 9 - 5, 6, 12)
  973.     surface.SetDrawColor(0,0,0)
  974.     local tw, th = surface.GetTextSize(curnum)
  975.     surface.DrawOutlinedRect( 3 + posx + 15 + 5 + dist + ww, 61 + posy + maxy + 4, 6, 12)
  976.     surface.SetTextPos( posx + dist - (size/15), 48.7 + posy + maxy + 16)
  977.     local mx, my = self:GetPos()
  978.     local bMouse = MouseInArea(5 + posx + 15 + 5 + dist + mx, 61 + posy + maxy + 9 - 5 + my, 5 + posx + 15 + 5 + dist + mx + size, 61 + posy + maxy + 9 - 5 + my + 12)
  979.  
  980.     if bMouse and input.IsMouseDown(MOUSE_LEFT) and not drawlast and not candoslider then
  981.         surface.SetTextColor(PrimaryCol.r, PrimaryCol.g, PrimaryCol.b, 200)
  982.  
  983.         local mw, mh = gui.MousePos()
  984.         local new = math.ceil( ((mw - (mx + posx + 25 + dist - size)) - (size + 1)) / (size - 2) * max)
  985.         var[3] = new
  986.  
  987.         if var[1] == "Aimbot FOV" then
  988.             draw_fov = true
  989.         end
  990.  
  991.         timer.Simple(5, function() draw_fov = false end)
  992.     end
  993.  
  994.     surface.DrawText(curnum)
  995. end
  996.  
  997. local function DrawSelect(self, w, h, var, maxy, posx, posy, dist)
  998.     local size = var[5]
  999.     local curopt = var[3]
  1000.     surface.SetFont(font())
  1001.     surface.SetTextColor(MenuCol.r, MenuCol.g, MenuCol.b, 225)
  1002.     surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy )
  1003.     local tw, th = surface.GetTextSize(var[1])
  1004.     surface.DrawText(var[1])
  1005.     surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 125)
  1006.     surface.DrawOutlinedRect( 25 + posx + dist, 61 + posy + maxy, size, 16)
  1007.     local mx, my = self:GetPos()
  1008.     local bMouse = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy, mx + 25 + posx + dist + size, my + 61 + posy + maxy + 16)
  1009.     local check = dist..posy..posx..w..h..maxy
  1010.  
  1011.     if bMouse or notyetselected == check then
  1012.         surface.SetDrawColor(PrimaryCol.r, PrimaryCol.g, PrimaryCol.b, 125)
  1013.         surface.DrawRect(25 + posx + dist + 2, 61 + posy + maxy + 2, size - 4, 12)
  1014.  
  1015.         if gOption("Settings", "Menu", "Feature Information") ~= "Off" then
  1016.             local feat = var[1]
  1017.  
  1018.             if feat == "Aim Key" then
  1019.                 info = "Only enables aimbot if this key is pressed."
  1020.             elseif feat == "Fake Lag Prediction" then
  1021.                 info = "Increases your chance to hit a lagging player by a lot. Do not use on players that aren't lagging."
  1022.             elseif feat == "Priority" then
  1023.                 info = "FOV: Field of view, nearest to crosshair."
  1024.             elseif feat == "Rotation" then
  1025.                 info = "Changes Yaw rotation."
  1026.             elseif feat == "Switch Rotation Key" then
  1027.                 info = "Inverts Yaw rotation. Switches between left and right."
  1028.             elseif feat == "Pitch" then
  1029.                 info = "Up, down. (Down is recommended.)"
  1030.             elseif feat == "Yaw" then
  1031.                 info = "Left, right."
  1032.             elseif feat == "Lines" then
  1033.                 info = "Lines that lead from your position to other players or npcs positions."
  1034.             elseif feat == "Chams" then
  1035.                 info = "Colored player models."
  1036.             --[[elseif feat == "Circle Strafe" then
  1037.                 info = "Automatically jumps in a circle in order to gain speed. No speed is gathered in a few gamemodes."]]
  1038.             elseif feat == "Spam after Kill" then
  1039.                 info = "Sends a message to the chat after a kill."
  1040.             elseif feat == "Open Plugin Loader" then
  1041.                 info = "Loads other Lua files through "..cheatname.." and applies its protection."
  1042.             elseif feat == "Unload "..cheatname then
  1043.                 info = "Unloads the cheat by removing all hooks."
  1044.             elseif feat == "Murderer Announcer" then
  1045.                 info = "Tells everyone else who the knife has and the murderer is."
  1046.             elseif feat == "Prop Kill Key" then
  1047.                 info = "Pick up a prop with the Magneto-Stick, press the chosen key and wait until the circle turns into your aimtarget color."
  1048.             elseif feat == "Feature Information" then
  1049.                 info = "Feature Information displays the text that you're reading right now. It's used to describe some possibly unclear features to avoid confusion."
  1050.             end
  1051.         end
  1052.     end
  1053.  
  1054.     local tw, th = surface.GetTextSize(curopt)
  1055.     surface.SetTextPos( 25 + posx + dist + 5, 61 + posy + maxy + 6 - th / 2 + 2)
  1056.     surface.DrawText(curopt)
  1057.  
  1058.     if bMouse and input.IsMouseDown(MOUSE_LEFT) and not drawlast and not mousedown or notyetselected == check then
  1059.         notyetselected = check
  1060.         drawlast = function()
  1061.             local maxy2 = 16
  1062.             for k,v in next, var[4] do
  1063.                 surface.SetDrawColor(MenuCol.r-75, MenuCol.g-75, MenuCol.b-75, 225)
  1064.                 surface.DrawRect( 25 + posx + dist, 61 + posy + maxy + maxy2, size, 16)
  1065.                 local bMouse2 = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy + maxy2, mx + 25 + posx + dist + size, my + 61 + posy + maxy + 16 + maxy2)
  1066.                 if bMouse2 then
  1067.                     surface.SetDrawColor(MenuCol.r-50,MenuCol.g-50,MenuCol.b-50, 240)
  1068.                     surface.DrawRect( 25 + posx + dist, 61 + posy + maxy + maxy2, size, 16)
  1069.                 end
  1070.                 if bMouse2 and input.IsMouseDown(MOUSE_LEFT) and not mousedown then
  1071.                     var[3] = v
  1072.                     notyetselected = nil
  1073.                     drawlast = nil
  1074.                     return
  1075.                 end
  1076.  
  1077.                 local tw, th = surface.GetTextSize(v)
  1078.                 surface.SetTextPos( 25 + posx + dist + 5, 61 + posy + maxy + 6 - th / 2 + 2 + maxy2)
  1079.                 surface.DrawText(v)
  1080.                 maxy2 = maxy2 + 16
  1081.             end
  1082.             local bbMouse = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy, mx + 25 + posx + dist + size, my + 61 + posy + maxy + maxy2)
  1083.             if not bbMouse and input.IsMouseDown(MOUSE_LEFT) and not mousedown then
  1084.                 notyetselected = nil
  1085.                 drawlast = nil
  1086.                 return
  1087.             end
  1088.         end
  1089.     end
  1090. end
  1091.  
  1092. local function no_trash(v)
  1093.     if string.find(v:GetClass(), "prop") or string.find(v:GetClass(), "grav") or string.find(v:GetClass(), "phys") or string.find(v:GetClass(), "class") or string.find(v:GetClass(), "gmod_") or string.find(v:GetClass(), "viewmodel") or string.find(v:GetClass(), "func_") or string.find(v:GetClass(), "worldspawn") or string.find(v:GetClass(), "manipulate_") or string.find(v:GetClass(), "dynamic") or string.find(v:GetClass(), "beam") or string.find(v:GetClass(), "keys") or string.find(v:GetClass(), "env_") or string.find(v:GetClass(), "pocket") then
  1094.         return false
  1095.     else
  1096.         return true
  1097.     end
  1098. end
  1099.  
  1100. local function licenseinfo()
  1101.     if license() == "Lifetime" then
  1102.         return ""
  1103.     else
  1104.         return "(dd/mm/yyyy)"
  1105.     end
  1106. end
  1107.  
  1108. local function pluginloader()
  1109.     local plugin = vgui.Create("DFrame")
  1110.     plugin:SetSize(900, 700)
  1111.     plugin:Center()
  1112.     plugin:SetTitle("")
  1113.     plugin:MakePopup()
  1114.     plugin:ShowCloseButton(false)
  1115.  
  1116.     local plugin_list = vgui.Create("DListView", plugin)
  1117.     plugin_list:SetPos(150, 75)
  1118.     plugin_list:SetSize(320, 500)
  1119.     plugin_list:SetMultiSelect(false)
  1120.     plugin_list:AddColumn("Available Lua files ("..#file.Find("lua/*.lua","GAME", "nameasc")-1 ..")"):SetFixedWidth(320)
  1121.  
  1122.     local plugin_load = vgui.Create( "DButton", plugin )
  1123.     plugin_load:SetText("Load")
  1124.     plugin_load:SetPos( 500, 75 )
  1125.     plugin_load:SetSize( 100, 30 )
  1126.     plugin_load.DoClick = function()
  1127.         chat.PlaySound()
  1128.  
  1129.         if plugin_list:GetSelectedLine() ~= nil then
  1130.             surface.PlaySound("buttons/button14.wav")
  1131.  
  1132.             plugin:Remove()
  1133.  
  1134.             menuopen = false
  1135.             candoslider = false
  1136.             drawlast = nil
  1137.  
  1138.             msg(3, "Loaded "..plugin_list:GetLine(plugin_list:GetSelectedLine()):GetValue(1).." successfully.")
  1139.        
  1140.             local d = vgui.Create('DHTML')
  1141.             d:SetAllowLua(true)
  1142.             return d:ConsoleMessage([[RUNLUA: ]]..file.Read("lua/"..plugin_list:GetLine(plugin_list:GetSelectedLine()):GetValue(1), "GAME"))
  1143.             --include(plugin_list:GetLine(plugin_list:GetSelectedLine()):GetValue(1))
  1144.         end
  1145.     end
  1146.  
  1147.     local plugin_refresh = vgui.Create( "DButton", plugin )
  1148.     plugin_refresh:SetText("Refresh")
  1149.     plugin_refresh:SetPos( 500, 115 )
  1150.     plugin_refresh:SetSize( 100, 30 )
  1151.     plugin_refresh.DoClick = function()
  1152.         chat.PlaySound()
  1153.         plugin_list:Clear()
  1154.        
  1155.         for k,v in pairs(file.Find("lua/*.lua","GAME", "nameasc")) do
  1156.             if string.find(v, cheatname) or string.find(v, "pasteware") then continue end
  1157.  
  1158.             plugin_list:AddLine(v)
  1159.         end
  1160.     end
  1161.  
  1162.     for k,v in pairs(file.Find("lua/*.lua","GAME", "nameasc")) do
  1163.         if string.find(v, cheatname) or string.find(v, "pasteware") then continue end
  1164.  
  1165.         plugin_list:AddLine(v)
  1166.     end
  1167.  
  1168.     plugin_list.Paint = function(self, w, h)
  1169.         draw.RoundedBox(15, 0, 0, w, h, MenuCol)
  1170.     end
  1171.  
  1172.     plugin.Paint = function(self, w, h)
  1173.         if gOption("Settings", "Menu", "Menu Box") == "Rounded" then
  1174.             draw.RoundedBox(15, 0, 0, w, h, Color(40, 40, 40, 240))
  1175.         else
  1176.             surface.SetDrawColor(40, 40, 40, 240)
  1177.             surface.DrawRect(0, 0, w, h)
  1178.             surface.SetDrawColor(MenuCol)
  1179.             surface.DrawOutlinedRect(0, 0, w, h)
  1180.         end
  1181.         draw.SimpleText(cheatname.." v"..version.." - Registered to "..user(steam).." - License: "..license().." "..licenseinfo().." - Plugin Loader", font(), 15, 15, MenuCol, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  1182.     end
  1183.  
  1184.     plugin.Think = function()
  1185.         if ((input.IsKeyDown(KEY_INSERT) or input.IsKeyDown(KEY_F11) or input.IsKeyDown(KEY_HOME)) and not insertdown2) then
  1186.             plugin:Remove()
  1187.  
  1188.             menuopen = false
  1189.             candoslider = false
  1190.             drawlast = nil
  1191.         end
  1192.     end
  1193. end
  1194.  
  1195. local function entfinder()
  1196.     local finder = vgui.Create("DFrame")
  1197.     finder:SetSize(900, 700)
  1198.     finder:Center()
  1199.     finder:SetTitle("")
  1200.     finder:MakePopup()
  1201.     finder:ShowCloseButton(false)
  1202.  
  1203.     local ent_list = vgui.Create("DListView", finder)
  1204.     ent_list:SetPos(80, 75)
  1205.     ent_list:SetSize(300, 500)
  1206.     ent_list:SetMultiSelect(false)
  1207.     ent_list:AddColumn("Existing entities"):SetFixedWidth(300)
  1208.  
  1209.     local draw_list = vgui.Create("DListView", finder)
  1210.     draw_list:SetPos(520, 75)
  1211.     draw_list:SetSize(300, 500)
  1212.     draw_list:SetMultiSelect(false)
  1213.     draw_list:AddColumn("Drawn entities"):SetFixedWidth(300)
  1214.  
  1215.     local add = vgui.Create( "DButton", finder )
  1216.     add:SetText(">>")
  1217.     add:SetPos( 400, 250 )
  1218.     add:SetSize( 100, 30 )
  1219.     add.DoClick = function()
  1220.         chat.PlaySound()
  1221.  
  1222.         if ent_list:GetSelectedLine() ~= nil then
  1223.             local ent = ent_list:GetLine(ent_list:GetSelectedLine()):GetValue(1)
  1224.             if not table.HasValue(drawn_ents,ent) then
  1225.                 table.insert(drawn_ents,ent)
  1226.                 ent_list:RemoveLine(ent_list:GetSelectedLine())
  1227.                 draw_list:AddLine(ent)
  1228.             end
  1229.         end
  1230.     end
  1231.  
  1232.     local remove = vgui.Create( "DButton", finder )
  1233.     remove:SetText("<<")
  1234.     remove:SetPos( 400, 300 )
  1235.     remove:SetSize( 100, 30 )
  1236.     remove.DoClick = function()
  1237.         chat.PlaySound()
  1238.  
  1239.         if draw_list:GetSelectedLine() ~= nil then
  1240.             local ent = draw_list:GetLine(draw_list:GetSelectedLine()):GetValue(1)
  1241.             if table.HasValue(drawn_ents,ent) then
  1242.                 for k,v in next, drawn_ents do
  1243.                     if v == ent then
  1244.                         table.remove(drawn_ents,k)
  1245.                     end
  1246.                 end
  1247.                 draw_list:RemoveLine(draw_list:GetSelectedLine())
  1248.                 ent_list:AddLine(ent)
  1249.             end
  1250.         end
  1251.     end
  1252.  
  1253.     local refresh = vgui.Create( "DButton", finder )
  1254.     refresh:SetText("Refresh")
  1255.     refresh:SetPos( 400, 350 )
  1256.     refresh:SetSize( 100, 30 )
  1257.     refresh.DoClick = function()
  1258.         chat.PlaySound()
  1259.         ent_list:Clear()
  1260.         draw_list:Clear()
  1261.  
  1262.         for k, v in next, ents.GetAll() do
  1263.             if not table.HasValue(added, v:GetClass()) and not table.HasValue(drawn_ents, v:GetClass()) and no_trash(v) and v:GetClass() ~= "player" then
  1264.                 ent_list:AddLine(v:GetClass())
  1265.             end
  1266.         end
  1267.  
  1268.         table.sort(added)
  1269.         for k, v in next, added do
  1270.             ent_list:AddLine(v)
  1271.         end
  1272.  
  1273.         table.sort(drawn_ents)
  1274.         for k, v in next, drawn_ents do
  1275.             draw_list:AddLine(v)
  1276.         end
  1277.     end
  1278.  
  1279.     local add_custom = vgui.Create( "DTextEntry", finder )
  1280.     add_custom:SetPos( 600, 600 )
  1281.     add_custom:SetSize( 140, 20 )
  1282.     add_custom:SetText("")
  1283.     --add_custom.OnChange = function() chat.AddText("BLACK") end
  1284.  
  1285.     local add_custom_button = vgui.Create( "DButton", finder )
  1286.     add_custom_button:SetText("Add")
  1287.     add_custom_button:SetPos( 745, 600 )
  1288.     add_custom_button:SetSize( 60, 20 )
  1289.     add_custom_button.DoClick = function()
  1290.         chat.PlaySound()
  1291.  
  1292.         local ent = add_custom:GetValue()
  1293.         if not table.HasValue(drawn_ents,ent) then
  1294.             table.insert(drawn_ents,ent)
  1295.             draw_list:AddLine(ent)
  1296.         end
  1297.     end
  1298.  
  1299.     local find = vgui.Create( "DTextEntry", finder )
  1300.     find:SetPos( 160, 600 )
  1301.     find:SetSize( 140, 20 )
  1302.     find:SetText("")
  1303.     find.OnChange = function()
  1304.         if find:GetValue() ~= "" then
  1305.             ent_list:Clear()
  1306.  
  1307.             for k, v in next, ents.GetAll() do
  1308.                 if string.find(v:GetClass(), find:GetValue()) and not table.HasValue(added, v:GetClass()) and not table.HasValue(drawn_ents, v:GetClass()) and no_trash(v) and v:GetClass() ~= "player" then
  1309.                     ent_list:AddLine(v:GetClass())
  1310.                 end
  1311.             end
  1312.         else
  1313.             ent_list:Clear()
  1314.  
  1315.             for k, v in next, ents.GetAll() do
  1316.                 if not table.HasValue(added, v:GetClass()) and not table.HasValue(drawn_ents, v:GetClass()) and no_trash(v) and v:GetClass() ~= "player" then
  1317.                     ent_list:AddLine(v:GetClass())
  1318.                 end
  1319.             end
  1320.  
  1321.             table.sort(added)
  1322.             for k, v in next, added do
  1323.                 ent_list:AddLine(v)
  1324.             end
  1325.         end
  1326.     end
  1327.  
  1328.     local find_button = vgui.Create( "DButton", finder )
  1329.     find_button:SetText("Search")
  1330.     find_button:SetPos( 305, 600 )
  1331.     find_button:SetSize( 60, 20 )
  1332.     find_button.DoClick = function()
  1333.         chat.PlaySound()
  1334.  
  1335.         if find:GetValue() ~= "" then
  1336.             ent_list:Clear()
  1337.  
  1338.             for k, v in next, ents.GetAll() do
  1339.                 if not table.HasValue(added, v:GetClass()) and not table.HasValue(drawn_ents, v:GetClass()) and no_trash(v) and v:GetClass() ~= "player" then
  1340.                     ent_list:AddLine(v:GetClass())
  1341.                 end
  1342.             end
  1343.         end
  1344.     end
  1345.  
  1346.     finder.Paint = function(self, w, h)
  1347.         if gOption("Settings", "Menu", "Menu Box") == "Rounded" then
  1348.             draw.RoundedBox(15, 0, 0, w, h, Color(40, 40, 40, 240))
  1349.         else
  1350.             surface.SetDrawColor(40, 40, 40, 240)
  1351.             surface.DrawRect(0, 0, w, h)
  1352.             surface.SetDrawColor(MenuCol)
  1353.             surface.DrawOutlinedRect(0, 0, w, h)
  1354.         end
  1355.         draw.SimpleText(cheatname.." v"..version.." - Registered to "..user(steam).." - License: "..license().." "..licenseinfo().." - Entity Finder", font(), 15, 15, MenuCol, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  1356.  
  1357.         draw.SimpleText("Search Entity", font(), 80, 610, MenuCol, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  1358.         draw.SimpleText("Add Entity", font(), 530, 610, MenuCol, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  1359.     end
  1360.  
  1361.     ent_list.Paint = function(self, w, h)
  1362.         draw.RoundedBox(15, 0, 0, w, h, MenuCol)
  1363.     end
  1364.  
  1365.     draw_list.Paint = function(self, w, h)
  1366.         draw.RoundedBox(15, 0, 0, w, h, MenuCol)
  1367.     end
  1368.  
  1369.     for k, v in next, ents.GetAll() do
  1370.         if not table.HasValue(added, v:GetClass()) and not table.HasValue(drawn_ents, v:GetClass()) and no_trash(v) and v:GetClass() ~= "player" then
  1371.             ent_list:AddLine(v:GetClass())
  1372.         end
  1373.     end
  1374.  
  1375.     table.sort(added)
  1376.     for k, v in next, added do
  1377.         ent_list:AddLine(v)
  1378.     end
  1379.  
  1380.     table.sort(drawn_ents)
  1381.     for k, v in next, drawn_ents do
  1382.         draw_list:AddLine(v)
  1383.     end
  1384.    
  1385.     finder.Think = function()
  1386.         if ((input.IsKeyDown(KEY_INSERT) or input.IsKeyDown(KEY_F11) or input.IsKeyDown(KEY_HOME)) and not insertdown2) then
  1387.             finder:Remove()
  1388.             file.Write(cheatname.."/entities.txt", util.TableToJSON(drawn_ents))
  1389.  
  1390.             menuopen = false
  1391.             candoslider = false
  1392.             drawlast = nil
  1393.         end
  1394.     end
  1395. end
  1396.  
  1397. local function DrawButton(self, w, h, var, maxy, posx, posy, dist)
  1398.     local text = var[1]
  1399.     local size = var[4]
  1400.     surface.SetFont(font())
  1401.     surface.SetTextColor(MenuCol.r, MenuCol.g, MenuCol.b, 255)
  1402.     surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 120)
  1403.     surface.DrawOutlinedRect(posx - 150 + dist, 61 + posy + maxy, size + 64, 16)
  1404.     local mx, my = self:GetPos()
  1405.     local bMouse = MouseInArea( mx - 150 + posx + dist, my + 61 + posy + maxy, mx - 150 + posx + dist + size + 64, my + 61 + posy + maxy + 16)
  1406.     local check = dist..posy..posx..w..h..maxy
  1407.  
  1408.     if bMouse or notyetselected == check then
  1409.         surface.SetDrawColor(PrimaryCol.r, PrimaryCol.g, PrimaryCol.b, 120)
  1410.         surface.DrawRect(posx - 150 + dist + 2, 61 + posy + maxy + 2, size + 60, 12)
  1411.     end
  1412.  
  1413.     local tw, th = surface.GetTextSize(text)
  1414.     surface.SetTextPos(posx - 150 + dist + 5, 61 + posy + maxy + 6 - th / 2 + 2)
  1415.     surface.DrawText(text)
  1416.  
  1417.     if bMouse and input.IsMouseDown(MOUSE_LEFT) and not drawlast and not mousedown or notyetselected == check then
  1418.         if text == "Unload "..cheatname then
  1419.             self:Remove()
  1420.             unload()
  1421.         elseif text == "List Staff" then
  1422.             for k,v in ipairs(player.GetAll()) do
  1423.                 if not v:IsAdmin() then continue end
  1424.  
  1425.                 chat.AddText(MenuCol, v:Nick(), Color(255,255,255), " - ", AdminCol, v:GetNWString("usergroup"))
  1426.             end
  1427.         elseif text == "Changelog" then
  1428.             http.Fetch("https://pastebin.com/raw/aWc5WwHd",function(body) msg(3, "Printed changelog to console.") print("\n===========================================================\n\n"..body.."\n\n===========================================================\n") end)
  1429.         elseif text == "Save selected config" then
  1430.             if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  1431.                 saveconfig1()
  1432.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  1433.                 saveconfig2()
  1434.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  1435.                 saveconfig3()
  1436.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  1437.                 saveconfig4()
  1438.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  1439.                 saveconfig5()
  1440.             end
  1441.         elseif text == "Load selected config" then
  1442.             if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  1443.                 loadconfig1()
  1444.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  1445.                 loadconfig2()
  1446.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  1447.                 loadconfig3()
  1448.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  1449.                 loadconfig4()
  1450.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  1451.                 loadconfig5()
  1452.             end
  1453.         elseif text == "Delete selected config" then
  1454.             if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  1455.                 file.Delete(cheatname.."/config_1.txt")
  1456.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  1457.                 file.Delete(cheatname.."/config_2.txt")
  1458.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  1459.                 file.Delete(cheatname.."/config_3.txt")
  1460.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  1461.                 file.Delete(cheatname.."/config_4.txt")
  1462.             elseif gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  1463.                 file.Delete(cheatname.."/config_5.txt")
  1464.             end
  1465.         elseif text == "Open Entity Finder" then
  1466.             if license() == "Lifetime" then
  1467.                 self:Remove()
  1468.  
  1469.                 if gBool("Misc", "Configuration", "Automatically save") then
  1470.                     if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  1471.                         saveconfig1()
  1472.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  1473.                         saveconfig2()
  1474.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  1475.                         saveconfig3()
  1476.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  1477.                         saveconfig4()
  1478.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  1479.                         saveconfig5()
  1480.                     end
  1481.                 end
  1482.  
  1483.                 entfinder()
  1484.             else
  1485.                 surface.PlaySound("buttons/button11.wav")
  1486.             end
  1487.         elseif text == "Open Plugin Loader" then
  1488.             if license() == "Lifetime" then
  1489.                 self:Remove()
  1490.  
  1491.                 if gBool("Misc", "Configuration", "Automatically save") then
  1492.                     if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  1493.                         saveconfig1()
  1494.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  1495.                         saveconfig2()
  1496.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  1497.                         saveconfig3()
  1498.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  1499.                         saveconfig4()
  1500.                     elseif gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  1501.                         saveconfig5()
  1502.                     end
  1503.                 end
  1504.  
  1505.                 pluginloader()
  1506.             else
  1507.                 surface.PlaySound("buttons/button11.wav")
  1508.             end
  1509.         end
  1510.         chat.PlaySound()
  1511.     end
  1512. end
  1513.  
  1514. local function DrawSubSub(self, w, h, k, var, info)
  1515.     local opt, posx, posy, sizex, sizey, dist = var[1][1], var[1][2], var[1][3], var[1][4], var[1][5], var[1][6]
  1516.     surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 70)
  1517.     local startpos = 61 + posy
  1518.     surface.SetTextColor(MenuCol.r, MenuCol.g, MenuCol.b, 200)
  1519.     surface.SetFont(font())
  1520.     local tw, th = surface.GetTextSize(opt)
  1521.     surface.DrawLine( 5 + posx, startpos, 5 + posx + 15, startpos)
  1522.     surface.SetTextPos( 5 + posx + 15 + 5, startpos - th / 2 )
  1523.     surface.DrawLine( 5 + posx + 15 + 5 + tw + 5, startpos, 5 + posx + sizex, startpos)
  1524.     surface.DrawLine( 5 + posx, startpos, 5 + posx, startpos + sizey)
  1525.     surface.DrawLine( 5 + posx, startpos + sizey, 5 + posx + sizex+1, startpos + sizey)
  1526.     surface.DrawLine( 5 + posx + sizex, startpos, 5 + posx + sizex, startpos + sizey)
  1527.     surface.DrawText(opt)
  1528.     local maxy = 15
  1529.  
  1530.     for k,v in next, var do
  1531.         if k == 1 then
  1532.             continue
  1533.         end
  1534.         if v[2] == "Checkbox" then
  1535.             DrawCheckbox(self, w, h, v, maxy, posx, posy, dist, info)
  1536.         elseif v[2] == "Slider" then
  1537.             DrawSlider(self, w, h, v, maxy, posx, posy, dist)
  1538.         elseif v[2] == "Selection" then
  1539.             DrawSelect(self, w, h, v, maxy, posx, posy, dist, info)
  1540.         elseif v[2] == "Button" then
  1541.             DrawButton(self, w, h, v, maxy, posx, posy, dist)
  1542.         end
  1543.         maxy = maxy + 25
  1544.     end
  1545. end
  1546.  
  1547. local function DrawSub(self, w, h, info)
  1548.     for k, v in next, visible do
  1549.         if not v then
  1550.             continue
  1551.         end
  1552.         for _, var in next, options[k] do
  1553.             DrawSubSub(self, w, h, k, var, info)
  1554.         end
  1555.     end
  1556. end
  1557.  
  1558. local function config_colors()
  1559.     if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  1560.         if not loaded1 then
  1561.             loadconfig1()
  1562.             loaded1 = true
  1563.             loaded2 = false
  1564.             loaded3 = false
  1565.             loaded4 = false
  1566.             loaded5 = false
  1567.         end
  1568.     elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  1569.         if not loaded2 then
  1570.             loadconfig2()
  1571.             loaded2 = true
  1572.             loaded1 = false
  1573.             loaded3 = false
  1574.             loaded4 = false
  1575.             loaded5 = false
  1576.         end
  1577.     elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  1578.         if not loaded3 then
  1579.             loadconfig3()
  1580.             loaded3 = true
  1581.             loaded1 = false
  1582.             loaded2 = false
  1583.             loaded4 = false
  1584.             loaded5 = false
  1585.         end
  1586.     elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  1587.         if not loaded4 then
  1588.             loadconfig4()
  1589.             loaded4 = true
  1590.             loaded1 = false
  1591.             loaded2 = false
  1592.             loaded3 = false
  1593.             loaded5 = false
  1594.         end
  1595.     else--if gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  1596.         if not loaded5 then
  1597.             loadconfig5()
  1598.             loaded5 = true
  1599.             loaded1 = false
  1600.             loaded2 = false
  1601.             loaded3 = false
  1602.             loaded4 = false
  1603.         end
  1604.     end
  1605.  
  1606.     PrimaryCol = Color(gInt("Settings", "Primary Color", "Red"), gInt("Settings", "Primary Color", "Green"), gInt("Settings", "Primary Color", "Blue"))
  1607.     FriendCol = Color(gInt("Settings", "Friend Color", "Red"), gInt("Settings", "Friend Color", "Green"), gInt("Settings", "Friend Color", "Blue"))
  1608.     NpcCol = Color(gInt("Settings", "NPC Color", "Red"), gInt("Settings", "NPC Color", "Green"), gInt("Settings", "NPC Color", "Blue"))
  1609.     AdminCol = Color(gInt("Settings", "Admin Color", "Red"), gInt("Settings", "Admin Color", "Green"), gInt("Settings", "Admin Color", "Blue"))
  1610.     AimCol = Color(gInt("Settings", "Aim Target Color", "Red"), gInt("Settings", "Aim Target Color", "Green"), gInt("Settings", "Aim Target Color", "Blue"))
  1611.     MenuCol = Color(gInt("Settings", "Menu Color", "Red"), gInt("Settings", "Menu Color", "Green"), gInt("Settings", "Menu Color", "Blue"))
  1612.     EntCol = Color(gInt("Settings", "Entity Color", "Red"), gInt("Settings", "Entity Color", "Green"), gInt("Settings", "Entity Color", "Blue"))
  1613. end
  1614.  
  1615. local function menu()
  1616.     --local posx, posy = ScrW()/4, ScrH()/5
  1617.     --local moving = false
  1618.  
  1619.     local frame = vgui.Create("DFrame")
  1620.     frame:SetSize(900, 700)
  1621.     --frame:SetPos(posx, posy)
  1622.     frame:Center()
  1623.     frame:SetTitle("")
  1624.     frame:MakePopup()
  1625.     frame:ShowCloseButton(false)
  1626.    
  1627.     frame.Paint = function(self, w, h)
  1628.         if candoslider and not mousedown and not drawlast and not input.IsMouseDown(MOUSE_LEFT) then
  1629.             candoslider = false
  1630.         end
  1631.  
  1632.         if gOption("Settings", "Menu", "Feature Information") ~= "Off" then
  1633.             info = ""
  1634.         end
  1635.        
  1636.         if gOption("Settings", "Menu", "Menu Box") == "Rounded" then
  1637.             draw.RoundedBox(15, 0, 0, w, h, Color(40, 40, 40, 240))
  1638.         else
  1639.             surface.SetDrawColor(40, 40, 40, 240)
  1640.             surface.DrawRect(0, 0, w, h)
  1641.             surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 120)
  1642.             surface.DrawOutlinedRect(0, 0, w, h)
  1643.         end
  1644.  
  1645.         --[[if MouseInArea(posx, posy, w, h) and input.IsMouseDown(107) and not moving then
  1646.             moving = true
  1647.         end
  1648.  
  1649.         if moving and input.IsMouseDown(107) then
  1650.             if posx > ScrH() or posy > ScrW() then
  1651.                 moving = false
  1652.                 frame:SetPos(ScrW()/4, ScrH()/5)
  1653.             else
  1654.                 frame:SetPos(gui.MouseX()-w/2, gui.MouseY())
  1655.             end
  1656.         elseif moving and not input.IsMouseDown(107) then
  1657.             moving = false
  1658.         end]]
  1659.  
  1660.         //draw.SimpleText(cheatname.." v"..version.." - Registered to "..user(steam).." - License: "..license().." "..licenseinfo(), font(), 15, 15, MenuCol, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  1661.  
  1662.         DrawOptions(self, w, h)
  1663.         DrawSub(self, w, h, info)
  1664.  
  1665.         if drawlast then
  1666.             drawlast()
  1667.             candoslider = true
  1668.         end
  1669.  
  1670.         if gBool("Settings", "Menu", "Feature Information") and info ~= "" then
  1671.             draw.SimpleText(info, font(), w/2, h/1.1, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  1672.         end
  1673.  
  1674.         mousedown = input.IsMouseDown(MOUSE_LEFT)
  1675.     end
  1676.    
  1677.     frame.Think = function()
  1678.         if ((input.IsKeyDown(KEY_INSERT) or input.IsKeyDown(KEY_F11) or input.IsKeyDown(KEY_HOME)) and not insertdown2) then
  1679.             frame:Remove()
  1680.             menuopen = false
  1681.             candoslider = false
  1682.             drawlast = nil
  1683.  
  1684.             if gBool("Misc", "Configuration", "Automatically save") then
  1685.                 if gOption("Misc", "Configuration", "Load Config") == "Config #1" then
  1686.                     saveconfig1()
  1687.                 elseif gOption("Misc", "Configuration", "Load Config") == "Config #2" then
  1688.                     saveconfig2()
  1689.                 elseif gOption("Misc", "Configuration", "Load Config") == "Config #3" then
  1690.                     saveconfig3()
  1691.                 elseif gOption("Misc", "Configuration", "Load Config") == "Config #4" then
  1692.                     saveconfig4()
  1693.                 elseif gOption("Misc", "Configuration", "Load Config") == "Config #5" then
  1694.                     saveconfig5()
  1695.                 end
  1696.             end
  1697.         end
  1698.  
  1699.         config_colors()
  1700.     end
  1701. end
  1702.  
  1703. local function filter(v)
  1704.     if gOption("Visuals", "ESP", "Draw Mode") == "Players only" then
  1705.         return v:IsPlayer()
  1706.     elseif gOption("Visuals", "ESP", "Draw Mode") == "NPCs only" then
  1707.         return v:IsNPC()
  1708.     elseif gOption("Visuals", "ESP", "Draw Mode") == "Both" then
  1709.         return v:IsPlayer() or v:IsNPC()
  1710.     else
  1711.         return nil
  1712.     end
  1713. end
  1714.  
  1715. local function maxdist(v)
  1716.     if gBool("Settings", "ESP Distance", "Enabled") and gInt("Settings", "ESP Distance", "Distance Limit") ~= 0 then
  1717.         if v:GetPos():Distance(me:GetPos()) > gInt("Settings", "ESP Distance", "Distance Limit")*3.2 then
  1718.             if v:IsPlayer() and gBool("Visuals", "ESP", "Highlight Friends") and v:GetFriendStatus() ~= "friend" then
  1719.                 return false
  1720.             else
  1721.                 return false
  1722.             end
  1723.         end
  1724.     end
  1725.  
  1726.     if v:GetPos():Distance(me:GetPos()) < 30 then
  1727.         return false
  1728.     else
  1729.         return true
  1730.     end
  1731. end
  1732.  
  1733. local function onscreen(v)
  1734.     if math.abs(v:LocalToWorld(v:OBBCenter()):ToScreen().x) < ScrW()*5 and math.abs(v:LocalToWorld(v:OBBCenter()):ToScreen().y) < ScrH()*5 then
  1735.         return true
  1736.     else
  1737.         return false
  1738.     end
  1739. end
  1740.  
  1741. local function WeaponCanFire()
  1742.     local w = me:GetActiveWeapon()
  1743.  
  1744.     if not w or not w:IsValid() then
  1745.         return true
  1746.     else
  1747.         if w:IsValid() then
  1748.             if string.find(string.lower(w:GetPrintName()),"knife") or string.find(string.lower(w:GetPrintName()),"sword") or string.find(string.lower(w:GetPrintName()),"fist") or string.find(string.lower(w:GetPrintName()),"crowbar") then
  1749.                 return true
  1750.             else
  1751.                 return servertime >= w:GetNextPrimaryFire()
  1752.             end
  1753.         end
  1754.     end
  1755. end
  1756.  
  1757. local function WeaponShootable()
  1758.     if me:Alive() and wep:IsValid() then
  1759.         if string.find(string.lower(wep:GetPrintName()),"knife") or string.find(string.lower(wep:GetPrintName()),"sword") or string.find(string.lower(wep:GetPrintName()),"fist") or string.find(string.lower(wep:GetPrintName()),"crowbar") then
  1760.             return true
  1761.         else
  1762.             if wep:Clip1() <= 0 then
  1763.                 return
  1764.             end
  1765.             if string.find(string.lower(wep:GetPrintName()),"knife") or string.find(string.lower(wep:GetPrintName()),"gas") or string.find(string.lower(wep:GetPrintName()),"grenade") or string.find(string.lower(wep:GetPrintName()),"sword") or string.find(string.lower(wep:GetPrintName()),"machete") or string.find(string.lower(wep:GetPrintName()),"bomb") or string.find(string.lower(wep:GetPrintName()),"ied") or string.find(string.lower(wep:GetPrintName()),"c4") or string.find(string.lower(wep:GetPrintName()),"slam") or string.find(string.lower(wep:GetPrintName()),"climb") or string.find(string.lower(wep:GetPrintName()),"fist") or string.find(string.lower(wep:GetPrintName()),"gravitygun") then
  1766.                 return false
  1767.             end
  1768.         end
  1769.         return true
  1770.     end
  1771. end
  1772.  
  1773. --[[local bones = {
  1774. "ValveBiped.Bip01_Head1",
  1775. "ValveBiped.Bip01_Neck1",
  1776. "ValveBiped.Bip01_Spine4",
  1777. "ValveBiped.Bip01_Spine2",
  1778. "ValveBiped.Bip01_Spine1",
  1779. "ValveBiped.Bip01_Spine",
  1780. "ValveBiped.Bip01_Pelvis",
  1781. "ValveBiped.Bip01_R_UpperArm",
  1782. "ValveBiped.Bip01_R_Forearm",
  1783. "ValveBiped.Bip01_R_Hand",
  1784. "ValveBiped.Bip01_L_UpperArm",
  1785. "ValveBiped.Bip01_L_Forearm",
  1786. "ValveBiped.Bip01_L_Hand",
  1787. "ValveBiped.Bip01_R_Thigh",
  1788. "ValveBiped.Bip01_R_Calf",
  1789. "ValveBiped.Bip01_R_Foot",
  1790. "ValveBiped.Bip01_R_Toe0",
  1791. "ValveBiped.Bip01_L_Thigh",
  1792. "ValveBiped.Bip01_L_Calf",
  1793. "ValveBiped.Bip01_L_Foot",
  1794. "ValveBiped.Bip01_L_Toe0"
  1795. }
  1796.  
  1797. local function isVisible(pos, v)
  1798.     local trace = {
  1799.         start = me:EyePos(),
  1800.         endpos = pos,
  1801.         mask = MASK_SHOT,
  1802.         filter = {me, v},
  1803.     }
  1804.  
  1805.     return (util.TraceLine(trace).Fraction == 1)
  1806. end]]
  1807.  
  1808. local function GetPos(v)
  1809.     if gOption("Aimbot", "Other", "Aim Position") == "Body only" then
  1810.         return v:LocalToWorld(v:OBBCenter())
  1811.     end
  1812.  
  1813.     --local head = v:LookupBone("ValveBiped.Bip01_Spine")
  1814.     local head = v:LookupAttachment("eyes")
  1815.     local pos = v:GetAttachment(head)
  1816.  
  1817.     local trace = { start = me:GetPos(), endpos = v:GetPos(), mask = MASK_PLAYERSOLID }
  1818.     local trace = util.TraceLine(trace)
  1819.     local height = (me:GetPos() - trace.HitPos).z
  1820.  
  1821.     if gOption("Aimbot", "Other", "Aim Position") == "Head only" then
  1822.         if v:IsPlayer() then
  1823.             if not head then
  1824.                 return v:LocalToWorld(v:OBBCenter())
  1825.             end
  1826.  
  1827.             if not pos then
  1828.                 return v:LocalToWorld(v:OBBCenter())
  1829.             end
  1830.         else
  1831.             if not head then
  1832.                 return v:LocalToWorld(v:OBBCenter() - Vector(0,0,1))
  1833.             end
  1834.  
  1835.             if not pos then
  1836.                 return v:LocalToWorld(v:OBBCenter() - Vector(0,0,1))
  1837.             end
  1838.         end
  1839.  
  1840.         if not (height > -300) then
  1841.             return pos.Pos + Vector(0,0,6)
  1842.         else
  1843.             return pos.Pos
  1844.         end
  1845.     end
  1846.  
  1847.     if gOption("Aimbot", "Other", "Aim Position") == "Auto" then
  1848.         if wep:IsValid() then
  1849.             if v:IsPlayer() and (string.find(string.lower(wep:GetPrintName()), "shotgun") or string.find(string.lower(wep:GetPrintName()), "m3") or string.find(string.lower(wep:GetPrintName()), "1014") or string.find(string.lower(wep:GetPrintName()), "awp") or string.find(string.lower(wep:GetPrintName()), "minigun") or string.find(string.lower(wep:GetPrintName()), "winchester 1897") or string.find(string.lower(wep:GetPrintName()), "winchester 87") or string.find(string.lower(wep:GetPrintName()), "crossbow") or string.find(string.lower(wep:GetPrintName()), "ithaca") or string.find(string.lower(wep:GetPrintName()), "mossberg") or string.find(string.lower(wep:GetPrintName()), "remington 870") or string.find(string.lower(wep:GetPrintName()), "spas") or string.find(string.lower(wep:GetPrintName()), "benelli") or string.find(string.lower(wep:GetPrintName()), "browning") or string.find(string.lower(wep:GetPrintName()),"knife") or string.find(string.lower(wep:GetPrintName()),"sword") or string.find(string.lower(wep:GetPrintName()),"fist") or string.find(string.lower(wep:GetPrintName()),"crowbar") or string.find(string.lower(wep:GetPrintName()),"stick") or string.find(string.lower(wep:GetPrintName()),"melee") or string.find(string.lower(wep:GetPrintName()),"wrench") or string.find(string.lower(wep:GetPrintName()),"stun") or string.find(string.lower(wep:GetPrintName()),"Baton") or string.find(string.lower(wep:GetClass()), "m9k_rpg7") or string.find(string.lower(me:GetActiveWeapon():GetClass()), "m9k_m64_frag") or string.find(string.lower(me:GetActiveWeapon():GetClass()), "m9k_harpoon") or string.find(string.lower(me:GetActiveWeapon():GetClass()), "m9k_m202") or string.find(string.lower(wep:GetClass()), "m9k_m79gl") or string.find(string.lower(wep:GetClass()), "m9k_ex41") or string.find(string.lower(wep:GetClass()), "m9k_matador") or string.find(string.lower(wep:GetClass()), "m9k_milkormgl") or v:Health() <= 20 or engine.ActiveGamemode() == "murder") then
  1850.                 return v:LocalToWorld(v:OBBCenter())
  1851.             else
  1852.                 if v:IsPlayer() then
  1853.                     if not head then
  1854.                         return v:LocalToWorld(v:OBBCenter())
  1855.                     end
  1856.  
  1857.                     if not pos then
  1858.                         return v:LocalToWorld(v:OBBCenter())
  1859.                     end
  1860.                 else
  1861.                     if not head then
  1862.                         return v:LocalToWorld(v:OBBCenter() - Vector(0,0,1))
  1863.                     end
  1864.  
  1865.                     if not pos then
  1866.                         return v:LocalToWorld(v:OBBCenter() - Vector(0,0,1))
  1867.                     end
  1868.                 end
  1869.  
  1870.                 if not (height > -300) then
  1871.                     return pos.Pos + Vector(0,0,6)
  1872.                 else
  1873.                     return pos.Pos
  1874.                 end
  1875.             end
  1876.  
  1877.             --[[for group = 0, v:GetHitBoxGroupCount() do
  1878.                 local count = v:GetHitBoxCount(group)
  1879.  
  1880.                 for hitbox = 1, count do
  1881.                     local bone = v:GetHitBoxBone(hitbox, group)
  1882.  
  1883.                     if not bone then continue end
  1884.  
  1885.                     local bonepos = v:GetBonePosition(bone)
  1886.  
  1887.                     if not bonepos then continue end
  1888.  
  1889.                     if isVisible(bonepos, v) then
  1890.                         return bonepos
  1891.                     end
  1892.                 end
  1893.             end]]
  1894.         end
  1895.     end
  1896. end
  1897.  
  1898. local function aimkeycheck()
  1899.     if gBool("Aimbot", "Aimbot", "Enabled") then
  1900.         if gOption("Aimbot", "Aimbot", "Aim Key") == "Mouse3" then
  1901.             if input.IsMouseDown(109) then return true end
  1902.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "Mouse4" then
  1903.             if input.IsMouseDown(110) then return true end
  1904.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "Mouse5" then
  1905.             if input.IsMouseDown(111) then return true end
  1906.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "L-ALT" then
  1907.             if input.IsKeyDown(81) then return true end
  1908.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "L-CTRL" then
  1909.             if input.IsKeyDown(83) then return true end
  1910.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "Shift" then
  1911.             if input.IsKeyDown(79) then return true end
  1912.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "Letter: E" then
  1913.             if input.IsKeyDown(15) then return true end
  1914.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "Letter: F" then
  1915.             if input.IsKeyDown(16) then return true end
  1916.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "Letter: Q" then
  1917.             if input.IsKeyDown(27) then return true end
  1918.         elseif gOption("Aimbot", "Aimbot", "Aim Key") == "None" then
  1919.             return true
  1920.         end
  1921.     end
  1922. end
  1923.  
  1924. local function triggerkeycheck()
  1925.     if gBool("Triggerbot", "Triggerbot", "Enabled") then
  1926.         if gOption("Triggerbot", "Triggerbot", "Trigger Key") == "Mouse3" then
  1927.             if input.IsMouseDown(109) then return true end
  1928.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "Mouse4" then
  1929.             if input.IsMouseDown(110) then return true end
  1930.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "Mouse5" then
  1931.             if input.IsMouseDown(111) then return true end
  1932.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "L-ALT" then
  1933.             if input.IsKeyDown(81) then return true end
  1934.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "L-CTRL" then
  1935.             if input.IsKeyDown(83) then return true end
  1936.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "Shift" then
  1937.             if input.IsKeyDown(79) then return true end
  1938.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "Letter: E" then
  1939.             if input.IsKeyDown(15) then return true end
  1940.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "Letter: F" then
  1941.             if input.IsKeyDown(16) then return true end
  1942.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "Letter: Q" then
  1943.             if input.IsKeyDown(27) then return true end
  1944.         elseif gOption("Triggerbot", "Triggerbot", "Trigger Key") == "None" then
  1945.             return true
  1946.         end
  1947.     end
  1948. end
  1949.  
  1950. --[[local function strafekeycheck()
  1951.     if gui.IsGameUIVisible() or me:IsTyping() then return false end
  1952.  
  1953.     if gBool("Misc", "Misc", "Circle Strafe") == "Mouse3" then
  1954.         if input.IsMouseDown(109) then return true end
  1955.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Mouse4" then
  1956.         if input.IsMouseDown(110) then return true end
  1957.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Mouse5" then
  1958.         if input.IsMouseDown(111) then return true end
  1959.     elseif gBool("Misc", "Misc", "Circle Strafe") == "L-ALT" then
  1960.         if input.IsKeyDown(81) then return true end
  1961.     elseif gBool("Misc", "Misc", "Circle Strafe") == "L-CTRL" then
  1962.         if input.IsKeyDown(83) then return true end
  1963.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Shift" then
  1964.         if input.IsKeyDown(79) then return true end
  1965.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Letter: E" then
  1966.         if input.IsKeyDown(15) then return true end
  1967.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Letter: F" then
  1968.         if input.IsKeyDown(16) then return true end
  1969.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Letter: Q" then
  1970.         if input.IsKeyDown(27) then return true end
  1971.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Letter: G" then
  1972.         if input.IsKeyDown(17) then return true end
  1973.     elseif gBool("Misc", "Misc", "Circle Strafe") == "Off" then
  1974.         return false
  1975.     end
  1976. end]]
  1977.  
  1978. local function propkeycheck()
  1979.     if gui.IsGameUIVisible() or me:IsTyping() or not me:GetActiveWeapon():IsValid() or me:GetActiveWeapon():GetClass() ~= "weapon_zm_carry" then return false end
  1980.  
  1981.     if gOption("Gamemode", "TTT", "Prop Kill Key") == "Mouse3" then
  1982.         if input.IsMouseDown(109) then return true end
  1983.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Mouse4" then
  1984.         if input.IsMouseDown(110) then return true end
  1985.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Mouse5" then
  1986.         if input.IsMouseDown(111) then return true end
  1987.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "L-ALT" then
  1988.         if input.IsKeyDown(81) then return true end
  1989.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "L-CTRL" then
  1990.         if input.IsKeyDown(83) then return true end
  1991.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Shift" then
  1992.         if input.IsKeyDown(79) then return true end
  1993.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Letter: E" then
  1994.         if input.IsKeyDown(15) then return true end
  1995.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Letter: F" then
  1996.         if input.IsKeyDown(16) then return true end
  1997.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Letter: Q" then
  1998.         if input.IsKeyDown(27) then return true end
  1999.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Letter: G" then
  2000.         if input.IsKeyDown(17) then return true end
  2001.     elseif gOption("Gamemode", "TTT", "Prop Kill Key") == "Off" then
  2002.         return false
  2003.     end
  2004. end
  2005.  
  2006. local function rotatecheck()
  2007.     if gui.IsGameUIVisible() or me:IsTyping() then return false end
  2008.    
  2009.     if gBool("Hack vs Hack", "Anti-Aim", "Enabled") then
  2010.         if gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Left Arrow" then
  2011.             if input.IsKeyDown(89) then return true end
  2012.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Right Arrow" then
  2013.             if input.IsKeyDown(91) then return true end
  2014.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Mouse3" then
  2015.             if input.IsMouseDown(109) then return true end
  2016.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Mouse4" then
  2017.             if input.IsMouseDown(110) then return true end
  2018.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Mouse5" then
  2019.             if input.IsMouseDown(111) then return true end
  2020.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "L-ALT" then
  2021.             if input.IsKeyDown(81) then return true end
  2022.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "L-CTRL" then
  2023.             if input.IsKeyDown(83) then return true end
  2024.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Shift" then
  2025.             if input.IsKeyDown(79) then return true end
  2026.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Letter: E" then
  2027.             if input.IsKeyDown(15) then return true end
  2028.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Letter: R" then
  2029.             if input.IsKeyDown(28) then return true end
  2030.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Letter: F" then
  2031.             if input.IsKeyDown(16) then return true end
  2032.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Letter: Q" then
  2033.             if input.IsKeyDown(27) then return true end
  2034.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "Letter: G" then
  2035.             if input.IsKeyDown(17) then return true end
  2036.         elseif gBool("Hack vs Hack", "Anti-Aim", "Switch Rotation Key") == "None" then
  2037.             return true
  2038.         end
  2039.     end
  2040. end
  2041.  
  2042. local function esp_col(v)
  2043.     if v:IsPlayer() then
  2044.         if gBool("Visuals", "ESP", "Highlight Aim Target") and v == aimtarget and aimtarget:IsValid() and aimkeycheck() and WeaponShootable() then
  2045.             return AimCol
  2046.         --[[if v:SteamID64() == highlighted1 or v:SteamID64() == highlighted2 or v:SteamID64() == highlighted3 or v:SteamID64() == highlighted4 then
  2047.             return HighlightCol
  2048.         else]]elseif gBool("Visuals", "ESP", "Highlight Friends") and v:GetFriendStatus() == "friend" then
  2049.             return FriendCol
  2050.         elseif gBool("Visuals", "ESP", "Highlight Admins") and v:IsAdmin() and not (v:GetFriendStatus() == "friend" and gBool("Visuals", "ESP", "Highlight Friends")) then
  2051.             if gBool("Gamemode", "Murder", "Highlight Murderer") and engine.ActiveGamemode() == "murder" and v:Nick() == murderer then
  2052.                 return Color(255,75,75)
  2053.             elseif gBool("Gamemode", "Murder", "Highlight armed Bystander") and engine.ActiveGamemode() == "murder" and v:HasWeapon("weapon_mu_magnum") then
  2054.                 return Color(50,150,255)
  2055.             else
  2056.                 return AdminCol
  2057.             end
  2058.         elseif table.HasValue(ignore_list, v:UniqueID()) then
  2059.             return Color(175, 175, 175)
  2060.         elseif table.HasValue(priority_list, v:UniqueID()) then
  2061.             return Color(255,0,100)
  2062.         else
  2063.             if table.HasValue(supported_modes, engine.ActiveGamemode()) then
  2064.                 if engine.ActiveGamemode() == "murder" then
  2065.                     if gBool("Gamemode", "Murder", "Highlight Murderer") and v:Nick() == murderer then
  2066.                         return Color(255,75,75)
  2067.                     elseif gBool("Gamemode", "Murder", "Highlight armed Bystander") and v:HasWeapon("weapon_mu_magnum") then
  2068.                         return Color(50,150,255)
  2069.                     else
  2070.                         return PrimaryCol
  2071.                     end
  2072.                 --[[elseif engine.ActiveGamemode() == "terrortown" then
  2073.                     if CreateClientConVar("px_ttt_draw_traitors", "0", true, false, "1 = On / 0 = Off"):GetBool() and v:Nick() == traitor1 or v:Nick() == traitor2 or v:Nick() == traitor3 or v:Nick() == traitor4 then
  2074.                         return Color(255,75,75)
  2075.                     else
  2076.                         return PrimaryCol
  2077.                     end]]
  2078.                 else
  2079.                     if gBool("Visuals", "Other", "Team Colors") then
  2080.                         return team.GetColor(v)
  2081.                     else
  2082.                         return PrimaryCol
  2083.                     end
  2084.                 end
  2085.             else
  2086.                 if gBool("Visuals", "Other", "Team Colors") then
  2087.                     return team.GetColor(v)
  2088.                 else
  2089.                     return PrimaryCol
  2090.                 end
  2091.             end
  2092.         end
  2093.     elseif v:IsNPC() then
  2094.         if gBool("Visuals", "ESP", "Highlight Aim Target") and v == aimtarget and v:IsValid() and aimkeycheck() and WeaponShootable() then
  2095.             return AimCol
  2096.         else
  2097.             return NpcCol
  2098.         end
  2099.     else
  2100.         return PrimaryCol
  2101.     end
  2102. end
  2103.  
  2104. local function esp()
  2105.     for k,v in next, ents.GetAll() do
  2106.  
  2107.         if v:IsDormant() or not v:IsValid() then continue end
  2108.  
  2109.         if gBool("Visuals", "Other", "Aiming Player Alert") and v:IsPlayer() and v:IsValid() and v:Alive() and v ~= me and me:GetPos():Distance(v:GetEyeTrace().HitPos) < 105 and v:GetPos():Distance(me:GetPos()) > 80 then
  2110.             if gBool("Gamemode", "Murder", "Draw Bystander Names") and engine.ActiveGamemode() == "murder" then
  2111.                 draw.SimpleText(v:GetNWString("bystanderName").." is aiming at you!", font(), ScrW()/2, ScrH()/1.93, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2112.             else
  2113.                 draw.SimpleText(v:Nick().." is aiming at you!", font(), ScrW()/2, ScrH()/1.93, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2114.             end
  2115.         end
  2116.  
  2117.         if not maxdist(v) or not onscreen(v) or v == me then continue end
  2118.  
  2119.         if table.HasValue(supported_modes, engine.ActiveGamemode()) then
  2120.             if engine.ActiveGamemode() == "murder" then
  2121.                 if gBool("Gamemode", "Murder", "Draw Magnum") then
  2122.                     if string.find(v:GetClass(), "weapon_mu_magnum") then
  2123.                         pos = v:GetPos()
  2124.                         pos = pos:ToScreen()
  2125.                         draw.DrawText("Magnum", font(), pos.x, pos.y, Color(50,150,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2126.                     end
  2127.                 end
  2128.  
  2129.                 if gBool("Gamemode", "Murder", "Draw Knife") then
  2130.                     if string.find(v:GetClass(), "weapon_mu_knife") then
  2131.                         pos = v:GetPos()
  2132.                         pos = pos:ToScreen()
  2133.                         draw.DrawText("Knife", font(), pos.x, pos.y, Color(255,75,75), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2134.                     end
  2135.                 end
  2136.  
  2137.                 if gBool("Gamemode", "Murder", "Draw Loot") then
  2138.                     if string.find(v:GetClass(), "mu_loot") then
  2139.                         pos = v:GetPos()
  2140.                         pos = pos:ToScreen()
  2141.                         draw.DrawText("Loot", font(), pos.x, pos.y, Color(50,255,50), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2142.                     end
  2143.                 end
  2144.             end
  2145.         end
  2146.  
  2147.         if gBool("Misc", "VIP", "Entity Finder") and license() == "Lifetime" then
  2148.             if table.HasValue(drawn_ents, v:GetClass()) and v:IsValid() and v:GetPos():Distance(me:GetPos()) > 40 then
  2149.                 local min, max = v:WorldSpaceAABB()
  2150.                 local origin = v:GetPos()
  2151.  
  2152.                 cam.Start3D()
  2153.                     render.DrawWireframeBox(origin, Angle(0,0,0), min-origin, max-origin, esp_col(v), true)
  2154.                 cam.End3D()
  2155.             end
  2156.         end
  2157.  
  2158.         if v:Health() < 1 or v:IsDormant() or not filter(v) then continue end
  2159.  
  2160.         texty1 = 5
  2161.  
  2162.         x1, y1, x2, y2 = ScrW() * 2, ScrH() * 2, -ScrW(), -ScrH()
  2163.         min, max = v:GetCollisionBounds()
  2164.         corners = { v:LocalToWorld(Vector(min.x, min.y, min.z)):ToScreen(), v:LocalToWorld(Vector(min.x, max.y, min.z)):ToScreen(), v:LocalToWorld(Vector(max.x, max.y, min.z)):ToScreen(), v:LocalToWorld(Vector(max.x, min.y, min.z)):ToScreen(), v:LocalToWorld(Vector(min.x, min.y, max.z)):ToScreen(), v:LocalToWorld(Vector(min.x, max.y, max.z)):ToScreen(), v:LocalToWorld(Vector(max.x, max.y, max.z)):ToScreen(), v:LocalToWorld(Vector(max.x, min.y, max.z)):ToScreen() }
  2165.    
  2166.         for _k, _v in next, corners do
  2167.             x1, y1 = math.min(x1, _v.x), math.min(y1, _v.y)
  2168.             x2, y2 = math.max(x2, _v.x), math.max(y2, _v.y)
  2169.         end
  2170.        
  2171.         diff, diff2 = math.abs(x2 - x1), math.abs(y2 - y1)
  2172.  
  2173.         if gOption("Visuals", "ESP", "Box") ~= "Off" then
  2174.             if gOption("Visuals", "ESP", "Box") == "2D (Outlined)" then
  2175.                 surface.SetDrawColor(0,0,0)
  2176.                 surface.DrawOutlinedRect(x1 - 1, y1 - 1, diff + 2, diff2 + 2)
  2177.                 surface.DrawOutlinedRect(x1 + 1, y1 + 1, diff - 2, diff2 - 2)
  2178.                 surface.SetDrawColor(esp_col(v))
  2179.                 surface.DrawOutlinedRect(x1, y1, diff, diff2)
  2180.             elseif gOption("Visuals", "ESP", "Box") == "2D (Semi-Solid)" then
  2181.                 surface.SetDrawColor(0,0,0)
  2182.                 surface.DrawOutlinedRect(x1 - 1, y1 - 1, diff + 2, diff2 + 2)
  2183.                 --surface.DrawOutlinedRect(x1 + 1, y1 + 1, diff - 2, diff2 - 2)
  2184.                 surface.SetDrawColor(esp_col(v))
  2185.                 surface.DrawOutlinedRect(x1, y1, diff, diff2)
  2186.             elseif gOption("Visuals", "ESP", "Box") == "2D (Solid)" then
  2187.                 surface.SetDrawColor(esp_col(v))
  2188.        
  2189.                 --surface.DrawOutlinedRect(x1 - 1, y1 - 1, diff + 2, diff2 + 2)
  2190.                 surface.DrawOutlinedRect(x1, y1, diff, diff2)
  2191.             elseif gOption("Visuals", "ESP", "Box") == "3D" then
  2192.                 for i = 1, 4 do
  2193.                     surface.SetDrawColor(esp_col(v))
  2194.                     surface.DrawLine(corners[i].x, corners[i].y, corners[i + 4].x, corners[i + 4].y)
  2195.                     surface.DrawLine(corners[i].x, corners[i].y, corners[i % 4 + 1].x, corners[i % 4 + 1].y)
  2196.                     surface.DrawLine(corners[i + 4].x, corners[i + 4].y, corners[i % 4 + 5].x, corners[i % 4 + 5].y)
  2197.                 end
  2198.             else
  2199.                 surface.SetDrawColor(0,0,0)
  2200.                 surface.DrawLine(x1,y1,x1+(diff*0.225),y1)
  2201.                 surface.DrawLine(x1,y1,x1,y1+(diff2*0.225))
  2202.                 surface.DrawLine(x1,y2,x1+(diff*0.225),y2)
  2203.                 surface.DrawLine(x1,y2,x1,y2-(diff2*0.225))
  2204.                 surface.DrawLine(x2,y1,x2-(diff*0.225),y1)
  2205.                 surface.DrawLine(x2,y1,x2,y1+(diff2*0.225))
  2206.                 surface.DrawLine(x2,y2,x2-(diff*0.225),y2)
  2207.                 surface.DrawLine(x2,y2,x2,y2-(diff2*0.225))
  2208.  
  2209.                 surface.SetDrawColor(esp_col(v))
  2210.                 surface.DrawLine(x1+1,y1+1,x1+(diff*0.225),y1+1)
  2211.                 surface.DrawLine(x1+1,y1+1,x1+1,y1+(diff2*0.225))
  2212.                 surface.DrawLine(x1+1,y2-1,x1+(diff*0.225),y2-1)
  2213.                 surface.DrawLine(x1+1,y2-1,x1+1,y2-(diff2*0.225))
  2214.                 surface.DrawLine(x2-1,y1+1,x2-(diff*0.225),y1+1)
  2215.                 surface.DrawLine(x2-1,y1+1,x2-1,y1+(diff2*0.225))
  2216.                 surface.DrawLine(x2-1,y2-1,x2-(diff*0.225),y2-1)
  2217.                 surface.DrawLine(x2-1,y2-1,x2-1,y2-(diff2*0.225))
  2218.             end
  2219.         end
  2220.  
  2221.         if gBool("Visuals", "ESP", "Bones") then
  2222.             for i = 0, v:GetBoneCount() do
  2223.                 local parent = v:GetBoneParent(i)
  2224.                 if not v:GetBoneParent(i) then continue end
  2225.                 local bonepos = v:GetBonePosition(i)
  2226.                 if v:GetBonePosition(i) == v:GetPos() then continue end
  2227.                 local parentpos = v:GetBonePosition(v:GetBoneParent(i))
  2228.                 if not v:GetBonePosition(i) or not v:GetBonePosition(v:GetBoneParent(i)) then continue end
  2229.                 local screen1, screen2 = bonepos:ToScreen(), parentpos:ToScreen()
  2230.  
  2231.                 surface.SetDrawColor(esp_col(v))
  2232.                 surface.DrawLine(screen1.x, screen1.y, screen2.x, screen2.y)
  2233.             end
  2234.         end
  2235.  
  2236.         if gBool("Visuals", "ESP", "Names") then
  2237.             if v:IsPlayer() then
  2238.                 if gBool("Gamemode", "Murder", "Draw Bystander Names") and engine.ActiveGamemode() == "murder" then
  2239.                     if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2240.                         if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2241.                             draw.SimpleText(v:GetNWString("bystanderName"), font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2242.                         else
  2243.                             draw.SimpleText(v:GetNWString("bystanderName"), font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2244.                         end
  2245.                     elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2246.                         draw.SimpleText(v:GetNWString("bystanderName"), font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2247.                     elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2248.                         draw.SimpleText(v:GetNWString("bystanderName"), font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2249.                     else
  2250.                         draw.SimpleText(v:GetNWString("bystanderName"), font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2251.                     end
  2252.                 else
  2253.                     if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2254.                         if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2255.                             draw.SimpleText(v:Nick(), font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2256.                         else
  2257.                             draw.SimpleText(v:Nick(), font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2258.                         end
  2259.                     elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2260.                         draw.SimpleText(v:Nick(), font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2261.                     elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2262.                         draw.SimpleText(v:Nick(), font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2263.                     else
  2264.                         draw.SimpleText(v:Nick(), font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2265.                     end
  2266.                 end
  2267.             else
  2268.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2269.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2270.                             draw.SimpleText(v:GetClass(), font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2271.                         else
  2272.                             draw.SimpleText(v:GetClass(), font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2273.                         end
  2274.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2275.                     draw.SimpleText(v:GetClass(), font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2276.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2277.                     draw.SimpleText(v:GetClass(), font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2278.                 else
  2279.                     draw.SimpleText(v:GetClass(), font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2280.                 end
  2281.             end
  2282.  
  2283.             texty1 = texty1 + 12
  2284.         end
  2285.  
  2286.         if gOption("Visuals", "ESP", "Health") ~= "Off" then
  2287.             if gOption("Visuals", "ESP", "Health") == "Value only" then
  2288.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2289.                     draw.SimpleText(v:Health().." HP", font(), x1 - 4, y1 + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2290.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2291.                     draw.SimpleText(v:Health().." HP", font(), x2 + 2, y1 + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2292.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2293.                     draw.SimpleText(v:Health().." HP", font(), x1, y2 + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2294.                 else
  2295.                     draw.SimpleText(v:Health().." HP", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2296.                 end
  2297.                 texty1 = texty1 + 12
  2298.             elseif gOption("Visuals", "ESP", "Health") == "Bar only" then
  2299.                 surface.SetDrawColor(0,0,0)
  2300.                 surface.DrawRect(x1 - 6, y1, 3, diff2)
  2301.                 surface.DrawRect(x1 - 7, y1 - 1, 5, diff2 + 2)
  2302.  
  2303.                 surface.SetDrawColor(Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0))
  2304.                 surface.DrawRect(x1 - 6, y2 - math.Clamp(diff2 / v:GetMaxHealth() * v:Health(), 0, diff2), 3, math.Clamp(diff2 / v:GetMaxHealth() * v:Health(), 0, diff2))
  2305.             else
  2306.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2307.                     draw.SimpleText(v:Health().." HP", font(), x1 - 10, y1 + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2308.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2309.                     draw.SimpleText(v:Health().." HP", font(), x2 + 2, y1 + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2310.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2311.                     draw.SimpleText(v:Health().." HP", font(), x1, y2 + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2312.                 else
  2313.                     draw.SimpleText(v:Health().." HP", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2314.                 end
  2315.                 texty1 = texty1 + 12
  2316.  
  2317.                 surface.SetDrawColor(0,0,0)
  2318.                 surface.DrawRect(x1 - 6, y1, 3, diff2)
  2319.                 surface.DrawRect(x1 - 7, y1 - 1, 5, diff2 + 2)
  2320.  
  2321.                 surface.SetDrawColor(Color(255 - 255 / v:GetMaxHealth() * v:Health(), 255 / v:GetMaxHealth() * v:Health(), 0))
  2322.                 surface.DrawRect(x1 - 6, y2 - math.Clamp(diff2 / v:GetMaxHealth() * v:Health(), 0, diff2), 3, math.Clamp(diff2 / v:GetMaxHealth() * v:Health(), 0, diff2))
  2323.             end
  2324.         end
  2325.  
  2326.         if gBool("Visuals", "ESP", "Conditions") and v:IsPlayer() then
  2327.             if v:InVehicle() then
  2328.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2329.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2330.                         draw.SimpleText("driving *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2331.                     else
  2332.                         draw.SimpleText("driving *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2333.                     end
  2334.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2335.                     draw.SimpleText("* driving", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2336.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2337.                     draw.SimpleText("* driving", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2338.                 else
  2339.                     draw.SimpleText("* driving *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2340.                 end
  2341.                 texty1 = texty1 + 12
  2342.             elseif v:GetMoveType() == MOVETYPE_NOCLIP then
  2343.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2344.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2345.                         draw.SimpleText("noclipping *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2346.                     else
  2347.                         draw.SimpleText("noclipping *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2348.                     end
  2349.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2350.                     draw.SimpleText("* noclipping", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2351.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2352.                     draw.SimpleText("* noclipping", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2353.                 else
  2354.                     draw.SimpleText("* noclipping *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2355.                 end
  2356.                 texty1 = texty1 + 12
  2357.             elseif v:IsFlagSet(2) then
  2358.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2359.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2360.                         draw.SimpleText("crouching *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2361.                     else
  2362.                         draw.SimpleText("crouching *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2363.                     end
  2364.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2365.                     draw.SimpleText("* crouching", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2366.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2367.                     draw.SimpleText("* crouching", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2368.                 else
  2369.                     draw.SimpleText("* crouching *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2370.                 end
  2371.                 texty1 = texty1 + 12
  2372.             elseif v:GetMoveType() == MOVETYPE_LADDER then
  2373.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2374.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2375.                         draw.SimpleText("climbing *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2376.                     else
  2377.                         draw.SimpleText("climbing *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2378.                     end
  2379.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2380.                     draw.SimpleText("* climbing", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2381.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2382.                     draw.SimpleText("* climbing", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2383.                 else
  2384.                     draw.SimpleText("* climbing *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2385.                 end
  2386.                 texty1 = texty1 + 12
  2387.             elseif v:IsFlagSet(268435456) then
  2388.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2389.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2390.                         draw.SimpleText("burning *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2391.                     else
  2392.                         draw.SimpleText("burning *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2393.                     end
  2394.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2395.                     draw.SimpleText("* burning", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2396.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2397.                     draw.SimpleText("* burning", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2398.                 else
  2399.                     draw.SimpleText("* burning *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2400.                 end
  2401.                 texty1 = texty1 + 12
  2402.             elseif v:GetColor(v).a < 255 then
  2403.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2404.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2405.                         draw.SimpleText("spawning *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2406.                     else
  2407.                         draw.SimpleText("spawning *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2408.                     end
  2409.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2410.                     draw.SimpleText("* spawning", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2411.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2412.                     draw.SimpleText("* spawning", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2413.                 else
  2414.                     draw.SimpleText("* spawning *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2415.                 end
  2416.                 texty1 = texty1 + 12
  2417.             elseif v:GetMoveType() == MOVETYPE_OBSERVER then
  2418.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2419.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2420.                         draw.SimpleText("spectating *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2421.                     else
  2422.                         draw.SimpleText("spectating *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2423.                     end
  2424.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2425.                     draw.SimpleText("* spectating", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2426.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2427.                     draw.SimpleText("* spectating", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2428.                 else
  2429.                     draw.SimpleText("* spectating *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2430.                 end
  2431.                 texty1 = texty1 + 12
  2432.             elseif v:IsSprinting() then
  2433.                 if gOption("Visuals", "ESP", "Text Position") == "Left" then
  2434.                     if gOption("Visuals", "ESP", "Health") == "Bar only" or gOption("Visuals", "ESP", "Health") == "Both" then
  2435.                         draw.SimpleText("sprinting *", font(), x1 - 10, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2436.                     else
  2437.                         draw.SimpleText("sprinting *", font(), x1 - 4, y1 + texty1, esp_col(v), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2438.                     end
  2439.                 elseif gOption("Visuals", "ESP", "Text Position") == "Right" then
  2440.                     draw.SimpleText("* sprinting", font(), x2 + 2, y1 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2441.                 elseif gOption("Visuals", "ESP", "Text Position") == "Bottom" then
  2442.                     draw.SimpleText("* sprinting", font(), x1, y2 + texty1, esp_col(v), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  2443.                 else
  2444.                     draw.SimpleText("* sprinting *", font(), v:GetPos():ToScreen().x, (v:GetPos()+Vector(0,0,45)):ToScreen().y + texty1, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2445.                 end
  2446.                 texty1 = texty1 + 12
  2447.             end
  2448.         end
  2449.  
  2450.         if gBool("Aimbot", "Misc", "Projectile Prediction") and me:GetActiveWeapon():IsValid() and v == aimtarget and aimtarget:IsValid() and WeaponShootable() then
  2451.             local predictedpos
  2452.             local pos = v:LocalToWorld(v:OBBCenter()):ToScreen()
  2453.  
  2454.             if v:GetVelocity():Length() >= 20 then
  2455.                 surface.SetDrawColor(esp_col(v))
  2456.  
  2457.                 if string.find(string.lower(me:GetActiveWeapon():GetPrintName()), "crossbow") then
  2458.                     if aimtarget:GetPos():Distance(me:GetPos()) <= 1100 then
  2459.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/1600)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110)):ToScreen()
  2460.                     else
  2461.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/3215)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110)):ToScreen()
  2462.                     end
  2463.  
  2464.                     surface.DrawLine(pos.x, pos.y, predictedpos.x, predictedpos.y)
  2465.                     --surface.DrawLine(x1+diff/2, y1+diff2-2, predictedpos.x, predictedpos.y)
  2466.                 elseif string.find(string.lower(me:GetActiveWeapon():GetClass()), "m9k_rpg7") or string.find(string.lower(me:GetActiveWeapon():GetClass()), "m9k_m202") then
  2467.                     if aimtarget:GetPos():Distance(me:GetPos()) <= 2600 then
  2468.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/4500)+me:Ping()/950) - Vector(0,0,25)):ToScreen()
  2469.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  2470.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/4500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110)):ToScreen()
  2471.                     else
  2472.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/4500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/90)):ToScreen()
  2473.                     end
  2474.  
  2475.                     surface.DrawLine(pos.x, pos.y, predictedpos.x, predictedpos.y)
  2476.                 elseif string.find(string.lower(wep:GetClass()), "m9k_ex41") or string.find(string.lower(wep:GetClass()), "m9k_m79gl") then
  2477.                     if aimtarget:GetPos():Distance(me:GetPos()) <= 1100 then
  2478.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2550)+me:Ping()/950) - Vector(0,0,25)):ToScreen()
  2479.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  2480.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2130)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/35)):ToScreen()
  2481.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 7000 then
  2482.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2130)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/13)):ToScreen()
  2483.                     else
  2484.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2670)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/6)):ToScreen()
  2485.                     end
  2486.  
  2487.                     surface.DrawLine(pos.x, pos.y, predictedpos.x, predictedpos.y)
  2488.                 elseif string.find(string.lower(wep:GetClass()), "m9k_matador") then
  2489.                     if aimtarget:GetPos():Distance(me:GetPos()) <= 2600 then
  2490.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/6500)+me:Ping()/950) - Vector(0,0,25)):ToScreen()
  2491.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  2492.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/6500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110)):ToScreen()
  2493.                     else
  2494.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/6500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/90)):ToScreen()
  2495.                     end
  2496.  
  2497.                     surface.DrawLine(pos.x, pos.y, predictedpos.x, predictedpos.y)
  2498.                 elseif string.find(string.lower(wep:GetClass()), "m9k_milkormgl") then
  2499.                     if aimtarget:GetPos():Distance(me:GetPos()) <= 1100 then
  2500.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2500)+me:Ping()/950) - Vector(0,0,25)):ToScreen()
  2501.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  2502.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2000)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/43)):ToScreen()
  2503.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 7000 then
  2504.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2460)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/38)):ToScreen()
  2505.                     else
  2506.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2580)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/17.5)):ToScreen()
  2507.                     end
  2508.  
  2509.                     surface.DrawLine(pos.x, pos.y, predictedpos.x, predictedpos.y)
  2510.                 elseif string.find(string.lower(wep:GetClass()), "m9k_m61_frag") then
  2511.                     predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/650)+me:Ping()/950) - Vector(0,0,225) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/4)):ToScreen()
  2512.  
  2513.                     surface.DrawLine(pos.x, pos.y, predictedpos.x, predictedpos.y)
  2514.                 elseif string.find(string.lower(wep:GetClass()), "m9k_harpoon") then
  2515.                     if aimtarget:GetPos():Distance(me:GetPos()) <= 1200 then
  2516.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2300)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/20) - me:GetVelocity()/50):ToScreen()
  2517.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 1750 then
  2518.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2000)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/8) - me:GetVelocity()/50):ToScreen()
  2519.                     elseif aimtarget:GetPos():Distance(me:GetPos()) <= 2000 then
  2520.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/1500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/5) - me:GetVelocity()/50):ToScreen()
  2521.                     else
  2522.                         predictedpos = (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/900)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/3) - me:GetVelocity()/50):ToScreen()
  2523.                     end
  2524.  
  2525.                     surface.DrawLine(pos.x, pos.y, predictedpos.x, predictedpos.y)
  2526.                 end
  2527.             end
  2528.         end
  2529.  
  2530.         if gOption("Visuals", "ESP", "Lines") ~= "Off" then
  2531.             local pos = v:LocalToWorld(v:OBBCenter()):ToScreen()
  2532.             surface.SetDrawColor(esp_col(v))
  2533.  
  2534.             if gBool("Visuals", "ESP", "Lines") == "Bottom" then
  2535.                 surface.DrawLine(ScrW() / 2, ScrH(), pos.x, pos.y)
  2536.             elseif gBool("Visuals", "ESP", "Lines") == "Top" then
  2537.                 surface.DrawLine(ScrW() / 2, 0, pos.x, pos.y)
  2538.             else
  2539.                 surface.DrawLine(ScrW() / 2, ScrH()/2, pos.x, pos.y)
  2540.             end
  2541.         end
  2542.  
  2543.         if gBool("Visuals", "Other", "Glow") then
  2544.             halo.Add({v}, esp_col(v), 0.8, 0.8, 1, true, true)
  2545.         end
  2546.     end
  2547. end
  2548.  
  2549. local function aimfov()
  2550.     local center = Vector(ScrW()/2, ScrH()/2, 0)
  2551.     local scale = Vector(gInt("Aimbot","Aimbot","Aimbot FOV")*11.8, gInt("Aimbot","Aimbot","Aimbot FOV")*11.8, 0)
  2552.     local segmentdist = 360 / (2 * math.pi * math.max(scale.x, scale.y)/2)
  2553.  
  2554.     surface.SetDrawColor(MenuCol)
  2555.  
  2556.     for a = 0, 360 - segmentdist, segmentdist do
  2557.         surface.DrawLine(center.x + math.cos( math.rad( a ) ) * scale.x, center.y - math.sin( math.rad( a ) ) * scale.y, center.x + math.cos( math.rad( a + segmentdist ) ) * scale.x, center.y - math.sin( math.rad( a + segmentdist ) ) * scale.y)
  2558.     end
  2559. end
  2560.  
  2561. local function specalert()
  2562.     local spectators = 0
  2563.  
  2564.     for k, v in next, player.GetAll() do
  2565.         if not v:GetObserverTarget() or not v:GetObserverTarget():IsValid() or not v:GetObserverTarget():IsPlayer() or not me:Alive() then continue end
  2566.  
  2567.         if gOption("Visuals", "Other", "Spectating Player Alert") == "On me" then
  2568.             if v:GetObserverTarget() == me then
  2569.                 draw.SimpleText(v:Nick(), font(), ScrW()/2, ScrH()/15 + spectators, PrimaryCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  2570.                 spectators = spectators + 13
  2571.             end
  2572.         else
  2573.             if v:GetObserverTarget() == me then
  2574.                 draw.SimpleText(v:Nick().." > "..v:GetObserverTarget():Nick(), font(), ScrW()/2, ScrH()/15 + spectators, AimCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  2575.             else
  2576.                 draw.SimpleText(v:Nick().." > "..v:GetObserverTarget():Nick(), font(), ScrW()/2, ScrH()/15 + spectators, PrimaryCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  2577.             end
  2578.             spectators = spectators + 13
  2579.         end
  2580.     end
  2581.  
  2582.     if spectators > 0 then
  2583.         draw.SimpleText("Spectators (".. spectators/13 ..")", font(), ScrW()/2, ScrH()/15 - 13, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  2584.     end
  2585. end
  2586.  
  2587. local function radar()
  2588.     local radar_size, radar_scale, radar_x, radar_y = 100 + gInt("Visuals", "Radar", "Size"), 10 + gInt("Visuals", "Radar", "Distance") + me:GetVelocity():Length()/35, gInt("Visuals", "Radar", "X-Position"), gInt("Visuals", "Radar", "Y-Position")
  2589.  
  2590.     local cpos = me:GetPos()
  2591.     local ang = math.rad(fa.y - 90)
  2592.     local cos, sin = math.cos(ang), math.sin(ang)
  2593.  
  2594.     -- Old: local ang = math.rad(me:EyeAngles().y - 90)
  2595.  
  2596.     local radar_center_x = radar_x + radar_size * 0.5
  2597.     local radar_center_y = radar_y + radar_size * 0.5
  2598.  
  2599.     surface.SetDrawColor(0, 0, 0, 220)
  2600.     surface.DrawRect(radar_x-1, radar_y-1, radar_size+2, radar_size+2) -- Background
  2601.  
  2602.     --[[surface.SetDrawColor(0,0,0)
  2603.     surface.DrawOutlinedRect(radar_x-1, radar_y-1, radar_size+2, radar_size+2) -- Outline  ]]
  2604.  
  2605.     surface.SetDrawColor(MenuCol)
  2606.     surface.DrawOutlinedRect(radar_x, radar_y, radar_size, radar_size) -- Outline
  2607.     surface.DrawLine(radar_center_x, radar_y, radar_center_x, radar_y + radar_size) -- Y Axis
  2608.     surface.DrawLine(radar_x, radar_center_y, radar_x + radar_size, radar_center_y) -- X Axis
  2609.  
  2610.     render.SetScissorRect(radar_x + 1, radar_y + 1, radar_x + radar_size - 1, radar_y + radar_size - 1, true)
  2611.  
  2612.     for k,v in next, ents.GetAll() do
  2613.         if v:IsDormant() or not v:IsValid() or not maxdist(v) or v:Health() < 1 or v:IsDormant() or v == me or not filter(v) then continue end
  2614.  
  2615.         local pos = cpos - v:GetPos()
  2616.         pos.x = pos.x / radar_scale
  2617.         pos.y = pos.y / radar_scale
  2618.  
  2619.         local transx, transy = radar_center_x - pos.x, radar_center_y + pos.y
  2620.         local dx, dy = transx - radar_center_x, transy - radar_center_y
  2621.  
  2622.         transx = radar_center_x + (dx * cos - dy * sin)
  2623.         transy = radar_center_y + (dx * sin + dy * cos)
  2624.  
  2625.         surface.SetDrawColor(esp_col(v))
  2626.         surface.DrawRect(transx - 3, transy - 3, 12, 12)
  2627.         surface.SetDrawColor(0,0,0)
  2628.         surface.DrawOutlinedRect(transx - 3, transy - 3, 12, 12)
  2629.  
  2630.         if gBool("Visuals", "Radar", "Names") then
  2631.             if v:IsPlayer() then
  2632.                 if gBool("Gamemode", "Murder", "Draw Bystander Names") and engine.ActiveGamemode() == "murder" then
  2633.                     draw.SimpleText(v:GetNWString("bystanderName"), font(), transx+2, transy - 9, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2634.                 else
  2635.                     draw.SimpleText(v:Nick(), font(), transx+2, transy - 9, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2636.                 end
  2637.             else
  2638.                 draw.SimpleText(v:GetClass(), font(), transx+2, transy - 9, esp_col(v), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2639.             end
  2640.         end
  2641.     end
  2642.  
  2643.     render.SetScissorRect(0, 0, 0, 0, false)
  2644. end
  2645.  
  2646. local function prioritize(v)
  2647.     if table.HasValue(ignore_list, v:UniqueID()) then
  2648.         table.RemoveByValue(ignore_list, v:UniqueID())
  2649.     elseif table.HasValue(priority_list, v:UniqueID()) then
  2650.         table.RemoveByValue(priority_list, v:UniqueID())
  2651.     else
  2652.         table.insert(priority_list, v:UniqueID())
  2653.     end
  2654.  
  2655.     file.Write(cheatname.."/priorities.txt", util.TableToJSON(priority_list))
  2656.     file.Write(cheatname.."/ignore.txt", util.TableToJSON(ignore_list))
  2657. end
  2658.  
  2659. local function ignore(v)
  2660.     if table.HasValue(priority_list, v:UniqueID()) then
  2661.         table.RemoveByValue(priority_list, v:UniqueID())
  2662.     elseif table.HasValue(ignore_list, v:UniqueID()) then
  2663.         table.RemoveByValue(ignore_list, v:UniqueID())
  2664.     else
  2665.         table.insert(ignore_list, v:UniqueID())
  2666.     end
  2667.  
  2668.     file.Write(cheatname.."/priorities.txt", util.TableToJSON(priority_list))
  2669.     file.Write(cheatname.."/ignore.txt", util.TableToJSON(ignore_list))
  2670. end
  2671.  
  2672. local function priority(v)
  2673.     if table.HasValue(priority_list, v:UniqueID()) then
  2674.         return "Rage (Highlight only)"
  2675.     elseif table.HasValue(ignore_list, v:UniqueID()) then
  2676.         return "Ignore"
  2677.     else
  2678.         return "Normal"
  2679.     end
  2680. end
  2681.  
  2682. local function playerlist()
  2683.     local pos_x, pos_y = ScrW()/1.34, ScrH()/5.5
  2684.     local number = 1
  2685.     local offset = 14 + gInt("Visuals", "Player List", "Spacing")
  2686.  
  2687.     surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 100)
  2688.     surface.DrawRect(pos_x, pos_y, 350, 15)
  2689.  
  2690.     surface.SetDrawColor(0,0,0)
  2691.     surface.DrawOutlinedRect(pos_x, pos_y, 350, 15)
  2692.     surface.DrawOutlinedRect(pos_x, pos_y, 30, 15)
  2693.     surface.DrawOutlinedRect(pos_x+29, pos_y, 180, 15)
  2694.  
  2695.     draw.SimpleText("#", font(), pos_x+5, pos_y, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT)
  2696.     draw.SimpleText("Username", font(), pos_x+35, pos_y, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT)
  2697.     draw.SimpleText("Priority", font(), pos_x+214, pos_y, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT)
  2698.  
  2699.     for k,v in next, player.GetAll() do
  2700.         if v == me or not v:IsValid() or player.GetCount() > 30 then continue end
  2701.         if MouseInArea(pos_x, pos_y+offset, pos_x+350, pos_y+offset+14) then -- 350 to 209 if u only wanna highlight username part
  2702.             if input.IsMouseDown(107) then
  2703.                 if MouseInArea(pos_x+30, pos_y+offset, pos_x+209, pos_y+offset+14) and not v:IsBot() then
  2704.                     gui.OpenURL("http://steamcommunity.com/profiles/"..v:SteamID64().."/")
  2705.                 elseif MouseInArea(pos_x+209, pos_y+offset, pos_x+350, pos_y+offset+14) and not pressed then
  2706.                     prioritize(v)
  2707.                     pressed = true
  2708.                 end
  2709.             elseif input.IsMouseDown(108) then
  2710.                 if MouseInArea(pos_x+30, pos_y+offset, pos_x+209, pos_y+offset+14) and not v:IsBot() then
  2711.                     SetClipboardText("http://steamcommunity.com/profiles/"..v:SteamID64().."/")
  2712.                 elseif MouseInArea(pos_x+209, pos_y+offset, pos_x+350, pos_y+offset+14) and not pressed then
  2713.                     ignore(v)
  2714.                     pressed = true
  2715.                 end
  2716.             else
  2717.                 pressed = false
  2718.             end
  2719.  
  2720.             if gOption("Visuals", "Player List", "Colors") == "Team" then
  2721.                 if table.HasValue(ignore_list, v:UniqueID()) then
  2722.                     surface.SetDrawColor(175, 175, 175)
  2723.                 elseif table.HasValue(priority_list, v:UniqueID()) then
  2724.                     surface.SetDrawColor(255,0,100)
  2725.                 else
  2726.                     surface.SetDrawColor(team.GetColor(v))
  2727.                 end
  2728.             elseif gOption("Visuals", "Player List", "Colors") == "Menu" then
  2729.                 if table.HasValue(ignore_list, v:UniqueID()) then
  2730.                     surface.SetDrawColor(175, 175, 175)
  2731.                 elseif table.HasValue(priority_list, v:UniqueID()) then
  2732.                     surface.SetDrawColor(255,0,100)
  2733.                 else
  2734.                     surface.SetDrawColor(MenuCol)
  2735.                 end
  2736.             else
  2737.                 surface.SetDrawColor(esp_col(v))
  2738.             end
  2739.         else
  2740.             if gOption("Visuals", "Player List", "Colors") == "Team" then
  2741.                 if table.HasValue(ignore_list, v:UniqueID()) then
  2742.                     surface.SetDrawColor(175, 175, 175,100)
  2743.                 elseif table.HasValue(priority_list, v:UniqueID()) then
  2744.                     surface.SetDrawColor(255,0,100,100)
  2745.                 else
  2746.                     surface.SetDrawColor(team.GetColor(v:Team()).r, team.GetColor(v:Team()).g, team.GetColor(v:Team()).b, 100)
  2747.                 end
  2748.             elseif gOption("Visuals", "Player List", "Colors") == "Menu" then
  2749.                 if table.HasValue(ignore_list, v:UniqueID()) then
  2750.                     surface.SetDrawColor(175, 175, 175,100)
  2751.                 elseif table.HasValue(priority_list, v:UniqueID()) then
  2752.                     surface.SetDrawColor(255,0,100,100)
  2753.                 else
  2754.                     surface.SetDrawColor(MenuCol.r, MenuCol.g, MenuCol.b, 100)
  2755.                 end
  2756.             else
  2757.                 surface.SetDrawColor(esp_col(v).r, esp_col(v).g, esp_col(v).b, 100)
  2758.             end
  2759.         end
  2760.  
  2761.         surface.DrawRect(pos_x, pos_y+offset, 350, 15)
  2762.  
  2763.         surface.SetDrawColor(0,0,0)
  2764.         surface.DrawOutlinedRect(pos_x, pos_y+offset, 350, 15)
  2765.         surface.DrawOutlinedRect(pos_x, pos_y+offset, 30, 15)
  2766.         surface.DrawOutlinedRect(pos_x+29, pos_y+offset, 180, 15)
  2767.  
  2768.         draw.SimpleText(number, font(), pos_x+5, pos_y+offset, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT)
  2769.         draw.SimpleText(v:Nick(), font(), pos_x+35, pos_y+offset, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT)
  2770.         draw.SimpleText(priority(v), font(), pos_x+214, pos_y+offset, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT)
  2771.  
  2772.         offset = offset + 14 + gInt("Visuals", "Player List", "Spacing")
  2773.         number = number + 1
  2774.     end
  2775. end
  2776.  
  2777. local function chams_col(v, vis)
  2778.     if vis then
  2779.         if gBool("Visuals", "ESP", "Highlight Aim Target") and v == aimtarget and aimtarget:IsValid() and aimkeycheck() and WeaponShootable() then
  2780.             return AimCol.r/255, AimCol.g/255, AimCol.b/255
  2781.         else
  2782.             return gInt("Settings", "Visible Chams Color", "Red")/255, gInt("Settings", "Visible Chams Color", "Green")/255, gInt("Settings", "Visible Chams Color", "Blue")/255
  2783.         end
  2784.     else
  2785.         return gInt("Settings", "Invisible Chams Color", "Red")/255, gInt("Settings", "Invisible Chams Color", "Green")/255, gInt("Settings", "Invisible Chams Color", "Blue")/255
  2786.     end
  2787. end
  2788.  
  2789. local function chams()
  2790.     for k,v in next, ents.GetAll() do
  2791.  
  2792.         if v:IsDormant() or not v:IsValid() or not maxdist(v) or v:Health() < 1 or v:IsDormant() or v == me or not filter(v) or not onscreen(v) then continue end
  2793.  
  2794.         cam.Start3D()
  2795.             if gOption("Visuals", "ESP", "Chams") == "On" then
  2796.                 render.MaterialOverride(chamsmat)
  2797.                 render.SetColorModulation(chams_col(v, false))
  2798.                 v:DrawModel()
  2799.             end
  2800.  
  2801.             render.SetColorModulation(chams_col(v, true))
  2802.             render.MaterialOverride(chamsmat2)
  2803.             v:DrawModel(v)
  2804.         cam.End3D()
  2805.     end
  2806. end
  2807.  
  2808. local function murder_misc()
  2809.     if gBool("Gamemode", "Murder", "Hide End Round Board") then
  2810.         if not displayed then
  2811.             function GAMEMODE:DisplayEndRoundBoard(data) return end
  2812.             displayed = true
  2813.         end
  2814.     end
  2815.     if gBool("Gamemode", "Murder", "Don't become Murderer") then
  2816.         if GAMEMODE.RoundStage ~= 1 then
  2817.             function GAMEMODE:SetAmMurderer(bool) return false end
  2818.         end
  2819.     end
  2820.     if gBool("Gamemode", "Murder", "Hide Footprints") then
  2821.         if not footprints then
  2822.             function GAMEMODE:DrawFootprints() return end
  2823.             footprints = true
  2824.         end
  2825.     end
  2826.     if gBool("Gamemode", "Murder", "No Black Screens") then
  2827.         --function GAMEMODE:RenderDeathOverlay() return end
  2828.         if not blackscreen then
  2829.             function GAMEMODE:RenderScreenspaceEffects() return end
  2830.             function GAMEMODE:PostDrawHUD() return end
  2831.             blackscreen = true
  2832.         end
  2833.     end
  2834.     if gOption("Gamemode", "Murder", "Taunt Spam") ~= "Off" and me:Alive() then
  2835.         if gOption("Gamemode", "Murder", "Taunt Spam") == "Funny" then
  2836.             command("mu_taunt funny")
  2837.         end
  2838.         if gOption("Gamemode", "Murder", "Taunt Spam") == "Help" then
  2839.             command("mu_taunt help")
  2840.         end
  2841.         if gOption("Gamemode", "Murder", "Taunt Spam") == "Scream" then
  2842.             command("mu_taunt scream")
  2843.         end
  2844.         if gOption("Gamemode", "Murder", "Taunt Spam") == "Morose" then
  2845.             command("mu_taunt morose")
  2846.         end
  2847.         if gOption("Gamemode", "Murder", "Taunt Spam") == "Random" then
  2848.             command("mu_taunt "..tauntspam[math.random(#tauntspam)])
  2849.         end
  2850.     end
  2851.  
  2852.     for k,v in next, player.GetAll() do
  2853.         if not v:IsValid() or v:Health() < 1 or v:IsDormant() or v == me then continue end
  2854.  
  2855.         if GAMEMODE.RoundStage == 1 then
  2856.             if v:HasWeapon("weapon_mu_knife") then
  2857.                 murderer = v:Nick()
  2858.                 if gOption("Gamemode", "Murder", "Murderer Announcer") ~= "Off" and me:Alive() and v:GetFriendStatus() ~= "friend" and not me:HasWeapon("weapon_mu_knife") and not said then
  2859.                     if gOption("Gamemode", "Murder", "Murderer Announcer") == "Spam" then
  2860.                         command("say "..v:GetNWString("bystanderName").." is the murderer this round!")
  2861.                         said = false
  2862.                     else
  2863.                         timer.Create("Delay", 12, 1, function() command("say "..v:GetNWString("bystanderName").." is the murderer this round!") end)
  2864.                         said = true
  2865.                     end
  2866.                 end
  2867.                 if gBool("Gamemode", "Murder", "Murderer Notification") and me:Alive() and not said_info then
  2868.                     if v:GetFriendStatus() == "friend" then
  2869.                         msg(10, "Your friend, "..v:GetNWString("bystanderName").." ("..v:Nick()..") is the murderer this round.")
  2870.                     else
  2871.                         msg(10, v:GetNWString("bystanderName").." ("..v:Nick()..") is the murderer this round.")
  2872.                     end
  2873.                     said_info = true
  2874.                 end
  2875.             elseif me:HasWeapon("weapon_mu_knife") then
  2876.                 murderer = me:Nick()
  2877.                 if not already_bullied then
  2878.                     if v:HasWeapon("weapon_mu_magnum") then
  2879.                         bullied = v:GetNWString("bystanderName")
  2880.                     else
  2881.                         bullied = player.GetAll()[math.random(#player.GetAll())]:GetNWString("bystanderName")
  2882.                     end
  2883.                     already_bullied = true
  2884.                 end
  2885.                 if gOption("Gamemode", "Murder", "Murderer Announcer") ~= "Off" and me:Alive() and v:GetFriendStatus() ~= "friend" and not said then
  2886.                     if gOption("Gamemode", "Murder", "Murderer Announcer") == "Spam" then
  2887.                         command("say "..bullied.." is the murderer this round!")
  2888.                         said = false
  2889.                     else
  2890.                         timer.Create("Delay", 12, 1, function() command("say "..bullied.." is the murderer this round!") end)
  2891.                         said = true
  2892.                     end
  2893.                 end
  2894.                 if gBool("Gamemode", "Murder", "Murderer Notification") and me:Alive() and not said_info then
  2895.                     msg(10, "You are the murderer this round.")
  2896.                     said_info = true
  2897.                 end
  2898.             end
  2899.         else
  2900.             murderer = ""
  2901.             bullied = ""
  2902.             already_bullied = false
  2903.             said = false
  2904.             said_info = false
  2905.         end
  2906.     end
  2907. end
  2908.  
  2909. local function darkrp_misc()
  2910.     if gBool("Gamemode", "DarkRP", "Suicide near Arrest Batons") and me:Alive() and me:Health() > 0 then
  2911.         for k,v in next, player.GetAll() do
  2912.             if not v:IsValid() or v:Health() < 1 or v:IsDormant() or v == me then continue end
  2913.             if gBool("Aimbot", "Other", "Ignore Friends") and v:GetFriendStatus() == "friend" then continue end
  2914.  
  2915.             if v:GetPos():Distance(me:GetPos()) < 95 and v:GetActiveWeapon():GetClass() == "arrest_stick" and me:GetPos():Distance(v:GetEyeTrace().HitPos) < 105 then
  2916.                 command("kill")
  2917.             end
  2918.         end
  2919.     end
  2920.  
  2921.     if gInt("Gamemode", "DarkRP", "Prop Transparency") ~= 0 then
  2922.         for k, v in next, ents.FindByClass("prop_physics") do
  2923.             v:SetRenderMode(RENDERMODE_TRANSCOLOR)
  2924.             v:SetKeyValue("renderfx", 0)
  2925.             v:SetColor(Color(255, 255, 255, gInt("Gamemode", "DarkRP", "Prop Transparency")))
  2926.         end
  2927.         if looped_props then
  2928.             looped_props = false
  2929.         end
  2930.     else
  2931.         if not looped_props then
  2932.             for k, v in next, ents.FindByClass("prop_physics") do
  2933.                 v:SetColor(Color(255, 255, 255, 255))
  2934.             end
  2935.             looped_props = true
  2936.         end
  2937.     end
  2938. end
  2939.  
  2940. local function CheckChild(pan)
  2941.     if pan and pan:IsValid() and not menuopen then
  2942.         removewindow = true
  2943.  
  2944.         if input.IsKeyDown(17) then
  2945.             if pan.GetTitle then
  2946.                 msg(3, "Removed \""..pan:GetTitle().."\".")
  2947.             end
  2948.             pan:Remove()
  2949.             return
  2950.         end
  2951.  
  2952.         for k, v in pairs(pan:GetChildren()) do
  2953.             if input.IsKeyDown(17) then
  2954.                 if v.GetTitle then
  2955.                     msg(3, "Removed \""..v:GetTitle().."\".")
  2956.                 end
  2957.                 v:Remove()
  2958.                 return
  2959.             end
  2960.  
  2961.             if #v:GetChildren() > 0 then
  2962.                 CheckChild(v)
  2963.             end
  2964.         end
  2965.     else
  2966.         if removewindow then
  2967.             removewindow = false
  2968.         end
  2969.     end
  2970. end
  2971.  
  2972. local function ttt_misc()
  2973.     if gBool("Gamemode", "TTT", "Hide Round Report") then
  2974.         if not displayed then
  2975.             function CLSCORE:ShowPanel() return end
  2976.             displayed = true
  2977.         end
  2978.     end
  2979.     if gBool("Gamemode", "TTT", "Panel Remover") then
  2980.         local pan = vgui.GetHoveredPanel()
  2981.  
  2982.         CheckChild(pan)
  2983.     end
  2984. end
  2985.  
  2986. --[[local function target()
  2987.     if WeaponShootable() then
  2988.         if not aimtarget and aimkeycheck() then
  2989.             draw.SimpleText("Target: ...", font(), ScrW() / 2, ScrH() / 2 + 50, PrimaryCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2990.         elseif not aimtarget and not aimkeycheck() then
  2991.             draw.SimpleText("Target: ?", font(), ScrW() / 2, ScrH() / 2 + 50, PrimaryCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2992.         else
  2993.             if aimtarget:IsValid() then
  2994.                 if aimtarget:IsPlayer() then
  2995.                     if gBool("Visuals", "ESP", "Highlight Aim Target") then
  2996.                         draw.SimpleText("Target: "..aimtarget:Nick(), font(), ScrW() / 2, ScrH() / 2 + 50, AimCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2997.                     else
  2998.                         draw.SimpleText("Target: "..aimtarget:Nick(), font(), ScrW() / 2, ScrH() / 2 + 50, PrimaryCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2999.                     end
  3000.                 else
  3001.                     if gBool("Visuals", "ESP", "Highlight Aim Target") then
  3002.                         draw.SimpleText("Target: "..aimtarget:GetClass(), font(), ScrW() / 2, ScrH() / 2 + 50, AimCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  3003.                     else
  3004.                         draw.SimpleText("Target: "..aimtarget:GetClass(), font(), ScrW() / 2, ScrH() / 2 + 50, PrimaryCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  3005.                     end
  3006.                 end
  3007.             end
  3008.         end
  3009.     else
  3010.         draw.SimpleText("Target: ?", font(), ScrW() / 2, ScrH() / 2 + 50, PrimaryCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  3011.     end
  3012. end]]
  3013.  
  3014. local function nophys()
  3015.     if gBool("Hack vs Hack", "Anti-Aim", "Enabled") or not me:Alive() or me:Health() < 1 then
  3016.         return false
  3017.     end
  3018.  
  3019.     if me:GetActiveWeapon():IsValid() and me:GetActiveWeapon():GetClass() == "weapon_physgun" then
  3020.         return true
  3021.     else
  3022.         return false
  3023.     end
  3024. end
  3025.  
  3026. local function FixMovement(cmd)
  3027.     -- NOT NEEDED -- if me:GetActiveWeapon():GetClass() == "weapon_zm_carry" then return end
  3028.    
  3029.     local vec = Vector(cmd:GetForwardMove(), cmd:GetSideMove(), 0)
  3030.     local vel = math.sqrt(vec.x*vec.x + vec.y*vec.y)
  3031.     local mang = vec:Angle()
  3032.     local yaw = cmd:GetViewAngles().y - fa.y + mang.y
  3033.  
  3034.     if ((cmd:GetViewAngles().p+90)%360) > 180 then
  3035.         yaw = 180 - yaw
  3036.     end
  3037.  
  3038.     yaw = ((yaw + 180)%360)-180
  3039.     cmd:SetForwardMove(math.cos(math.rad(yaw)) * vel)
  3040.     cmd:SetSideMove(math.sin(math.rad(yaw)) * vel)
  3041. end
  3042.  
  3043. --[[local function Clamp(val, min, max)
  3044.     if val < min then
  3045.         return min
  3046.     elseif val > max then
  3047.         return max
  3048.     end
  3049.     return val
  3050. end]]
  3051.  
  3052. local function NormalizeAngle(ang)
  3053.     if not nophys() then
  3054.         ang.x = math.NormalizeAngle(ang.x)
  3055.         ang.p = math.Clamp(ang.p, -89, 89)
  3056.     end
  3057. end
  3058.  
  3059. local function aim_filter(v)
  3060.     if not gBool("Aimbot", "Other", "Ignore Players") and gBool("Aimbot", "Other", "Ignore NPCs") then
  3061.         return v:IsPlayer()
  3062.     elseif not gBool("Aimbot", "Other", "Ignore NPCs") and gBool("Aimbot", "Other", "Ignore Players") then
  3063.         return v:IsNPC()
  3064.     elseif not gBool("Aimbot", "Other", "Ignore Players") and not gBool("Aimbot", "Other", "Ignore NPCs") then
  3065.         return v:IsPlayer() or v:IsNPC()
  3066.     else
  3067.         return nil
  3068.     end
  3069. end
  3070.  
  3071. local function trigger_filter(v)
  3072.     if not gBool("Triggerbot", "Other", "Ignore Players") and gBool("Triggerbot", "Other", "Ignore NPCs") then
  3073.         return v:IsPlayer()
  3074.     elseif not gBool("Triggerbot", "Other", "Ignore NPCs") and gBool("Triggerbot", "Other", "Ignore Players") then
  3075.         return v:IsNPC()
  3076.     elseif not gBool("Triggerbot", "Other", "Ignore Players") and not gBool("Triggerbot", "Other", "Ignore NPCs") then
  3077.         return v:IsPlayer() or v:IsNPC()
  3078.     else
  3079.         return nil
  3080.     end
  3081. end
  3082.  
  3083. local function Valid(v)
  3084.     if not v or not v:IsValid() or v == me or v:Health() < 1 or v:IsDormant() or not aim_filter(v) then return false end
  3085.  
  3086.     if v:IsPlayer() then
  3087.         if gBool("Aimbot", "Other", "Ignore Friends") then
  3088.             if v:GetFriendStatus() == "friend" or v:SteamID64() == "76561197972182214" then return false end
  3089.         end
  3090.  
  3091.         if gBool("Aimbot", "Other", "Ignore Bots") then
  3092.             if v:IsBot() then return false end
  3093.         end
  3094.  
  3095.         if gBool("Aimbot", "Other", "Ignore Admins") then
  3096.             if v:IsAdmin() then return false end
  3097.         end
  3098.  
  3099.         if gBool("Aimbot", "Other", "Ignore driving Players") then
  3100.             if v:InVehicle() then return false end
  3101.         end
  3102.  
  3103.         if gBool("Aimbot", "Other", "Ignore noclipping Players") then
  3104.             if v:GetMoveType(v) == MOVETYPE_NOCLIP then return false end
  3105.         end
  3106.  
  3107.         if gBool("Aimbot", "Other", "Ignore transparent Players") then
  3108.             if v:GetColor().a < 255 then return false end
  3109.         end
  3110.  
  3111.         if v:Team() == TEAM_SPECTATOR or v:Team() == TEAM_CONNECTING then
  3112.             return false
  3113.         end
  3114.  
  3115.         if table.HasValue(ignore_list, v:UniqueID()) then
  3116.             return false
  3117.         end
  3118.  
  3119.         if gBool("Aimbot", "Other", "Ignore Team") then
  3120.             if engine.ActiveGamemode() == "terrortown" then
  3121.                 return true
  3122.             elseif engine.ActiveGamemode() == "murder" then
  3123.                 if not me:HasWeapon("weapon_mu_knife") and v:Nick() ~= murderer and GAMEMODE.RoundStage == 1 then
  3124.                     return false
  3125.                 end
  3126.             elseif v:Team() == me:Team() and engine.ActiveGamemode() ~= "sandbox" then
  3127.                 return false
  3128.             elseif v:Team() == me:Team() and engine.ActiveGamemode() ~= "darkrp" then
  3129.                 return false
  3130.             end
  3131.         end
  3132.     end
  3133.  
  3134.     if wep:IsValid() then
  3135.         local wepname = wep:GetPrintName()
  3136.         if string.find(string.lower(wepname),"axe") or string.find(string.lower(wepname),"knife") or string.find(string.lower(wepname),"sword") or string.find(string.lower(wepname),"fist") or string.find(string.lower(wepname),"crowbar") or string.find(string.lower(wepname),"stick") or string.find(string.lower(wepname),"melee") or string.find(string.lower(wepname),"wrench") or string.find(string.lower(wepname),"stun") or string.find(string.lower(wepname),"Baton") then
  3137.             if string.find(string.lower(wepname),"fist") then
  3138.                 if v:GetPos():Distance(me:GetPos()) > 50 then return false end
  3139.             else
  3140.                 if engine.ActiveGamemode() == "murder" or engine.ActiveGamemode() == "terrortown" then
  3141.                     if v:GetPos():Distance(me:GetPos()) > 65 then return false end
  3142.                 else
  3143.                     if v:GetPos():Distance(me:GetPos()) > 80 then return false end
  3144.                 end
  3145.             end
  3146.         else
  3147.             if wep:Clip1() <= 0 then
  3148.                 return
  3149.             end
  3150.         end
  3151.  
  3152.         --[[if string.find(string.lower(v:GetActiveWeapon():GetPrintName()),"crowbar") and v then
  3153.             return false
  3154.         end]] -- idfk how to check if he's attacking
  3155.  
  3156.         if string.find(string.lower(wepname),"smg") or string.find(string.lower(wepname),"pulse-rifle") or string.find(string.lower(wepname),"9mm pistol") or string.find(string.lower(wep:GetClass()), "m9k_m61_frag") or string.find(string.lower(wep:GetClass()), "m9k_harpoon") then
  3157.             if v:GetPos():Distance(me:GetPos()) > (400 * 5) then return false end
  3158.         elseif string.find(string.lower(wepname), "shotgun") or string.find(string.lower(wepname), "m3") or string.find(string.lower(wepname), "1014") or string.find(string.lower(wepname), "minigun") or string.find(string.lower(wepname), "winchester 1897") or string.find(string.lower(wepname), "winchester 87") or string.find(string.lower(wepname), "ithaca") or string.find(string.lower(wepname), "mossberg") or string.find(string.lower(wepname), "remington 870") or string.find(string.lower(wepname), "spas") or string.find(string.lower(wepname), "benelli") or string.find(string.lower(wepname), "browning") then
  3159.             if v:GetPos():Distance(me:GetPos()) > (200 * 5) then return false end
  3160.         elseif string.find(string.lower(wepname), "crossbow") or string.find(string.lower(wep:GetClass()), "m9k_rpg7") or string.find(string.lower(me:GetActiveWeapon():GetClass()), "m9k_m202") or string.find(string.lower(wep:GetClass()), "m9k_m79gl") or string.find(string.lower(wep:GetClass()), "m9k_ex41") or string.find(string.lower(wep:GetClass()), "m9k_matador") or string.find(string.lower(wep:GetClass()), "m9k_milkormgl") then
  3161.             if v:GetPos():Distance(me:GetPos()) > (2000 * 5) then return false end
  3162.         else
  3163.             if v:GetPos():Distance(me:GetPos()) > (1300 * 5) then return false end
  3164.         end
  3165.     end
  3166.  
  3167.     local tr = { start = me:EyePos(), endpos = GetPos(v), mask = MASK_SHOT, filter = {me, v} }
  3168.     if util.TraceLine(tr).Fraction == 1 then
  3169.         return true
  3170.     --[[elseif wep and wep:IsValid() and wep.PenStr then
  3171.         return fasAutowall(wep, tr.start, tr.endpos, v)
  3172.     elseif wep and wep:IsValid() and wep.BulletPenetrate then
  3173.         return m9kAutowall(wep, tr.start, tr.endpos, v)]]
  3174.     end
  3175.     return false
  3176. end
  3177.  
  3178. local function trigger_Valid(v)
  3179.     if not v or not v:IsValid() or v == me or v:Health() < 1 or v:IsDormant() or not aim_filter(v) then return false end
  3180.  
  3181.     if v:IsPlayer() then
  3182.         if gBool("Triggerbot", "Other", "Ignore Friends") then
  3183.             if v:GetFriendStatus() == "friend" or v:SteamID64() == "76561197972182214" then return false end
  3184.         end
  3185.  
  3186.         if gBool("Triggerbot", "Other", "Ignore Bots") then
  3187.             if v:IsBot() then return false end
  3188.         end
  3189.  
  3190.         if gBool("Triggerbot", "Other", "Ignore Admins") then
  3191.             if v:IsAdmin() then return false end
  3192.         end
  3193.  
  3194.         if gBool("Triggerbot", "Other", "Ignore driving Players") then
  3195.             if v:InVehicle() then return false end
  3196.         end
  3197.  
  3198.         if gBool("Triggerbot", "Other", "Ignore noclipping Players") then
  3199.             if v:GetMoveType(v) == MOVETYPE_NOCLIP then return false end
  3200.         end
  3201.  
  3202.         if gBool("Triggerbot", "Other", "Ignore transparent Players") then
  3203.             if v:GetColor().a < 255 then return false end
  3204.         end
  3205.  
  3206.         if v:Team() == TEAM_SPECTATOR or v:Team() == TEAM_CONNECTING then
  3207.             return false
  3208.         end
  3209.  
  3210.         if table.HasValue(ignore_list, v:UniqueID()) then
  3211.             return false
  3212.         end
  3213.  
  3214.         if gBool("Aimbot", "Other", "Ignore Team") then
  3215.             if engine.ActiveGamemode() == "terrortown" then
  3216.                 return true
  3217.             elseif engine.ActiveGamemode() == "murder" then
  3218.                 if not me:HasWeapon("weapon_mu_knife") and v:Nick() ~= murderer and GAMEMODE.RoundStage == 1 then
  3219.                     return false
  3220.                 end
  3221.             elseif v:Team() == me:Team() and engine.ActiveGamemode() ~= "sandbox" then
  3222.                 return false
  3223.             end
  3224.         end
  3225.     end
  3226.  
  3227.     if wep:IsValid() then
  3228.         local wepname = wep:GetPrintName()
  3229.         if string.find(string.lower(wepname),"axe") or string.find(string.lower(wepname),"knife") or string.find(string.lower(wepname),"sword") or string.find(string.lower(wepname),"fist") or string.find(string.lower(wepname),"crowbar") or string.find(string.lower(wepname),"stick") or string.find(string.lower(wepname),"melee") or string.find(string.lower(wepname),"wrench") or string.find(string.lower(wepname),"stun") or string.find(string.lower(wepname),"Baton") then
  3230.             if string.find(string.lower(wepname),"fist") then
  3231.                 if v:GetPos():Distance(me:GetPos()) > (13 * 5) then return false end
  3232.             else
  3233.                 if engine.ActiveGamemode() == "murder" or engine.ActiveGamemode() == "terrortown" then
  3234.                     if v:GetPos():Distance(me:GetPos()) > (11 * 5) then return false end
  3235.                 else
  3236.                     if v:GetPos():Distance(me:GetPos()) > (18 * 5) then return false end
  3237.                 end
  3238.             end
  3239.         else
  3240.             if wep:Clip1() <= 0 then
  3241.                 return
  3242.             end
  3243.         end
  3244.  
  3245.         if string.find(string.lower(wepname),"smg") or string.find(string.lower(wepname),"pulse-rifle") or string.find(string.lower(wepname),"9mm pistol") then
  3246.             if v:GetPos():Distance(me:GetPos()) > (400 * 5) then return false end
  3247.         elseif string.find(string.lower(wepname), "shotgun") or string.find(string.lower(wepname), "m3") or string.find(string.lower(wepname), "1014") or string.find(string.lower(wepname), "minigun") or string.find(string.lower(wepname), "winchester 1897") or string.find(string.lower(wepname), "winchester 87") or string.find(string.lower(wepname), "ithaca") or string.find(string.lower(wepname), "mossberg") or string.find(string.lower(wepname), "remington 870") or string.find(string.lower(wepname), "spas") or string.find(string.lower(wepname), "benelli") or string.find(string.lower(wepname), "browning") then
  3248.             if v:GetPos():Distance(me:GetPos()) > (200 * 5) then return false end
  3249.         else
  3250.             if v:GetPos():Distance(me:GetPos()) > (1300 * 5) then return false end
  3251.         end
  3252.     end
  3253.  
  3254.     local tr = { start = me:EyePos(), endpos = GetPos(v), mask = MASK_SHOT, filter = {me, v} }
  3255.     if util.TraceLine(tr).Fraction == 1 then
  3256.         return true
  3257.     --[[elseifwep and wep:IsValid() and wep.PenStr then
  3258.         return fasAutowall(wep, tr.start, tr.endpos, v)
  3259.     elseif wep and wep:IsValid() and wep.BulletPenetrate then
  3260.         return m9kAutowall(wep, tr.start, tr.endpos, v)]]
  3261.     end
  3262.     return false
  3263. end
  3264.  
  3265. local function aa_Valid(v)
  3266.     if not v or not v:IsValid() or v == me or v:Health() < 1 or v:IsDormant() or not aim_filter(v) then return false end
  3267.  
  3268.     if v:IsPlayer() then
  3269.         if gBool("Aimbot", "Other", "Ignore Friends") then
  3270.             if v:GetFriendStatus() == "friend" or v:SteamID64() == "76561197972182214" then return false end
  3271.         end
  3272.  
  3273.         if gBool("Aimbot", "Other", "Ignore Bots") then
  3274.             if v:IsBot() then return false end
  3275.         end
  3276.  
  3277.         if gBool("Aimbot", "Other", "Ignore Admins") then
  3278.             if v:IsAdmin() then return false end
  3279.         end
  3280.  
  3281.         if gBool("Aimbot", "Other", "Ignore driving Players") then
  3282.             if v:InVehicle() then return false end
  3283.         end
  3284.  
  3285.         if gBool("Aimbot", "Other", "Ignore noclipping Players") then
  3286.             if v:GetMoveType(v) == MOVETYPE_NOCLIP then return false end
  3287.         end
  3288.  
  3289.         if v:Team() == TEAM_SPECTATOR or v:Team() == TEAM_CONNECTING then
  3290.             return false
  3291.         end
  3292.  
  3293.         if table.HasValue(ignore_list, v:UniqueID()) then
  3294.             return false
  3295.         end
  3296.  
  3297.         if gBool("Aimbot", "Other", "Ignore Team") then
  3298.             if engine.ActiveGamemode() == "terrortown" then
  3299.                 return true
  3300.             elseif engine.ActiveGamemode() == "murder" then
  3301.                 if not me:HasWeapon("weapon_mu_knife") and v:Nick() ~= murderer and GAMEMODE.RoundStage == 1 then
  3302.                     return false
  3303.                 end
  3304.             elseif v:Team() == me:Team() and engine.ActiveGamemode() ~= "sandbox" then
  3305.                 return false
  3306.             elseif v:Team() == me:Team() and engine.ActiveGamemode() ~= "darkrp" then
  3307.                 return false
  3308.             end
  3309.         end
  3310.     end
  3311.  
  3312.     return true
  3313. end
  3314.  
  3315. local function check_alive(v)
  3316.     if v:IsValid() then
  3317.         if v:IsPlayer() then
  3318.             return v:Alive()
  3319.         else
  3320.             return v:Health() > 0
  3321.         end
  3322.     end
  3323. end
  3324.  
  3325. local function gettarget()
  3326.     if gOption("Aimbot", "Other", "Priority") == "Nearest" then
  3327.         dists = {}
  3328.         for k,v in next, ents.GetAll() do
  3329.             if not Valid(v) then continue end
  3330.             dists[#dists + 1] = { v:GetPos():Distance(me:GetPos()), v }
  3331.         end
  3332.         table.sort(dists, function(a, b)
  3333.             return(a[1] < b[1])
  3334.         end)
  3335.         aimtarget = dists[1] and dists[1][2] or nil
  3336.     elseif gOption("Aimbot", "Other", "Priority") == "Lowest Health" then
  3337.         dists = {}
  3338.         for k,v in next, ents.GetAll() do
  3339.             if not Valid(v) then continue end
  3340.             dists[#dists + 1] = { v:Health(), v }
  3341.         end
  3342.         table.sort(dists, function(a, b)
  3343.             return(a[1] < b[1])
  3344.         end)
  3345.         aimtarget = dists[1] and dists[1][2] or nil
  3346.     else
  3347.         dists = {}
  3348.         for k,v in next, ents.GetAll() do
  3349.             if not Valid(v) then continue end
  3350.             --dists[#dists + 1] = { v:GetPos():Distance(me:GetEyeTrace().HitPos), v }
  3351.             aimtarget = dists[1] and dists[1][2] or nil
  3352.             dists[#dists + 1] = { math.Dist(ScrW() / 2, ScrH() / 2, v:EyePos():ToScreen().x, v:EyePos():ToScreen().y), v }
  3353.         end
  3354.         table.sort(dists, function(a, b)
  3355.             return(a[1] < b[1])
  3356.         end)
  3357.         aimtarget = dists[1] and dists[1][2] or nil
  3358.     end
  3359. end
  3360.  
  3361. local function fakelag(cmd, choke, send)
  3362.     if gBool("Misc", "Fake Lag", "Disable on Attack") and me:KeyDown(IN_ATTACK) then
  3363.         return
  3364.     end
  3365.  
  3366.     if cmd:CommandNumber() == 0 then
  3367.         return true
  3368.     end
  3369.  
  3370.     if not Choke then
  3371.         choke = gInt("Misc", "Fake Lag", "Density") + 0.7
  3372.     end
  3373.  
  3374.     if not Send then
  3375.         send = 0
  3376.     end
  3377.  
  3378.     faketick = faketick + 1
  3379.  
  3380.     if faketick > (choke + send) then
  3381.         faketick = 0
  3382.     end
  3383.  
  3384.     if not (send >= faketick) then
  3385.         memesendpacket = false
  3386.     end
  3387.  
  3388.     flsend = send
  3389.  
  3390.     return true
  3391. end
  3392.  
  3393. local function prediction(aimtarget)
  3394.     if gBool("Aimbot", "Misc", "Projectile Prediction") then
  3395.         if string.find(string.lower(wep:GetPrintName()), "crossbow") then
  3396.             if aimtarget:GetPos():Distance(me:GetPos()) <= 1100 then
  3397.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/1600)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110) - me:GetVelocity()/50) - me:EyePos()
  3398.             else
  3399.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/3215)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110) - me:GetVelocity()/50) - me:EyePos()
  3400.             end
  3401.         elseif string.find(string.lower(wep:GetClass()), "m9k_rpg7") or string.find(string.lower(me:GetActiveWeapon():GetClass()), "m9k_m202") then
  3402.             if aimtarget:GetPos():Distance(me:GetPos()) <= 2600 then
  3403.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/4500)+me:Ping()/950) - Vector(0,0,25) - me:GetVelocity()/50) - me:EyePos()
  3404.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  3405.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/4500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110) - me:GetVelocity()/50) - me:EyePos()
  3406.             else
  3407.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/4500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/90) - me:GetVelocity()/50) - me:EyePos()
  3408.             end
  3409.         elseif string.find(string.lower(wep:GetClass()), "m9k_ex41") or string.find(string.lower(wep:GetClass()), "m9k_m79gl") then
  3410.             if aimtarget:GetPos():Distance(me:GetPos()) <= 1100 then
  3411.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2550)+me:Ping()/950) - Vector(0,0,25) - me:GetVelocity()/50) - me:EyePos()
  3412.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  3413.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2130)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/35) - me:GetVelocity()/50) - me:EyePos()
  3414.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 7000 then
  3415.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2130)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/13) - me:GetVelocity()/50) - me:EyePos()
  3416.             else
  3417.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2670)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/6) - me:GetVelocity()/50) - me:EyePos()
  3418.             end
  3419.         elseif string.find(string.lower(wep:GetClass()), "m9k_matador") then
  3420.             if aimtarget:GetPos():Distance(me:GetPos()) <= 2600 then
  3421.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/6500)+me:Ping()/950) - Vector(0,0,25) - me:GetVelocity()/50) - me:EyePos()
  3422.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  3423.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/6500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/110) - me:GetVelocity()/50) - me:EyePos()
  3424.             else
  3425.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/6500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/90) - me:GetVelocity()/50) - me:EyePos()
  3426.             end
  3427.         elseif string.find(string.lower(wep:GetClass()), "m9k_milkormgl") then
  3428.             if aimtarget:GetPos():Distance(me:GetPos()) <= 1100 then
  3429.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2500)+me:Ping()/950) - Vector(0,0,25) - me:GetVelocity()/50) - me:EyePos()
  3430.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 4000 then
  3431.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2000)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/43) - me:GetVelocity()/50) - me:EyePos()
  3432.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 7000 then
  3433.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2460)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/38) - me:GetVelocity()/50) - me:EyePos()
  3434.             else
  3435.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2580)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/17.5) - me:GetVelocity()/50) - me:EyePos()
  3436.             end
  3437.         elseif string.find(string.lower(wep:GetClass()), "m9k_m61_frag") then
  3438.             return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/650)+me:Ping()/950) - Vector(0,0,225) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/4) - me:GetVelocity()/50) - me:EyePos()
  3439.         elseif string.find(string.lower(wep:GetClass()), "m9k_harpoon") then
  3440.             if aimtarget:GetPos():Distance(me:GetPos()) <= 1200 then
  3441.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2300)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/20) - me:GetVelocity()/50) - me:EyePos()
  3442.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 1750 then
  3443.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/2000)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/8) - me:GetVelocity()/50) - me:EyePos()
  3444.             elseif aimtarget:GetPos():Distance(me:GetPos()) <= 2000 then
  3445.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/1500)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/5) - me:GetVelocity()/50) - me:EyePos()
  3446.             else
  3447.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() * ((aimtarget:GetPos():Distance(me:GetPos())/900)+me:Ping()/950) + Vector(0,0,aimtarget:GetPos():Distance(me:GetPos())/3) - me:GetVelocity()/50) - me:EyePos()
  3448.             end
  3449.         else
  3450.             if gOption("Aimbot", "Misc", "Fake Lag Prediction") ~= "Off" then
  3451.                 if gOption("Aimbot", "Misc", "Fake Lag Prediction") == "Rage Targets Only" then
  3452.                     if table.HasValue(priority_list, aimtarget:UniqueID()) then
  3453.                         return (GetPos(aimtarget) + aimtarget:GetVelocity() / 200 - me:GetVelocity()/50) - me:EyePos()
  3454.                     else
  3455.                         return (GetPos(aimtarget) - aimtarget:GetVelocity() / 170.5 - me:GetVelocity()/50) - me:EyePos()
  3456.                     end
  3457.                 else
  3458.                     return (GetPos(aimtarget) + aimtarget:GetVelocity() / 200 - me:GetVelocity()/50) - me:EyePos()
  3459.                 end
  3460.             else
  3461.                 return (GetPos(aimtarget) - aimtarget:GetVelocity() / 170.5 - me:GetVelocity()/50) - me:EyePos()
  3462.             end
  3463.         end
  3464.     else
  3465.         if gOption("Aimbot", "Misc", "Fake Lag Prediction") ~= "Off" then
  3466.             if gOption("Aimbot", "Misc", "Fake Lag Prediction") == "Rage Targets Only" then
  3467.                 if table.HasValue(priority_list, aimtarget:UniqueID()) then
  3468.                     return (GetPos(aimtarget) + aimtarget:GetVelocity() / 200 - me:GetVelocity()/50) - me:EyePos()
  3469.                 else
  3470.                     return (GetPos(aimtarget) - aimtarget:GetVelocity() / 170.5 - me:GetVelocity()/50) - me:EyePos()
  3471.                 end
  3472.             else
  3473.                 return (GetPos(aimtarget) + aimtarget:GetVelocity() / 200 - me:GetVelocity()/50) - me:EyePos()
  3474.             end
  3475.         else
  3476.             return (GetPos(aimtarget) - aimtarget:GetVelocity() / 170.5 - me:GetVelocity()/50) - me:EyePos()
  3477.         end
  3478.     end
  3479. end
  3480.  
  3481. local function aimbot(cmd)
  3482.     if gBool("Aimbot", "Aimbot", "Silent Aimbot") and gInt("Visuals", "Other", "Thirdperson") == 0 then
  3483.         if cmd:CommandNumber() == 0 then return end
  3484.     end
  3485.  
  3486.     gettarget()
  3487.     aa = false
  3488.  
  3489.     if gBool("Aimbot", "Aimbot", "Auto Stop") and aimtarget and check_alive(aimtarget) and aimtarget:IsValid() and aimkeycheck() and WeaponShootable() then
  3490.         cmd:SetForwardMove(0)
  3491.         cmd:SetSideMove(0)
  3492.     end
  3493.  
  3494.     if gBool("Aimbot", "Aimbot", "Auto Crouch") and aimtarget and check_alive(aimtarget) and aimtarget:IsValid() and aimkeycheck() and WeaponShootable() and not cmd:KeyDown(IN_DUCK) then
  3495.         cmd:SetButtons(cmd:GetButtons() + IN_DUCK)
  3496.     end
  3497.  
  3498.     if gBool("Aimbot", "Aimbot", "Auto Zoom") and aimtarget and check_alive(aimtarget) and aimtarget:IsValid() and aimkeycheck() and WeaponShootable() and not cmd:KeyDown(IN_ATTACK2) then
  3499.         cmd:SetButtons(cmd:GetButtons() + IN_ATTACK2)
  3500.     end
  3501.  
  3502.     if aimtarget and check_alive(aimtarget) and aimtarget:IsValid() and aimkeycheck() and WeaponShootable() and WeaponCanFire() then
  3503.         local pos = prediction(aimtarget)
  3504.         local ang = pos:Angle()
  3505.  
  3506.         if gInt("Aimbot", "Aimbot", "Aimbot FOV") ~= 0 and gOption("Aimbot", "Other", "Priority") == "FOV" then
  3507.             for k,v in next, ents.GetAll() do
  3508.                 if not Valid(v) then continue end
  3509.  
  3510.                 local CalcX = ang.x - fa.x
  3511.                 local CalcY = ang.y - fa.y
  3512.  
  3513.                 if CalcY < 0 then CalcY = CalcY * -1 end   
  3514.                 if CalcX < 0 then CalcX = CalcX * -1 end
  3515.                 if CalcY > 360 then CalcY = CalcY - 360 end
  3516.                 if CalcX > 360 then CalcX = CalcX - 360 end
  3517.                 if CalcY > 180 then CalcY = 360 - CalcY end
  3518.                 if CalcX > 180 then CalcX = 360 - CalcX end
  3519.  
  3520.                 if CalcX <= gInt("Aimbot","Aimbot","Aimbot FOV") and CalcY <= gInt("Aimbot","Aimbot","Aimbot FOV") then
  3521.                     if gBool("Aimbot", "Aimbot", "Auto Fire") and not gBool("Hack vs Hack", "Anti-Aim", "Enabled") and not gBool("Hack vs Hack", "Anti-Aim Resolver", "Enabled") and not gBool("Misc", "Fake Lag", "Enabled") then
  3522.                         if me:IsSprinting() then
  3523.                             command("-speed")
  3524.                         end
  3525.                         if WeaponShootable() and not string.find(string.lower(wep:GetPrintName()),"knife") and not string.find(string.lower(wep:GetPrintName()),"sword") and not string.find(string.lower(wep:GetPrintName()),"fist") and not string.find(string.lower(wep:GetPrintName()),"crowbar") then
  3526.                             memesendpacket = false
  3527.                         end
  3528.                     end
  3529.  
  3530.                     if gBool("Aimbot", "Aimbot", "Auto Fire") then
  3531.                         cmd:SetButtons(IN_ATTACK)
  3532.                     end
  3533.  
  3534.                     if gBool("Aimbot", "Aimbot", "Silent Aimbot") then
  3535.                         FixMovement(cmd)
  3536.                     else
  3537.                         fa = ang
  3538.                     end
  3539.  
  3540.                     NormalizeAngle(ang)
  3541.                     cmd:SetViewAngles(ang)
  3542.                 else
  3543.                     return
  3544.                 end
  3545.             end
  3546.         else
  3547.             NormalizeAngle(ang)
  3548.             cmd:SetViewAngles(ang)
  3549.  
  3550.             if gBool("Aimbot", "Aimbot", "Auto Fire") and not gBool("Hack vs Hack", "Anti-Aim", "Enabled") and not gBool("Hack vs Hack", "Anti-Aim Resolver", "Enabled") and not gBool("Misc", "Fake Lag", "Enabled") then
  3551.                 if me:IsSprinting() then
  3552.                     command("-speed")
  3553.                 end
  3554.                 if WeaponShootable() and not string.find(string.lower(wep:GetPrintName()),"knife") and not string.find(string.lower(wep:GetPrintName()),"sword") and not string.find(string.lower(wep:GetPrintName()),"fist") and not string.find(string.lower(wep:GetPrintName()),"crowbar") then
  3555.                     memesendpacket = false
  3556.                 end
  3557.             end
  3558.  
  3559.             if gBool("Aimbot", "Aimbot", "Auto Fire") then
  3560.                 cmd:SetButtons(cmd:GetButtons() + IN_ATTACK)
  3561.             end
  3562.  
  3563.             if gBool("Aimbot", "Aimbot", "Silent Aimbot") then
  3564.                 FixMovement(cmd)
  3565.             else
  3566.                 fa = ang
  3567.             end
  3568.         end
  3569.     end
  3570.     aa = true
  3571. end
  3572.  
  3573. local function crosshair()
  3574.     local width, height = ScrW() / 2, ScrH() / 2
  3575.    
  3576.     if hitmarker then
  3577.         surface.SetDrawColor(255,255,255)
  3578.     else
  3579.         surface.SetDrawColor(0,0,0)
  3580.     end
  3581.  
  3582.     surface.DrawLine(width - 10, height - 10, width + 10, height + 10)
  3583.     surface.DrawLine(width + 10, height - 10, width - 10, height + 10)
  3584.  
  3585.     if aimkeycheck() and WeaponShootable() then
  3586.         surface.SetDrawColor(AimCol)
  3587.     elseif triggerkeycheck() and WeaponShootable() then
  3588.         surface.SetDrawColor(MenuCol)
  3589.     else
  3590.         surface.SetDrawColor(PrimaryCol)
  3591.     end
  3592.  
  3593.     surface.DrawLine(width - 5, height - 5, width + 5, height + 5)
  3594.     surface.DrawLine(width + 5, height - 5, width - 5, height + 5)
  3595. end
  3596.  
  3597. local function triggerfilter(hitbox)
  3598.     if gOption("Triggerbot", "Other", "Trigger Position") == "Head only" then
  3599.         return hitbox == 0
  3600.     elseif gOption("Triggerbot", "Other", "Trigger Position") == "Body only" then
  3601.         return hitbox == 16
  3602.     else
  3603.         return hitbox ~= nil
  3604.     end
  3605. end
  3606.  
  3607. local function triggerbot(cmd)
  3608.     td = {start = me:GetShootPos(), endpos = me:GetShootPos() + me:EyeAngles():Forward() * 65535, filter = me, mask = MASK_SHOT, mask}
  3609.     tr = util.TraceLine(td)
  3610.     v = tr.Entity
  3611.  
  3612.     local trace = me:GetEyeTraceNoCursor()
  3613.     local hitbox = trace.HitBox
  3614.  
  3615.     if not trigger_Valid(v) or not trigger_filter(v) or not triggerfilter(hitbox) or (aimkeycheck() and gBool("Aimbot", "Aimbot", "Auto Fire")) then return end
  3616.  
  3617.     --[[if engine.ActiveGamemode() == "terrortown" then
  3618.         if GetRoundState() == ROUND_ACTIVE then
  3619.             if wep:Clip1() == 0 or not wep:IsValid() then return end
  3620.         end
  3621.     else
  3622.         if wep:Clip1() == 0 or not wep:IsValid() then return end
  3623.     end]]
  3624.  
  3625.     if gBool("Triggerbot", "Triggerbot", "Auto Stop") and v and check_alive(v) and v:IsValid() and triggerkeycheck() and WeaponShootable() then
  3626.         cmd:SetForwardMove(0)
  3627.         cmd:SetSideMove(0)
  3628.     end
  3629.  
  3630.     if gBool("Triggerbot", "Triggerbot", "Auto Crouch") and v and check_alive(v) and v:IsValid() and triggerkeycheck() and WeaponShootable() and not cmd:KeyDown(IN_DUCK) then
  3631.         cmd:SetButtons(cmd:GetButtons() + IN_DUCK)
  3632.     end
  3633.  
  3634.     if gBool("Triggerbot", "Triggerbot", "Auto Zoom") and v and check_alive(v) and v:IsValid() and triggerkeycheck() and WeaponShootable() and not cmd:KeyDown(IN_ATTACK2) then
  3635.         cmd:SetButtons(cmd:GetButtons() + IN_ATTACK2)
  3636.     end
  3637.  
  3638.     if v and check_alive(v) and v:IsValid() and triggerkeycheck() and WeaponShootable() and WeaponCanFire() then
  3639.         triggerbot_active = true
  3640.  
  3641.         if toggler == 0 then
  3642.             cmd:SetButtons(cmd:GetButtons() + IN_ATTACK)
  3643.             toggler = 1
  3644.         else
  3645.             cmd:SetButtons(cmd:GetButtons() + IN_ATTACK)
  3646.             toggler = 0
  3647.         end
  3648.     else
  3649.         triggerbot_active = false
  3650.     end
  3651. end
  3652.  
  3653. local function GetClosest()
  3654.     local ddists = {}
  3655.     local closest
  3656.  
  3657.     for k,v in next, player.GetAll() do
  3658.         if not aa_Valid(v) then continue end
  3659.  
  3660.         ddists[#ddists + 1] = { v:GetPos():Distance(me:GetPos()), v }
  3661.     end
  3662.  
  3663.     table.sort(ddists, function(a, b)
  3664.         return a[1] < b[1]
  3665.     end)
  3666.  
  3667.     closest = ddists[1] and ddists[1][2] or nil
  3668.  
  3669.     if not closest then
  3670.         return fa.y
  3671.     end
  3672.  
  3673.     local pos = closest:GetPos()
  3674.     local pos = (pos - me:EyePos()):Angle()
  3675.  
  3676.     return pos.y
  3677. end
  3678.  
  3679. local function pitch()
  3680.     local opt = gOption("Hack vs Hack", "Anti-Aim", "Pitch")
  3681.  
  3682.     if opt == "None" then
  3683.         ox = fa.x
  3684.     elseif opt == "Up" then
  3685.         if gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Sideways" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Forwards" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Backwards" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Spin" then
  3686.             --ox = 3856
  3687.             ox = -120 - math.sin(CurTime()*10)*5
  3688.         else
  3689.             ox = -89
  3690.         end
  3691.     elseif opt == "Down" then
  3692.         if gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Sideways" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Forwards" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Backwards" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Spin" then
  3693.             --ox = -3856
  3694.             ox = 120 + math.sin(CurTime()*10)*5
  3695.         else
  3696.             ox = 89
  3697.         end
  3698.     elseif opt == "Center" then
  3699.         if gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Sideways" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Forwards" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Fake-Backwards" or gOption("Hack vs Hack", "Anti-Aim", "Yaw") == "Spin" then
  3700.             ox = 169 + math.sin(CurTime()*3)*5
  3701.         else
  3702.             ox = 0
  3703.         end
  3704.     elseif opt == "Fake-Down" then
  3705.         ox = 180.001
  3706.     elseif opt == "Jitter" then
  3707.         ox = math.random(-90, 90)
  3708.     elseif opt == "Spin" then
  3709.         ox = math.sin(CurTime()*gInt("Hack vs Hack", "Anti-Aim", "Spin Speed")/8)*60
  3710.     end
  3711. end
  3712.  
  3713. local function yaw()
  3714.     local opt = gOption("Hack vs Hack", "Anti-Aim", "Yaw")
  3715.  
  3716.     if gOption("Hack vs Hack", "Anti-Aim", "Pitch") == "Fake-Down" then return end
  3717.  
  3718.     if opt == "None" then
  3719.         oy = fa.y
  3720.     elseif opt == "Sideways" then
  3721.         if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3722.             if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3723.                 oy = GetClosest() + 90
  3724.             else
  3725.                 oy = fa.y + 90
  3726.             end
  3727.         elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3728.             if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3729.                 oy = GetClosest() - 90
  3730.             else
  3731.                 oy = fa.y - 90
  3732.             end
  3733.         elseif rotate then
  3734.             if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3735.                 oy = GetClosest() + 90
  3736.             else
  3737.                 oy = fa.y + 90
  3738.             end
  3739.         else
  3740.             if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3741.                 oy = GetClosest() - 90
  3742.             else
  3743.                 oy = fa.y - 90
  3744.             end
  3745.         end
  3746.     elseif opt == "Backwards" then
  3747.         if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3748.             oy = GetClosest() + 180
  3749.         else
  3750.             oy = fa.y + 180
  3751.         end
  3752.     elseif opt == "Spin" then
  3753.         if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3754.             oy = CurTime() * (-gInt("Hack vs Hack", "Anti-Aim", "Spin Speed")*23) % 350, 1
  3755.         elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3756.             oy = CurTime() * (gInt("Hack vs Hack", "Anti-Aim", "Spin Speed")*23) % 350, 1
  3757.         elseif rotate then
  3758.             oy = CurTime() * (-gInt("Hack vs Hack", "Anti-Aim", "Spin Speed")*23) % 350, 1
  3759.         else
  3760.             oy = CurTime() * (gInt("Hack vs Hack", "Anti-Aim", "Spin Speed")*23) % 350, 1
  3761.         end
  3762.     elseif opt == "Jitter" then
  3763.         oy = fa.y + math.random(-180, 180)
  3764.     elseif opt == "Fake-Sideways" then
  3765.         if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3766.             if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3767.                 --oy = GetClosest() + math.random(-85, -100)
  3768.                 oy = GetClosest() - 90 - math.sin(CurTime()*10)*5
  3769.             elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3770.                 oy = GetClosest() + 90 + math.sin(CurTime()*10)*5
  3771.             elseif rotate then
  3772.                 oy = GetClosest() - 90 - math.sin(CurTime()*10)*5
  3773.             else
  3774.                 oy = GetClosest() + 90 + math.sin(CurTime()*10)*5
  3775.             end
  3776.         else
  3777.             if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3778.                 --oy = GetClosest() + math.random(-85, -100)
  3779.                 oy = fa.y - 90 - math.sin(CurTime()*10)*5
  3780.             elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3781.                 oy = fa.y + 90 + math.sin(CurTime()*10)*5
  3782.             elseif rotate then
  3783.                 oy = fa.y - 90 - math.sin(CurTime()*10)*5
  3784.             else
  3785.                 oy = fa.y + 90 + math.sin(CurTime()*10)*5
  3786.             end
  3787.         end
  3788.     elseif opt == "Fake-Forwards" then
  3789.         if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3790.             if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3791.                 oy = GetClosest() + 180 + math.sin(CurTime()*10)*5
  3792.             elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3793.                 oy = GetClosest() + 180 - math.sin(CurTime()*10)*5
  3794.             elseif rotate then
  3795.                 oy = GetClosest() + 180 + math.sin(CurTime()*10)*5
  3796.             else
  3797.                 oy = GetClosest() + 180 - math.sin(CurTime()*10)*5
  3798.             end
  3799.         else
  3800.             if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3801.                 oy = fa.y + 180 + math.sin(CurTime()*10)*5
  3802.             elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3803.                 oy = fa.y + 180 - math.sin(CurTime()*10)*5
  3804.             elseif rotate then
  3805.                 oy = fa.y + 180 + math.sin(CurTime()*10)*5
  3806.             else
  3807.                 oy = fa.y + 180 - math.sin(CurTime()*10)*5
  3808.             end
  3809.         end
  3810.     elseif opt == "Fake-Backwards" then
  3811.         if gBool("Hack vs Hack", "Anti-Aim", "Follow closest Target") then
  3812.             if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3813.                 oy = GetClosest() + math.sin(CurTime()*10)*5
  3814.             elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3815.                 oy = GetClosest() - math.sin(CurTime()*10)*5
  3816.             elseif rotate then
  3817.                 oy = GetClosest() + math.sin(CurTime()*10)*5
  3818.             else
  3819.                 oy = GetClosest() - math.sin(CurTime()*10)*5
  3820.             end
  3821.         else
  3822.             if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Right" then
  3823.                 oy = fa.y + math.sin(CurTime()*10)*5
  3824.             elseif gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Left" then
  3825.                 oy = fa.y - math.sin(CurTime()*10)*5
  3826.             elseif rotate then
  3827.                 oy = fa.y + math.sin(CurTime()*10)*5
  3828.             else
  3829.                 oy = fa.y - math.sin(CurTime()*10)*5
  3830.             end
  3831.         end
  3832.     end
  3833. end
  3834.  
  3835. local function antiaim(cmd)
  3836.     if (cmd:KeyDown(IN_ATTACK) and wep:Clip1() ~= 0) or me:WaterLevel() > 1 or me:GetMoveType() == MOVETYPE_LADDER or me:GetMoveType() == MOVETYPE_NOCLIP or string.find(string.lower(wep:GetPrintName()),"grenade") or propkeycheck() or not me:Alive() then return end
  3837.  
  3838.     if gInt("Visuals", "Other", "Thirdperson") == 0 --[[and gOption("Misc", "Misc", "Circle Strafe") ~= "Off" and strafekeycheck()]] and cmd:CommandNumber() == 0 then
  3839.         return
  3840.     elseif gInt("Visuals", "Other", "Thirdperson") == 0 and cmd:CommandNumber() == 0 then
  3841.         return
  3842.     end
  3843.    
  3844.     if gOption("Hack vs Hack", "Anti-Aim", "Rotation") == "Switch on key" then
  3845.         if rotatecheck() and not rot_pressed then
  3846.             rot_pressed = true
  3847.             rotate = not rotate
  3848.         elseif not rotatecheck() and rot_pressed then
  3849.             rot_pressed = false
  3850.         end
  3851.     end
  3852.  
  3853.     pitch()
  3854.     yaw()
  3855.  
  3856.     --[[oy = fa.y + (bool and 85 or 95)
  3857.     bool = not bool]]
  3858.  
  3859.     local aaang = Angle(ox, oy, 0)
  3860.     cmd:SetViewAngles(aaang)
  3861.     FixMovement(cmd, true)
  3862. end
  3863.  
  3864. local function propkill(cmd)
  3865.     if gInt("Visuals", "Other", "Thirdperson") ~= 0 --[[and gOption("Misc", "Misc", "Circle Strafe") ~= "Off" and strafekeycheck()]] and cmd:CommandNumber() == 0 then
  3866.         return
  3867.     elseif gInt("Visuals", "Other", "Thirdperson") == 0 and cmd:CommandNumber() == 0 then
  3868.         return
  3869.     end
  3870.  
  3871.     if propkeycheck() then
  3872.         ox = fa.x - 27
  3873.  
  3874.         if prop_val < 180 then
  3875.             oy = fa.y + prop_val
  3876.             prop_val = prop_val + 3
  3877.         else
  3878.             oy = fa.y + 180
  3879.         end
  3880.  
  3881.         local aaang = Angle(ox, oy, 0)
  3882.         cmd:SetViewAngles(aaang)
  3883.         FixMovement(cmd, true)
  3884.     else
  3885.         if prop_val > 0 then
  3886.             prop_val = 0
  3887.             --cmd:SetButtons(cmd:GetButtons() + IN_ATTACK2)
  3888.  
  3889.             prop_delay = CurTime() + 0.5
  3890.         end
  3891.  
  3892.         if prop_delay >= CurTime() then
  3893.             ox = -17
  3894.             oy = fa.y
  3895.  
  3896.             local aaang = Angle(ox, oy, 0)
  3897.             cmd:SetViewAngles(aaang)
  3898.             FixMovement(cmd, true)
  3899.         else
  3900.             prop_delay = 0
  3901.         end
  3902.     end
  3903. end
  3904.  
  3905. local function GetAngle(ang)
  3906.     if not nophys() then
  3907.         if not gBool("Visuals", "Other", "No Recoil") then
  3908.             return ang + me:GetPunchAngle()
  3909.         else
  3910.             return ang
  3911.         end
  3912.     end
  3913. end
  3914.  
  3915. local function bunnyhop(cmd)
  3916.     buttons = cmd:GetButtons()
  3917.     if cmd:KeyDown(IN_JUMP) and me:IsValid() and me:GetMoveType() ~= MOVETYPE_NOCLIP and me:Alive() then
  3918.         if not me:IsOnGround() then
  3919.             buttons = bit.band(buttons, bit.bnot(IN_JUMP))
  3920.         end
  3921.         cmd:SetButtons(buttons)
  3922.     end
  3923. end
  3924.  
  3925. local function autostrafe(cmd)
  3926.     if me:IsOnGround() or me:KeyDown(IN_MOVELEFT) or me:KeyDown(IN_MOVERIGHT) or me:KeyDown(IN_FORWARD) or me:KeyDown(IN_BACK) or me:GetMoveType() == MOVETYPE_NOCLIP or me:WaterLevel() > 1 or not me:Alive() then return end
  3927.  
  3928.     --[[if cmd:GetMouseX() < -5 then
  3929.         cmd:SetSideMove(-me:GetVelocity():Length()-400)
  3930.     elseif cmd:GetMouseX() > 5 then
  3931.         cmd:SetSideMove(me:GetVelocity():Length()+400)
  3932.     else
  3933.         cmd:SetForwardMove(400)
  3934.         cmd:SetSideMove(math.random(-10000,10000))
  3935.     end]]
  3936.  
  3937.     if cmd:GetMouseX(ucmd) < -5 then
  3938.         cmd:SetSideMove(-400)
  3939.     elseif cmd:GetMouseX() > 5 then
  3940.         cmd:SetSideMove(400)
  3941.     else
  3942.         cmd:SetForwardMove(5850 / me:GetVelocity():Length2D())
  3943.         cmd:SetSideMove(cmd:CommandNumber() % 2 == 0 and -400 or 400)
  3944.     end
  3945. end
  3946.  
  3947. --[[local function strafefix(cmd, ang)
  3948.     local angs = cmd:GetViewAngles()
  3949.     local fa = fa
  3950.  
  3951.     if ang then
  3952.         fa = ang
  3953.     end
  3954.  
  3955.     local viewang = Angle(0, angs.y, 0)
  3956.     local fix = Vector(cmd:GetForwardMove(), cmd:GetSideMove(), 0)
  3957.     fix = (fix:Angle() + (viewang - fa)):Forward() * fix:Length()
  3958.    
  3959.     if angs.p > 90 or angs.p < -90 then
  3960.         fix.x = -fix.x
  3961.     end
  3962.    
  3963.     cmd:SetForwardMove(fix.x)
  3964.     cmd:SetSideMove(fix.y)
  3965. end
  3966.  
  3967. local function circlestrafe(cmd)
  3968.     if cmd:CommandNumber() == 0 then return end
  3969.  
  3970.     command("-walk; +speed")
  3971.  
  3972.     local min = 1.25
  3973.     local max = 5.25
  3974.     local mult = 0.01
  3975.  
  3976.     strafe_val = strafe_val + math.Clamp((me:GetVelocity():Length2D() * mult), min, max)
  3977.     math.NormalizeAngle(strafe_val)
  3978.  
  3979.     if not me:IsOnGround() then
  3980.         cmd:SetForwardMove(10^4)
  3981.         cmd:SetSideMove(0)
  3982.         strafefix(cmd, Angle(fa.p, strafe_val, 0))
  3983.     elseif me:IsOnGround() and not cmd:KeyDown(IN_JUMP) then
  3984.         cmd:SetButtons(cmd:GetButtons() + IN_JUMP)
  3985.     end
  3986.  
  3987.     command("-speed")
  3988. end]]
  3989.  
  3990. local function rapid(cmd)
  3991.     if engine.ActiveGamemode() == "terrortown" then
  3992.         if GetRoundState() ~= ROUND_ACTIVE or GetRoundState() == ROUND_PREP then return end
  3993.     end
  3994.  
  3995.     if me:GetActiveWeapon():IsValid() and me:GetActiveWeapon():GetClass() ~= "weapon_physgun" and me:GetActiveWeapon():GetClass() ~= "weapon_physcannon" then
  3996.         if wep:IsValid() and wep:Clip1() ~= 0 then
  3997.             if me:KeyDown(IN_ATTACK) then
  3998.                 if string.find(string.lower(wep:GetPrintName()),"dual") then
  3999.                     cmd:RemoveKey(IN_ATTACK) cmd:SetButtons(cmd:GetButtons() + IN_ATTACK2)
  4000.                 else
  4001.                     cmd:RemoveKey(IN_ATTACK)
  4002.                 end
  4003.             end
  4004.         end
  4005.     end
  4006. end
  4007.  
  4008. local function autoreload(cmd)
  4009.     if engine.ActiveGamemode() == "terrortown" then
  4010.         if GetRoundState() ~= ROUND_ACTIVE or GetRoundState() == ROUND_PREP then return end
  4011.     end
  4012.  
  4013.     if wep:Clip1() ~= 0 then
  4014.         if not cmd:KeyDown(IN_ATTACK) or not aimkeycheck() then
  4015.             if wep:IsValid() then
  4016.                 if wep:Clip1() == 0 and wep:GetMaxClip1() > 0 and CurTime() > wep:GetNextPrimaryFire() then
  4017.                     cmd:SetButtons(cmd:GetButtons() + IN_RELOAD)
  4018.                 end
  4019.             else
  4020.                 return
  4021.             end
  4022.         end
  4023.     else
  4024.         if wep:GetMaxClip1() > 0 and CurTime() > wep:GetNextPrimaryFire() then
  4025.             cmd:SetButtons(cmd:GetButtons() + IN_RELOAD)
  4026.         end
  4027.     end
  4028. end
  4029.  
  4030. local function show_aa(cmd)
  4031.     if not fa then
  4032.         fa = cmd:GetViewAngles()
  4033.     end
  4034.  
  4035.     fa = fa + Angle(cmd:GetMouseY() * .023, cmd:GetMouseX() * -.023, 0)
  4036.     NormalizeAngle(fa)
  4037.  
  4038.     if cmd:CommandNumber() == 0 then
  4039.         if not nophys() then
  4040.             cmd:SetViewAngles(GetAngle(fa))
  4041.             return
  4042.         end
  4043.     end
  4044. end
  4045.  
  4046. local function skipad()
  4047.     if MOTDgd or MOTDGD then
  4048.         function MOTDgd.GetIfSkip()
  4049.             msg(3, "Blocked an advertisement.")
  4050.             return true
  4051.         end
  4052.     end
  4053. end
  4054.  
  4055. function GAMEMODE:HUDShouldDraw() return true end
  4056.  
  4057. local function death_log(data)
  4058.     local killer = Entity(data.entindex_attacker)
  4059.     local victim = Entity(data.entindex_killed)
  4060.  
  4061.     if killer:IsValid() and victim:IsValid() and killer:IsPlayer() and victim:IsPlayer() and me:GetActiveWeapon():IsValid() then
  4062.         if killer == victim and victim ~= me then
  4063.             chat.AddText(MenuCol, " "..victim:Nick().." killed themself.")
  4064.         elseif killer == victim and victim == me then
  4065.             chat.AddText(MenuCol, " You killed yourself.")
  4066.         elseif killer == me then
  4067.             chat.AddText(MenuCol, " You killed "..victim:Nick()..".")
  4068.         elseif victim == me then
  4069.             chat.AddText(MenuCol, " You were killed by "..killer:Nick()..".")
  4070.         else
  4071.             chat.AddText(MenuCol, " "..killer:Nick().." killed "..victim:Nick()..".")
  4072.         end
  4073.  
  4074.         chat.PlaySound()
  4075.     end
  4076. end
  4077.  
  4078. render.Capture = function() return "www.pastewaregmod.tk" end
  4079. render_Capture = function() return "www.pastewaregmod.tk" end
  4080. render.CapturePixels = function() return "www.pastewaregmod.tk" end
  4081. render_CapturePixels = function() return "www.pastewaregmod.tk" end
  4082. capture = function() return "www.pastewaregmod.tk" end
  4083. cl_rtxappend = function() return "www.pastewaregmod.tk" end
  4084. cl_rtxappend2 = function() return "www.pastewaregmod.tk" end
  4085. render.SetRenderTarget = function() return "www.pastewaregmod.tk" end
  4086. render_SetRenderTarget = function() return "www.pastewaregmod.tk" end
  4087.  
  4088. function file.Read(name, path)
  4089.     if string.find(name, cheatname..".lua") or string.find(name, "pasteware") then
  4090.         print("\nAn attempt to perform file.Read on \""..name.."\" has been made.\n")
  4091.         return "You are not going to be able to view this lua file. > www.pastewaregmod.tk"
  4092.     else
  4093.         return og_read(name, path)
  4094.     end
  4095. end
  4096.  
  4097. function file.Open(name, mode, path)
  4098.     if string.find(name, cheatname..".lua") or string.find(name, "pasteware") then
  4099.         print("\nAn attempt to perform file.Open on \""..name.."\" has been made.\n")
  4100.         return "You are not going to be able to view this lua file. > www.pastewaregmod.tk"
  4101.     else
  4102.         return og_open(name, mode, path)
  4103.     end
  4104. end
  4105.  
  4106. function file.Exists(name, path)
  4107.     if string.find(name, cheatname..".lua") or string.find(name, "pasteware") then
  4108.         print("\nAn attempt to perform file.Exists on \""..name.."\" has been made.\n")
  4109.         return "You are not going to be able to view this lua file. > www.pastewaregmod.tk"
  4110.     else
  4111.         return og_exists(name, path)
  4112.     end
  4113. end
  4114.  
  4115. function fakeqacpart()
  4116.     net.Start( "screengrab_part")
  4117.     net.WriteUInt(4, 32)
  4118.     net.WriteData("000000000000000000000000", 4)
  4119.     net.SendToServer()
  4120. end
  4121.  
  4122. function net.Receive(str, func)
  4123.     if str == "screengrab_part" then
  4124.         fakeqacpart()
  4125.         return
  4126.     end
  4127.  
  4128.     return og_Receive(str,func)
  4129. end
  4130.  
  4131. function net.Start(str)
  4132.     if str == "screengrab_start" then
  4133.         return
  4134.     end
  4135. end
  4136.  
  4137. local function hook_exists(name, identifier)
  4138.     for k, v in next, hook.GetTable() do
  4139.         if k == name then
  4140.             for a, b in next, v do
  4141.                 if a == identifier then
  4142.                     return true
  4143.                 end
  4144.             end
  4145.             return false
  4146.         end
  4147.     end
  4148. end
  4149.  
  4150. local function chatspam()
  4151.     if gOption("Misc", "Misc", "Chat Spam") == "Advertisements" then
  4152.         if engine.ActiveGamemode() == "darkrp" then
  4153.             command("say // www.PASTEWAREGMOD.tk - "..spam_messages[math.random(#spam_messages)])
  4154.         else
  4155.             command("say www.PASTEWAREGMOD.tk - "..spam_messages[math.random(#spam_messages)])
  4156.         end
  4157.     else
  4158.         if engine.ActiveGamemode() == "darkrp" then
  4159.             ChatClear.OOC()
  4160.         else
  4161.             ChatClear.Run()
  4162.         end
  4163.     end
  4164. end
  4165.  
  4166. local function entityname()
  4167.     if util.TraceLine(util.GetPlayerTrace(me)).Entity:IsValid() then
  4168.         return util.TraceLine(util.GetPlayerTrace(me)).Entity:GetClass()
  4169.     else
  4170.         return "None"
  4171.     end
  4172. end
  4173.  
  4174. local function spam_kill(data)
  4175.     local killer = Entity(data.entindex_attacker)
  4176.     local killed = Entity(data.entindex_killed)
  4177.  
  4178.     if not killer:IsValid() or not killed:IsValid() or killer ~= me or killer == killed or not killed:IsPlayer() then return end
  4179.     if gBool("Aimbot", "Other", "Ignore Friends") then if killed:GetFriendStatus() == "friend" then return end end
  4180.  
  4181.     local default = { killed:Nick()..", do you even lift?", "Sit down, "..killed:Nick()..".", "Faggot.", "Owned!", "Rekt!!!", "1tapped.", "Ez tbh.", "Ez!", "Later, "..killed:Nick()..".", "Noob.", "Right into your face, "..killed:Nick()..".", "Into your face, pal.", killed:Nick().." with that negative IQ!", "Gay kid." }
  4182.     --local hvh = { "ez resolve, "..killed:Nick(), "noob", "pCheat", "stop using bad paste!!!!!", "10/10 cheat", "where can I get that perfect cheat", "wow!", "ez", "1", "ezzzz", "tfw resolved", "wow! rekt!", "owned!!", "u got OWNED "..killed:Nick().."!!!!!" }
  4183.  
  4184.     if gOption("Misc", "Misc", "Spam after Kill") == "On" then
  4185.         command("say "..default[math.random(#default)])
  4186.     elseif gOption("Misc", "Misc", "Spam after Kill") == "Rage Targets Only" and table.HasValue(priority_list, killed:UniqueID()) then
  4187.         command("say "..default[math.random(#default)])
  4188.     --[[elseif gOption("Misc", "Misc", "Spam after Kill") == "HvH Resolved Angle" and gBool("Hack vs Hack", "Anti-Aim Resolver", "Enabled") and gBool("Aimbot", "Aimbot", "Auto Fire") then
  4189.         command("say Resolved: "..killed:Nick().." - Pitch: "..gOption("Hack vs Hack", "Anti-Aim Resolver", "Pitch").." ("..math["Round"](pitch)..") - Yaw: "..gOption("Hack vs Hack", "Anti-Aim Resolver", "Yaw").." ("..math["Round"](yaw)..")")]]
  4190.     end
  4191. end
  4192.  
  4193. local function namesteal()
  4194.     local random_player = player.GetAll()[math.random(#player.GetAll())]
  4195.  
  4196.     if random_player:IsValid() and random_player ~= me and random_player:GetFriendStatus() ~= "friend" then
  4197.         if engine.ActiveGamemode() == "darkrp" then
  4198.             changetime = changetime + 1
  4199.  
  4200.             if changetime > 500 then
  4201.                 me:ConCommand("say /name "..random_player:Name().."​")
  4202.                 changetime = 0
  4203.             end
  4204.         elseif engine.ActiveGamemode() == "terrortown" then
  4205.             if GetRoundState() ~= ROUND_ACTIVE and GetRoundState() ~= ROUND_PREP then
  4206.                 _fhook_changename(random_player:Name().."​")
  4207.             end
  4208.         else
  4209.             _fhook_changename(random_player:Name().."​")
  4210.         end
  4211.  
  4212.         if not name_changed then
  4213.             name_changed = true
  4214.         end
  4215.  
  4216.         stolenname = random_player:Name()
  4217.     end
  4218. end
  4219.  
  4220. addhook("Move", function()
  4221.     --if not IsFirstTimePredicted() then return end
  4222.  
  4223.     if gBool("Aimbot", "Aimbot", "Auto Fire") and gInt("Aimbot", "Misc", "Auto Fire Delay") ~= 0 then
  4224.         servertime = CurTime() - gInt("Aimbot", "Misc", "Auto Fire Delay")/100
  4225.     else
  4226.         servertime = CurTime()
  4227.     end
  4228. end)
  4229.  
  4230. addhook("Think", function()
  4231.     if (input.IsKeyDown(KEY_INSERT) or input.IsKeyDown(KEY_F11) or input.IsKeyDown(KEY_HOME)) and not menuopen and not insertdown then
  4232.         menuopen = true
  4233.         insertdown = true
  4234.         menu()
  4235.     elseif not (input.IsKeyDown(KEY_INSERT) or input.IsKeyDown(KEY_F11) or input.IsKeyDown(KEY_HOME)) and not menuopen then
  4236.         insertdown = false
  4237.     end
  4238.     if (input.IsKeyDown(KEY_INSERT) or input.IsKeyDown(KEY_F11) or input.IsKeyDown(KEY_HOME)) and insertdown and menuopen then
  4239.         insertdown2 = true
  4240.     else
  4241.         insertdown2 = false
  4242.     end
  4243.  
  4244.     if _G.CheckVars then
  4245.         _G.CheckVars = function()
  4246.             return
  4247.         end
  4248.     end
  4249.  
  4250.     if _G.RunCheck then
  4251.         _G.RunCheck = function()
  4252.             return
  4253.         end
  4254.     end
  4255.  
  4256.     if table.HasValue(supported_modes, engine.ActiveGamemode()) then
  4257.         if engine.ActiveGamemode() == "murder" then
  4258.             murder_misc()
  4259.         elseif engine.ActiveGamemode() == "darkrp" then
  4260.             darkrp_misc()
  4261.         elseif engine.ActiveGamemode() == "terrortown" then
  4262.             ttt_misc()
  4263.         end
  4264.     end
  4265.  
  4266.     if gOption("Misc", "Misc", "Chat Spam") ~= "Off" then
  4267.         chatspam()
  4268.     end
  4269.  
  4270.     skipad()
  4271.  
  4272.     if hook_exists("HUDPaint", "ulx_blind") then
  4273.         hook.Remove("HUDPaint", "ulx_blind")
  4274.         msg(3, "Blocked a blinding attempt.")
  4275.     end
  4276.  
  4277.     if gBool("Aimbot", "Misc", "No Lerp") then
  4278.         if not applied then
  4279.             command("cl_interp 0; cl_interp_ratio 0; cl_updaterate 99999")
  4280.             applied = true
  4281.         end
  4282.     else
  4283.         if applied then
  4284.             command("cl_interp 0; cl_interp_ratio 2; cl_updaterate 30")
  4285.             applied = false
  4286.         end
  4287.     end
  4288.  
  4289.     if gBool("Misc", "Misc", "Name Stealer") then
  4290.         namesteal()
  4291.     else
  4292.         if name_changed and me:Nick() ~= realname then
  4293.             if engine.ActiveGamemode() == "darkrp" then
  4294.                 me:ConCommand("say /name "..realname)
  4295.             elseif engine.ActiveGamemode() == "terrortown" then
  4296.                 if GetRoundState() ~= ROUND_ACTIVE and GetRoundState() ~= ROUND_PREP then
  4297.                     _fhook_changename(realname)
  4298.                 end
  4299.             else
  4300.                 _fhook_changename(realname)
  4301.             end
  4302.  
  4303.             name_changed = false
  4304.         end
  4305.     end
  4306. end)
  4307.  
  4308. addhook("RenderScreenspaceEffects", function()
  4309.     if gBool("Visuals", "ESP", "Enabled") and gOption("Visuals", "ESP", "Chams") ~= "Off" then
  4310.         chams()
  4311.     end
  4312. end)
  4313.  
  4314. addhook("CreateMove", function(cmd)
  4315.     memesendpacket = true
  4316.     wep = me:GetActiveWeapon()
  4317.  
  4318.     if me:Health() < 1 or not me:Alive() then return end
  4319.  
  4320.     show_aa(cmd)
  4321.  
  4322.     if cmd:CommandNumber() ~= 0 then
  4323.         localindex = me:EntIndex()
  4324.         currentcommand = cmd:CommandNumber()
  4325.     end
  4326.  
  4327.     if gBool("Triggerbot", "Triggerbot", "Enabled") then
  4328.         triggerbot(cmd)
  4329.     end
  4330.  
  4331.     if gInt("Misc", "Fake Lag", "Density") ~= 0 and not gBool("Hack vs Hack", "Anti-Aim", "Enabled") then
  4332.         fakelag(cmd)
  4333.     end
  4334.  
  4335.     if gBool("Misc", "Misc", "Bunny Hop") then
  4336.         bunnyhop(cmd)
  4337.     end
  4338.  
  4339.     if gBool("Misc", "Misc", "Auto Strafe") --[[and not strafekeycheck()]] then
  4340.         autostrafe(cmd)
  4341.     end
  4342.  
  4343.     --[[if gOption("Misc", "Misc", "Circle Strafe") ~= "Off" and strafekeycheck() then
  4344.         circlestrafe(cmd)
  4345.     end]]
  4346.  
  4347.     if gBool("Misc", "Misc", "Rapid Fire") then
  4348.         rapid(cmd)
  4349.     end
  4350.  
  4351.     if gBool("Misc", "Misc", "Auto Reload") and wep:IsValid() then
  4352.         autoreload(cmd)
  4353.     end
  4354.  
  4355.     if gBool("Misc", "Misc", "Grandpa Walk") then
  4356.         if me:KeyDown(IN_DUCK) then
  4357.             if crouched <= 5 then
  4358.                 cmd:SetButtons(cmd:GetButtons() + IN_DUCK)
  4359.             elseif crouched >= 25 then
  4360.                 crouched = 0
  4361.             end
  4362.             crouched = crouched + 1
  4363.         else
  4364.             if crouched <= 5 then
  4365.                 cmd:SetButtons(cmd:GetButtons() + IN_DUCK)
  4366.             elseif crouched >= 12.5 then
  4367.                 crouched = 0
  4368.             end
  4369.             crouched = crouched + 1
  4370.         end
  4371.     end
  4372.  
  4373.     local oldAngles = cmd:GetViewAngles()
  4374.  
  4375.     if gBool("Aimbot", "Aimbot", "Enabled") and wep:IsValid() then
  4376.         aimbot(cmd)
  4377.     end
  4378.  
  4379.     if gBool("Hack vs Hack", "Anti-Aim", "Enabled") and wep:IsValid() and wep:GetClass() ~= "weapon_zm_carry" then
  4380.         antiaim(cmd)
  4381.     end
  4382.  
  4383.     if engine.ActiveGamemode() == "terrortown" and gOption("Gamemode", "TTT", "Prop Kill Key") ~= "Off" and wep:IsValid() and wep:GetClass() == "weapon_zm_carry" then
  4384.         propkill(cmd)
  4385.     end
  4386.  
  4387.     if oldAngles ~= cmd:GetViewAngles() then
  4388.         local x = cmd:GetViewAngles().x
  4389.     end
  4390. end)
  4391.  
  4392. addhook("entity_killed", function(data)
  4393.     if gOption("Misc", "Misc", "Spam after Kill") ~= "Off" then
  4394.         spam_kill(data)
  4395.     end
  4396.  
  4397.     if gBool("Misc", "Misc", "Log Kills in Chat") then
  4398.         death_log(data)
  4399.     end
  4400. end)
  4401.  
  4402. addhook("player_hurt", function(data)
  4403.     if gBool("Misc", "Misc", "Hitsound") then
  4404.         if data.attacker == me:UserID() then
  4405.             surface.PlaySound("buttons/button10.wav")
  4406.         end
  4407.     end
  4408. end)
  4409.  
  4410. addhook("player_disconnect", function(data)
  4411.     if gBool("Misc", "Misc", "Spam after Disconnect") then
  4412.         local name = data.name
  4413.         local steamid = data.networkid
  4414.         local quit = { "bruh, "..name.." deadass rq", "rq", "rekt", "owned", "noob rq, his steam: "..steamid }
  4415.        
  4416.         if (engine.ActiveGamemode() == "darkrp") then
  4417.             command("say /ooc "..quit[math.random(#quit)])
  4418.         else
  4419.             command("say "..quit[math.random(#quit)])
  4420.         end
  4421.     end
  4422. end)
  4423.  
  4424. addhook("ShouldDrawLocalPlayer", function()
  4425.     return gInt("Visuals", "Other", "Thirdperson") > 0
  4426. end)
  4427.  
  4428. addhook("PlayerFootstep", function()
  4429.     return gBool("Misc", "Misc", "Mute Footsteps")
  4430. end)
  4431.  
  4432. addhook("HUDPaint", function()
  4433.     if gBool("Visuals", "ESP", "Enabled") then
  4434.         esp()
  4435.  
  4436.         if propkeycheck() then
  4437.             if prop_val >= 180 then
  4438.                 surface.DrawCircle(ScrW()/2, ScrH()/1.8, 80 + me:GetVelocity():Length()/4, AimCol)
  4439.             else
  4440.                 surface.DrawCircle(ScrW()/2, ScrH()/1.8, 80 + me:GetVelocity():Length()/4, MenuCol)
  4441.             end
  4442.  
  4443.             --[[if prop_val >= 180 then
  4444.                 if gOption("Gamemode", "TTT", "Prop Kill Status Indicator") == "3D Circle" or gOption("Gamemode", "TTT", "Prop Kill Status Indicator") == "2D and 3D" then
  4445.                     cam.Start3D()
  4446.                         if gOption("Gamemode", "TTT", "Prop Kill Status Indicator") == "3D Circle" then
  4447.                             render.DrawWireframeSphere(me:GetEyeTrace().HitPos, 15 + me:GetVelocity():Length()/8, 5, 5, AimCol, false )
  4448.                         else
  4449.                             surface.DrawCircle(ScrW()/2, ScrH()/1.8, 80 + me:GetVelocity():Length()/4, AimCol)
  4450.                             render.DrawWireframeSphere(me:GetEyeTrace().HitPos, 15 + me:GetVelocity():Length()/8, 5, 5, AimCol, false )
  4451.                         end
  4452.                     cam.End3D()
  4453.                 else
  4454.                     surface.DrawCircle(ScrW()/2, ScrH()/1.8, 80 + me:GetVelocity():Length()/4, AimCol)
  4455.                 end
  4456.             else
  4457.                 if gOption("Gamemode", "TTT", "Prop Kill Status Indicator") == "3D Circle" or gOption("Gamemode", "TTT", "Prop Kill Status Indicator") == "2D and 3D" then
  4458.                     cam.Start3D()
  4459.                         if gOption("Gamemode", "TTT", "Prop Kill Status Indicator") == "3D Circle" then
  4460.                             render.DrawWireframeSphere(me:GetEyeTrace().HitPos, 15 + me:GetVelocity():Length()/8, 5, 5, MenuCol, false )
  4461.                         else
  4462.                             surface.DrawCircle(ScrW()/2, ScrH()/1.8, 80 + me:GetVelocity():Length()/4, MenuCol)
  4463.                             render.DrawWireframeSphere(me:GetEyeTrace().HitPos, 15 + me:GetVelocity():Length()/8, 5, 5, MenuCol, false )
  4464.                         end
  4465.                     cam.End3D()
  4466.                 else
  4467.                     surface.DrawCircle(ScrW()/2, ScrH()/1.8, 80 + me:GetVelocity():Length()/4, MenuCol)
  4468.                 end
  4469.             end]]
  4470.         end
  4471.     end
  4472.     if gInt("Settings", "Menu", "Darkness") > 0 and menuopen then
  4473.         surface.SetDrawColor(0,0,0,gInt("Settings", "Menu", "Darkness")*10)
  4474.         surface.DrawRect(0,0,ScrW(),ScrH())
  4475.     end
  4476.     if gOption("Visuals", "Other", "Spectating Player Alert") ~= "Off" then
  4477.         specalert()
  4478.     end
  4479.     if gBool("Visuals", "Other", "Crosshair") then
  4480.         crosshair()
  4481.     end
  4482.     if gBool("Visuals", "Radar", "Enabled") and me:Alive() and not (me:Team() == TEAM_SPECTATOR or me:Team() == TEAM_CONNECTING) then
  4483.         radar()
  4484.     end
  4485.     if gInt("Aimbot", "Aimbot", "Aimbot FOV") ~= 0 and draw_fov then
  4486.         aimfov()
  4487.     end
  4488.     if gBool("Visuals", "Player List", "Enabled") and menuopen and ScrW() >= 1600 or ScrH() >= 1400 then
  4489.         playerlist()
  4490.     end
  4491.  
  4492.     --[[if gBool("Settings", "Menu", "Enabled Features Notice") and CurTime() < ten_sec then
  4493.         local ten_sec_txt = 24
  4494.  
  4495.         draw.SimpleText("Enabled Features Notice: "..math["Round"](ten_sec - CurTime()), font(), ScrW()/2, ScrH()/1.8, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4496.         if gBool("Aimbot", "Aimbot", "Enabled") then
  4497.             draw.SimpleText("Aimbot - FOV: "..gInt("Aimbot", "Aimbot", "Aimbot FOV"), font(), ScrW()/2, ScrH()/1.8+ten_sec_txt, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4498.             ten_sec_txt = ten_sec_txt + 12
  4499.         end
  4500.         if gBool("Triggerbot", "Triggerbot", "Enabled") then
  4501.             draw.SimpleText("Triggerbot", font(), ScrW()/2, ScrH()/1.8+ten_sec_txt, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4502.             ten_sec_txt = ten_sec_txt + 12
  4503.         end
  4504.         if gBool("Hack vs Hack", "Anti-Aim", "Enabled") then
  4505.             draw.SimpleText("Anti-Aim", font(), ScrW()/2, ScrH()/1.8+ten_sec_txt, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4506.             ten_sec_txt = ten_sec_txt + 12
  4507.         end
  4508.         if gOption("Misc", "Misc", "Chat Spam") ~= "Off" then
  4509.             draw.SimpleText("Chat Spam - "..gOption("Misc", "Misc", "Chat Spam"), font(), ScrW()/2, ScrH()/1.8+ten_sec_txt, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4510.             ten_sec_txt = ten_sec_txt + 12
  4511.         end
  4512.         if gOption("Misc", "Misc", "Spam after Kill") ~= "Off" then
  4513.             draw.SimpleText("Spam after Kill - "..gOption("Misc", "Misc", "Spam after Kill"), font(), ScrW()/2, ScrH()/1.8+ten_sec_txt, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4514.             ten_sec_txt = ten_sec_txt + 12
  4515.         end
  4516.         if gBool("Misc", "Misc", "Spam after Disconnect") then
  4517.             draw.SimpleText("Spam after Disconnect", font(), ScrW()/2, ScrH()/1.8+ten_sec_txt, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4518.             ten_sec_txt = ten_sec_txt + 12
  4519.         end
  4520.         if gBool("Misc", "Misc", "Spam after Cheater Callout") then
  4521.             draw.SimpleText("Spam after Cheater Callout", font(), ScrW()/2, ScrH()/1.8+ten_sec_txt, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4522.             ten_sec_txt = ten_sec_txt + 12
  4523.         end
  4524.         draw.SimpleText("Features disabled during timer.", font(), ScrW()/2, ScrH()/1.8+ten_sec_txt+12, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4525.     end]]
  4526.  
  4527.     if gBool("Gamemode", "TTT", "Panel Remover") and removewindow then
  4528.         draw.SimpleText("Press \"G\" to remove this window.", font(), ScrW()/2, ScrH()/10, MenuCol, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  4529.     end
  4530.  
  4531.     if gBool("Misc", "Other", "Debug Information") then
  4532.         draw.SimpleText("Build: "..version.."\t\tHealth: "..me:Health().."/"..me:GetMaxHealth().."\t\tVelocity: "..math["Round"](me:GetVelocity():Length()).."\t\tServer: "..GetHostName().."\t\tGamemode: "..engine.ActiveGamemode().."\t\tPlayers: "..player.GetCount().."/"..game.MaxPlayers().."\t\tMap: "..game.GetMap().."\t\tEntity: "..entityname().."\t\tEntities: "..math["Round"](ents.GetCount()-player.GetCount()*12).."\t\tFPS: "..math["Round"](1/FrameTime()).."\t\tPing: "..me:Ping().."\t\tDate: "..os.date("%d %b %Y").."\t\tTime: "..os.date("%H:%M:%S"), font(), 50, 15, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  4533.     end
  4534. end)
  4535.  
  4536. addhook("CalcView", function(me, pos, ang, fov)
  4537.     if me:Alive() then
  4538.         if gInt("Visuals", "Other", "Custom FOV") ~= 0 and gInt("Visuals", "Other", "Thirdperson") == 0 and me:Alive() then
  4539.             local view = {}
  4540.             view.origin = pos
  4541.             view.angles = angles
  4542.  
  4543.             view.fov = 60 + gInt("Visuals", "Other", "Custom FOV")
  4544.  
  4545.             if gBool("Visuals", "Other", "No Recoil") and me:GetMoveType() ~= MOVETYPE_OBSERVER then
  4546.                 view.origin = me:EyePos()
  4547.                 view.angles = me:EyeAngles()
  4548.             end
  4549.  
  4550.             return view
  4551.         else
  4552.             local view = {}
  4553.             view.angles = GetAngle(fa)
  4554.             view.origin = gInt("Visuals", "Other", "Thirdperson") ~= 0 and pos + Angle(fa):Forward() * (gInt("Visuals", "Other", "Thirdperson") * -10) or pos
  4555.  
  4556.             return view
  4557.         end
  4558.     end
  4559. end)
  4560.  
  4561. addhook("OnPlayerChat", function(player, text, team, dead)
  4562.     if gBool("Misc", "Other", "Let TTS read chat") and player:SteamID64() ~= steam then
  4563.         command("stopsound")
  4564.         sound.PlayURL("http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q="..player:Nick().." says, "..text.."&tl=en", "mono", function(chan, num, str) boy = chan end)
  4565.     end
  4566.  
  4567.     if gBool("Misc", "Misc", "Spam after Cheater Callout") and player ~= me and player:GetFriendStatus() ~= "friend" then
  4568.         if string.find(string.lower(text), "walls") or string.find(string.lower(text), "hax") or string.find(string.lower(text), "script") or string.find(string.lower(text), "idiotbox") or string.find(string.lower(text), "pasteware") or string.find(string.lower(text), "lua") or string.find(string.lower(text), "bunny") or string.find(string.lower(text), "hop") or string.find(string.lower(text), "cheat") or string.find(string.lower(text), "esp") or string.find(string.lower(text), "hack") or string.find(string.lower(text), "bot") or string.find(string.lower(text), "aim") then
  4569.             if engine.ActiveGamemode() == "darkrp" then
  4570.                 ChatClear.OOC()
  4571.             else
  4572.                 ChatClear.Run()
  4573.             end
  4574.         end
  4575.     end
  4576. end)
  4577.  
  4578. addhook("PreDrawOpaqueRenderables", function() -- or "RenderScene"
  4579.     if gBool("Hack vs Hack", "Anti-Aim Resolver", "Enabled") and gBool("Aimbot", "Aimbot", "Auto Fire") then
  4580.         for k,v in next, player.GetAll() do
  4581.             if not aa_Valid(v) then continue end
  4582.  
  4583.             if gBool("Hack vs Hack", "Anti-Aim Resolver", "Rage Targets Only") then
  4584.                 if not table.HasValue(priority_list, v:UniqueID()) then continue end
  4585.             end
  4586.  
  4587.             local pitch = v:EyeAngles().x
  4588.             local yaw = v:EyeAngles().y
  4589.             local roll = 0
  4590.  
  4591.             if gOption("Hack vs Hack", "Anti-Aim Resolver", "Pitch") ~= "Off" then
  4592.                 if gOption("Hack vs Hack", "Anti-Aim Resolver", "Pitch") == "Up" then
  4593.                     pitch = -90
  4594.                 elseif gOption("Hack vs Hack", "Anti-Aim Resolver", "Pitch") == "Down" then
  4595.                     pitch = 90
  4596.                 elseif gOption("Hack vs Hack", "Anti-Aim Resolver", "Pitch") == "Center" then
  4597.                     pitch = 0
  4598.                 elseif gOption("Hack vs Hack", "Anti-Aim Resolver", "Pitch") == "Invert" then
  4599.                     pitch = -pitch
  4600.                 elseif gOption("Hack vs Hack", "Anti-Aim Resolver", "Pitch") == "Random" then
  4601.                     pitch = math.random(-90,90)
  4602.                 else
  4603.                     if pitch <= 20 and pitch >= -10 then
  4604.                         pitch = 90
  4605.                     end
  4606.                 end
  4607.             end
  4608.  
  4609.             if gOption("Hack vs Hack", "Anti-Aim Resolver", "Yaw") ~= "Off" then
  4610.                 if gOption("Hack vs Hack", "Anti-Aim Resolver", "Yaw") == "Invert" then
  4611.                     yaw = yaw + 180
  4612.                 elseif gOption("Hack vs Hack", "Anti-Aim Resolver", "Yaw") == "-90" then
  4613.                     yaw = yaw - 90
  4614.                 elseif gOption("Hack vs Hack", "Anti-Aim Resolver", "Yaw") == "+90" then
  4615.                     yaw = yaw + 90
  4616.                 elseif gOption("Hack vs Hack", "Anti-Aim Resolver", "Yaw") == "Random" then
  4617.                     yaw = math.random(-180, 180)
  4618.                 else
  4619.                     --[[if not yaw_auto then
  4620.                         yaw = yaw + 180
  4621.                     else
  4622.                         yaw = yaw
  4623.                     end
  4624.  
  4625.                     if CurTime() > yaw_timer then
  4626.                         yaw_timer = CurTime() + 2.5
  4627.                         yaw_auto = not yaw_auto
  4628.                     end]]
  4629.  
  4630.                     roll = v:EyeAngles().z
  4631.                 end
  4632.             end
  4633.  
  4634.             v:SetPoseParameter("aim_pitch", math.NormalizeAngle(pitch))
  4635.             v:SetPoseParameter("head_pitch", math.NormalizeAngle(pitch))
  4636.  
  4637.             v:SetPoseParameter("body_yaw", 0)
  4638.             v:SetPoseParameter("aim_yaw", 0)
  4639.  
  4640.             v:SetRenderAngles(Angle(0, math.NormalizeAngle(yaw) + math.NormalizeAngle(roll), 0))
  4641.             v:InvalidateBoneCache()
  4642.         end
  4643.     end
  4644.     if gBool("Hack vs Hack", "Anti-Aim", "Enabled") then
  4645.         me:SetRenderAngles(Angle(0, me:EyeAngles().y, 0))
  4646.     end
  4647. end)
  4648.  
  4649. --[[addhook("PreDrawPlayerHands", function()
  4650.     return gBool("Visuals", "Viewmodel", "Hide Hands")
  4651. end)
  4652.  
  4653. local Weapon = CreateMaterial("Weapon", "VertexLitGeneric", {
  4654.     ["$basetexture"] = "models/debug/debugwhite",
  4655.     ["$color2"] = {1, 1, 1},
  4656. })
  4657.  
  4658. local function Condition(condition, t, f)
  4659.     if (condition) then
  4660.         return t
  4661.     else
  4662.         return f
  4663.     end
  4664. end
  4665.  
  4666. addhook("PreDrawViewModel", function(vm, me, wep)
  4667.     if gBool("Visuals", "Viewmodel", "Hide Weapon") then
  4668.         render.MaterialOverrideByIndex(0, Condition(true, Material("tools/toolsnodraw"), nil))
  4669.     end
  4670. end)]]
  4671.  
  4672. do
  4673.     config_colors()
  4674. end
  4675.  
  4676.  
  4677. function pAccuracy:FixGVTTTAngle( CUserCmd, Weapon )
  4678.  
  4679.  
  4680.     local pFaggot = LocalPlayer();
  4681.  
  4682.  
  4683.     if ( !pFaggot:IsFlagSet( FL_ONGROUND ) ) then return Weapon.Primary.Spread_upper; end
  4684.  
  4685.  
  4686.     local Min, Max = Weapon.Primary.Spread_lower, Weapon.Primary.Spread_upper
  4687.  
  4688.     local MaxVelocity = Weapon:GetNWBool( 'Ironsights', false ) and Weapon.ZoomedVel or Weapon.MaxVel
  4689.  
  4690.     local Velocity = pFaggot:GetVelocity():Length();
  4691.  
  4692.     -- local Raw = Lerp( xd, Min, Max ); --
  4693.  
  4694.     local Raw = ( Min + ( Max - Min ) ) * ( Velocity / MaxVelocity );
  4695.  
  4696.     -- local Spread = Vector( Raw, Raw, 0 ); -- After i last exposed my nospread to owner he decided to change few things --
  4697.  
  4698.     -- Well, He did but when i scriptgrabbed his sweps again he didn't think as far as i tought so here's the updated codenz --
  4699.  
  4700.     math.randomseed( CUserCmd:CommandNumber() + 1 );
  4701.  
  4702.     local Spread = Vector( Raw, Raw, 0 ) * math.Rand( .95, 1.05 );
  4703.  
  4704.     local FixedAngle = pAccuracy.PredictSpread( CUserCmd, CUserCmd:GetViewAngles():Forward(), Spread ):Angle();
  4705.  
  4706.     CUserCmd:SetViewAngles( FixedAngle - pFaggot:GetViewPunchAngles() );
  4707.  
  4708.  
  4709.   end
Add Comment
Please, Sign In to add comment