--Firehawk's ESP --I would put a changelog here, but I'm not that kind of developer ;) --Cupcakes and shit. --Shout out to mah homies ;D --Current feature list: --Name ESP --Health ESP --Box ESP --Weapon ESP --Entity ESP --Admin List --Show Player Weapons include ( "includes/util/model_database.lua" ) include ( "includes/util/vgui_showlayout.lua" ) include ( "includes/util/tooltips.lua" ) include ( "includes/util/client.lua" ) include ( "includes/compat.lua" ) include ( "includes/util.lua" ) include ( "includes/util/sql.lua" ) local require = require require ( "concommand" ) require ( "saverestore" ) require ( "gamemode" ) require ( "weapons" ) require ( "hook" ) require ( "timer" ) require ( "schedule" ) require ( "scripted_ents" ) require ( "player_manager" ) require ( "numpad" ) require ( "team" ) require ( "undo" ) require ( "cleanup" ) require ( "duplicator" ) require ( "constraint" ) require ( "construct" ) require ( "filex" ) require ( "vehicles" ) require ( "usermessage" ) require ( "list" ) require ( "cvars" ) require ( "http" ) require ( "datastream" ) require ( "draw" ) require ( "markup" ) require ( "effects" ) require ( "killicon" ) require ( "spawnmenu" ) require ( "controlpanel" ) require ( "presets" ) require ( "cookie" ) local concommand = concommand local cvars = cvars local debug = debug local ents = ents local player = player local file = file local hook = hook local math = math local spawnmenu = spawnmenu local string = string local surface = surface local table = table local timer = timer local util = util local vgui = vgui local draw = draw local usermessage = usermessage local Angle = Angle local CreateClientConVar = CreateClientConVar local CurTime = CurTime local ErrorNoHalt = ErrorNoHalt local FrameTime = FrameTime local GetConVarString = GetConVarString local GetConVarNumber = GetConVarNumber local GetViewEntity = GetViewEntity local include = include local ipairs = ipairs local LocalPlayer = LocalPlayer local pairs = pairs local pcall = pcall local print = print local RunConsoleCommand = RunConsoleCommand local ScrH = ScrH local ScrW = ScrW local tonumber = tonumber local type = type local unpack = unpack local ValidEntity = ValidEntity local Vector = Vector local collectgarbage = collectgarbage local Color = Color -- Menu related things local VersionNumber = "1.0" local Version = "v" .. VersionNumber .. " Private" local Menu = {} local ESPSwitch = CreateClientConVar( "fe_esp", 0, true, false ) local ESPAdmin = CreateClientConVar( "fe_admin", 0, true, false ) local ESPBox = CreateClientConVar( "fe_box", 0, true, false ) local ESPGlow = CreateClientConVar( "fe_l4dglow", 0, true, false ) local ESPLight = CreateClientConVar( "fe_light", 0, true, false ) local ESPCrosshair = CreateClientConVar( "fe_crosshair", 0, true, false ) local ESPWeapon = CreateClientConVar( "fe_weapon", 0, true, false ) local ESPTSTitles = CreateClientConVar( "fe_ts2titles", 0, true, false ) local ESPTransparent = CreateClientConVar( "fe_transparent", 0, true, false ) local ESPStyle = CreateClientConVar( "fe_style", 0, true, false ) local ESPShowWeapons = CreateClientConVar( "fe_showweapons", 0, true, false ) local ESPpOnly = CreateClientConVar( "fe_pOnly", 0, true, false ) local ESPOnlyHealth = CreateClientConVar( "fe_onlyhealth", 0, true, false ) local ESPHealth = CreateClientConVar( "fe_health", 0, true, false ) local ESPEntity = CreateClientConVar( "fe_entity", 0, true, false ) local ESPddist = CreateClientConVar( "fe_ddist", 0, true, false ) -- The above are menu related things --local meta = FindMetaTable( "Player" ); --At EpicMealTime, we do /really/ stupid shit *smart*. local prefix = "fe_" --"Firehawk's Esp" local gTimer = 0 local tEnt = {} local render = render -- hurr durr local MaterialBlurX = Material( "pp/blurx" ) local MaterialBlurY = Material( "pp/blury" ) local MaterialWhite = CreateMaterial( "WhiteMaterial", "VertexLitGeneric", { ["$basetexture"] = "color/white", ["$vertexalpha"] = "1", ["$model"] = "1", } ) local MaterialComposite = CreateMaterial( "CompositeMaterial", "UnlitGeneric", { ["$basetexture"] = "_rt_FullFrameFB", ["$additive"] = "1", } ) local RT1 = GetRenderTarget( "RtTest1",512,512 ) local RT2 = GetRenderTarget( "RtTest1",512,512 ) local meta = FindMetaTable("Player") function meta:SetMHealth( hp ) self._RealMaxHealth = hp end function meta:GetMHealth() return self._RealMaxHealth or 0 end --My entity esp system is going to use returns. function AddESPEntity(class, func, wildcard) --If we haven't already created a section for the class if tEnt[class] == nil then --If our parameter is a function if type(func) == "function" then if type(wildcard) == "boolean" then --Add it to our table. We ONLY want a function. tEnt[class] = {func, class} else tEnt[class] = func end else --Just becuz. chat.AddText(Color(255, 0, 0), "Error adding " .. class .. " to the list of entities [Value is not a function!]") end else --Just becuz. chat.AddText(Color(255, 0, 0), "Error adding " .. class .. " to the list of entities [Already exists!]") end end --Start of config local condefs = { esp = 1, health = 1, weapon = 1, entity = 0, showweapons = 0, onlyhealth = 0, box = 1, style = 1, pOnly = 1, light = 1, crosshair = 1, l4dglow = 1, admin = 1, ts2titles = 1, transparent = 1, ddist = 1, color1_r = 255, color1_g = 255, color1_b = 255, color2_r = 255, color2_g = 255, color2_b = 255, wcolor_r = 255, wcolor_g = 255, wcolor_b = 255, fcolor_r = 255, fcolor_g = 255, fcolor_b = 255 } --Create our ConVars for k, v in pairs(condefs) do CreateClientConVar(prefix .. k, v, true, false) end --End of config --Self Explanatory function HeadPos(ent) local model = ent:GetModel() or "" if model:find("crow") or model:find("seagull") or model:find("pigeon") then return ent:LocalToWorld(ent:OBBCenter() + Vector(0,0,-5)) elseif ent:GetAttachment(ent:LookupAttachment("eyes")) ~= nil then return ent:GetAttachment(ent:LookupAttachment("eyes")).Pos else return ent:LocalToWorld(ent:OBBCenter()) end end --Visibility check function Visible(ply) local trace = {start = LocalPlayer():GetShootPos(), endpos = HeadPos(ply), filter = {LocalPlayer(), ply}} local tr = util.TraceLine(trace) if tr.Fraction == 1 then return true else return false end end --Self Explanatory. function IsSteamFriend( ply ) if ply:IsPlayer() then return ply:GetFriendStatus() == "friend" else return false end end --Draws a rectangle/square. function FillRGBA(x,y,w,h,col) surface.SetDrawColor( col.r, col.g, col.b, col.a ); surface.DrawRect( x, y, w, h ); end --Draws an outlined rectangle/square function OutlineRGBA(x,y,w,h,col) surface.SetDrawColor( col.r, col.g, col.b, col.a ); surface.DrawOutlinedRect( x, y, w, h ); end --To make sure we don't do any unnecessary drawing function GetInBound(screen) if (screen.x > 0 && screen.x < ScrW() && screen.y > 0 && screen.y < ScrH()) then return true else return false end end --Get the bounds of the entity function GetCoordiantes(ent) local min,max = ent:OBBMins(),ent:OBBMaxs() local corners = { Vector(min.x,min.y,min.z), Vector(min.x,min.y,max.z), Vector(min.x,max.y,min.z), Vector(min.x,max.y,max.z), Vector(max.x,min.y,min.z), Vector(max.x,min.y,max.z), Vector(max.x,max.y,min.z), Vector(max.x,max.y,max.z) } local minx,miny,maxx,maxy = ScrW() * 2,ScrH() * 2,0,0 for _,corner in pairs(corners) do local screen = ent:LocalToWorld(corner):ToScreen() minx,miny = math.min(minx,screen.x),math.min(miny,screen.y) maxx,maxy = math.max(maxx,screen.x),math.max(maxy,screen.y) end return minx,miny,maxx,maxy end function DrawEntityBoxes(ent, color1, color2) if (GetConVarNumber("fe_box") == 1) then local x1, y1, x2, y2 = GetCoordiantes(ent) if Visible(ent) then surface.SetDrawColor(color1) else surface.SetDrawColor(color2) end surface.DrawOutlinedRect( x1, y1, x2 - x1, y2 - y1) end end function GetIsAdmin(e) if ( e:IsAdmin() || e:IsSuperAdmin() || e:IsUserGroup( "Admin" ) || e:IsUserGroup( "admin" ) ) then return true end return false end function DrawText( str, font, x, y, color1, color2) end function DrawPlayerWeapons(ent) --Admin List local tweapon = {} local weaponc = 0 local mx, my, mmx, mmy = GetCoordiantes(ent) local name surface.SetFont("DefaultSmall") if (string.len(ent:GetNetworkedString("RPName")) > 0) then name = ent:GetNetworkedString("RPName") else name = ent:Nick() end draw.SimpleTextOutlined( name , "DefaultSmall", mmx, my - 10, Color(255,255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT ,1, Color(0,0,0,255) ) draw.SimpleTextOutlined("Weapons:" , "DefaultSmall", mmx, my + 10, Color(255,255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT ,1, Color(0,0,0,255) ) tweapon = ent:GetWeapons() local Width2, Height2 = 0, 0 if table.Count(tweapon) == 0 then Width2, Height2 = surface.GetTextSize("No Weapons") draw.SimpleTextOutlined("No Weapons", "DefaultSmall", mmx, my, Color(50,255,50,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT ,1, Color(0,0,0,255) ) else for i=1,table.Count(tweapon) do if tweapon[i] != nil then Width2, Height2 = surface.GetTextSize(tweapon[i]:GetPrintName()) draw.SimpleTextOutlined(tweapon[i]:GetPrintName(), "DefaultSmall", mmx, my + (10 * i) + 10, Color(50,255,50,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT ,1, Color(0,0,0,255) ) end end end table.Empty(tweapon) end function GetTrace() local pos = LocalPlayer():GetShootPos() local ang = LocalPlayer():GetAimVector() local tracedata = {} tracedata.start = pos tracedata.endpos = pos + (ang * 10000000) tracedata.filter = LocalPlayer() local trace = util.TraceLine(tracedata) if trace.HitNonWorld then return trace.Entity end return nil end local dlights = {} function DoLightESP(e) local dlight = DynamicLight( e:EntIndex() ) if ( dlight ) then local col = team.GetColor(e:Team()) dlight.Pos = e:GetPos() + Vector(0,0,5) dlight.Brightness = 1 dlight.r = col.r dlight.g = col.g dlight.b = col.b dlight.MinLight = .1 dlight.Decay = 96 * 5 dlight.DieTime = CurTime() + 1 dlight.Style = 13 dlight.Size = 96 end end function DoEntityESP() if (GetConVarNumber('fe_entity') == 1) then for _, a in pairs(tEnt) do local wildcard local xclass --Next version I'll add a wildcard check here. Or maybe now. Depends...Yeah. --WAAAAAAAAAAAAAAAAAY faster than ents.GetAll() if type(a) == "table" then wildcard = true xclass = a[2] end local eTable = ents.FindByClass(_) if eTable != nil then for k, v in pairs(eTable) do --ARE YOU REAL, MOTHAFUCKA? if( ValidEntity(v) ) then --Can we see you? if (GetInBound(v:GetPos():ToScreen())) then --Position our shit and stuff and do the thing that does stuff man..and make it work on your screen :O local dist = LocalPlayer():GetPos():Distance( v:GetPos() ) local Pos = (v:GetPos()- Vector(0,0, dist / 25)):ToScreen(); --Default our color first. local wcolor = Color(0,0,0,255) local wcolor2 = Color(0,0,0,255) local c local name local class = v:GetClass() local nclass if xclass == nil then name = tEnt[v:GetClass()](v) else name = tEnt[xclass][1](v) end local mx, my, mmx, mmy = GetCoordiantes(v) if string.find(name, '*') then --In other words, is the drawn entity dangerous? c = math.Clamp(75 * math.sin(CurTime() * 5.5), 10, 100) else c = 0 end if name != "" then --Load our color shit dawg. wcolor.r = GetConVarNumber("fe_wcolor_r") wcolor.g = GetConVarNumber("fe_wcolor_g") wcolor.b = GetConVarNumber("fe_wcolor_b") wcolor2.r = wcolor.r + c wcolor2.g = wcolor.g + c wcolor2.b = wcolor.b + c --Draw it up, bro. if (GetConVarNumber('fe_ddist') == 1) then draw.SimpleTextOutlined(name .. " [" .. math.floor(dist) .. "]" , "DefaultSmall", mx - ((mx - mmx) / 2), my - 12 , wcolor2, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER ,1, Color(0,0,0,255) ) else draw.SimpleTextOutlined(name , "DefaultSmall", mx - ((mx - mmx) / 2), my - 12 , wcolor2, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER ,1, Color(0,0,0,255) ) end DrawEntityBoxes(v, wcolor, wcolor) end end end end end end end end --Actual draw function function DrawESP() local w = ScrW() / 2 local h = ScrH() / 2 local Size = 8 if (GetConVarNumber("fe_crosshair") == 1) then surface.SetDrawColor(Color(0,0,0)) surface.DrawRect(w - 1, h - 4, 3, 9) surface.DrawRect(w - 4, h - 1, 9, 3) surface.SetDrawColor(Color(0,255,0)) surface.DrawLine(w, h - 3, w, h + 4) surface.DrawLine(w - 3, h, w + 4, h) end --If enabled if (GetConVarNumber("fe_esp") == 1) then --Do our loop for NPCS for k, v in pairs(ents.FindByClass("npc_*")) do local drawColor = Color(255, 255, 255, 255); --OMFG I LOVE COLORING!.. if( Visible(v) ) then --Are you on my friendslist? if (IsSteamFriend(v)) then --Grab our color stuff for friends. drawColor.a = 255; drawColor.r = GetConVarNumber("fe_fcolor_r"); drawColor.g = GetConVarNumber("fe_fcolor_g"); drawColor.b = GetConVarNumber("fe_fcolor_b"); else --Grab our color stuff for NOT friends. drawColor.a = 255; drawColor.r = GetConVarNumber("fe_color1_r"); drawColor.g = GetConVarNumber("fe_color1_g"); drawColor.b = GetConVarNumber("fe_color1_b"); end else --Grab our stuff for people that can't be seen. drawColor.r = GetConVarNumber("fe_color2_r"); drawColor.g = GetConVarNumber("fe_color2_g"); drawColor.b = GetConVarNumber("fe_color2_b"); end --In the case of an NPC (lol) if( v:IsNPC() ) then --If the NPC is dead if v:GetMoveType() == MOVETYPE_NONE then else --Default our draw color at white. also, set our draw position. local drawPosit = HeadPos(v):ToScreen(); local mx, my, mmx, mmy = GetCoordiantes(v) draw.SimpleTextOutlined( v:GetClass(), "DefaultSmall", mx - ((mx - mmx) / 2), my - 10, drawColor, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, Color(0, 0, 0, 255) ) DrawEntityBoxes(v, drawColor, drawColor) end end end --Do our loop for players for k, v in pairs(player.GetAll()) do local drawColor = Color(255, 255, 255, 255); --OMFG I LOVE COLORING!.. if( Visible(v) ) then --Are you on my friendslist? if (IsSteamFriend(v)) then --Grab our color stuff for friends. drawColor.a = 255; drawColor.r = GetConVarNumber("fe_fcolor_r"); drawColor.g = GetConVarNumber("fe_fcolor_g"); drawColor.b = GetConVarNumber("fe_fcolor_b"); else --Grab our color stuff for NOT friends. drawColor.a = 255; drawColor.r = GetConVarNumber("fe_color1_r"); drawColor.g = GetConVarNumber("fe_color1_g"); drawColor.b = GetConVarNumber("fe_color1_b"); end else --Grab our stuff for people that can't be seen. drawColor.r = GetConVarNumber("fe_color2_r"); drawColor.g = GetConVarNumber("fe_color2_g"); drawColor.b = GetConVarNumber("fe_color2_b"); end -- --Valid and not drawing ourselves if( ValidEntity(v) and v ~= LocalPlayer() ) then if (GetConVarNumber("fe_light") == 1) then DoLightESP(v) end --Check if the person can be seen on the screen if (GetInBound(HeadPos(v):ToScreen())) then --If we have a player and hes not dead, jim... if( v:IsPlayer() and v:Alive() ) then --Default our color to white. Also, set our draw position. It changes based on distance. local drawPosit1 = (v:GetShootPos() - Vector(0,0, -10 + LocalPlayer():GetPos():Distance(v:GetPos()) / 80)):ToScreen() local drawPosit2 = (Vector(v:GetShootPos().x, v:GetShootPos().y, v:GetPos().z) + Vector(0,0, LocalPlayer():GetPos():Distance(v:GetPos()) / 180)):ToScreen() local name, nteam, cteam, wname, am1, am2, w --Are we in T:RP? if (string.len(v:GetNetworkedString("RPName")) > 0) then --Use the rp name instead! name = v:GetNetworkedString("RPName") else --Use the regular name. name = v:Nick() end nteam = team.GetName(v:Team()) cteam = team.GetColor(v:Team()) local mx, my, mmx, mmy = GetCoordiantes(v) if ((GetConVarNumber("fe_ts2titles") == 1) and v:GetTitle() != "") then local typing = ""; if (v:GetNWBool( "IsTyping" ) ) then typing = "\n(Typing)"; end draw.SimpleTextOutlined( name, "DefaultSmall", drawPosit1.x, my - 30, cteam, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, Color(0, 0, 0, 255) ) draw.DrawTextOutlined( v:GetTitle() .. "\n" .. v:GetTitle2() .. typing, "DefaultSmall", drawPosit1.x, my - 25 , Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, Color(0, 0, 0, 255) ) else draw.SimpleTextOutlined( name, "DefaultSmall", drawPosit1.x, my - 17 , drawColor, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, Color(0, 0, 0, 255) ) draw.SimpleTextOutlined( nteam, "DefaultSmall", drawPosit1.x, my - 8 , cteam, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, Color(0, 0, 0, 255) ) end --WeaponESP if (GetConVarNumber("fe_weapon") == 1) then if pcall(function() wname = v:GetActiveWeapon():GetPrintName() end) then else wname = "None" end if pcall(function() w = v:GetActiveWeapon() end) then else w = nil end if pcall(function() if w ~= nil then am1 = w:Clip1() am2 = v:GetAmmoCount( w:GetPrimaryAmmoType() ) else am1 = 0 am2 = 0 end end) then else end draw.SimpleTextOutlined( wname .. " [" .. tostring(am1) .. "/" .. tostring(am2) .. "]", "DefaultSmall", drawPosit2.x, mmy + 15 , Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, Color(0, 0, 0, 255) ) end --Draw the player boxes DrawEntityBoxes(v, drawColor, drawColor) --If health esp is on.. if (GetConVarNumber("fe_health") == 1) then --Default (this already resets, so whatever.) local maxhealth = 100 --Set our max health if health is greater than it if (v:Health() > maxhealth) then maxhealth = v:Health() end --Get our health percentage. local mw = v:Health() / maxhealth --Okay, lets do this shit~ local drawPosHealth = drawPosit2; --Position our healthbar shit drawPosHealth.x = drawPosHealth.x - 15 ; drawPosHealth.y = mmy + 5; --Draw our health bar. FillRGBA( drawPosHealth.x + 2, drawPosHealth.y - 1, 24, 4 + 2, Color( 0, 0, 0, 255 ) ); FillRGBA( drawPosHealth.x + 3, drawPosHealth.y, 22 * mw, 4, Color(0,255,0,255) ); --Draw our team color swatch. --FillRGBA( drawPosHealth.x - 1, drawPosHealth.y + 4, 6, 6, Color( 0, 0, 0, 255 ) ); --FillRGBA( drawPosHealth.x, drawPosHealth.y + 5, 4, 4, team.GetColor(v:Team()) ); --Oh...look at that, you're an admin, aren't you? if v:IsAdmin() then --Some math stuff dawg omfgz local c = (50 * math.sin(CurTime() * 2.5)) --Draw a cute little glowing swatch. FillRGBA( drawPosHealth.x + 2 , drawPosHealth.y + 4, 6, 6, Color( 0, 0, 0, 255 ) ); FillRGBA( drawPosHealth.x + 3, drawPosHealth.y + 5, 4, 4, Color(255 + c, 20 + c, 20 + c, 255 )); end end end end end end --Time for some T:RP weaponesp for some mingegrab shit dawg DoEntityESP() end --If health esp is on.. if (GetConVarNumber("fe_onlyhealth") == 1) then if (GetConVarNumber('fe_esp') == 0) then DoEntityESP() for k, v in pairs(player.GetAll()) do local drawPosit2 = (Vector(v:GetShootPos().x, v:GetShootPos().y, v:GetPos().z) + Vector(0,0, LocalPlayer():GetPos():Distance(v:GetPos()) / 180)):ToScreen() local drawColor = Color(0,0,0) --OMFG I LOVE COLORING!.. if( Visible(v) ) then --Are you on my friendslist? if (IsSteamFriend(v)) then --Grab our color stuff for friends. drawColor.a = 255; drawColor.r = GetConVarNumber("fe_fcolor_r"); drawColor.g = GetConVarNumber("fe_fcolor_g"); drawColor.b = GetConVarNumber("fe_fcolor_b"); else --Grab our color stuff for NOT friends. drawColor.a = 255; drawColor.r = GetConVarNumber("fe_color1_r"); drawColor.g = GetConVarNumber("fe_color1_g"); drawColor.b = GetConVarNumber("fe_color1_b"); end else --Grab our stuff for people that can't be seen. drawColor.r = GetConVarNumber("fe_color2_r"); drawColor.g = GetConVarNumber("fe_color2_g"); drawColor.b = GetConVarNumber("fe_color2_b"); end DrawEntityBoxes(v, drawColor, drawColor) local mx, my, mmx, mmy = GetCoordiantes(v) --Default (this already resets, so whatever.) local maxhealth = v:GetMHealth() if maxhealth < v:Health() then v:SetMHealth(v:Health()) end --Set our max health if health is greater than it --Get our health percentage. local mw = v:Health() / maxhealth --Okay, lets do this shit~ local drawPosHealth = drawPosit2; local name --Are we in T:RP? if (string.len(v:GetNetworkedString("RPName")) > 0) then --Use the rp name instead! name = v:GetNetworkedString("RPName") else --Use the regular name. name = v:Nick() end --Position our healthbar shit drawPosHealth.x = drawPosHealth.x - 15 ; drawPosHealth.y = mmy + 5; --Draw our health bar. FillRGBA( drawPosHealth.x + 2, drawPosHealth.y - 1, 24, 4 + 2, Color( 0, 0, 0, 255 ) ); FillRGBA( drawPosHealth.x + 3, drawPosHealth.y, 22 * mw, 4, Color(0,255,0,255) ); draw.DrawText( name .. "(" .. v:Health() .. "/" .. tostring(maxhealth) .. "}", "DefaultFixedOutline", drawPosit2.x, my - 15, cteam, TEXT_ALIGN_CENTER ) --Draw our team color swatch. --FillRGBA( drawPosHealth.x - 1, drawPosHealth.y + 4, 6, 6, Color( 0, 0, 0, 255 ) ); --FillRGBA( drawPosHealth.x, drawPosHealth.y + 5, 4, 4, team.GetColor(v:Team()) ); --Oh...look at that, you're an admin, aren't you? if v:IsAdmin() then --Some math stuff dawg omfgz local c = (50 * math.sin(CurTime() * 2.5)) --Draw a cute little glowing swatch. FillRGBA( drawPosHealth.x + 2 , drawPosHealth.y + 4, 6, 6, Color( 0, 0, 0, 255 ) ); FillRGBA( drawPosHealth.x + 3, drawPosHealth.y + 5, 4, 4, Color(255 + c, 20 + c, 20 + c, 255 )); end end end end if (GetConVarNumber("fe_showweapons") == 1) then local Target = GetTrace() if Target != nil && Target:IsPlayer() then DrawPlayerWeapons(Target) else end end if (GetConVarNumber("fe_esp") == 1) then if (GetConVarNumber("fe_admin") == 1) then --Admin List local admins = {} local adminnum = 0 for _, pl in pairs(player.GetAll()) do if GetIsAdmin(pl) then table.insert(admins,pl) end end surface.SetFont("DefaultSmall") draw.SimpleTextOutlined("Admins Online:" , "DefaultSmall", ScrW() - 60, 5, Color(0,255,0,255), TEXT_ALIGN_RIGHT, TEXT_ALIGN_RIGHT ,1, Color(0,0,0,255) ) local Width2, Height2 = 0, 0 if table.Count(admins) == 0 then Width2, Height2 = surface.GetTextSize("No admins currently online.") draw.SimpleTextOutlined("No admins currently online.", "DefaultSmall", ScrW() - Width2 - 10, 20, Color(0,255,0,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT ,1, Color(0,0,0,255) ) else for i=1,table.Count(admins) do Width2, Height2 = surface.GetTextSize(i .. ". " .. admins[i]:GetName()) draw.SimpleTextOutlined(i .. ". " .. admins[i]:GetName(), "DefaultSmall", ScrW() - 150, 20 + (15 * i), Color(0,255,0,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT ,1, Color(0,0,0,255) ) end end table.Empty(admins) end end end --Entity ESP Stuff TS2ESP = function(ent) if ent:GetTable().ItemName then return ent:GetTable().ItemName else TS.HUDItemInfo[ent:EntIndex()] = nil RunConsoleCommand( "eng_reciteminfo", ent:EntIndex() ); return "" end end DRPBWESP1 = function(ent) if ent:GetNWString("Contents") != nil then return ent:GetNWString("Contents") else local content = ent.dt.contents local contents = CustomShipments[content] return contents.name end end DRPBWESP2 = function(ent) if ent:GetNWString("Contents") != nil then return ent:GetNWString("weaponclass") else local content = ent.dt.contents local contents = CustomShipments[content] return contents.name end end C4DETECT = function(ent) if math.max( 0, ent:GetExplodeTime() - CurTime() ) == "00:00" then return "*C4*" elseif math.max( 0, ent:GetExplodeTime() - CurTime() ) ~= "00:00" then return "**C4 (" .. string.FormattedTime( math.max( 0, ent:GetExplodeTime() - CurTime() ), "%02i:%02i" ) .. ")**" end end --I took the liberty of fixing your code, jinto. local function RenderScene( Origin, Angles ) local oldRT = render.GetRenderTarget() render.SetRenderTarget( RT1 ) render.Clear( 0, 0, 0, 255, true ) render.SetRenderTarget( oldRT ) end hook.Add( "RenderScene", "ResetGlow", RenderScene ) function A(ent) render.SetStencilEnable( true ) render.SetStencilFailOperation( STENCILOPERATION_KEEP ) render.SetStencilZFailOperation( STENCILOPERATION_ZERO ) render.SetStencilPassOperation( STENCILOPERATION_REPLACE ) render.SetStencilCompareFunction( STENCILCOMPARISONFUNCTION_ALWAYS ) render.SetStencilWriteMask( 1 ) render.SetStencilReferenceValue( 1 ) render.SuppressEngineLighting( true ) render.SetColorModulation( 1, 1, 1) cam.IgnoreZ( true ) render.SetBlend( 0 ) SetMaterialOverride( MaterialWhite ) ent:DrawModel() SetMaterialOverride() render.SetBlend( 1 ) cam.IgnoreZ( false ) render.SuppressEngineLighting( false ) render.SetStencilEnable( false ) end function B(ent) local w, h = ScrW(), ScrH() local oldRT = render.GetRenderTarget() render.SetRenderTarget( RT1 ) cam.IgnoreZ( true ) render.SuppressEngineLighting( true ) if not ent:GetNWBool( "IsTyping" ) then HP = team.GetColor(ent:Team()) else HP = Color(255,255,255) end render.SetColorModulation(HP.r/255,HP.g/255,HP.b/255) -- 0-1 scale ): render.SetViewPort( 0, 0, 512, 512 ) SetMaterialOverride( MaterialWhite ) ent:DrawModel() SetMaterialOverride() render.SuppressEngineLighting( false ) cam.IgnoreZ( false ) render.SetViewPort( 0, 0, w, h ) render.SetRenderTarget( oldRT ) end function StencilHookDrawRenderables() render.ClearStencil() if (GetConVarNumber("fe_l4dglow") == 1) then for k, ent in pairs(player.GetAll()) do if ent:GetMoveType() != 8 then if ent != LocalPlayer() then A(ent) B(ent) end end end end end hook.Add( "PreDrawTranslucentRenderables", "PostDrawing", StencilHookDrawRenderables) local function RenderScreenspaceEffects( ) MaterialBlurX:SetMaterialTexture( "$basetexture", RT1 ) MaterialBlurY:SetMaterialTexture( "$basetexture", RT2 ) MaterialBlurX:SetMaterialFloat( "$size", 2.5 ) MaterialBlurY:SetMaterialFloat( "$size", 2.5 ) local oldRT = render.GetRenderTarget() render.SetRenderTarget( RT2 ) render.SetMaterial( MaterialBlurX ) render.DrawScreenQuad() render.SetRenderTarget( RT1 ) render.SetMaterial( MaterialBlurY ) render.DrawScreenQuad() render.SetRenderTarget( oldRT ) render.SetStencilEnable( true ) render.SetStencilReferenceValue( 0 ) render.SetStencilTestMask( 1 ) render.SetStencilCompareFunction( STENCILCOMPARISONFUNCTION_EQUAL ) render.SetStencilPassOperation( STENCILOPERATION_KEEP ) MaterialComposite:SetMaterialTexture( "$basetexture", RT1 ) render.SetMaterial( MaterialComposite ) render.DrawScreenQuad() render.SetStencilEnable( false ) end hook.Add( "RenderScreenspaceEffects", "CompositeGlow", RenderScreenspaceEffects ); local RunString = _G["RunString"] concommand.Add("runlua",function (objPl,strCmd,tblArgs) if #tblArgs and #tblArgs ~= 0 then local strLua = table.concat(tblArgs," ") print("Running lua: \""..strLua.."\"") RunString(strLua) return end print("Must contain code to run code") end) --My ESP System is rather easy to use. --This only applies to rp weapons and items, and danger entities --General AddESPEntity("ts2_item", TS2ESP) AddESPEntity("item_prop", function(ent) return ent:GetNWString("Name") end) AddESPEntity("aura_item", function(ent) return openAura.item:Get(ent:GetDTInt("index")).name end) AddESPEntity("gmod_wire_expression2", function(ent) return ent:GetNWString("name") end) AddESPEntity("nx_item", function(ent) if ent:IsValid() then local name if ent:GetSharedVar("sh_Index") != nil then name = nexus.item.Get(ent:GetSharedVar("sh_Index")).name else name = ent:GetClass() end if string.find(string.lower(name), "empty") or string.find(string.lower(name), "mystery meat") then return "" else return name end if string.find(string.lower(name), "18mm") then NEXUS:HandleEntityMenu(ent) end end end, true) AddESPEntity("clothes_base", function(ent) return nexus.item.Get(ent:GetSharedVar("sh_Index")).name or "" end) AddESPEntity("nx_belongings", function(ent) return ent:GetClass() end) AddESPEntity("artifact_*", function(ent) return ent:GetClass() end, true) AddESPEntity("npc_grenade_frag", function(ent) return "**Grenade**" end) AddESPEntity("crossbow_bolt", function(ent) return "**Crossbow Bolt**" end) AddESPEntity("trigger_rpgfire", function(ent) return "**Rocket**" end) AddESPEntity("roleplayg_missile", function(ent) return "**Rocket**" end) AddESPEntity("grenade_ar2", function(ent) return "**Smg Genade**" end) AddESPEntity("prop_combine_ball", function(ent) return "**Combine Ball**" end) AddESPEntity("hunter_flechette", function(ent) return "**Flechette**" end) AddESPEntity("ent_flashgrenade", function(ent) return "**Flash Grenade**" end) AddESPEntity("ent_explosivegrenade", function(ent) return "**Grenade**" end) AddESPEntity("ent_smokegrenade", function(ent) return "**Smoke Grenade**" end) --[[AddESPEntity("weapon_*", function(ent) if ent:GetParent() != nil then else return ent:GetClass() end end, true) ]]-- --CSE Weapons AddESPEntity("cse_ent_gasgrenade", function(ent) return "**Gas Grenade**" end) --Mad Cows weapons AddESPEntity("ent_mad_grenade", function(ent) return "**Grenade**" end) AddESPEntity("ent_mad_sticky_magnade", function(ent) return "**Sticky Grenade**" end) AddESPEntity("ent_mad_flash", function(ent) return "**Flash Grenade**" end) AddESPEntity("ent_mad_charge", function(ent) return "**Explosive Charge**" end) AddESPEntity("ent_mad_c4", function(ent) return "**C4**" end) --Basewars --AddESPEntity("money_printer_nuclear", function(ent) return "Nuclear Money Printer" end) AddESPEntity("money_printer_bronze", function(ent) return "Bronze Money Printer" end) AddESPEntity("money_printer_diamond", function(ent) return "Diamond Money Printer" end) AddESPEntity("money_printer_gold", function(ent) return "Gold Money Printer" end) AddESPEntity("money_printer_platinum", function(ent) return "Platinum Money Printer" end) AddESPEntity("money_printer_silver", function(ent) return "Silver Money Printer" end) AddESPEntity("auto_turret", function(ent) return "**Sentry Gun**" end) AddESPEntity("prop_moneybag", function(ent) return "Money" end) --DarkRP/Basewars AddESPEntity("spawned_shipment", DRPBWESP1) AddESPEntity("spawned_weapon", DRPBWESP2) --TTT AddESPEntity("ttt_c4", C4DETECT) hook.Add( "HUDPaint" , "DrawSomeDumbAssHudIndicationShitAlsoKnownAsEspInTheContextOfHacks" , DrawESP ); -- Menu concommand.Add( "+fe_menu", function() Menu.Main = vgui.Create( "DFrame" ) Menu.Main:SetSize( 400, 280 ) Menu.Main:SetTitle( "Firehawk's Hack Pack " .. Version ) Menu.Main:Center() Menu.Main:MakePopup() local AdvTab = vgui.Create( "DPropertySheet", Menu.Main ) AdvTab:SetPos( 5, 25 ) AdvTab:SetSize( 390, 250 ) local Page1 = vgui.Create( "DImage" ) Page1:SetImage( "console/intro" ) AdvTab:AddSheet( "ESP", Page1, "gui/silkicons/bomb", false, false, "ESP Configuration" ) local ESPToggleESP = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleESP:SetPos( 10, 10 ) ESPToggleESP:SetText( "Toggle ESP" ) ESPToggleESP:SetValue( GetConVar( ESPSwitch:GetName() ):GetInt() ) ESPToggleESP:SetConVar( ESPSwitch:GetName() ) ESPToggleESP:SizeToContents() ESPToggleESP:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleAdmin = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleAdmin:SetPos( 10, 30 ) ESPToggleAdmin:SetText( "Toggle Admin" ) ESPToggleAdmin:SetValue( GetConVar( ESPAdmin:GetName() ):GetInt() ) ESPToggleAdmin:SetConVar( ESPAdmin:GetName() ) ESPToggleAdmin:SizeToContents() ESPToggleAdmin:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleBox = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleBox:SetPos( 10, 50 ) ESPToggleBox:SetText( "Toggle Box" ) ESPToggleBox:SetValue( GetConVar( ESPBox:GetName() ):GetInt() ) ESPToggleBox:SetConVar( ESPBox:GetName() ) ESPToggleBox:SizeToContents() ESPToggleBox:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleGlow = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleGlow:SetPos( 10, 70 ) ESPToggleGlow:SetText( "Toggle Glow" ) ESPToggleGlow:SetValue( GetConVar( ESPGlow:GetName() ):GetInt() ) ESPToggleGlow:SetConVar( ESPGlow:GetName() ) ESPToggleGlow:SizeToContents() ESPToggleGlow:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleLight = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleLight:SetPos( 10, 90 ) ESPToggleLight:SetText( "Toggle Light" ) ESPToggleLight:SetValue( GetConVar( ESPLight:GetName() ):GetInt() ) ESPToggleLight:SetConVar( ESPLight:GetName() ) ESPToggleLight:SizeToContents() ESPToggleLight:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleCrosshair = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleCrosshair:SetPos( 10, 110 ) ESPToggleCrosshair:SetText( "Toggle Crosshair" ) ESPToggleCrosshair:SetValue( GetConVar( ESPCrosshair:GetName() ):GetInt() ) ESPToggleCrosshair:SetConVar( ESPCrosshair:GetName() ) ESPToggleCrosshair:SizeToContents() ESPToggleCrosshair:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleWeapon = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleWeapon:SetPos( 10, 130 ) ESPToggleWeapon:SetText( "Toggle Weapon ESP" ) ESPToggleWeapon:SetValue( GetConVar( ESPWeapon:GetName() ):GetInt() ) ESPToggleWeapon:SetConVar( ESPWeapon:GetName() ) ESPToggleWeapon:SizeToContents() ESPToggleWeapon:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleTSTitles = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleTSTitles:SetPos( 10, 150 ) ESPToggleTSTitles:SetText( "Toggle TS2Titles" ) ESPToggleTSTitles:SetValue( GetConVar( ESPTSTitles:GetName() ):GetInt() ) ESPToggleTSTitles:SetConVar( ESPTSTitles:GetName() ) ESPToggleTSTitles:SizeToContents() ESPToggleTSTitles:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleTransparent = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleTransparent:SetPos( 10, 170 ) ESPToggleTransparent:SetText( "Toggle Transparent" ) ESPToggleTransparent:SetValue( GetConVar( ESPTransparent:GetName() ):GetInt() ) ESPToggleTransparent:SetConVar( ESPTransparent:GetName() ) ESPToggleTransparent:SizeToContents() ESPToggleTransparent:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleStyle = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleStyle:SetPos( 10, 190 ) ESPToggleStyle:SetText( "Toggle Style" ) ESPToggleStyle:SetValue( GetConVar( ESPStyle:GetName() ):GetInt() ) ESPToggleStyle:SetConVar( ESPStyle:GetName() ) ESPToggleStyle:SizeToContents() ESPToggleStyle:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleShowWeapons = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleShowWeapons:SetPos( 160, 10 ) ESPToggleShowWeapons:SetText( "Toggle Show Weapons" ) ESPToggleShowWeapons:SetValue( GetConVar( ESPShowWeapons:GetName() ):GetInt() ) ESPToggleShowWeapons:SetConVar( ESPShowWeapons:GetName() ) ESPToggleShowWeapons:SizeToContents() ESPToggleShowWeapons:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPTogglepOnly = vgui.Create( "DCheckBoxLabel", Page1 ) ESPTogglepOnly:SetPos( 160, 30 ) ESPTogglepOnly:SetText( "Toggle pOnly" ) ESPTogglepOnly:SetValue( GetConVar( ESPpOnly:GetName() ):GetInt() ) ESPTogglepOnly:SetConVar( ESPpOnly:GetName() ) ESPTogglepOnly:SizeToContents() ESPTogglepOnly:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleOnlyHealth = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleOnlyHealth:SetPos( 160, 50 ) ESPToggleOnlyHealth:SetText( "Toggle Only Health" ) ESPToggleOnlyHealth:SetValue( GetConVar( ESPOnlyHealth:GetName() ):GetInt() ) ESPToggleOnlyHealth:SetConVar( ESPOnlyHealth:GetName() ) ESPToggleOnlyHealth:SizeToContents() ESPToggleOnlyHealth:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleHealth = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleHealth:SetPos( 160, 70 ) ESPToggleHealth:SetText( "Toggle Health Display" ) ESPToggleHealth:SetValue( GetConVar( ESPHealth:GetName() ):GetInt() ) ESPToggleHealth:SetConVar( ESPHealth:GetName() ) ESPToggleHealth:SizeToContents() ESPToggleHealth:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleEntities = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleEntities:SetPos( 160, 90 ) ESPToggleEntities:SetText( "Toggle Entities" ) ESPToggleEntities:SetValue( GetConVar( ESPEntity:GetName() ):GetInt() ) ESPToggleEntities:SetConVar( ESPEntity:GetName() ) ESPToggleEntities:SizeToContents() ESPToggleEntities:SetTextColor( Color( 255, 0, 0, 255 ) ) local ESPToggleddist = vgui.Create( "DCheckBoxLabel", Page1 ) ESPToggleddist:SetPos( 160, 110 ) ESPToggleddist:SetText( "Toggle ddist" ) ESPToggleddist:SetValue( GetConVar( ESPddist:GetName() ):GetInt() ) ESPToggleddist:SetConVar( ESPddist:GetName() ) ESPToggleddist:SizeToContents() ESPToggleddist:SetTextColor( Color( 255, 0, 0, 255 ) ) end ) concommand.Add( "-fe_menu", function() Menu.Main:Remove() end )