Caliber_

Gmod leak dump part 15: Rootie's niggermenu

Apr 21st, 2018
858
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 78.00 KB | None | 0 0
  1. --[[
  2. Angry Aryan Co.
  3. Made By
  4. Rootie Patootie, Icarusfeather
  5. --]]
  6.  
  7. //I hear this makes the hack load faster, i didn't actually check the O times but whatever.
  8. local hook = hook
  9. local derma = derma
  10. local surface = surface
  11. local vgui = vgui
  12. local input = input
  13. local util = util
  14. local cam = cam
  15. local render = render
  16. local math = math
  17. local draw = draw
  18. local team = team
  19.  
  20. local niggermenu = {}
  21. niggermenu.Active = CreateClientConVar("niggermenu_Active", 1, true, false)
  22. niggermenu.Version = "0.0.2"
  23. niggermenu.Ply = LocalPlayer()
  24. niggermenu.TTT = (GAMEMODE and GAMEMODE.Name and string.find(GAMEMODE.Name, "Terror") and true) or false
  25. if niggermenu.TTT then niggermenu.TTTCORPSE = CORPSE end
  26. niggermenu.DarkRP = (GAMEMODE and GAMEMODE.Name and string.find(GAMEMODE.Name, "DarkRP") and true) or false
  27.  
  28. //Converts a string of a color (ex. "Color(255, 255, 255, 255)") into an actual color, and returns the color.
  29. niggermenu.GetColorFromString = function(words)
  30.     //I probably shouldve just used string.explode...well.......
  31.     if type(words) != "string" then return Color(255, 255, 255, 255) end
  32.     words = "return "..words
  33.     local func = CompileString(words, "GettingColors", true)
  34.     local good, color = pcall(func)
  35.     if good and type(color) == "table" and color.r and color.g and color.b and color.a then
  36.         return color
  37.     else
  38.         return Color(255, 255, 255, 255)
  39.     end
  40. end
  41.  
  42. niggermenu.Chars = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
  43. niggermenu.RandomName = function(amount)
  44.     local toReturn = ""
  45.     local amount = amount or 10
  46.     for i = 1, amount do
  47.         if math.random(0, 1) == 0 then
  48.             toReturn = toReturn..string.lower(table.Random(niggermenu.Chars))
  49.         else
  50.             toReturn = toReturn..table.Random(niggermenu.Chars)
  51.         end
  52.     end
  53.     return toReturn
  54. end
  55.  
  56. niggermenu.Message = function(...)
  57.     chat.AddText(Color(50, 255, 100), "[Niggermenu] ", ...)
  58. end
  59.  
  60. niggermenu.Aimbot = {}
  61. niggermenu.Aimbot.CurTarget = nil
  62. niggermenu.Aimbot.Vars = {}
  63. niggermenu.Aimbot.Vars["Active"] = CreateClientConVar("niggermenu_Aimbot_Active", 0, true, false)
  64. niggermenu.Aimbot.Vars["RandomBones"] = CreateClientConVar("niggermenu_Aimbot_RandomBones", 0, true, false)
  65. niggermenu.Aimbot.Vars["AttackNPCs"] = CreateClientConVar("niggermenu_Aimbot_AttackNPCs", 0, true, false)
  66. niggermenu.Aimbot.Vars["AttackPlayers"] = CreateClientConVar("niggermenu_Aimbot_AttackPlayers", 0, true, false)
  67. niggermenu.Aimbot.Vars["Prediction"] = CreateClientConVar("niggermenu_Aimbot_Prediction", 0, true, false)
  68. niggermenu.Aimbot.Vars["AimOnKey"] = CreateClientConVar("niggermenu_Aimbot_AimOnKey", 0, true, false)
  69. niggermenu.Aimbot.Vars["AimOnKey_Key"] = CreateClientConVar("niggermenu_Aimbot_AimOnKey_Key", "MOUSE_LEFT", true, false)
  70. niggermenu.Aimbot.Vars["MaxAngle"] = CreateClientConVar("niggermenu_Aimbot_MaxAngle", 180, true, false)
  71. niggermenu.Aimbot.Vars["Preferance"] = CreateClientConVar("niggermenu_Aimbot_Preferance", "Distance", true, false)
  72. niggermenu.Aimbot.Vars["AntiSnap"] = CreateClientConVar("niggermenu_Aimbot_AntiSnap", 0, true, false)
  73. niggermenu.Aimbot.Vars["AntiSnapSpeed"] = CreateClientConVar("niggermenu_Aimbot_AntiSnapSpeed", 4, true, false)
  74. niggermenu.Aimbot.Vars["AutoShoot"] = CreateClientConVar("niggermenu_Aimbot_AutoShoot", 0, true, false)
  75. niggermenu.Aimbot.Vars["PanicMode"] = CreateClientConVar("niggermenu_Aimbot_PanicMode", 0, true, false)
  76. niggermenu.Aimbot.Vars["IgnoreTeam"] = CreateClientConVar("niggermenu_Aimbot_IgnoreTeam", 0, true, false)
  77.  
  78. niggermenu.Friends = {}
  79. niggermenu.Friends.List = {} //The steamIDs of everyone on your friends list
  80. niggermenu.Friends.Vars = {}
  81. niggermenu.Friends.Vars["Active"] = CreateClientConVar("niggermenu_Friends_Active", 0, true, false)
  82. niggermenu.Friends.Vars["Reverse"] = CreateClientConVar("niggermenu_Friends_Reverse", 0, true, false)
  83.  
  84. niggermenu.ESP = {}
  85. niggermenu.ESP.Vars = {}
  86. niggermenu.ESP.Vars["Active"] = CreateClientConVar("niggermenu_ESP_Active", 0, true, false)
  87. niggermenu.ESP.Vars["Players"] = CreateClientConVar("niggermenu_ESP_Players", 0, true, false)
  88. niggermenu.ESP.Vars["NPCs"] = CreateClientConVar("niggermenu_ESP_NPCs", 0, true, false)
  89. niggermenu.ESP.Vars["Name"] = CreateClientConVar("niggermenu_ESP_Name", "Off", true, false)
  90. niggermenu.ESP.Vars["Weapons"] = CreateClientConVar("niggermenu_ESP_Weapons", "Off", true, false)
  91. niggermenu.ESP.Vars["Distance"] = CreateClientConVar("niggermenu_ESP_Distance", "Off", true, false)
  92. niggermenu.ESP.Vars["Health"] = CreateClientConVar("niggermenu_ESP_Health", "Off", true, false)
  93. niggermenu.ESP.Vars["MaxDistance"] = CreateClientConVar("niggermenu_ESP_MaxDistance", 0, true, false)
  94. niggermenu.ESP.Vars["Box"] = CreateClientConVar("niggermenu_ESP_Box", 0, true, false)
  95. niggermenu.ESP.Vars["ShowTraitors"] = CreateClientConVar("niggermenu_ESP_ShowTraitors", "Off", true, false)
  96. niggermenu.ESP.Vars["Bodies"] = CreateClientConVar("niggermenu_ESP_Bodies", 0, true, false)
  97. niggermenu.ESP.Vars["Radar"] = CreateClientConVar("niggermenu_ESP_Radar", 0, true, false)
  98. niggermenu.ESP.Vars["RadarScale"] = CreateClientConVar("niggermenu_ESP_RadarScale", 20, true, false)
  99. niggermenu.ESP.Vars["TeamBased"] = CreateClientConVar("niggermenu_ESP_TeamBased", 0, true, false)
  100.  
  101. niggermenu.Chams = {}
  102. niggermenu.Chams.Mat = CreateMaterial(niggermenu.RandomName(math.random(10,15)), "VertexLitGeneric", { ["$basetexture"] = "models/debug/debugwhite", ["$model"] = 1, ["$ignorez"] = 1 })
  103. niggermenu.Chams.Vars = {}
  104. niggermenu.Chams.Vars["Active"] = CreateClientConVar("niggermenu_Chams_Active", 0, true, false)
  105. niggermenu.Chams.Vars["Players"] = CreateClientConVar("niggermenu_Chams_Players", 0, true, false)
  106. niggermenu.Chams.Vars["NPCs"] = CreateClientConVar("niggermenu_Chams_NPCs", 0, true, false)
  107. niggermenu.Chams.Vars["Weapons"] = CreateClientConVar("niggermenu_Chams_Weapons", 0, true, false)
  108. niggermenu.Chams.Vars["MaxDistance"] = CreateClientConVar("niggermenu_Chams_MaxDistance", 0, true, false)
  109. niggermenu.Chams.Vars["Bodies"] = CreateClientConVar("niggermenu_Chams_Bodies", 0, true, false)
  110. niggermenu.Chams.Vars["TeamBased"] = CreateClientConVar("niggermenu_Chams_TeamBased", 0, true, false)
  111.  
  112. niggermenu.Entities = {}
  113. niggermenu.Entities.List = {} //The class namse of all the entities
  114. niggermenu.Entities.Vars = {}
  115. niggermenu.Entities.Vars["Active"] = CreateClientConVar("niggermenu_Entities_Active", 0, true, false)
  116.  
  117. niggermenu.Misc = {}
  118. niggermenu.Misc.Vars = {}
  119. niggermenu.Misc.Vars["ShowAdmins"] = CreateClientConVar("niggermenu_Misc_ShowAdmins", 0, true, false)
  120. niggermenu.Misc.Vars["Crosshair"] = CreateClientConVar("niggermenu_Misc_Cross", 0, true, false)
  121. niggermenu.Misc.Vars["CrosshairSize"] = CreateClientConVar("niggermenu_Misc_CrossSize", 50, true, false)
  122. niggermenu.Misc.Vars["NoRecoil"] = CreateClientConVar("niggermenu_Misc_NoRecoil", 0, true, false)
  123. niggermenu.Misc.Vars["ShowSpectators"] = CreateClientConVar("niggermenu_Misc_ShowSpectators", 0, true, false)
  124. niggermenu.Misc.Vars["BunnyHop"] = CreateClientConVar("niggermenu_Misc_BunnyHop", 0, true, false)
  125. niggermenu.Misc.Vars["BunnyHop_Key"] = CreateClientConVar("niggermenu_Misc_BunnyHop_Key", "KEY_SPACE", true, false)
  126. niggermenu.Misc.Vars["AutoReload"] = CreateClientConVar("niggermenu_Misc_AutoReload", 0, true, false)
  127. niggermenu.Misc.Vars["AutoPistol"] = CreateClientConVar("niggermenu_Misc_AutoPistol", 0, true, false)
  128. niggermenu.Misc.Vars["BuyHealth"] = CreateClientConVar("niggermenu_Misc_BuyHealth", 0, true, false)
  129. niggermenu.Misc.Vars["BuyHealth_Minimum"] = CreateClientConVar("niggermenu_Misc_BuyHealth_Minimum", 80, true, false)
  130. niggermenu.Misc.Vars["TraitorFinder"] = CreateClientConVar("niggermenu_Misc_TraitorFinder", 0, true, false)
  131. niggermenu.Misc.Vars["Deaths"] = CreateClientConVar("niggermenu_Misc_Deaths", 0, true, false)
  132. niggermenu.Misc.Vars["Sounds"] = CreateClientConVar("niggermenu_Misc_Sounds", 0, true, false)
  133.  
  134. niggermenu.Style = {}
  135. niggermenu.Style.Vars = {}
  136. niggermenu.Style.Vars["BoundingBox"] = {}
  137. niggermenu.Style.Vars["BoundingBox"].var = CreateClientConVar("niggermenu_Style_BoundingBox", "Color(255, 0, 0, 255)", true, false)
  138. niggermenu.Style.Vars["BoundingBox"].color = niggermenu.GetColorFromString(niggermenu.Style.Vars["BoundingBox"].var:GetString())
  139. niggermenu.Style.Vars["ESPText"] = {}
  140. niggermenu.Style.Vars["ESPText"].var = CreateClientConVar("niggermenu_Style_ESPText", "Color(255, 255, 255, 255)", true, false)
  141. niggermenu.Style.Vars["ESPText"].color = niggermenu.GetColorFromString(niggermenu.Style.Vars["ESPText"].var:GetString())
  142. niggermenu.Style.Vars["Crosshair"] = {}
  143. niggermenu.Style.Vars["Crosshair"].var = CreateClientConVar("niggermenu_Style_Cross", "Color(255, 255, 255, 255)", true, false)
  144. niggermenu.Style.Vars["Crosshair"].color = niggermenu.GetColorFromString(niggermenu.Style.Vars["Crosshair"].var:GetString())
  145. niggermenu.Style.Vars["BodyText"] = {}
  146. niggermenu.Style.Vars["BodyText"].var = CreateClientConVar("niggermenu_Style_BodyText", "Color(255, 255, 255, 255)", true, false)
  147. niggermenu.Style.Vars["BodyText"].color = niggermenu.GetColorFromString(niggermenu.Style.Vars["BodyText"].var:GetString())
  148. niggermenu.Style.Vars["Chams"] = {}
  149. niggermenu.Style.Vars["Chams"].var = CreateClientConVar("niggermenu_Style_Chams", "Color(0, 255, 0, 255)", true, false)
  150. niggermenu.Style.Vars["Chams"].color = niggermenu.GetColorFromString(niggermenu.Style.Vars["Chams"].var:GetString())
  151. niggermenu.Style.Vars["BodyChams"] = {}
  152. niggermenu.Style.Vars["BodyChams"].var = CreateClientConVar("niggermenu_Style_BodyChams", "Color(0, 255, 0, 255)", true, false)
  153. niggermenu.Style.Vars["BodyChams"].color = niggermenu.GetColorFromString(niggermenu.Style.Vars["BodyChams"].var:GetString())
  154.  
  155. //This loads our friends list and custom entities list.
  156. /*niggermenu.SavedData = CreateClientConVar("niggermenu_SaveData", niggermenu.RandomName(math.random(10, 15)), true, false)
  157. if file.Exists(niggermenu.SavedData:GetString()..".txt", "DATA") then
  158.     local info = string.Explode("\n", file.Read(niggermenu.SavedData:GetString()..".txt", "DATA"))
  159.     if type(info) == "table" and info[1] and info[2] then
  160.         niggermenu.Friends.List = util.JSONToTable(info[1])
  161.         niggermenu.Entities.List = util.JSONToTable(info[2])
  162.     end
  163. end
  164.  
  165. niggermenu.SaveData = function()
  166.     file.Write(niggermenu.SavedData:GetString()..".txt", util.TableToJSON(niggermenu.Friends.List))
  167.     file.Append(niggermenu.SavedData:GetString()..".txt", "\n")
  168.     file.Append(niggermenu.SavedData:GetString()..".txt", util.TableToJSON(niggermenu.Entities.List))
  169. end*/
  170.  
  171. //This is all the bones i look for in the order im looking for them. Feel free to change the order if you want to attack the foot before the head or something like that.
  172. niggermenu.Bones = {
  173. "ValveBiped.Bip01_Head1",
  174. "ValveBiped.Bip01_Neck1",
  175. "ValveBiped.Bip01_Spine4",
  176. "ValveBiped.Bip01_Spine2",
  177. "ValveBiped.Bip01_Spine1",
  178. "ValveBiped.Bip01_Spine",
  179. "ValveBiped.Bip01_R_UpperArm",
  180. "ValveBiped.Bip01_R_Forearm",
  181. "ValveBiped.Bip01_R_Hand",
  182. "ValveBiped.Bip01_L_UpperArm",
  183. "ValveBiped.Bip01_L_Forearm",
  184. "ValveBiped.Bip01_L_Hand",
  185. "ValveBiped.Bip01_R_Thigh",
  186. "ValveBiped.Bip01_R_Calf",
  187. "ValveBiped.Bip01_R_Foot",
  188. "ValveBiped.Bip01_R_Toe0",
  189. "ValveBiped.Bip01_L_Thigh",
  190. "ValveBiped.Bip01_L_Calf",
  191. "ValveBiped.Bip01_L_Foot",
  192. "ValveBiped.Bip01_L_Toe0"
  193. }
  194.  
  195. //If random bones is enabled this list is gone through, randomly, and if none of the bones on this list are found the entire list (above) is gone through.
  196. //If you edit this be sure to edit the function below it.
  197. niggermenu.RandomBones = {
  198. "ValveBiped.Bip01_Head1",
  199. "ValveBiped.Bip01_Neck1",
  200. "ValveBiped.Bip01_Spine4",
  201. "ValveBiped.Bip01_Spine2",
  202. "ValveBiped.Bip01_R_UpperArm",
  203. "ValveBiped.Bip01_L_UpperArm"
  204. }
  205. niggermenu.GetRandomBones = function()
  206.     local temp = {}
  207.     local function GetBones() //Ahh recursion, i love you.
  208.         if #niggermenu.RandomBones > 0 then
  209.             local random = math.random(1, #niggermenu.RandomBones)
  210.             table.insert(temp, niggermenu.RandomBones[random])
  211.             table.remove(niggermenu.RandomBones, random)
  212.             GetBones()
  213.         else
  214.             table.insert(niggermenu.RandomBones, "ValveBiped.Bip01_Head1")
  215.             table.insert(niggermenu.RandomBones, "ValveBiped.Bip01_Neck1")
  216.             table.insert(niggermenu.RandomBones, "ValveBiped.Bip01_Spine4")
  217.             table.insert(niggermenu.RandomBones, "ValveBiped.Bip01_Spine2")
  218.             table.insert(niggermenu.RandomBones, "ValveBiped.Bip01_R_UpperArm")
  219.             table.insert(niggermenu.RandomBones, "ValveBiped.Bip01_L_UpperArm")
  220.         end
  221.     end
  222.     GetBones()
  223.     return temp
  224. end
  225.  
  226. //A list of all keyboard keys, for binding
  227. niggermenu.Keys = {
  228. [0] = "KEY_NONE",
  229. [1] = "KEY_0",
  230. [2] = "KEY_1",
  231. [3] = "KEY_2",
  232. [4] = "KEY_3",
  233. [5] = "KEY_4",
  234. [6] = "KEY_5",
  235. [7] = "KEY_6",
  236. [8] = "KEY_7",
  237. [9] = "KEY_8",
  238. [10] = "KEY_9",
  239. [11] = "KEY_A",
  240. [12] = "KEY_B",
  241. [13] = "KEY_C",
  242. [14] = "KEY_D",
  243. [15] = "KEY_E",
  244. [16] = "KEY_F",
  245. [17] = "KEY_G",
  246. [18] = "KEY_H",
  247. [19] = "KEY_I",
  248. [20] = "KEY_J",
  249. [21] = "KEY_K",
  250. [22] = "KEY_L",
  251. [23] = "KEY_M",
  252. [24] = "KEY_N",
  253. [25] = "KEY_O",
  254. [26] = "KEY_P",
  255. [27] = "KEY_Q",
  256. [28] = "KEY_R",
  257. [29] = "KEY_S",
  258. [30] = "KEY_T",
  259. [31] = "KEY_U",
  260. [32] = "KEY_V",
  261. [33] = "KEY_W",
  262. [34] = "KEY_X",
  263. [35] = "KEY_Y",
  264. [36] = "KEY_Z",
  265. [37] = "KEY_PAD_0",
  266. [38] = "KEY_PAD_1",
  267. [39] = "KEY_PAD_2",
  268. [40] = "KEY_PAD_3",
  269. [41] = "KEY_PAD_4",
  270. [42] = "KEY_PAD_5",
  271. [43] = "KEY_PAD_6",
  272. [44] = "KEY_PAD_7",
  273. [45] = "KEY_PAD_8",
  274. [46] = "KEY_PAD_9",
  275. [47] = "KEY_PAD_DIVIDE",
  276. [48] = "KEY_PAD_MULTIPLY",
  277. [49] = "KEY_PAD_MINUS",
  278. [50] = "KEY_PAD_PLUS",
  279. [51] = "KEY_PAD_ENTER",
  280. [52] = "KEY_PAD_DECIMAL",
  281. [53] = "KEY_LBRACKET",
  282. [54] = "KEY_RBRACKET",
  283. [55] = "KEY_SEMICOLON",
  284. [56] = "KEY_APOSTROPHE",
  285. [57] = "KEY_BACKQUOTE",
  286. [58] = "KEY_COMMA",
  287. [59] = "KEY_PERIOD",
  288. [60] = "KEY_SLASH",
  289. [61] = "KEY_BACKSLASH",
  290. [62] = "KEY_MINUS",
  291. [63] = "KEY_EQUAL",
  292. [64] = "KEY_ENTER",
  293. [65] = "KEY_SPACE",
  294. [66] = "KEY_BACKSPACE",
  295. [67] = "KEY_TAB",
  296. [68] = "KEY_CAPSLOCK",
  297. [69] = "KEY_NUMLOCK",
  298. [70] = "KEY_ESCAPE",
  299. [71] = "KEY_SCROLLLOCK",
  300. [72] = "KEY_INSERT",
  301. [73] = "KEY_DELETE",
  302. [74] = "KEY_HOME",
  303. [75] = "KEY_END",
  304. [76] = "KEY_PAGEUP",
  305. [77] = "KEY_PAGEDOWN",
  306. [78] = "KEY_BREAK",
  307. [79] = "KEY_LSHIFT",
  308. [80] = "KEY_RSHIFT",
  309. [81] = "KEY_LALT",
  310. [82] = "KEY_RALT",
  311. [83] = "KEY_LCONTROL",
  312. [84] = "KEY_RCONTROL",
  313. [85] = "KEY_LWIN",
  314. [86] = "KEY_RWIN",
  315. [87] = "KEY_APP",
  316. [88] = "KEY_UP",
  317. [89] = "KEY_LEFT",
  318. [90] = "KEY_DOWN",
  319. [91] = "KEY_RIGHT",
  320. [92] = "KEY_F1",
  321. [93] = "KEY_F2",
  322. [94] = "KEY_F3",
  323. [95] = "KEY_F4",
  324. [96] = "KEY_F5",
  325. [97] = "KEY_F6",
  326. [98] = "KEY_F7",
  327. [99] = "KEY_F8",
  328. [100] = "KEY_F9",
  329. [101] = "KEY_F10",
  330. [102] = "KEY_F11",
  331. [103] = "KEY_F12",
  332. //[104] = "KEY_CAPSLOCKTOGGLE", //THESE
  333. //[105] = "KEY_NUMLOCKTOGGLE", //MOFOS
  334. //[106] = "KEY_SCROLLLOCKTOGGLE", //SHOULD DIE
  335. [107] = "KEY_XBUTTON_UP",
  336. [108] = "KEY_XBUTTON_DOWN",
  337. [109] = "KEY_XBUTTON_LEFT",
  338. [110] = "KEY_XBUTTON_RIGHT",
  339. [111] = "KEY_XBUTTON_START",
  340. [112] = "KEY_XBUTTON_BACK",
  341. [113] = "KEY_XBUTTON_STICK1",
  342. [114] = "KEY_XBUTTON_STICK2",
  343. [115] = "KEY_XBUTTON_A",
  344. [116] = "KEY_XBUTTON_B",
  345. [117] = "KEY_XBUTTON_X",
  346. [118] = "KEY_XBUTTON_Y",
  347. [119] = "KEY_XBUTTON_BLACK",
  348. [120] = "KEY_XBUTTON_WHITE",
  349. [121] = "KEY_XBUTTON_LTRIGGER",
  350. [122] = "KEY_XBUTTON_RTRIGGER",
  351. [123] = "KEY_XSTICK1_UP",
  352. [124] = "KEY_XSTICK1_DOWN",
  353. [125] = "KEY_XSTICK1_LEFT",
  354. [126] = "KEY_XSTICK1_RIGHT",
  355. [127] = "KEY_XSTICK2_UP",
  356. [128] = "KEY_XSTICK2_DOWN",
  357. [129] = "KEY_XSTICK2_LEFT",
  358. [130] = "KEY_XSTICK2_RIGHT"
  359. }
  360. //A list of all mouse keys, for binding
  361. niggermenu.MouseKeys = {
  362. [107] = "MOUSE_LEFT",
  363. [108] = "MOUSE_RIGHT",
  364. [109] = "MOUSE_MIDDLE",
  365. [110] = "MOUSE_4",
  366. [111] = "MOUSE_5"
  367. }
  368. //Tells me if a specific key is pressed. Loops through both tables.
  369. niggermenu.KeyPressed = function(key)
  370.     if niggermenu.InChat then return false end
  371.    
  372.     for k = 107, 111 do
  373.         if key == niggermenu.MouseKeys[k] then
  374.             if input.IsMouseDown(k) then
  375.                 return true
  376.             else
  377.                 return false
  378.             end
  379.         end
  380.     end
  381.    
  382.     for k = 0, 130 do
  383.         if key == niggermenu.Keys[k] then
  384.             if input.IsKeyDown(k) then
  385.                 return true
  386.             else
  387.                 return false
  388.             end
  389.         end
  390.     end
  391.    
  392.     return false
  393. end
  394.  
  395. //Very simple. If the boolean is true it returns 1. If the boolean is false then it returns 0. I dont think i ended up using this anywhere, but whatever, ill leave it here.
  396. niggermenu.BoolToInt = function(bool)
  397.     if bool then
  398.         return 1
  399.     else
  400.         return 0
  401.     end
  402. end
  403.  
  404. //Checking if a bone is visible, pos is the position of the bone and ent is the entity whos bone were looking for.
  405. niggermenu.SpotIsVisible = function(pos, ent)
  406.     ent = ent or niggermenu.Aimbot.CurTarget
  407.     local tracedata = {}
  408.     tracedata.start = niggermenu.Ply:GetShootPos()
  409.     tracedata.endpos = pos
  410.     tracedata.filter = {niggermenu.Ply, ent}
  411.    
  412.     local trace = util.TraceLine(tracedata)
  413.     if trace.HitPos:Distance(pos) < 0.005 then
  414.         return true
  415.     else
  416.         return false
  417.     end
  418. end
  419.  
  420. //Checks all of the entities bones to find if we can see this entity or not.
  421. niggermenu.CanSee = function(ent)
  422.     for k = 1, #niggermenu.Bones do
  423.         local v = niggermenu.Bones[k]
  424.         local bone = ent:LookupBone(v)
  425.         if bone != nil then
  426.             local pos, ang = ent:GetBonePosition(bone)
  427.             if niggermenu.SpotIsVisible(pos, ent) then
  428.                 return true
  429.             end
  430.         end
  431.     end
  432.     return false
  433. end
  434.  
  435. //This returns the next entity we should attack.
  436. niggermenu.GetTarget = function()
  437.     if niggermenu.Aimbot.Vars["AttackNPCs"]:GetBool() or niggermenu.Aimbot.Vars["AttackPlayers"]:GetBool() then
  438.         local targets = {}
  439.         local everything = ents.GetAll()
  440.         for k = 1, #everything do
  441.             local v = everything[k]
  442.             if niggermenu.Aimbot.Vars["AttackNPCs"]:GetBool() and v:IsNPC() then
  443.                 if niggermenu.CanSee(v) then
  444.                     table.insert(targets, {["Target"] = v, ["Pos"] = v:LocalToWorld(v:OBBCenter())})
  445.                 end
  446.             elseif niggermenu.Aimbot.Vars["AttackPlayers"]:GetBool() and v:IsPlayer() and v != niggermenu.Ply then
  447.                 if niggermenu.CanSee(v) then
  448.                     table.insert(targets, {["Target"] = v, ["Pos"] = v:LocalToWorld(v:OBBCenter())})
  449.                 end
  450.             end
  451.         end
  452.        
  453.         for k,v in SortedPairs(targets, true) do //It will already be sorted so this shouldn't be too resource heavy, the main point of this is to loop through the table backwards
  454.             local v = v["Target"]
  455.             local shouldremove = false
  456.             if niggermenu.Aimbot.Vars["IgnoreTeam"]:GetBool() and v:IsPlayer() then
  457.                 if niggermenu.TTT then
  458.                     if niggermenu.Ply:GetRole() == 1 and v:GetRole() == 1 then
  459.                         shouldremove = true
  460.                     end
  461.                        
  462.                     if niggermenu.Ply:GetRole() != 1 and not table.HasValue(niggermenu.Traitors, v) then
  463.                         shouldremove = true
  464.                     end
  465.                 else
  466.                     if v:Team() == niggermenu.Ply:Team() then
  467.                         shouldremove = true
  468.                     end
  469.                 end
  470.             end
  471.            
  472.             if niggermenu.Friends.Vars["Active"]:GetBool() then
  473.                 if niggermenu.Friends.Vars["Reverse"]:GetBool() then
  474.                     if not table.HasValue(niggermenu.Friends.List, v:SteamID()) then
  475.                         shouldremove = true
  476.                     end
  477.                 else
  478.                     if table.HasValue(niggermenu.Friends.List, v:SteamID()) then
  479.                         shouldremove = true    
  480.                     end
  481.                 end
  482.             end
  483.            
  484.             if shouldremove then
  485.                 table.remove(targets, k)
  486.             end
  487.         end
  488.        
  489.         if #targets == 0 then
  490.             return nil
  491.         elseif #targets == 1 then
  492.             targets[1]["Target"].BoneToAimAt = nil
  493.             return targets[1]["Target"]
  494.         end
  495.        
  496.         if niggermenu.Aimbot.Vars["Preferance"]:GetString() == "Distance" then
  497.             local min = {["Distance"] = niggermenu.Ply:GetPos():Distance(targets[1]["Pos"]), ["Target"] = targets[1]["Target"]}
  498.             for k = 1, #targets do
  499.                 local v = targets[k]
  500.                
  501.                 local distance = niggermenu.Ply:GetPos():Distance(v["Pos"])
  502.                 if distance < min["Distance"] then
  503.                     min = {["Distance"] = distance, ["Target"] = v["Target"]}
  504.                 end
  505.             end
  506.             min["Target"].BoneToAimAt = nil
  507.             return min["Target"]
  508.         elseif niggermenu.Aimbot.Vars["Preferance"]:GetString() == "Angle" then    
  509.             local min = {["Angle"] = niggermenu.AngleTo(targets[1]["Pos"]), ["Target"] = targets[1]["Target"]}
  510.             for k = 1, #targets do
  511.                 local v = targets[k]
  512.                
  513.                 local angle = niggermenu.AngleTo(v["Pos"])
  514.                 if angle < min["Angle"] then
  515.                     min = {["Angle"] = angle, ["Target"] = v["Target"]}
  516.                 end
  517.             end
  518.             min["Target"].BoneToAimAt = nil
  519.             return min["Target"]
  520.         end
  521.     else
  522.         return nil
  523.     end
  524. end
  525.  
  526. //This returns the total angle away from the target we are, and then the pitch and yaw seperately
  527. niggermenu.AngleTo = function(pos)
  528.     local myAngs = niggermenu.Ply:GetAngles()
  529.     local needed = (pos - niggermenu.Ply:GetShootPos()):Angle()
  530.    
  531.     myAngs.p = math.NormalizeAngle(myAngs.p)
  532.     needed.p = math.NormalizeAngle(needed.p)
  533.    
  534.     myAngs.y = math.NormalizeAngle(myAngs.y)
  535.     needed.y = math.NormalizeAngle(needed.y)
  536.    
  537.     local p = math.NormalizeAngle(needed.p - myAngs.p)
  538.     local y = math.NormalizeAngle(needed.y - myAngs.y)
  539.    
  540.     return math.abs(p) + math.abs(y), {p = p, y = y}
  541. end
  542.  
  543. //Returns true if our target meets our preferances.
  544. niggermenu.ValidTarget = function()
  545.     if niggermenu.Aimbot.CurTarget == nil then return false end
  546.     if not IsValid(niggermenu.Aimbot.CurTarget) then return false end
  547.     if niggermenu.Aimbot.CurTarget:IsPlayer() and (not niggermenu.Aimbot.CurTarget:Alive() or niggermenu.Aimbot.CurTarget:Team() == TEAM_SPECTATOR or niggermenu.Aimbot.CurTarget:Health() < 1) then return false end
  548.     if not niggermenu.Aimbot.Vars["AttackNPCs"]:GetBool() and niggermenu.Aimbot.CurTarget:IsNPC() then return false end
  549.     if not niggermenu.Aimbot.Vars["AttackPlayers"]:GetBool() and niggermenu.Aimbot.CurTarget:IsPlayer() then return false end
  550.     if not niggermenu.CanSee(niggermenu.Aimbot.CurTarget) then return false end
  551.     if niggermenu.Aimbot.Vars["IgnoreTeam"]:GetBool() and niggermenu.Aimbot.CurTarget:IsPlayer() then
  552.         if niggermenu.TTT then
  553.             if niggermenu.Ply:GetRole() == 1 and niggermenu.Aimbot.CurTarget:GetRole() == 1 then return false end              
  554.             if niggermenu.Ply:GetRole() != 1 and not table.HasValue(niggermenu.Traitors, niggermenu.Aimbot.CurTarget) then return false end
  555.         else
  556.             if niggermenu.Aimbot.CurTarget:Team() == niggermenu.Ply:Team() then return false end
  557.         end
  558.     end
  559.    
  560.     return true
  561. end
  562.  
  563. hook.Add("RenderScreenspaceEffects", niggermenu.RandomName(math.random(10, 15)), function()
  564.     if niggermenu.Active:GetBool() then
  565.         local everything = ents.GetAll()
  566.         for k = 1, #everything do
  567.             local v = everything[k]
  568.            
  569.             if niggermenu.Chams.Vars["Active"]:GetBool() and v != niggermenu.Ply and (niggermenu.Chams.Vars["MaxDistance"]:GetInt() == 0 or v:GetPos():Distance(niggermenu.Ply:GetPos()) < niggermenu.Chams.Vars["MaxDistance"]:GetInt()) then
  570.                 cam.Start3D(EyePos(), EyeAngles())
  571.                     if (v:IsPlayer() and v:Alive() and v:Team() != TEAM_SPECTATOR and niggermenu.Chams.Vars["Players"]:GetBool()) or (v:IsNPC() and v:Health() > 0 and niggermenu.Chams.Vars["NPCs"]:GetBool()) then
  572.                         local color = niggermenu.Style.Vars["Chams"].color
  573.                         if niggermenu.Chams.Vars["TeamBased"]:GetBool() and v:IsPlayer() then
  574.                             color = team.GetColor(v:Team())
  575.                             if niggermenu.TTT then
  576.                                 if v:GetRole() == 2 then
  577.                                     color = Color(0, 0, 255, 255)
  578.                                 elseif table.HasValue(niggermenu.Traitors, v) then
  579.                                     color = Color(255, 0, 0, 255)
  580.                                 else
  581.                                     color = Color(0, 255, 0, 255)
  582.                                 end
  583.                             end
  584.                         end
  585.                         render.SuppressEngineLighting(true)
  586.                         render.SetColorModulation(color.r/255, color.g/255, color.b/255, 1)
  587.                         render.MaterialOverride(niggermenu.Chams.Mat)
  588.                         v:DrawModel()
  589.                        
  590.                         render.SetColorModulation((color.r + 150)/250, (color.g + 150)/250, (color.b + 150)/255, 1)                    
  591.                         if IsValid(v:GetActiveWeapon()) and niggermenu.Chams.Vars["Weapons"]:GetBool() then
  592.                             v:GetActiveWeapon():DrawModel()
  593.                         end
  594.                        
  595.                         render.SetColorModulation(1, 1, 1, 1)
  596.                         render.MaterialOverride()
  597.                         render.SetModelLighting(4, color.r/255, color.g/255, color.b/255)
  598.                         v:DrawModel()
  599.                         render.SuppressEngineLighting(false)
  600.                     elseif niggermenu.TTT and niggermenu.Chams.Vars["Bodies"]:GetBool() and v:GetClass() == "prop_ragdoll" then
  601.                         local color = niggermenu.Style.Vars["BodyChams"].color
  602.                         render.SuppressEngineLighting(true)
  603.                         render.SetColorModulation(color.r/255, color.g/255, color.b/255, 1)
  604.                         render.MaterialOverride(niggermenu.Chams.Mat)
  605.                         v:DrawModel()  
  606.                         render.SetColorModulation(1, 1, 1, 1)
  607.                         render.MaterialOverride()
  608.                         render.SetModelLighting(4, color.r/255, color.g/255, color.b/255)
  609.                         v:DrawModel()
  610.                         render.SuppressEngineLighting(false)
  611.                     elseif niggermenu.Entities.Vars["Active"]:GetBool() and table.HasValue(niggermenu.Entities.List, v:GetClass()) then
  612.                         local color = niggermenu.Style.Vars["Chams"].color                 
  613.                         render.SuppressEngineLighting(true)
  614.                         render.SetColorModulation(color.r/255, color.g/255, color.b/255, 1)
  615.                         render.MaterialOverride(niggermenu.Chams.Mat)
  616.                         v:DrawModel()  
  617.                         render.SetColorModulation(1, 1, 1, 1)
  618.                         render.MaterialOverride()
  619.                         render.SetModelLighting(4, color.r/255, color.g/255, color.b/255)
  620.                         v:DrawModel()
  621.                         render.SuppressEngineLighting(false)
  622.                     end
  623.                 cam.End3D()
  624.             end
  625.         end
  626.     end
  627. end)
  628.  
  629. //Helper function on radar. I just copied this one from the wiki.
  630. niggermenu.DrawFilledCircle = function(x, y, radius, quality)
  631.     local circle = {}
  632.     local tmp = 0
  633.     for i = 1, quality do
  634.         tmp = math.rad(i * 360) / quality
  635.         circle[i] = {x = x + math.cos(tmp) * radius, y = y + math.sin(tmp) * radius}
  636.     end
  637.     surface.DrawPoly(circle)
  638. end
  639.  
  640. //Another helper fuction on the radar.
  641. niggermenu.DrawArrow = function(x, y, myRotation)
  642.     local arrow = {}   
  643.     arrow[1] = {x = x, y = y}
  644.     arrow[2] = {x = x + 4, y = y + 7.5}
  645.     arrow[3] = {x = x, y = y + 5}
  646.     arrow[4] = {x = x - 4, y = y + 7.5}
  647.    
  648.     //Now that i have the arrow determined, i have to rotate it to match the targets angle
  649.     myRotation = myRotation * -1
  650.     myRotation = math.rad(myRotation)
  651.     for i = 1, 4 do
  652.         local theirX = arrow[i].x
  653.         local theirY = arrow[i].y
  654.        
  655.         theirX = theirX - x
  656.         theirY = theirY - y
  657.        
  658.         arrow[i].x = theirX * math.cos(myRotation) - theirY * math.sin(myRotation)
  659.         arrow[i].y = theirX * math.sin(myRotation) + theirY * math.cos(myRotation)
  660.        
  661.         arrow[i].x = arrow[i].x + x
  662.         arrow[i].y = arrow[i].y + y
  663.     end
  664.  
  665.     surface.DrawPoly(arrow)
  666. end
  667.  
  668. niggermenu.Traitors = {}
  669. niggermenu.SuperAdmins = {}
  670. niggermenu.Admins = {}
  671. niggermenu.Spectators = {}
  672. local radarX, radarY, radarWidth, radarHeight = 100, 200, 150, 150
  673. hook.Add("HUDPaint", niggermenu.RandomName(math.random(10, 15)), function()
  674.     if niggermenu.Active:GetBool() then
  675.         local everything = ents.GetAll()
  676.        
  677.         if niggermenu.ESP.Vars["Active"]:GetBool() and niggermenu.ESP.Vars["Radar"]:GetBool() then //Setting up the background here. And since the ESP doesnt draw you
  678.             draw.RoundedBox(0, radarX, radarY, radarWidth, radarHeight, Color(100, 100, 100, 255 ))
  679.             draw.NoTexture()
  680.             if niggermenu.ESP.Vars["TeamBased"]:GetBool() then
  681.                 local color = team.GetColor(niggermenu.Ply:Team())
  682.                 if niggermenu.TTT then
  683.                     if niggermenu.Ply:GetRole() == 2 then
  684.                         color = Color(0, 0, 255, 255)
  685.                     elseif niggermenu.Ply:GetRole() == 1 then
  686.                         color = Color(255, 0, 0, 255)
  687.                     else
  688.                         color = Color(0, 255, 0, 255)
  689.                     end
  690.                 end
  691.                 surface.SetDrawColor(color)
  692.             else
  693.                 surface.SetDrawColor(niggermenu.Style.Vars["ESPText"].color)
  694.             end
  695.             niggermenu.DrawArrow(radarX + (radarWidth / 2), radarY + (radarHeight / 2), 0)
  696.         end
  697.        
  698.         for k = 1, #everything do
  699.             local v = everything[k]
  700.        
  701.             if niggermenu.ESP.Vars["Active"]:GetBool() and v != niggermenu.Ply and (niggermenu.ESP.Vars["MaxDistance"]:GetInt() == 0 or v:GetPos():Distance(niggermenu.Ply:GetPos()) < niggermenu.ESP.Vars["MaxDistance"]:GetInt()) then                                       
  702.                 if (v:IsPlayer() and v:Alive() and v:Team() != TEAM_SPECTATOR and niggermenu.ESP.Vars["Players"]:GetBool()) or (v:IsNPC() and v:Health() > 0 and niggermenu.ESP.Vars["NPCs"]:GetBool()) then
  703.                     local color = niggermenu.Style.Vars["ESPText"].color
  704.                     if niggermenu.ESP.Vars["TeamBased"]:GetBool() and v:IsPlayer() then
  705.                         color = team.GetColor(v:Team())
  706.                         if niggermenu.TTT then
  707.                             if v:GetRole() == 2 then
  708.                                 color = Color(0, 0, 255, 255)
  709.                             elseif table.HasValue(niggermenu.Traitors, v) then
  710.                                 color = Color(255, 0, 0, 255)
  711.                             else
  712.                                 color = Color(0, 255, 0, 255)
  713.                             end
  714.                         end
  715.                     end
  716.                    
  717.                     local Min, Max = v:GetCollisionBounds()
  718.                     if niggermenu.ESP.Vars["Box"]:GetBool() then
  719.                         local one = v:LocalToWorld(Min):ToScreen()
  720.                         local two = v:LocalToWorld(Vector(Min.x, Min.y, Max.z)):ToScreen()
  721.                         local three = v:LocalToWorld(Vector(Min.x, Min.y + (Max.y * 2), Min.z)):ToScreen()
  722.                         local four = v:LocalToWorld(Vector(Min.x + (Max.x * 2), Min.y, Min.z)):ToScreen()
  723.                         local five = v:LocalToWorld(Max):ToScreen()
  724.                         local six = v:LocalToWorld(Vector(Max.x, Max.y, Min.z)):ToScreen()
  725.                         local seven = v:LocalToWorld(Vector(Max.x, Max.y + (Min.y * 2), Max.z)):ToScreen()
  726.                         local eight = v:LocalToWorld(Vector(Max.x + (Min.x * 2), Max.y, Max.z)):ToScreen()             
  727.                        
  728.                         if niggermenu.ESP.Vars["TeamBased"]:GetBool() then
  729.                             surface.SetDrawColor(color)
  730.                         else
  731.                             surface.SetDrawColor(niggermenu.Style.Vars["BoundingBox"].color)
  732.                         end
  733.                         local function connect(tabone, tabtwo)
  734.                             surface.DrawLine(tabone.x, tabone.y, tabtwo.x, tabtwo.y)
  735.                         end
  736.                        
  737.                         connect(one, two)
  738.                         connect(three, eight)
  739.                         connect(four, seven)
  740.                         connect(six, five)
  741.                         connect(four, six)
  742.                         connect(four, one)
  743.                         connect(one, three)
  744.                         connect(three, six)
  745.                         connect(five, eight)
  746.                         connect(eight, two)
  747.                         connect(two, seven)
  748.                         connect(seven, five)
  749.                     end
  750.                    
  751.                     surface.SetFont("ESPFont")
  752.                     local top = v:GetPos() + Vector(0, 0, Max.z + 10) // A little above their head so its not constantly covering their face.
  753.                     local topscreen = top:ToScreen()
  754.                     local topy = topscreen.y
  755.                    
  756.                     local bottom = v:GetPos()
  757.                     local bottomscreen = bottom:ToScreen()
  758.                     local bottomy = bottomscreen.y
  759.                    
  760.                     local function DrawAbove(text)
  761.                         local W, H = surface.GetTextSize(text)
  762.                         surface.SetTextPos(topscreen.x - W / 2, topy)
  763.                         surface.DrawText(text)
  764.                        
  765.                         topy = topy + H
  766.                     end
  767.                    
  768.                     local function DrawBelow(text)
  769.                         local W, H = surface.GetTextSize(text)
  770.                         surface.SetTextPos(bottomscreen.x - W / 2, bottomy)
  771.                         surface.DrawText(text)
  772.                        
  773.                         bottomy = bottomy + H
  774.                     end
  775.                    
  776.                     surface.SetTextColor(Color(255, 0, 0, 255))
  777.                     if niggermenu.ESP.Vars["ShowTraitors"]:GetString() != "Off" and table.HasValue(niggermenu.Traitors, v) then
  778.                         if niggermenu.ESP.Vars["ShowTraitors"]:GetString() == "Above" then
  779.                             DrawAbove("Traitor")
  780.                         else
  781.                             DrawBelow("Traitor")
  782.                         end
  783.                     end
  784.                    
  785.                     surface.SetTextColor(color)
  786.                     if v:IsPlayer() then
  787.                         if niggermenu.ESP.Vars["Name"]:GetString() == "Above" then
  788.                             if v:IsSuperAdmin() then   
  789.                                 DrawAbove("[SA] "..v:Nick().. " [SA]")
  790.                             elseif v:IsAdmin() then
  791.                                 DrawAbove("[A] "..v:Nick().." [A]")
  792.                             elseif v:IsUserGroup("moderator") or v:IsUserGroup("mod") or v:IsUserGroup("operator") or v:IsUserGroup("op")then
  793.                                 DrawAbove("[OP] "..v:Nick().." [OP]")
  794.                             elseif v:IsUserGroup("vip") or v:IsUserGroup("donator") then
  795.                                 DrawAbove("[$$] "..v:Nick().." [$$]")
  796.                             else
  797.                                 DrawAbove(v:Nick())
  798.                             end
  799.                         elseif niggermenu.ESP.Vars["Name"]:GetString() == "Below" then
  800.                             if v:IsSuperAdmin() then   
  801.                                 DrawBelow("[SA] "..v:Nick().. " [SA]")
  802.                             elseif v:IsAdmin() then
  803.                                 DrawBelow("[A] "..v:Nick().." [A]")
  804.                             elseif v:IsUserGroup("moderator") or v:IsUserGroup("mod") or v:IsUserGroup("operator") or v:IsUserGroup("op")then
  805.                                 DrawBelow("[OP] "..v:Nick().." [OP]")
  806.                             elseif v:IsUserGroup("vip") or v:IsUserGroup("donator") then
  807.                                 DrawBelow("[$$] "..v:Nick().." [$$]")
  808.                             else
  809.                                 DrawAbove(v:Nick())
  810.                             end
  811.                         end
  812.                     else
  813.                         if niggermenu.ESP.Vars["Name"]:GetString() == "Above" then
  814.                             DrawAbove("NPC: "..v:GetClass())
  815.                         elseif niggermenu.ESP.Vars["Name"]:GetString() == "Below" then
  816.                             DrawBelow("NPC: "..v:GetClass())
  817.                         end
  818.                     end
  819.                    
  820.                     if niggermenu.ESP.Vars["Weapons"]:GetString() == "Above" and IsValid(v:GetActiveWeapon()) then
  821.                         DrawAbove("Weapon: "..v:GetActiveWeapon():GetClass())
  822.                     elseif niggermenu.ESP.Vars["Weapons"]:GetString() == "Below" and IsValid(v:GetActiveWeapon()) then
  823.                         DrawBelow("Weapon: "..v:GetActiveWeapon():GetClass())
  824.                     end    
  825.                    
  826.                     if niggermenu.ESP.Vars["Distance"]:GetString() == "Above" then
  827.                         DrawAbove(""..bottom:Distance(niggermenu.Ply:GetPos()))
  828.                     elseif niggermenu.ESP.Vars["Distance"]:GetString() == "Below" then
  829.                         DrawBelow(""..bottom:Distance(niggermenu.Ply:GetPos()))
  830.                     end
  831.                    
  832.                     if niggermenu.ESP.Vars["Health"]:GetString() == "Above" then
  833.                         if v:IsPlayer()then
  834.                             DrawAbove(v:Health().. "H - "..v:Armor().."A")
  835.                         else
  836.                             DrawAbove(v:Health().. "H")
  837.                         end
  838.                     elseif niggermenu.ESP.Vars["Health"]:GetString() == "Below" then
  839.                         if v:IsPlayer()then
  840.                             DrawBelow(v:Health().. "H - "..v:Armor().."A")
  841.                         else
  842.                             DrawBelow(v:Health().. "H")
  843.                         end
  844.                     end
  845.                    
  846.                     if niggermenu.ESP.Vars["Radar"]:GetBool() then
  847.                         surface.SetDrawColor(color)
  848.                         local myPos = niggermenu.Ply:GetPos()
  849.                         local theirPos = v:GetPos()
  850.                         local myAngles = niggermenu.Ply:GetAngles()
  851.                        
  852.                         local theirX = (radarX + (radarWidth / 2)) + ((theirPos.x - myPos.x) / niggermenu.ESP.Vars["RadarScale"]:GetInt())
  853.                         local theirY = (radarY + (radarHeight / 2)) + ((myPos.y - theirPos.y) / niggermenu.ESP.Vars["RadarScale"]:GetInt())
  854.                        
  855.                         //Now i have to rotate this
  856.                         local myRotation = myAngles.y - 90
  857.                         myRotation = math.rad(myRotation)
  858.                        
  859.                         theirX = theirX - (radarX + (radarWidth / 2))
  860.                         theirY = theirY - (radarY + (radarHeight / 2))
  861.                         local newX = theirX * math.cos(myRotation) - theirY * math.sin(myRotation)
  862.                         local newY = theirX * math.sin(myRotation) + theirY * math.cos(myRotation)
  863.                         newX = newX + (radarX + (radarWidth / 2))
  864.                         newY = newY + (radarY + (radarHeight / 2))
  865.                        
  866.                         //And now that its rotated i can check if its within our radars bounds and draw it
  867.                         if newX < (radarX + radarWidth) and newX > radarX and newY < (radarY + radarHeight) and newY > radarY then
  868.                             niggermenu.DrawArrow(newX, newY, v:EyeAngles().y - myAngles.y)
  869.                         end
  870.                     end
  871.                 elseif niggermenu.TTT and niggermenu.ESP.Vars["Bodies"]:GetBool() and v:GetClass() == "prop_ragdoll" then
  872.                     surface.SetFont("ESPFont")
  873.                    
  874.                     //Im just going to position this info at the center of the player, if i get any complaints ill change it
  875.                     local pos = v:LocalToWorld(v:OBBCenter())
  876.                     local poscreen = pos:ToScreen()
  877.                     local W, H = surface.GetTextSize("Sample") //It doesnt have to be perfect but this will help center the text more.
  878.                     local y = poscreen.y - (H * 1.5)
  879.                    
  880.                     local function DrawText(text)
  881.                         local W, H = surface.GetTextSize(text)
  882.                         surface.SetTextPos(poscreen.x - W / 2, y)
  883.                         surface.DrawText(text)
  884.                        
  885.                         y = y + H
  886.                     end
  887.                    
  888.                     surface.SetTextColor(niggermenu.Style.Vars["BodyText"].color)
  889.                     DrawText("Credits: "..niggermenu.TTTCORPSE.GetCredits(v, 0))
  890.                     DrawText("Name: "..niggermenu.TTTCORPSE.GetPlayerNick(v, "Unknown"))
  891.                     DrawText("Found: "..tostring(niggermenu.TTTCORPSE.GetFound(v, false)))
  892.                    
  893.                     if niggermenu.ESP.Vars["Radar"] then
  894.                         surface.SetDrawColor(niggermenu.Style.Vars["BodyText"].color)
  895.                         local myPos = niggermenu.Ply:GetPos()
  896.                         local theirPos = v:GetPos()
  897.                        
  898.                         local theirX = (radarX + (radarWidth / 2)) + ((theirPos.x - myPos.x) / niggermenu.ESP.Vars["RadarScale"]:GetInt())
  899.                         local theirY = (radarY + (radarHeight / 2)) + ((myPos.y - theirPos.y) / niggermenu.ESP.Vars["RadarScale"]:GetInt())
  900.                        
  901.                         //Now i have to rotate this
  902.                         local myRotation = niggermenu.Ply:GetAngles().y - 90
  903.                         myRotation = math.rad(myRotation)
  904.                        
  905.                         theirX = theirX - (radarX + (radarWidth / 2))
  906.                         theirY = theirY - (radarY + (radarHeight / 2))
  907.                         local newX = theirX * math.cos(myRotation) - theirY * math.sin(myRotation)
  908.                         local newY = theirX * math.sin(myRotation) + theirY * math.cos(myRotation)
  909.                         newX = newX + (radarX + (radarWidth / 2))
  910.                         newY = newY + (radarY + (radarHeight / 2))
  911.                        
  912.                         //And now that its rotated i can check if its within our radars bounds and draw it
  913.                         if newX < (radarX + radarWidth) and newX > radarX and newY < (radarY + radarHeight) and newY > radarY then
  914.                             niggermenu.DrawFilledCircle(newX, newY, 2, 4)
  915.                         end
  916.                     end
  917.                 elseif niggermenu.Entities.Vars["Active"]:GetBool() and table.HasValue(niggermenu.Entities.List, v:GetClass()) then
  918.                     if v:GetClass() == "cw_item" then -- Dingus ESP
  919.                         local itemTable = v.cwItemTable;
  920.                         local text
  921.                         if itemTable then
  922.                             text = itemTable("name")
  923.                         else
  924.                             text = v:GetModel()
  925.                         end
  926.                         surface.SetFont("ESPFont")
  927.                         surface.SetTextColor(niggermenu.Style.Vars["ESPText"].color)
  928.                        
  929.                         local W, H = surface.GetTextSize(text)
  930.                         local PosScreen = v:GetPos():ToScreen()
  931.                         surface.SetTextPos(PosScreen.x - W / 2, PosScreen.y)
  932.                         surface.DrawText(text)
  933.                     else
  934.                         surface.SetFont("ESPFont")
  935.                         surface.SetTextColor(niggermenu.Style.Vars["ESPText"].color)
  936.                    
  937.                         local text = v:GetClass()
  938.                         local W, H = surface.GetTextSize(text)
  939.                    
  940.                         local PosScreen = v:GetPos():ToScreen()
  941.                         surface.SetTextPos(PosScreen.x - W / 2, PosScreen.y)
  942.                         surface.DrawText(text)
  943.                     end
  944.                 end
  945.             end
  946.            
  947.             surface.SetFont("default")
  948.             if v:IsPlayer() and v:IsSuperAdmin() then
  949.                 if not table.HasValue(niggermenu.SuperAdmins, v) then
  950.                     table.insert(niggermenu.SuperAdmins, v)
  951.                     niggermenu.Message("Sarge, Super Admin "..v:Nick().." has connected to the server!")
  952.                     if niggermenu.Misc.Vars["Sounds"]:GetBool() then
  953.                         surface.PlaySound("vo/npc/Alyx/watchout02.wav")
  954.                     end
  955.                 end
  956.             end        
  957.             if v:IsPlayer() and v:IsAdmin() and not v:IsSuperAdmin() then
  958.                 if not table.HasValue(niggermenu.Admins, v) then
  959.                     table.insert(niggermenu.Admins, v)
  960.                     niggermenu.Message("Sarge, Admin "..v:Nick().." has connected to the server!")
  961.                     if niggermenu.Misc.Vars["Sounds"]:GetBool() then
  962.                         surface.PlaySound("vo/npc/Alyx/watchout01.wav")
  963.                     end
  964.                 end
  965.             end    
  966.             for k,v in SortedPairs(niggermenu.Admins, true) do
  967.                 if not IsValid(v) then
  968.                     table.remove(niggermenu.Admins, k)
  969.                 end
  970.             end
  971.             for k,v in SortedPairs(niggermenu.SuperAdmins, true) do
  972.                 if not IsValid(v) then
  973.                     table.remove(niggermenu.SuperAdmins, k)
  974.                 end
  975.             end
  976.                
  977.             if v:IsPlayer() and v:GetObserverTarget() == niggermenu.Ply then
  978.                 if not table.HasValue(niggermenu.Spectators, v) then
  979.                     table.insert(niggermenu.Spectators, v)
  980.                     niggermenu.Message(v:Nick().." is spectating you.")
  981.                     if niggermenu.Misc.Vars["Sounds"]:GetBool() then
  982.                         surface.PlaySound("vo/npc/female01/ohno.wav")
  983.                     end            
  984.                 end
  985.             end
  986.             for k,v in SortedPairs(niggermenu.Spectators, true) do
  987.                 if IsValid(v) then
  988.                     if v:GetObserverTarget() != niggermenu.Ply then
  989.                         table.remove(niggermenu.Spectators, k)
  990.                     end
  991.                 else
  992.                     table.remove(niggermenu.Spectators, k)
  993.                 end
  994.             end
  995.            
  996.             if niggermenu.TTT and niggermenu.Misc.Vars["TraitorFinder"]:GetBool() then
  997.                 if GetRoundState() == 3 and v:IsWeapon() and type(v:GetOwner()) == "Player" and v.Buyer == nil and v.CanBuy and table.HasValue(v.CanBuy, 1) then
  998.                     local owner = v:GetOwner()
  999.                     if owner:GetRole() == 2 then
  1000.                         v.Buyer = owner
  1001.                     else
  1002.                         niggermenu.Message(owner:Nick().." got a new toy: "..v:GetClass())
  1003.                         v.Buyer = owner
  1004.                         table.insert(niggermenu.Traitors, owner)
  1005.                         if niggermenu.Misc.Vars["Sounds"]:GetBool() then
  1006.                             surface.PlaySound("weapons/shotgun/shotgun_cock.wav")
  1007.                         end
  1008.                     end
  1009.                 elseif GetRoundState() != 3 then
  1010.                     table.Empty(niggermenu.Traitors)
  1011.                 end
  1012.             end
  1013.            
  1014.             if niggermenu.Misc.Vars["Deaths"]:GetBool() and v:IsPlayer() then
  1015.                 if v:Alive() then
  1016.                     v.IsAlive = true
  1017.                 elseif v.IsAlive then
  1018.                     niggermenu.Message(3, v:Nick().." just got naturally selected. Fuckin' Jock.")
  1019.                     v.IsAlive = false
  1020.                     if niggermenu.Misc.Vars["Sounds"]:GetBool() then
  1021.                         surface.PlaySound("npc/combine_soldier/vo/onedown.wav")
  1022.                     end
  1023.                 end            
  1024.             end
  1025.         end
  1026.        
  1027.         surface.SetFont("default")
  1028.         surface.SetTextColor(Color(255, 255, 255, 255))
  1029.         local AdminWidest = 0
  1030.         local AdminTotalHeight = 0
  1031.         local AdminHeight = 20
  1032.         if niggermenu.Misc.Vars["ShowAdmins"]:GetBool() then
  1033.             for k,v in pairs(niggermenu.SuperAdmins) do
  1034.                 local W, H = surface.GetTextSize(v:Nick().." - Super Admin")
  1035.                 if W > AdminWidest then
  1036.                     AdminWidest = W
  1037.                 end
  1038.                 AdminTotalHeight = AdminTotalHeight + H
  1039.             end
  1040.             for k,v in pairs(niggermenu.Admins) do
  1041.                 local W, H = surface.GetTextSize(v:Nick().." - Admin")
  1042.                 if W > AdminWidest then
  1043.                     AdminWidest = W
  1044.                 end
  1045.                 AdminTotalHeight = AdminTotalHeight + H
  1046.             end
  1047.             draw.RoundedBox(8, ScrW() - AdminWidest - 30, 10, AdminWidest + 20, AdminTotalHeight + 20, Color(0, 0, 0, 150 ))
  1048.             for k,v in pairs(niggermenu.SuperAdmins) do
  1049.                 local text = v:Nick().." - Super Admin"
  1050.                 local W, H = surface.GetTextSize(text)
  1051.                 surface.SetTextPos(ScrW() - 20 - AdminWidest, AdminHeight)
  1052.                 surface.DrawText(text)
  1053.                 AdminHeight = AdminHeight + H
  1054.             end
  1055.             for k,v in pairs(niggermenu.Admins) do
  1056.                 local text = v:Nick().." - Admin"
  1057.                 local W, H = surface.GetTextSize(text)
  1058.                 surface.SetTextPos(ScrW() - 20 - AdminWidest, AdminHeight)
  1059.                 surface.DrawText(text)
  1060.                 AdminHeight = AdminHeight + H
  1061.             end
  1062.         end
  1063.        
  1064.         local SpecWidest = 0
  1065.         local SpecTotalHeight = 0
  1066.         local SpecHeight = AdminTotalHeight + 50
  1067.         if niggermenu.Misc.Vars["ShowSpectators"]:GetBool() then
  1068.             for k,v in pairs(niggermenu.Spectators) do
  1069.                 local W, H = surface.GetTextSize(v:Nick())
  1070.                 if W > SpecWidest then
  1071.                     SpecWidest = W
  1072.                 end
  1073.                 SpecTotalHeight = SpecTotalHeight + H
  1074.             end
  1075.             draw.RoundedBox(8, ScrW() - SpecWidest - 30, 40 + AdminTotalHeight, SpecWidest + 20, SpecTotalHeight + 20, Color(0, 0, 0, 150 ))
  1076.             for k,v in pairs(niggermenu.Spectators) do
  1077.                 local text = v:Nick()
  1078.                 local W, H = surface.GetTextSize(text)
  1079.                 surface.SetTextPos(ScrW() - 20 - SpecWidest, SpecHeight)
  1080.                 surface.DrawText(text)
  1081.                 SpecHeight = SpecHeight + H
  1082.             end
  1083.         end
  1084.        
  1085.         if niggermenu.Misc.Vars["Crosshair"]:GetBool() then
  1086.             local size = niggermenu.Misc.Vars["CrosshairSize"]:GetInt()
  1087.             local MiddleScreen = {x = surface.ScreenWidth() / 2, y = surface.ScreenHeight() / 2}
  1088.             surface.SetDrawColor(niggermenu.Style.Vars["Crosshair"].color)
  1089.             surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x - size, MiddleScreen.y)
  1090.             surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x, MiddleScreen.y - size)
  1091.             surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x + size, MiddleScreen.y)
  1092.             surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x, MiddleScreen.y + size)
  1093.         end
  1094.     end
  1095. end)
  1096.  
  1097. hook.Add("Think", niggermenu.RandomName(math.random(10, 15)), function()
  1098.     if niggermenu.Active:GetBool() then
  1099.         if niggermenu.Aimbot.Vars["Active"]:GetBool() and not (niggermenu.Aimbot.Vars["PanicMode"]:GetBool() and #niggermenu.Spectators > 0) then
  1100.             if not niggermenu.Aimbot.Vars["AimOnKey"]:GetBool() or (niggermenu.Aimbot.Vars["AimOnKey"]:GetBool() and niggermenu.KeyPressed(niggermenu.Aimbot.Vars["AimOnKey_Key"]:GetString())) then
  1101.                 if niggermenu.ValidTarget() then
  1102.                     local BoneOrder = {}
  1103.                     if niggermenu.Aimbot.CurTarget.BoneToAimAt and niggermenu.Aimbot.Vars["RandomBones"]:GetBool() then
  1104.                         table.insert(BoneOrder, niggermenu.Aimbot.CurTarget.BoneToAimAt)
  1105.                         table.Add(BoneOrder, niggermenu.GetRandomBones())
  1106.                         table.Add(BoneOrder, niggermenu.Bones)
  1107.                     else
  1108.                         if niggermenu.Aimbot.Vars["RandomBones"]:GetBool() then
  1109.                             table.Add(BoneOrder, niggermenu.GetRandomBones())
  1110.                             table.Add(BoneOrder, niggermenu.Bones)
  1111.                         else
  1112.                             table.Add(BoneOrder, niggermenu.Bones)
  1113.                         end
  1114.                     end
  1115.                     for k = 1, #BoneOrder do
  1116.                         local v = BoneOrder[k]
  1117.                         local bone = niggermenu.Aimbot.CurTarget:LookupBone(v)
  1118.                         if bone != nil then
  1119.                             local pos, ang = niggermenu.Aimbot.CurTarget:GetBonePosition(bone)
  1120.                             if v == "ValveBiped.Bip01_Head1" then
  1121.                                 pos = pos + Vector(0, 0, 3) //Aiming a little higher for the head
  1122.                             end
  1123.                             local total, needed = 300, {300, 300}
  1124.                            
  1125.                             if niggermenu.Aimbot.Vars["Prediction"]:GetBool() then
  1126.                                 local tarSpeed = niggermenu.Aimbot.CurTarget:GetVelocity() * 0.013
  1127.                                 local plySpeed = niggermenu.Ply:GetVelocity() * 0.013
  1128.                                 total, needed = niggermenu.AngleTo(pos - plySpeed + tarSpeed)
  1129.                             else
  1130.                                 total, needed = niggermenu.AngleTo(pos)
  1131.                             end
  1132.                                
  1133.                             if niggermenu.SpotIsVisible(pos) and total < niggermenu.Aimbot.Vars["MaxAngle"]:GetInt() then
  1134.                                 local myAngles = niggermenu.Ply:GetAngles()                            
  1135.                                 local NewAngles = Angle(myAngles.p + needed.p, myAngles.y + needed.y, 0)
  1136.                                
  1137.                                 if niggermenu.Aimbot.Vars["AntiSnap"]:GetBool() then
  1138.                                     local speed = niggermenu.Aimbot.Vars["AntiSnapSpeed"]:GetInt()
  1139.                                     NewAngles = (Angle(math.Approach(myAngles.p, NewAngles.p, speed), math.Approach(myAngles.y, NewAngles.y, speed), 0))
  1140.                                 end
  1141.                                
  1142.                                 niggermenu.Ply:SetEyeAngles(NewAngles)
  1143.                                 niggermenu.Aimbot.CurTarget.BoneToAimAt = BoneOrder[k]
  1144.                                 break
  1145.                             end
  1146.                         end
  1147.                     end
  1148.                 else
  1149.                     niggermenu.Aimbot.CurTarget = niggermenu.GetTarget()
  1150.                 end
  1151.             else
  1152.                 niggermenu.Aimbot.CurTarget = nil
  1153.             end
  1154.         end
  1155.        
  1156.         if niggermenu.Misc.Vars["NoRecoil"]:GetBool() then
  1157.             if IsValid(niggermenu.Ply:GetActiveWeapon()) then
  1158.                 local weapon = niggermenu.Ply:GetActiveWeapon()
  1159.                 if weapon.Primary then
  1160.                     weapon.OldRecoil = weapon.OldRecoil or weapon.Primary.Recoil or weapon.Recoil
  1161.                     weapon.Primary.Recoil = 0
  1162.                     weapon.Recoil = 0
  1163.                 else
  1164.                     weapon.OldRecoil = weapon.OldRecoil or weapon.Recoil
  1165.                     weapon.Recoil = 0
  1166.                 end
  1167.             end
  1168.         elseif IsValid(niggermenu.Ply:GetActiveWeapon()) then
  1169.             local weapon = niggermenu.Ply:GetActiveWeapon()
  1170.             if weapon.Primary then
  1171.                 weapon.Primary.Recoil = weapon.OldRecoil or weapon.Primary.Recoil or weapon.Recoil
  1172.                 weapon.Recoil = weapon.OldRecoil or weapon.Recoil or weapon.Primary.Recoil
  1173.             else
  1174.                 weapon.Recoil = weapon.OldRecoil or weapon.Recoil
  1175.             end
  1176.         end
  1177.        
  1178.         if niggermenu.DarkRP and niggermenu.Misc.Vars["BuyHealth"]:GetBool() then
  1179.             if niggermenu.Ply:Alive() and niggermenu.Ply:Health() < niggermenu.Misc.Vars["BuyHealth_Minimum"]:GetInt() then
  1180.                 niggermenu.Ply:ConCommand("say /buyhealth")
  1181.             end
  1182.         end
  1183.     end
  1184. end)
  1185.  
  1186. niggermenu.Misc.NextReload = CurTime()
  1187. niggermenu.Misc.ShootNext = true
  1188. hook.Add("CreateMove", niggermenu.RandomName(math.random(10, 15)), function(cmd)
  1189.     if niggermenu.Active:GetBool() then    
  1190.         local DontShoot = {"gmod_tool", "gmod_camera", "weapon_physgun", "weapon_physcannon"}
  1191.         if niggermenu.Aimbot.Vars["AutoShoot"]:GetBool() and niggermenu.Aimbot.Vars["Active"]:GetBool() and niggermenu.Ply:GetEyeTrace().Entity == niggermenu.Aimbot.CurTarget and IsValid(niggermenu.Ply:GetActiveWeapon()) and not table.HasValue(DontShoot, niggermenu.Ply:GetActiveWeapon():GetClass()) then
  1192.             cmd:SetButtons(cmd:GetButtons() + IN_ATTACK)
  1193.         end
  1194.        
  1195.         if niggermenu.Misc.Vars["BunnyHop"]:GetBool() and cmd:KeyDown(IN_JUMP) and niggermenu.KeyPressed(niggermenu.Misc.Vars["BunnyHop_Key"]:GetString()) then
  1196.             cmd:SetButtons(cmd:GetButtons() - IN_JUMP)
  1197.         end
  1198.         if niggermenu.Misc.Vars["BunnyHop"]:GetBool() and niggermenu.Ply:OnGround() and niggermenu.KeyPressed(niggermenu.Misc.Vars["BunnyHop_Key"]:GetString()) then
  1199.             cmd:SetButtons(cmd:GetButtons() + IN_JUMP)
  1200.         end
  1201.        
  1202.         local DontReload = {"gmod_tool", "gmod_camera", "weapon_physgun", "weapon_physcannon", "weapon_crowbar"}
  1203.         if niggermenu.Misc.Vars["AutoReload"]:GetBool() and IsValid(niggermenu.Ply:GetActiveWeapon()) and niggermenu.Ply:GetActiveWeapon():Clip1() < 1 and not table.HasValue(DontReload, niggermenu.Ply:GetActiveWeapon():GetClass()) and niggermenu.Misc.NextReload < CurTime() then
  1204.             cmd:SetButtons(cmd:GetButtons() + IN_RELOAD)
  1205.         end
  1206.        
  1207.         if niggermenu.Misc.Vars["AutoPistol"]:GetBool() and IsValid(niggermenu.Ply:GetActiveWeapon()) then
  1208.             local weapon = niggermenu.Ply:GetActiveWeapon()
  1209.             if weapon.Primary and type(weapon.Primary.Automatic) == "boolean" and not weapon.Primary.Automatic then
  1210.                 if cmd:KeyDown(IN_ATTACK) then
  1211.                     if niggermenu.Misc.ShootNext then
  1212.                         niggermenu.Misc.ShootNext = false
  1213.                     else
  1214.                         cmd:SetButtons(cmd:GetButtons() - IN_ATTACK)
  1215.                         niggermenu.Misc.ShootNext = true
  1216.                     end
  1217.                 end                
  1218.             elseif type(weapon.Automatic) == "boolean" and not weapon.Automatic then
  1219.                 if cmd:KeyDown(IN_ATTACK) then
  1220.                     if niggermenu.Misc.ShootNext then
  1221.                         niggermenu.Misc.ShootNext = false
  1222.                     else
  1223.                         cmd:SetButtons(cmd:GetButtons() - IN_ATTACK)
  1224.                         niggermenu.Misc.ShootNext = true
  1225.                     end
  1226.                 end
  1227.             end
  1228.         end
  1229.     end
  1230. end)
  1231.  
  1232. //Used to see if the player is typing in chat or not. Binds arent called when you're in chat.
  1233. niggermenu.InChat = false
  1234. hook.Add("StartChat", niggermenu.RandomName(math.random(10, 15)), function()
  1235.     niggermenu.InChat = true
  1236. end)
  1237. hook.Add("FinishChat", niggermenu.RandomName(math.random(10, 15)), function()
  1238.     niggermenu.InChat = false
  1239. end)
  1240.  
  1241. concommand.Add("niggermenu_Menu", function()
  1242.     //Im only using DColumnSheet because everyone used DPropertySheet. I just want to be different
  1243.     local main = vgui.Create("DFrame")
  1244.     main:SetSize(500,496)
  1245.     main:Center()
  1246.     main:SetTitle("")
  1247.     main:MakePopup()
  1248.     main:ShowCloseButton(false)
  1249.     main.Paint = function()
  1250.         draw.RoundedBox( 0, 0, 0, main:GetWide(), main:GetTall(), Color( 0, 0, 0, 150 ) )
  1251.     end
  1252.    
  1253.     local PanicButton = vgui.Create("DButton", main)
  1254.     PanicButton:SetSize(50, 20)
  1255.     PanicButton:SetPos(415, 3)
  1256.     local function Enable()
  1257.         PanicButton:SetText("Disable")
  1258.         PanicButton.DoClick = function()
  1259.             PanicButton:SetText("Enable")
  1260.             PanicButton.DoClick = Enable
  1261.             niggermenu.Ply:ConCommand("niggermenu_Active 0")
  1262.         end
  1263.         niggermenu.Ply:ConCommand("niggermenu_Active 1")
  1264.     end
  1265.     local function Disable()
  1266.         PanicButton:SetText("Enable")
  1267.         PanicButton.DoClick = function()
  1268.             PanicButton:SetText("Disable")
  1269.             PanicButton.DoClick = Disable
  1270.             niggermenu.Ply:ConCommand("niggermenu_Active 1")
  1271.         end
  1272.         niggermenu.Ply:ConCommand("niggermenu_Active 0")
  1273.     end
  1274.     if niggermenu.Active:GetBool() then
  1275.         PanicButton:SetText("Disable")
  1276.         PanicButton.DoClick = Disable
  1277.     else
  1278.         PanicButton:SetText("Enable")
  1279.         PanicButton.DoClick = Enable
  1280.     end
  1281.    
  1282.     local CloseButton = vgui.Create("DButton", main)
  1283.     CloseButton:SetSize(30, 20)
  1284.     CloseButton:SetPos(465, 3)
  1285.     CloseButton:SetText("X")
  1286.     CloseButton.DoClick = function()
  1287.         main:Close()
  1288.     end
  1289.    
  1290.     local title = vgui.Create("DLabel", main)
  1291.     title:SetColor(Color(255, 255, 255, 255))
  1292.     title:SetFont("TitleFont")
  1293.     title:SetText("Niggermenu - "..niggermenu.Version)
  1294.     title:SizeToContents()
  1295.     title:SetPos(main:GetWide() / 2 - title:GetWide() / 2,3)   
  1296.    
  1297.     ColumnSheet = vgui.Create("DColumnSheet",main)
  1298.     ColumnSheet:SetPos(5, 25)
  1299.     ColumnSheet:SetSize(500 ,465)
  1300.    
  1301.     local y = 40
  1302.     local function ToggleOption(name, parent, var)
  1303.         local Options = vgui.Create("DComboBox", parent)
  1304.         Options:SetSize(100, 20)
  1305.         Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1306.         Options:AddChoice("Off", 0)
  1307.         Options:AddChoice("On", 1)
  1308.         Options.OnSelect = function(panel,index,value,data)
  1309.             niggermenu.Ply:ConCommand(var.." "..data)
  1310.         end
  1311.         Options:SetText(Options:GetOptionText(GetConVar(var):GetInt() + 1))
  1312.        
  1313.         local text = vgui.Create("DLabel", parent)
  1314.         text:SetColor(Color(0, 0, 0, 255))
  1315.         text:SetFont("CatagoryText")
  1316.         text:SetText(name)
  1317.         text:SizeToContents()
  1318.         text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1319.        
  1320.         y = y + Options:GetTall() + 20
  1321.     end
  1322.    
  1323.     local function SetKeyOption(name, parent, var)     
  1324.         local Options = vgui.Create("DButton", parent)
  1325.         Options:SetSize(100, 20)
  1326.         Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1327.         Options:SetText(GetConVar(var):GetString())
  1328.         Options.DoClick = function()
  1329.             Options:SetText("Press a key...")
  1330.             Options.Think = function()
  1331.                 for k = 107, 111 do
  1332.                     if input.IsMouseDown(k) then
  1333.                         niggermenu.Ply:ConCommand(var.." "..niggermenu.MouseKeys[k])
  1334.                         Options:SetText(niggermenu.MouseKeys[k])
  1335.                         Options.Think = nil
  1336.                     end
  1337.                 end
  1338.                
  1339.                 for k = 0, 130 do
  1340.                     if input.IsKeyDown(k) then
  1341.                         niggermenu.Ply:ConCommand(var.." "..niggermenu.Keys[k])
  1342.                         Options:SetText(niggermenu.Keys[k])
  1343.                         Options.Think = nil
  1344.                     end
  1345.                 end
  1346.             end
  1347.         end
  1348.        
  1349.         local text = vgui.Create("DLabel", parent)
  1350.         text:SetColor(Color(0, 0, 0, 255))
  1351.         text:SetFont("CatagoryText")
  1352.         text:SetText(name)
  1353.         text:SizeToContents()
  1354.         text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1355.        
  1356.         y = y + Options:GetTall() + 20
  1357.     end
  1358.    
  1359.     local function SetNumberOption(name, parent, var, min, max, decimals)      
  1360.         local Options = vgui.Create("DNumberWang", parent)
  1361.         Options:SetSize(100, 20)
  1362.         Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1363.         Options:SetMin(min)
  1364.         Options:SetMax(max)
  1365.         Options:SetDecimals(decimals)
  1366.         Options:SetConVar(var)
  1367.        
  1368.         local text = vgui.Create("DLabel", parent)
  1369.         text:SetColor(Color(0, 0, 0, 255))
  1370.         text:SetFont("CatagoryText")
  1371.         text:SetText(name)
  1372.         text:SizeToContents()
  1373.         text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1374.        
  1375.         y = y + Options:GetTall() + 20
  1376.     end
  1377.    
  1378.     local function MultiOption(name, parent, var, tab)     
  1379.         local Options = vgui.Create("DComboBox", parent)
  1380.         Options:SetSize(100, 20)
  1381.         Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1382.         for i = 1, #tab do
  1383.             Options:AddChoice(tab[i])
  1384.         end
  1385.         Options.OnSelect = function(panel,index,value,data)
  1386.             niggermenu.Ply:ConCommand(var.." "..value)
  1387.         end
  1388.         Options:SetText(GetConVar(var):GetString())
  1389.        
  1390.         local text = vgui.Create("DLabel", parent)
  1391.         text:SetColor(Color(0, 0, 0, 255))
  1392.         text:SetFont("CatagoryText")
  1393.         text:SetText(name)
  1394.         text:SizeToContents()
  1395.         text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1396.        
  1397.         y = y + Options:GetTall() + 20
  1398.     end
  1399.    
  1400.     //Starting the Aimbot panel
  1401.     local Aimbot = vgui.Create("DPanel")
  1402.     Aimbot:SetSize(379, 465)
  1403.     Aimbot.Paint = function()
  1404.         draw.RoundedBox( 0, 0, 0, Aimbot:GetWide(), Aimbot:GetTall(), Color( 240, 240, 240, 255 ) )
  1405.     end
  1406.    
  1407.     local title = vgui.Create("DLabel", Aimbot)
  1408.     title:SetColor(Color(0, 0, 0, 255))
  1409.     title:SetFont("CatagoryHeader")
  1410.     title:SetText("Aimbot")
  1411.     title:SizeToContents()
  1412.     title:SetPos(Aimbot:GetWide() / 2 - title:GetWide() / 2, 0)
  1413.    
  1414.     ToggleOption("Active", Aimbot, "niggermenu_Aimbot_Active")
  1415.     ToggleOption("Random Bones", Aimbot, "niggermenu_Aimbot_RandomBones")
  1416.     MultiOption("Preferance", Aimbot, "niggermenu_Aimbot_Preferance", {"Distance", "Angle"})   
  1417.     ToggleOption("Attack Players", Aimbot, "niggermenu_Aimbot_AttackPlayers")
  1418.     ToggleOption("Attack NPCs", Aimbot, "niggermenu_Aimbot_AttackNPCs")
  1419.     ToggleOption("Prediction", Aimbot, "niggermenu_Aimbot_Prediction")
  1420.     ToggleOption("Aim On Key", Aimbot, "niggermenu_Aimbot_AimOnKey")
  1421.     SetKeyOption("Key", Aimbot, "niggermenu_Aimbot_AimOnKey_Key")
  1422.     ToggleOption("Anti Snap", Aimbot, "niggermenu_Aimbot_AntiSnap")
  1423.     SetNumberOption("Anti Snap Speed", Aimbot, "niggermenu_Aimbot_AntiSnapSpeed", 1, 5, 2)
  1424.     SetNumberOption("Max Angle", Aimbot, "niggermenu_Aimbot_MaxAngle", 0, 270, 0)
  1425.     ToggleOption("Auto Shoot", Aimbot, "niggermenu_Aimbot_AutoShoot")
  1426.     ToggleOption("Panic Mode", Aimbot, "niggermenu_Aimbot_PanicMode")
  1427.     ToggleOption("Ignore Team", Aimbot, "niggermenu_Aimbot_IgnoreTeam")
  1428.    
  1429.     if y > 465 then
  1430.         Aimbot:SetTall(y)
  1431.     end
  1432.    
  1433.     //This is the best way i can find to add a scrollbar to the menu...
  1434.     AimbotList = vgui.Create( "DPanelList" )
  1435.     AimbotList:SetSize(379, 465)
  1436.     AimbotList:SetSpacing(0)
  1437.     AimbotList:EnableHorizontal(false)
  1438.     AimbotList:EnableVerticalScrollbar(true)
  1439.     AimbotList:AddItem(Aimbot)
  1440.    
  1441.     ColumnSheet:AddSheet("Aimbot", AimbotList, "icon16/application_xp_terminal.png")
  1442.    
  1443.     //Starting the Friends panel
  1444.     local FriendsPanel = vgui.Create("DPanel")
  1445.     FriendsPanel:SetSize(379, 465)
  1446.     FriendsPanel.Paint = function()
  1447.         draw.RoundedBox( 0, 0, 0, FriendsPanel:GetWide(), FriendsPanel:GetTall(), Color( 240, 240, 240, 255 ) )
  1448.     end
  1449.    
  1450.     local title = vgui.Create("DLabel", FriendsPanel)
  1451.     title:SetColor(Color(0, 0, 0, 255))
  1452.     title:SetFont("CatagoryHeader")
  1453.     title:SetText("Friends")
  1454.     title:SizeToContents()
  1455.     title:SetPos(FriendsPanel:GetWide() / 2 - title:GetWide() / 2, 3)
  1456.    
  1457.     local Friends = {}
  1458.     local Enemies = {}
  1459.    
  1460.     local players = player.GetAll()
  1461.     for k = 1, #players do
  1462.         local v = players[k]
  1463.         if v != niggermenu.Ply then
  1464.             if table.HasValue(niggermenu.Friends.List, v:SteamID()) then
  1465.                 table.insert(Friends, v)
  1466.             else
  1467.                 table.insert(Enemies, v)
  1468.             end
  1469.         end
  1470.     end
  1471.    
  1472.     y = 40
  1473.     local EnemiesList = vgui.Create("DListView", FriendsPanel) //Need this up here so FriendsList can reference it.
  1474.     local FriendsList = vgui.Create("DListView", FriendsPanel)
  1475.     FriendsList:SetSize(150, 200)
  1476.     FriendsList:SetPos(FriendsPanel:GetWide() * 0.25 - FriendsList:GetWide() / 2, y)
  1477.     FriendsList:SetMultiSelect(false)
  1478.     FriendsList:AddColumn("Friends")
  1479.     for k = 1, #Friends do
  1480.         FriendsList:AddLine(Friends[k]:Nick())
  1481.     end
  1482.     FriendsList.DoDoubleClick = function(panel, index, line)
  1483.         table.insert(Enemies, Friends[index])
  1484.         table.remove(Friends, index)
  1485.        
  1486.         FriendsList:Clear()
  1487.         EnemiesList:Clear()
  1488.         for k = 1, #Friends do
  1489.             FriendsList:AddLine(Friends[k]:Nick())
  1490.         end
  1491.         for k = 1, #Enemies do
  1492.             EnemiesList:AddLine(Enemies[k]:Nick())
  1493.         end
  1494.        
  1495.         niggermenu.Friends.List = {}
  1496.         for k = 1, #Friends do
  1497.             table.insert(niggermenu.Friends.List, Friends[k]:SteamID())
  1498.         end
  1499.         //niggermenu.SaveData()
  1500.     end
  1501.    
  1502.     EnemiesList:SetSize(150, 200)
  1503.     EnemiesList:SetPos(FriendsPanel:GetWide() * 0.75 - EnemiesList:GetWide() / 2, y)
  1504.     EnemiesList:SetMultiSelect(false)
  1505.     EnemiesList:AddColumn("Enemies")
  1506.     for k = 1, #Enemies do
  1507.         EnemiesList:AddLine(Enemies[k]:Nick())
  1508.     end
  1509.     EnemiesList.DoDoubleClick = function(panel, index, line)
  1510.         table.insert(Friends, Enemies[index])
  1511.         table.remove(Enemies, index)
  1512.        
  1513.         FriendsList:Clear()
  1514.         EnemiesList:Clear()
  1515.         for k = 1, #Friends do
  1516.             FriendsList:AddLine(Friends[k]:Nick())
  1517.         end
  1518.         for k = 1, #Enemies do
  1519.             EnemiesList:AddLine(Enemies[k]:Nick())
  1520.         end
  1521.        
  1522.         niggermenu.Friends.List = {}
  1523.         for k = 1, #Friends do
  1524.             table.insert(niggermenu.Friends.List, Friends[k]:SteamID())
  1525.         end
  1526.         //niggermenu.SaveData()
  1527.     end
  1528.    
  1529.     y = y + EnemiesList:GetTall() + 20
  1530.     ToggleOption("Use", FriendsPanel, "niggermenu_Friends_Active")
  1531.     ToggleOption("Reverse", FriendsPanel, "niggermenu_Friends_Reverse")
  1532.    
  1533.     if y > 465 then
  1534.         FriendsPanel:SetTall(y)
  1535.     end
  1536.    
  1537.     local FriendsPanelList = vgui.Create( "DPanelList" )
  1538.     FriendsPanelList:SetSize(379, 465)
  1539.     FriendsPanelList:SetSpacing(0)
  1540.     FriendsPanelList:EnableHorizontal(false)
  1541.     FriendsPanelList:EnableVerticalScrollbar(true)
  1542.     FriendsPanelList:AddItem(FriendsPanel)
  1543.    
  1544.     ColumnSheet:AddSheet("Friends", FriendsPanelList, "icon16/group.png")
  1545.  
  1546.     //Starting the ESP panel
  1547.     local ESP = vgui.Create("DPanel")
  1548.     ESP:SetSize(379, 465)
  1549.     ESP.Paint = function()
  1550.         draw.RoundedBox( 0, 0, 0, ESP:GetWide(), ESP:GetTall(), Color( 240, 240, 240, 255 ) )
  1551.     end
  1552.    
  1553.     local title = vgui.Create("DLabel", ESP)
  1554.     title:SetColor(Color(0, 0, 0, 255))
  1555.     title:SetFont("CatagoryHeader")
  1556.     title:SetText("ESP")
  1557.     title:SizeToContents()
  1558.     title:SetPos(ESP:GetWide() / 2 - title:GetWide() / 2, 3)
  1559.    
  1560.     y = 40
  1561.     ToggleOption("Active", ESP, "niggermenu_ESP_Active")
  1562.     ToggleOption("Player Info", ESP, "niggermenu_ESP_Players")
  1563.     ToggleOption("NPC Info", ESP, "niggermenu_ESP_NPCs")
  1564.     MultiOption("Name", ESP, "niggermenu_ESP_Name", {"Off", "Above", "Below"}) 
  1565.     MultiOption("Weapon", ESP, "niggermenu_ESP_Weapons", {"Off", "Above", "Below"})
  1566.     MultiOption("Health", ESP, "niggermenu_ESP_Health", {"Off", "Above", "Below"}) 
  1567.     MultiOption("Distance", ESP, "niggermenu_ESP_Distance", {"Off", "Above", "Below"})
  1568.     MultiOption("Show Traitors", ESP, "niggermenu_ESP_ShowTraitors", {"Off", "Above", "Below"})
  1569.     ToggleOption("Bounding Box", ESP, "niggermenu_ESP_Box")
  1570.     ToggleOption("Body Info", ESP, "niggermenu_ESP_Bodies")
  1571.     ToggleOption("2D Radar", ESP, "niggermenu_ESP_Radar")
  1572.     SetNumberOption("Radar Scale", ESP, "niggermenu_ESP_RadarScale", 1, 100, 0)
  1573.     SetNumberOption("Max Distance", ESP, "niggermenu_ESP_MaxDistance", 0, 8000, 0)
  1574.     ToggleOption("Team Based", ESP, "niggermenu_ESP_TeamBased")
  1575.    
  1576.     if y > 465 then
  1577.         ESP:SetTall(y)
  1578.     end
  1579.    
  1580.     ESPList = vgui.Create( "DPanelList" )
  1581.     ESPList:SetSize(379, 465)
  1582.     ESPList:SetSpacing(0)
  1583.     ESPList:EnableHorizontal(false)
  1584.     ESPList:EnableVerticalScrollbar(true)
  1585.     ESPList:AddItem(ESP)
  1586.    
  1587.     ColumnSheet:AddSheet("ESP", ESPList, "icon16/pencil.png")
  1588.    
  1589.     //Starting the Chams panel
  1590.     local Chams = vgui.Create("DPanel")
  1591.     Chams:SetSize(379, 465)
  1592.     Chams.Paint = function()
  1593.         draw.RoundedBox( 0, 0, 0, Chams:GetWide(), Chams:GetTall(), Color( 240, 240, 240, 255 ) )
  1594.     end
  1595.    
  1596.     local title = vgui.Create("DLabel", Chams)
  1597.     title:SetColor(Color(0, 0, 0, 255))
  1598.     title:SetFont("CatagoryHeader")
  1599.     title:SetText("Chams")
  1600.     title:SizeToContents()
  1601.     title:SetPos(Chams:GetWide() / 2 - title:GetWide() / 2, 3)
  1602.    
  1603.     y = 40
  1604.     ToggleOption("Active", Chams, "niggermenu_Chams_Active")
  1605.     ToggleOption("Draw Players", Chams, "niggermenu_Chams_Players")
  1606.     ToggleOption("Draw NPCs", Chams, "niggermenu_Chams_NPCs")
  1607.     ToggleOption("Draw Weapons", Chams, "niggermenu_Chams_Weapons")
  1608.     ToggleOption("Draw Bodies", Chams, "niggermenu_Chams_Bodies")
  1609.     ToggleOption("Team Based", Chams, "niggermenu_Chams_TeamBased")
  1610.     SetNumberOption("Max Distance", Chams, "niggermenu_Chams_MaxDistance", 0, 8000, 0)
  1611.    
  1612.     if y > 465 then
  1613.         Chams:SetTall(y)
  1614.     end
  1615.    
  1616.     ChamsList = vgui.Create( "DPanelList" )
  1617.     ChamsList:SetSize(379, 465)
  1618.     ChamsList:SetSpacing(0)
  1619.     ChamsList:EnableHorizontal(false)
  1620.     ChamsList:EnableVerticalScrollbar(true)
  1621.     ChamsList:AddItem(Chams)
  1622.    
  1623.     ColumnSheet:AddSheet("Chams", ChamsList, "icon16/eye.png")
  1624.    
  1625.     //Starting the Finder panel
  1626.     local Finder = vgui.Create("DPanel")
  1627.     Finder:SetSize(379, 465)
  1628.     Finder.Paint = function()
  1629.         draw.RoundedBox( 0, 0, 0, Finder:GetWide(), Finder:GetTall(), Color( 240, 240, 240, 255 ) )
  1630.     end
  1631.    
  1632.     local title = vgui.Create("DLabel", Finder)
  1633.     title:SetColor(Color(0, 0, 0, 255))
  1634.     title:SetFont("CatagoryHeader")
  1635.     title:SetText("Entity Finder")
  1636.     title:SizeToContents()
  1637.     title:SetPos(Finder:GetWide() / 2 - title:GetWide() / 2, 3)
  1638.    
  1639.     local ToShow = {}
  1640.     local Others = {}
  1641.    
  1642.     local All = ents.GetAll()
  1643.     for k = 1, #All do
  1644.         local v = All[k]
  1645.         if table.HasValue(niggermenu.Entities.List, v:GetClass()) then
  1646.             if not table.HasValue(ToShow, v:GetClass()) then
  1647.                 table.insert(ToShow, v:GetClass())
  1648.             end
  1649.         elseif not table.HasValue(Others, v:GetClass()) then
  1650.             table.insert(Others, v:GetClass())
  1651.         end
  1652.     end
  1653.    
  1654.     y = 40
  1655.     local IgnoreList = vgui.Create("DListView", Finder) //Need this up here so ToShowList can reference it.
  1656.     local ToShowList = vgui.Create("DListView", Finder)
  1657.     ToShowList:SetSize(150, 350)
  1658.     ToShowList:SetPos(Finder:GetWide() * 0.25 - ToShowList:GetWide() / 2, y)
  1659.     ToShowList:SetMultiSelect(false)
  1660.     ToShowList:AddColumn("To Show")
  1661.     for k = 1, #ToShow do
  1662.         ToShowList:AddLine(ToShow[k])
  1663.     end
  1664.     ToShowList.DoDoubleClick = function(panel, index, line)
  1665.         table.insert(Others, ToShow[index])
  1666.         table.remove(ToShow, index)
  1667.        
  1668.         ToShowList:Clear()
  1669.         IgnoreList:Clear()
  1670.         for k = 1, #ToShow do
  1671.             ToShowList:AddLine(ToShow[k])
  1672.         end
  1673.         for k = 1, #Others do
  1674.             IgnoreList:AddLine(Others[k])
  1675.         end
  1676.        
  1677.         niggermenu.Entities.List = {}
  1678.         for k = 1, #ToShow do
  1679.             table.insert(niggermenu.Entities.List, ToShow[k])
  1680.         end
  1681.         //niggermenu.SaveData()
  1682.     end
  1683.    
  1684.     IgnoreList:SetSize(150, 350)
  1685.     IgnoreList:SetPos(Finder:GetWide() * 0.75 - IgnoreList:GetWide() / 2, y)
  1686.     IgnoreList:SetMultiSelect(false)
  1687.     IgnoreList:AddColumn("Others")
  1688.     for k = 1, #Others do
  1689.         IgnoreList:AddLine(Others[k])
  1690.     end
  1691.     IgnoreList.DoDoubleClick = function(panel, index, line)
  1692.         table.insert(ToShow, Others[index])
  1693.         table.remove(Others, index)
  1694.        
  1695.         ToShowList:Clear()
  1696.         IgnoreList:Clear()
  1697.         for k = 1, #ToShow do
  1698.             ToShowList:AddLine(ToShow[k])
  1699.         end
  1700.         for k = 1, #Others do
  1701.             IgnoreList:AddLine(Others[k])
  1702.         end
  1703.        
  1704.         niggermenu.Entities.List = {}
  1705.         for k = 1, #ToShow do
  1706.             table.insert(niggermenu.Entities.List, ToShow[k])
  1707.         end
  1708.         //niggermenu.SaveData()
  1709.     end
  1710.    
  1711.     y = y + IgnoreList:GetTall() + 20
  1712.     ToggleOption("Active", Finder, "niggermenu_Entities_Active")
  1713.    
  1714.     if y > 465 then
  1715.         Finder:SetTall(y)
  1716.     end
  1717.    
  1718.     local FinderList = vgui.Create( "DPanelList" )
  1719.     FinderList:SetSize(379, 465)
  1720.     FinderList:SetSpacing(0)
  1721.     FinderList:EnableHorizontal(false)
  1722.     FinderList:EnableVerticalScrollbar(true)
  1723.     FinderList:AddItem(Finder)
  1724.    
  1725.     ColumnSheet:AddSheet("Finder", FinderList, "icon16/magnifier.png")
  1726.  
  1727.     //Starting the Misc panel
  1728.     local Misc = vgui.Create("DPanel")
  1729.     Misc:SetSize(379, 465)
  1730.     Misc.Paint = function()
  1731.         draw.RoundedBox( 0, 0, 0, Misc:GetWide(), Misc:GetTall(), Color( 240, 240, 240, 255 ) )
  1732.     end
  1733.    
  1734.     local title = vgui.Create("DLabel", Misc)
  1735.     title:SetColor(Color(0, 0, 0, 255))
  1736.     title:SetFont("CatagoryHeader")
  1737.     title:SetText("Misc")
  1738.     title:SizeToContents()
  1739.     title:SetPos(Misc:GetWide() / 2 - title:GetWide() / 2, 3)
  1740.    
  1741.     y = 40
  1742.     ToggleOption("Show Admins", Misc, "niggermenu_Misc_ShowAdmins")
  1743.     ToggleOption("Crosshair", Misc, "niggermenu_Misc_Cross")
  1744.     SetNumberOption("Corsshair Size", Misc, "niggermenu_Misc_CrossSize", 0, 1000, 0)
  1745.     ToggleOption("No Recoil", Misc, "niggermenu_Misc_NoRecoil")
  1746.     ToggleOption("Spectators", Misc, "niggermenu_Misc_ShowSpectators")
  1747.     ToggleOption("Auto Reload", Misc, "niggermenu_Misc_AutoReload")
  1748.     ToggleOption("Bunny Hop", Misc, "niggermenu_Misc_BunnyHop")
  1749.     SetKeyOption("Key", Misc, "niggermenu_Misc_BunnyHop_Key")
  1750.     ToggleOption("Auto Pistol", Misc, "niggermenu_Misc_AutoPistol")
  1751.     ToggleOption("Buy Health", Misc, "niggermenu_Misc_BuyHealth")
  1752.     SetNumberOption("Minimum", Misc, "niggermenu_Misc_BuyHealth_Minimum", 0, 100, 0)
  1753.     ToggleOption("Traitor Finder", Misc, "niggermenu_Misc_TraitorFinder")
  1754.     ToggleOption("Show Deaths", Misc, "niggermenu_Misc_Deaths")
  1755.     ToggleOption("Sounds", Misc, "niggermenu_Misc_Sounds")
  1756.  
  1757.     if y > 465 then
  1758.         Misc:SetTall(y)
  1759.     end
  1760.    
  1761.     MiscList = vgui.Create( "DPanelList" )
  1762.     MiscList:SetSize(379, 465)
  1763.     MiscList:SetSpacing(0)
  1764.     MiscList:EnableHorizontal(false)
  1765.     MiscList:EnableVerticalScrollbar(true)
  1766.     MiscList:AddItem(Misc)
  1767.  
  1768.     ColumnSheet:AddSheet("Misc", MiscList, "icon16/package.png")
  1769.    
  1770.     local function ColorOption(name, parent, tab)
  1771.         local Options = vgui.Create("DColorMixer", parent)
  1772.         Options:SetSize(150, 100)
  1773.         Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1774.         Options:SetColor(tab.color)//niggermenu.GetColorFromString(GetConVar(var):GetString()))
  1775.         Options:SetWangs(false)
  1776.         Options:SetPalette(false)
  1777.         Options.ValueChanged = function(panel, color)
  1778.             niggermenu.Ply:ConCommand(tab.var:GetName().." ".."Color("..color.r..","..color.g..","..color.b..","..color.a..")")
  1779.             tab.color = niggermenu.GetColorFromString(tab.var:GetString())
  1780.         end
  1781.        
  1782.         local text = vgui.Create("DLabel", parent)
  1783.         text:SetColor(Color(0, 0, 0, 255))
  1784.         text:SetFont("CatagoryText")
  1785.         text:SetText(name)
  1786.         text:SizeToContents()
  1787.         text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1788.        
  1789.         y = y + Options:GetTall() + 10
  1790.     end
  1791.     //Starting the Style panel
  1792.     local Style = vgui.Create("DPanel")
  1793.     Style:SetSize(379, 465)
  1794.     Style.Paint = function()
  1795.         draw.RoundedBox( 0, 0, 0, Style:GetWide(), Style:GetTall(), Color( 240, 240, 240, 255 ) )
  1796.     end
  1797.    
  1798.     local title = vgui.Create("DLabel", Style)
  1799.     title:SetColor(Color(0, 0, 0, 255))
  1800.     title:SetFont("CatagoryHeader")
  1801.     title:SetText("Style")
  1802.     title:SizeToContents()
  1803.     title:SetPos(Style:GetWide() / 2 - title:GetWide() / 2, 3)
  1804.    
  1805.     y = 50
  1806.     ColorOption("Bounding Box", Style, niggermenu.Style.Vars["BoundingBox"])
  1807.     ColorOption("ESP Text", Style, niggermenu.Style.Vars["ESPText"])
  1808.     ColorOption("Crosshair", Style, niggermenu.Style.Vars["Crosshair"])
  1809.     ColorOption("TTT Body Text", Style, niggermenu.Style.Vars["BodyText"])
  1810.     ColorOption("Chams", Style, niggermenu.Style.Vars["Chams"])
  1811.     ColorOption("TTT Body Chams", Style, niggermenu.Style.Vars["BodyChams"])
  1812.    
  1813.     if y > 465 then
  1814.         Style:SetTall(y)
  1815.     end
  1816.    
  1817.     StyleList = vgui.Create( "DPanelList" )
  1818.     StyleList:SetSize(379, 465)
  1819.     StyleList:SetSpacing(0)
  1820.     StyleList:EnableHorizontal(false)
  1821.     StyleList:EnableVerticalScrollbar(true)
  1822.     StyleList:AddItem(Style)
  1823.    
  1824.     ColumnSheet:AddSheet("Style", StyleList, "icon16/color_wheel.png")
  1825. end)
  1826.  
  1827.  
  1828. //Just some fonts
  1829. surface.CreateFont("TitleFont", {font = "Arial", size = 20})
  1830. surface.CreateFont("CatagoryHeader", {font = "CloseCaption_Normal", size = 34})
  1831. surface.CreateFont("CatagoryText", {font = "CloseCaption_Normal", size = 28})
  1832. surface.CreateFont("ESPFont", {font = "CloseCaption_Normal", weight = 1000, size = 15})
  1833.  
  1834. --[[
  1835.     DPropertySheet - Slightly edited so it looks good.
  1836. --]]
  1837. local PANEL = {}
  1838. AccessorFunc( PANEL, "ActiveButton", "ActiveButton" )
  1839.  
  1840. --[[---------------------------------------------------------
  1841. Name: Init
  1842. -----------------------------------------------------------]]
  1843. function PANEL:Init()
  1844.     self.Navigation = vgui.Create( "DScrollPanel", self )
  1845.     self.Navigation:Dock( LEFT )
  1846.     self.Navigation:SetWidth( 100 )
  1847.     self.Navigation:DockMargin( 0, 0, 10, 0 )
  1848.  
  1849.     self.Content = vgui.Create( "Panel", self )
  1850.     self.Content:Dock( FILL )
  1851.  
  1852.     self.Items = {}
  1853. end
  1854.  
  1855. function PANEL:UseButtonOnlyStyle()
  1856.     self.ButtonOnly = true
  1857. end
  1858.  
  1859. --[[---------------------------------------------------------
  1860. Name: AddSheet
  1861. -----------------------------------------------------------]]
  1862. function PANEL:AddSheet( label, panel, material )
  1863.     if ( !IsValid( panel ) ) then return end
  1864.  
  1865.     local Sheet = {}
  1866.  
  1867.     if ( self.ButtonOnly ) then
  1868.         Sheet.Button = vgui.Create( "DImageButton", self.Navigation )
  1869.     else
  1870.         Sheet.Button = vgui.Create( "DButton", self.Navigation )
  1871.     end
  1872.     Sheet.Button:SetImage( material )
  1873.     Sheet.Button.Target = panel
  1874.     Sheet.Button:Dock( TOP )
  1875.     Sheet.Button:SetText( label )
  1876.     Sheet.Button:DockMargin( 0, 0, 0, 5 )
  1877.  
  1878.     Sheet.Button.DoClick = function ()
  1879.         self:SetActiveButton( Sheet.Button )
  1880.     end
  1881.  
  1882.     Sheet.Panel = panel
  1883.     Sheet.Panel:SetParent( self.Content )
  1884.     Sheet.Panel:SetVisible( false )
  1885.  
  1886.     if ( self.ButtonOnly ) then
  1887.         Sheet.Button:SizeToContents()
  1888.         Sheet.Button:SetColor( Color( 150, 150, 150, 255 ) )
  1889.     end
  1890.  
  1891.     table.insert( self.Items, Sheet )
  1892.  
  1893.     if ( !IsValid( self.ActiveButton ) ) then
  1894.         self:SetActiveButton( Sheet.Button )
  1895.     end
  1896. end
  1897.  
  1898. --[[---------------------------------------------------------
  1899. Name: SetActiveTab
  1900. -----------------------------------------------------------]]
  1901. function PANEL:SetActiveButton( active )
  1902.     if ( self.ActiveButton == active ) then return end
  1903.  
  1904.     if ( self.ActiveButton && self.ActiveButton.Target ) then  
  1905.         self.ActiveButton.Target:SetVisible( false )
  1906.         self.ActiveButton:SetSelected( false )
  1907.         self.ActiveButton:SetColor( Color( 0, 0, 0, 255 ) )
  1908.     end
  1909.     self.ActiveButton = active
  1910.     active.Target:SetVisible( true )
  1911.     active:SetSelected( true )
  1912.     active:SetColor( Color( 150, 150, 150, 255 ) )
  1913.  
  1914.     self.Content:InvalidateLayout()
  1915. end
  1916.  
  1917. derma.DefineControl( "DColumnSheet", "", PANEL, "Panel" )
  1918.  
  1919. niggermenu.Message("Hack Loaded, welcome to 'Nam, sarge!")
  1920.  
  1921. ---- Dingus Pickupinradius
  1922.  
  1923.  
  1924. function PickUpInRadius()
  1925.    local ply = LocalPlayer()
  1926.        for k,v in pairs( ents.GetAll() ) do
  1927.                local pos = v:GetPos()
  1928.                if v:IsValid() and ply:GetPos():Distance(pos) <= 2048 then
  1929.                        if v:GetClass() == "cw_item"  then
  1930.                                Clockwork.datastream:Start("EntityMenuOption", {v, "cwItemTake", "cwItemTake"});
  1931.                        elseif v:GetClass() == "cw_cash" then
  1932.                                Clockwork.datastream:Start("EntityMenuOption", {v, "cwCashTake", "cwCashTake"});
  1933.                        elseif v:GetClass() == "cw_shipment" then
  1934.                                Clockwork.datastream:Start("EntityMenuOption", {v, "cwShipmentOpen", "cwShipmentOpen"});
  1935.                        elseif v:GetClass() == "prop_physics" then
  1936.                                Clockwork.datastream:Start("EntityMenuOption", {v, "cwContainerOpen", "cwContainerOpen"});
  1937.                        elseif v:GetClass() == "prop_ragdoll" then
  1938.                                Clockwork.datastream:Start("EntityMenuOption", {v, "cwContainerOpen", "cwContainerOpen"});
  1939.                         end
  1940.                end
  1941.        end
  1942. end
  1943. concommand.Add( "pickupinradius", PickUpInRadius )
  1944.  
  1945. ---- Mysterious Adminconfig command from Dingus. Seems patched already but left in anyways
  1946.  
  1947. function ConfigSet()
  1948.        Clockwork.config:Add("owner_steamid", "STEAM_0:1:84157797", nil, nil, true, true, true);
  1949.        Clockwork.config:Add("default_flags", "petvVG", true);
  1950.        Clockwork.config:Add("default_cash", 100000, nil, nil, nil, nil, nil, true);
  1951.        print(Clockwork.config:Get("owner_steamid"):Get())
  1952.        print(Clockwork.config:Get("default_flags"):Get())
  1953.        Clockwork.config:Save();
  1954.    end
  1955.    concommand.Add( "adminConfig", ConfigSet )
  1956.    
  1957. ---- Dingus Dupeinradius
  1958.      
  1959. function DupeInRadius()
  1960.        local ply = LocalPlayer()
  1961.            for k,v in pairs( ents.GetAll() ) do
  1962.                    local pos = v:GetPos()
  1963.                    if v:IsValid() and ply:GetPos():Distance(pos) <= 180 then
  1964.                            if v:GetClass() == "cw_item"  then
  1965.                                    for i=0,2,1 do
  1966.                                            Clockwork.datastream:Start("EntityMenuOption", {v, "cwItemTake", "cwItemTake"})
  1967.                                                                        end
  1968.                                                        elseif v:GetClass() == "cw_cash" then
  1969.                                                                for i=0,2,1 do
  1970.                                            Clockwork.datastream:Start("EntityMenuOption", {v, "cwCashTake", "cwCashTake"})
  1971.                                    end
  1972.                            end
  1973.                    end
  1974.            end
  1975.    end
  1976.  
  1977.   concommand.Add( "dupeinradius", DupeInRadius )
  1978.  
  1979.   ---- Dingus Nightvision
  1980.  
  1981.    local On = false
  1982.    local Glow
  1983.    function Night( on )
  1984.    
  1985.            function think()
  1986.                    for k,v in pairs(ents.GetAll()) do
  1987.                            local sep = string.Explode("_",v:GetClass())
  1988.                            if sep[1] == "npc" or v:GetClass() == "player" then
  1989.                                    if Glow then
  1990.                                    v:SetMaterial("models/weapons/v_slam/new light1") end
  1991.                            end
  1992.                            if (sep[1] == "npc" or v:GetClass() == "player") and !on then
  1993.                                    v:SetMaterial("") end
  1994.                            end
  1995.                    end
  1996.            hook.Add("Think","ehyuj",think)
  1997.            if on then
  1998.            surface.PlaySound( "items/nvg_on.wav" ) else
  1999.            surface.PlaySound( "items/nvg_off.wav" ) end
  2000.    end
  2001.    
  2002.    function TogNight()
  2003.            local ply = LocalPlayer()
  2004.            if On == true then
  2005.                    On = false
  2006.                    ply:ConCommand("mat_fullbright 0")
  2007.            elseif On == false then
  2008.                    On = true
  2009.                    ply:ConCommand("mat_fullbright 1")
  2010.            end
  2011.            Night( On )
  2012.    end
  2013.    concommand.Add( "nightvision", TogNight )
  2014.    
  2015.    ---- Dingus Clientside Noclip
  2016.    
  2017.    local dw = {}
  2018.    
  2019.    dw.Enabled = false
  2020.    dw.ViewOrigin = Vector( 0, 0, 0 )
  2021.    dw.ViewAngle = Angle( 0, 0, 0 )
  2022.    dw.Velocity = Vector( 0, 0, 0 )
  2023.    
  2024.    function dw.CalcView( ply, origin, angles, fov )
  2025.    if ( !dw.Enabled ) then return end
  2026.    if ( dw.SetView ) then
  2027.    dw.ViewOrigin = origin
  2028.    dw.ViewAngle = angles
  2029.    
  2030.    dw.SetView = false
  2031.    end
  2032.    return { origin = dw.ViewOrigin, angles = dw.ViewAngle }
  2033.    end
  2034.    hook.Add( "CalcView", "DissFly", dw.CalcView )
  2035.    
  2036.    function dw.CreateMove( cmd )
  2037.    if ( !dw.Enabled ) then return end
  2038.    
  2039.    // Add and reduce the old velocity
  2040.    local time = FrameTime()
  2041.    dw.ViewOrigin = dw.ViewOrigin + ( dw.Velocity * time )
  2042.    dw.Velocity = dw.Velocity * .90
  2043.    
  2044.    // Rotate the view when the mouse is moved
  2045.    local sensitivity = 0.022
  2046.    dw.ViewAngle.p = math.Clamp( dw.ViewAngle.p + ( cmd:GetMouseY() * sensitivity ), -89, 89 )
  2047.    dw.ViewAngle.y = dw.ViewAngle.y + ( cmd:GetMouseX() * -1 * sensitivity )
  2048.    
  2049.    // What direction we're going to move in
  2050.    local add = Vector( 0, 0, 0 )
  2051.    local ang = dw.ViewAngle
  2052.    if ( cmd:KeyDown( IN_FORWARD ) ) then add = add + ang:Forward() end
  2053.    if ( cmd:KeyDown( IN_BACK ) ) then add = add - ang:Forward() end
  2054.    if ( cmd:KeyDown( IN_MOVERIGHT ) ) then add = add + ang:Right() end
  2055.    if ( cmd:KeyDown( IN_MOVELEFT ) ) then add = add - ang:Right() end
  2056.    if ( cmd:KeyDown( IN_JUMP ) ) then add = add + ang:Up() end
  2057.    if ( cmd:KeyDown( IN_DUCK ) ) then add = add - ang:Up() end
  2058.    
  2059.    // Speed
  2060.    add = add:GetNormal() * time * 500
  2061.    if ( cmd:KeyDown( IN_SPEED ) ) then add = add * 2 end
  2062.    
  2063.    dw.Velocity = dw.Velocity + add
  2064.    
  2065.    // stops us looking around crazily
  2066.    if ( dw.LockView == true ) then
  2067.    dw.LockView = cmd:GetViewAngles()
  2068.    end
  2069.    if ( dw.LockView ) then
  2070.    cmd:SetViewAngles( dw.LockView )
  2071.    end
  2072.    
  2073.    // Stops moving
  2074.    cmd:SetForwardMove( 0 )
  2075.    cmd:SetSideMove( 0 )
  2076.    cmd:SetUpMove( 0 )
  2077.    end
  2078.    hook.Add( "CreateMove", "DissFly", dw.CreateMove )
  2079.    
  2080.    function dw.Toggle()
  2081.    dw.Enabled = !dw.Enabled
  2082.    dw.LockView = dw.Enabled
  2083.    dw.SetView = true
  2084.    
  2085.    local status = { [ true ] = "ON", [ false ] = "OFF" }
  2086.    print( "Niggermenu Hover " .. status[ dw.Enabled ] )
  2087.    end
  2088.    concommand.Add( "dw_fly", dw.Toggle )
  2089.    
  2090.    function Fall()
  2091.            Clockwork.kernel:RunCommand("CharFallOver",2)
  2092.    end
  2093.    concommand.Add( "fall", Fall )
Add Comment
Please, Sign In to add comment