Results 1 to 8 of 8
  1. #1
    Razon91's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Location
    star69
    Posts
    62
    Reputation
    10
    Thanks
    120

    Net Logger (includes a how-to)

    Hello Guys, D3X here with a brand spanking new hack called "Net Logger"! This Script will print Net.Sends/Net.Receives in your console! Please leave a like and subscribe because I worked very hard on this. Here is a "How-To" video. Enjoy!!!

    Code:
     --[[
    
    -================================-
    
    
    Sethhacks v4 - A Garry's Mod aimbot
    
    
    -================================-
    -- ]]
    
    
    /************************************
    Name: Localizing
    Purpose: Make the cheat run faster
    ************************************/
    
    local Sethhacks					= {} -- Nothing!
    Sethhacks.settings				= {} -- Not started yet.
    Sethhacks.hooks					= {} -- Store hooks in a table
    Sethhacks.concommands			= {} -- Store concommands in a table
    Sethhacks.convars				= {} -- Store the ConVars in a table
    Sethhacks.timers					= {} -- Store Timers in a table
    Sethhacks.cones					= { normal = {}, hl2 = {}, custom = {}} -- I probably won't even need this, I won't have NoSpread for a long time. Anyways, store cones here.
    Sethhacks.meta					= {} -- Store metatables here
    Sethhacks.files					= {"Sethhacks.lua","Log.txt"} -- Files to hide and protect
    Sethhacks.version				= "4.5" -- Version of the cheat.
    Sethhacks.ents					= {"ent_pot","npc_vendor","weapon_perp_glock","ent_item","ent_prop_item","sent_spawnpoint","spawned_weapon","spawned_shipment","weed_plant","gift","spawned_money","base_item","weapon_ak47_dayz","weapon_mp5_dayz","weapon_deagle_dayz","sapphire_money_printer","amethyst_money_printer","topaz_money_printer","emerald_money_printer"} -- Ents to show on the ESP
    Sethhacks.invalidents			= {"player","prop_physics","viewmodel",} -- Ents to not show on the ESP
    Sethhacks.weapons				= {["weapon_crossbow"] = 3110,}
    Sethhacks.spectators				= {} -- Store spectators here.
    Sethhacks.admins					= {} -- store admins here
    
    local colors				= {}
    red							= Color(255,0,0,255);
    black						= Color(0,0,0,255);
    green						= Color(0,255,0,255);
    white						= Color(255,255,255,255);
    blue						= Color(0,0,255,255);
    cyan						= Color(0,255,255,255);
    pink 						= Color(255,0,255,255);
    blue						= Color(0,0,255,255);
    grey						= Color(100,100,100,255);
    gold						= Color(255,228,0,255);
    lblue						= Color(155,205,248);
    lgreen						= Color(174,255,0);
    iceblue						= Color(116,187,251,255);
    
    /*******************************************
    Start by unlocking metatabes and localizing
    *******************************************/
    local _G					= table.Copy(_G)
    
    local math 					= _G.math
    local string 				= _G.string
    local hook 					= _G.hook
    local table 				= _G.table
    local timer 				= _G.timer
    local surface 				= _G.surface
    local concommand 			= _G.concommand
    local cvars 				= _G.cvars
    local ents 					= _G.ents
    local player 				= _G.player
    local team 					= _G.team
    local util 					= _G.util
    local draw 					= _G.draw
    local usermessage 			= _G.usermessage
    local vgui 					= _G****ui
    local http 					= _G.http
    local cam 					= _G.cam
    local render 				= _G.render
    
    local MsgN 					= _G.MsgN
    local Msg 					= _G.Msg
    local Vector 				= _G.Vector
    local Angle 				= _G.Angle
    local pairs 				= _G.pairs
    local ipairs 				= _G.ipairs
    local CreateSound 			= _G.CreateSound
    local setmetatable 			= _G.setmetatable
    local Sound 				= _G.Sound
    local print 				= _G.print
    local pcall 				= _G.pcall
    local type 					= _G.type
    local LocalPlayer 			= _G.LocalPlayer
    local KeyValuesToTable 		= _G.KeyValuesToTable
    local TableToKeyValues 		= _G.TableToKeyValues
    local Color 				= _G.Color
    local CreateClientConVar 	= _G.CreateClientConVar
    local ErrorNoHalt 			= _G.ErrorNoHalt
    local IsValid 				= _G.IsValid
    local CreateMaterial 		= _G.CreateMaterial
    local tonumber 				= _G.tonumber
    local tostring 				= _G.tostring
    local CurTime			 	= _G.CurTime
    local FrameTime 			= _G.FrameTime
    local ScrW 					= _G.ScrW
    local ScrH 					= _G.ScrH
    local SetClipboardText 		= _G.SetClipboardText
    local GetHostName 			= _G.GetHostName
    local unpack 				= _G.unpack
    local AddConsoleCommand 	= _G.AddConsoleCommand 
    local require				= _G.require
    local include				= _G.include
    
    local MOVETYPE_OBSERVER 	= _G.MOVETYPE_OBSERVER
    local MOVETYPE_NONE 		= _G.MOVETYPE_NONE
    local TEXT_ALIGN_LEFT 		= _G.TEXT_ALIGN_LEFT
    local TEXT_ALIGN_TOP 		= _G.TEXT_ALIGN_TOP
    local TEXT_ALIGN_RIGHT 		= _G.TEXT_ALIGN_RIGHT
    local TEXT_ALIGN_BOTTOM		= _G.TEXT_ALIGN_BOTTOM
    local IN_JUMP 				= _G.IN_JUMP
    local IN_FORWARD 			= _G.IN_FORWARD
    local IN_BACK 				= _G.IN_BACK
    local IN_MOVERIGHT 			= _G.IN_MOVERIGHT
    local IN_MOVELEFT 			= _G.IN_MOVELEFT
    local IN_SPEED 				= _G.IN_SPEED
    local IN_DUCK 				= _G.IN_DUCK
    local TEAM_SPECTATOR 		= 1002
    
    -- old [detour]
    local old_filecdir 			= file.CreateDir;
    local old_filedel 			= file.Delete;
    local old_fileexist 		= file.Exists;
    local old_fileexistex 		= file.ExistsEx;
    local old_filefind 			= file.Find;
    local old_filefinddir 		= file.FindDir;
    local old_filefindil 		= file.FindInLua;
    local old_fileisdir			= file.IsDir;
    local old_fileread 			= file.Read;
    local old_filerename 		= file.Rename;
    local old_filesize 			= file.Size;
    local old_filetfind			= file.TFind;
    local old_filetime 			= file.Time;
    local old_filewrite 		= file.Write;
    local old_dbginfo 			= debug.getinfo;
    local old_dbginfo 			= debug.getupvalue;
    local old_cve 				= ConVarExists;
    local old_gcv 				= GetConVar;
    local old_gcvn 				= GetConVarNumber;
    local old_gcvs 				= GetConVarString;
    local old_rcc 				= RunConsoleCommand;
    local old_hookadd			= hook.Add;
    local old_hookrem 			= hook.Remove;
    local old_ccadd				= concommand.Add;
    local old_ccrem 			= concommand.Remove;
    local old_cvaracc 			= cvars.AddChangeCallback;
    local old_cvargcvc 			= cvars.GetConVarCallbacks;
    local old_cvarchange 		= cvars.OnConVarChanged;
    local old_require			= require;
    local old_eccommand 		= engineConsoleCommand;
    
    
    --Fonts--
    surface.CreateFont("ESPFont",{font = "ScoreboardText", size = 17, weight = 400, antialias = 0})
    surface.CreateFont("ESPFont_Small",{font = "Default", size = 12, weight = 200, antialias = 0})
    surface.CreateFont("Logo",{font = "akbar", size = 21, weight = 400, antialias = 0})
    surface.CreateFont("Sethhacks_ScoreboardText",{font = "ScoreboardText", size = 15, weight = 700, antialias = 0})
    surface.CreateFont("Sethhacks_coolvetica",{font = "coolvetica", size = 16, weight = 500, antialias = 0})
    surface.CreateFont("Sethhacks_hvh",{font = "ScoreboardTextt", size = 15, weight = 1000, antialias = 1})
    
    --Materials--
    function Sethhacks:CreateMaterial()
    local BaseInfo = {
    ["$basetexture"] = "models/debug/debugwhite",
    ["$model"]       = 1,
    ["$translucent"] = 1,
    ["$alpha"]       = 1,
    ["$nocull"]      = 1,
    ["$ignorez"]	 = 1
    }	
    local mat	
    if GetConVarString("Sethhacks_ESP_Chams_Material") == "Solid" then
    	mat = CreateMaterial( "Sethhacks_solid", "VertexLitGeneric", BaseInfo )
    elseif GetConVarString("Sethhacks_ESP_Chams_Material") == "Wireframe" then
    	mat = CreateMaterial( "Sethhacks_wire", "Wireframe", BaseInfo )
    end
       return mat // return the var to the function
    end
    
    /**************************************
    Name: Logger
    Purpose: Logs functions and shit
    **************************************/
    concommand.Add("Sethhacks_StartLog",function() -- file.Exists is being bad, this is an alternative
    file.Write("Sethhacks/log.txt","Log created: ("..os.date()..") \n")
    end)
    
    function Log(msg)
    file.Append("Sethhacks/log.txt","["..os.date().."]: "..msg.."\n")
    end
    Log("Loading....")
    
    
    /*******************************************
    Name: Print/Chat functions
    Purpose: Notify the user of what's going on
    ********************************************/
    function Sethhacks.Print(msg)
    	print("[Sethhacks] "..msg)
    end
    
    function Sethhacks.Notify(dosound,col,msg)
    	if col then
    		col = col
    	end
    chat.AddText(
    iceblue, "[Sethhacks] ",
    col, msg)
    	if dosound == sound then
    		local beep = Sound( "/buttons/button17.wav" )
    		local beepsound = CreateSound( LocalPlayer(), beep )
    		beepsound:Play()
    	end
    end
    
    /***********************************************
    Name: Hook functions
    Purpose: Add hooks and protect from anticheats
    ************************************************/
    
    -- Addhook
    local function AddHook(Type,Function)
    	Name = Type.." | "..math.random(1,1000),math.random(1,2000),math.random(1,3000) -- Simple hook names
    	Sethhacks.Print("[ADDED] Hook: ["..Type.."] | Name: "..Name.."")
    	return old_hookadd(Type,Name,Function)
    end
    
    -- RemoveHook
    local function RemoveHook(Type,Function)
    	Sethhacks.Print("[REMOVED] Hook: ["..Type.."]")
    	return old_hookadd(Type,Function)
    end
    
    /**********************************
    Name: File Shit
    Purpose: Anything relating to file.
    ***********************************/
    -- Write file
    function AddFile(Name,Data)
    	Sethhacks.Print("[WROTE] File: "..Name.."")
    	return old_filewrite(Name,Data)
    end
    
    /**************
    Random String
    **************/
    function RandomString( len )
    	local ret = ""
    		for i = 1 , len do
    			ret = ret .. string.char( math.random( 65 , 116 ) )
            end
    	return ret
    end
    
    /**********************
    Name: Timer shit
    Purpose: Anything timer
    ***********************/
    function AddTimer( sec, rep, func )
    	local index = RandomString( 10 )	
    	Sethhacks.timers[ index ] = sec	
    	timer.Create( index, sec, rep, func )
    end
    
    /******************************************
    Name: ConCommand Shit
    Purpose: Anything related to concommands
    ********************************************/
    
    function AddCMD(Name,Function)
    	Sethhacks.Print("[ADDED] ConCommand: "..Name.."")
    	return old_ccadd(Name,Function)
    end
    
    function RemoveCMD(Name)
    	Sethhacks.Print("[REMOVED] ConCommand: "..Name.."")
    	return old_ccrem(Name)
    end
    
    /*******************************************
    Name: ConVars
    Purpose: Anything with ConVars
    ********************************************/
    
    -- AddConVar
    function AddConVar(convar,str,save,data)
    	return CreateClientConVar("Sethhacks_"..convar,str,true,false), Sethhacks.Print("[ADDED] ConVar: Sethhacks_"..convar.." ["..str.."]")
    end
    
    /***************************************
    Name: RunConsoleCommand shit
    Purpose: Detours, Loggers
    ****************************************/
    function RunConsoleCommand(cmd,...)
    	Sethhacks.Print("RunConsoleCommand: "..cmd)
    	Log("RunConsoleCommand: "..cmd)
    	return old_rcc(cmd,...)
    end
    
    
    /**************************************
    Name: Entity Shit
    Purpose: Anything to do with entities
    ***************************************/
    -- entity finder [addent]
    function AddEnt(entclass)
    	if(!table.HasValue(Sethhacks.ents,entclass)) then
    		table.insert(Sethhacks.ents,entclass)
    		Sethhacks.Print("[ADDED] Ent: "..entclass.." to ESP")
    		file.Write("Sethhacks/ents.txt", glon.encode( Sethhacks.ents ))
    	end
    end
    
    -- entity finder [removeent]
    function RemoveEnt(entclass)
    	for k, v in pairs(Sethhacks.ents) do
    		if(string.Trim(v) == entclass) then
    			Sethhacks.ents[k] = nil
    			Sethhacks.Print("[REMOVED] Ent: "..entclass.." from the ESP")
    		end
    	end
    	file.Write("Sethhacks/ents.txt", glon.encode( Sethhacks.ents ))
    end
    
    -- entity finder [clear ents]
    function ClearEnts()
    	Sethhacks.ents = {}
    	file.Write("Sethhacks/ents.txt", glon.encode( Sethhacks.ents ))
    end
    
    -- entity finder [IsCustomEnt()]
    function IsCustomEnt( entclass )
    	return table.HasValue( Sethhacks.ents, entclass )
    end
    
    
    /**************************
    Name: Derma shit
    Purpose: Anything Derma
    ***************************/
    function AddCheckBox( text, cvar, parent, x, y, tt )
    local checkbox = vgui.Create( "DCheckBoxLabel", parent )
    checkbox:SetPos( x, y )
    checkbox:SetText( text )
    checkbox:SetConVar( cvar )
    checkbox:SetTextColor(white)
    checkbox:SetTooltip( tt or "No Tool Tip" )
    checkbox:SizeToContents()	
    end
    
    // AddSlider for the derma
    function AddSlider( text, cvar, parent, min, max, decimals, x, y, wide, tt )
    local slider = vgui.Create( "DNumSlider" )
    slider:SetParent( parent )
    slider:SetPos( x, y )
    slider:SetWide( wide )
    slider:SetText( text )
    --slider:SetTextColor(BLACK)
    slider:SetMin( min ) 
    slider:SetMax( max ) 
    slider:SetDecimals( decimals ) 
    slider:SetConVar( cvar )
    slider:SetTooltip( tt or "No Tool Tip" )
    end
    
    Gradient = surface.GetTextureID( "gui/gradient" )
    function DrawBox( x, y, wide, tall, dropsize )
    	draw****undedBoxEx( 4, x, y, wide, dropsize, iceblue, true, true, false, false )
    	draw****undedBoxEx( 4, x, y + dropsize, wide, tall - dropsize, Color( 0, 0, 0, 100 ), false, false, true, true )
    end
    
    /*************************
    Name: CreatePos
    Purpose: Create a position
    Credits: BaconBot
    ***************************/
    function CreatePos(v)
    local ply = LocalPlayer()
    local center = v:LocalToWorld( v:OBBCenter() )
    local min, max = v:OBBMins(), v:OBBMaxs()
    local dim = max - min	local z = max + min	
    local frt	= ( v:GetForward() ) * ( dim.y / 2 )
    local rgt	= ( v:GetRight() ) * ( dim.x / 2 )
    local top	= ( v:GetUp() ) * ( dim.z / 2 )
    local bak	= ( v:GetForward() * -1 ) * ( dim.y / 2 )
    local lft	= ( v:GetRight() * -1 ) * ( dim.x / 2 )
    local btm	= ( v:GetUp() * -1 ) * ( dim.z / 2 )
    local s = 1
    local FRT 	= center + frt / s + rgt / s + top / s; FRT = FRT:ToScreen()
    local BLB 	= center + bak / s + lft / s + btm / s; BLB = BLB:ToScreen()
    local FLT	= center + frt / s + lft / s + top / s; FLT = FLT:ToScreen()
    local BRT 	= center + bak / s + rgt / s + top / s; BRT = BRT:ToScreen()
    local BLT 	= center + bak / s + lft / s + top / s; BLT = BLT:ToScreen()
    local FRB 	= center + frt / s + rgt / s + btm / s; FRB = FRB:ToScreen()
    local FLB 	= center + frt / s + lft / s + btm / s; FLB = FLB:ToScreen()
    local BRB 	= center + bak / s + rgt / s + btm / s; BRB = BRB:ToScreen()	
    local z = 100
    if ( v:Health() <= 50 ) then z = 100 end
    local x, y = ( ( v:Health() / 100 ) ), 1
    if ( v:Health() <= 0 ) then x = 1 end
    local FRT3 	= center + frt + rgt + top / x; FRT3 = FRT3; FRT3 = FRT3:ToScreen()
    local BLB3 	= center + bak + lft + btm / x; BLB3 = BLB3; BLB3 = BLB3:ToScreen()
    local FLT3	= center + frt + lft + top / x; FLT3 = FLT3; FLT3 = FLT3:ToScreen()
    local BRT3 	= center + bak + rgt + top / x; BRT3 = BRT3; BRT3 = BRT3:ToScreen()
    local BLT3 	= center + bak + lft + top / x; BLT3 = BLT3; BLT3 = BLT3:ToScreen()
    local FRB3 	= center + frt + rgt + btm / x; FRB3 = FRB3; FRB3 = FRB3:ToScreen()
    local FLB3 	= center + frt + lft + btm / x; FLB3 = FLB3; FLB3 = FLB3:ToScreen()
    local BRB3 	= center + bak + rgt + btm / x; BRB3 = BRB3; BRB3 = BRB3:ToScreen()	
    local x, y, z = 1.1, 0.9, 1
    local FRT2 	= center + frt / y + rgt / z + top / x; FRT2 = FRT2:ToScreen()
    local BLB2 	= center + bak / y + lft / z + btm / x; BLB2 = BLB2:ToScreen()
    local FLT2	= center + frt / y + lft / z + top / x; FLT2 = FLT2:ToScreen()
    local BRT2 	= center + bak / y + rgt / z + top / x; BRT2 = BRT2:ToScreen()
    local BLT2 	= center + bak / y + lft / z + top / x; BLT2 = BLT2:ToScreen()
    local FRB2 	= center + frt / y + rgt / z + btm / x; FRB2 = FRB2:ToScreen()
    local FLB2 	= center + frt / y + lft / z + btm / x; FLB2 = FLB2:ToScreen()
    local BRB2 	= center + bak / y + rgt / z + btm / x; BRB2 = BRB2:ToScreen()	
    local maxX = math.max( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
    local minX = math.min( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
    local maxY = math.max( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
    local minY = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
    local minYhp2 = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
    local maxXhp = math.max( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
    local minXhp = math.min( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
    local maxYhp = math.max( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )
    local minYhp = math.min( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )	
    local maxX2 = math.max( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
    local minX2 = math.min( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
    local maxY2 = math.max( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
    local minY2 = math.min( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
    return maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp
    end
    
    
    /*************************************
    Name: PlayerVisible
    Purpose: Check if a player is visible
    *************************************/
    local function CanSee(ply)
        local trace = {start = LocalPlayer():GetShootPos(),endpos = {}}
        local tr = util.TraceLine(trace)
        if tr.Fraction == 1 then
            return true
        else
            return false
        end    
    end
    
    /**********************************
    Name: GetColors
    Purpose: Make a cool color!
    ***********************************/
    local function GetColorCrosshair()
    	if LocalPlayer():GetEyeTrace().Entity:IsPlayer() then
    		return 0,255,0,255
    	end
    	if LocalPlayer():GetEyeTrace().Entity:IsNPC() then
    		return 0,0,255,255
    	end
    	return team.GetColor(LocalPlayer():Team())
    end
    
    local function GetColorVisible(e)
    	if CanSee(e) then
    		return 0,255,0,255
    	end
    	if !CanSee(e) then
    		return 255,0,0,255
    	end
    end
    
    
    /**************************************
    Name: Number shit
    Purpose: Format number, round number, etc
    **************************************/
    function CommaValue(amount)
    	local formatted = amount
    	while true do  
    		formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
    		if (k==0) then
    			break
    		end
    	end
    	return formatted
    end
    
    function RoundNum(val, decimal)
    	if (decimal) then
    		return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
    	else
    		return math.floor(val+0.5)
    	end
    end
    
    function FormatNum(amount, decimal, prefix, neg_prefix)
    	local str_amount,  formatted, famount, remain
    	decimal = decimal or 2
    	neg_prefix = neg_prefix or "-"
    	famount = math.abs(RoundNum(amount,decimal))
    	famount = math.floor(famount)
    	remain = RoundNum(math.abs(amount) - famount, decimal)
    	formatted = CommaValue(famount)
    	if (decimal > 0) then
    		remain = string.sub(tostring(remain),3)
    		formatted = formatted .. "." .. remain .. string.rep("0", decimal - string.len(remain))
    	end
    	formatted = (prefix or "") .. formatted 
    	if (amount<0) then
    		if (neg_prefix=="()") then
    			formatted = "("..formatted ..")"
    		else
    			formatted = neg_prefix .. formatted 
    		end
    	end
    	return formatted
    end
    
    function ConvertTime(sSeconds)
    	local nSeconds = tonumber(sSeconds)
    	if nSeconds <= 0 then
    			return 0;
    		else
    			local nHours = string.format("%02.f", math.floor(nSeconds/3600));
    			local nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60)));
    			local nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60));
    		if tonumber( nHours ) > 0 then
    			return nHours..":"..nMins..":"..nSecs
    		elseif tonumber( nMins ) > 0 and tonumber( nHours ) == 0 then
    			return nMins..":"..nSecs
    		elseif tonumber( nSecs ) > 0 and tonumber( nMins ) == 0 then
    			return nMins..":"..nSecs
    		end
    	end
    end
    
    /**********************
    Name: DrawText
    Purpose: Draws text...
    **********************/
    function Sethhacks.DrawText( text, font, x, y, colour, xalign, yalign )
    	if (font == nil) then font = "Default" end
    	if (x == nil) then x = 0 end
    	if (y == nil) then y = 0 end	
    	local curX = x
    	local curY = y
    	local curString = ""	
    	surface.SetFont(font)
    	local sizeX, lineHeight = surface.GetTextSize("\n")	
    	for i=1, string.len(text) do
    		local ch = string.sub(text,i,i)
    		if (ch == "\n") then
    			if (string.len(curString) > 0) then
    				draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
    			end			
    			curY = curY + (lineHeight/2)
    			curX = x
    			curString = ""
    		elseif (ch == "\t") then
    			if (string.len(curString) > 0) then
    				draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
    			end
    			local tmpSizeX,tmpSizeY =  surface.GetTextSize(curString)
    			curX = math.ceil( (curX + tmpSizeX) / 50 ) * 50
    			curString = ""
    		else
    			curString = curString .. ch
    		end
    	end	
    	if (string.len(curString) > 0) then
    		draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
    	end
    end
    
    local function FillRGBA(x,y,w,h,col)
        surface.SetDrawColor( col.r, col.g, col.b, col.a );
        surface.DrawRect( x, y, w, h );
    end
    
    local function OutlineRGBA(x,y,w,h,col)
        surface.SetDrawColor( col.r, col.g, col.b, col.a );
        surface.DrawOutlinedRect( x, y, w, h );
    end
    
    /*********************
    Name: IsVehicle
    Purpose: Find vehicles
    *********************/
    function Sethhacks.IsVehicle( e )	
    	local ply = LocalPlayer()	
    	if ( string.find( e:GetClass(), "prop_vehicle_" ) && ply:GetMoveType() ~= 0 ) then
    		return true
    	end
    	return false
    end
    
    /***************************
    Name: SetColors
    Purpose: Set Colors
    ****************************/
    function SetColors(e)
    	local ply, class, model = LocalPlayer(), e:GetClass(), e:GetModel()
    	local col	
    	if ( e:IsPlayer() ) then
    		col = Color(0,255,0,255)
    	elseif ( e:IsNPC() ) then 
    		col = Color( 255, 0, 0, 20 )		
    	elseif IsCustomEnt( e:GetClass() ) then
    		col = Color( 0, 200, 255, 50 )		
    	else
    		col = Color( 255, 255, 255, 255 )		
    	end	
    	return col
    end
    
    /******************************
    Name: Get Admin Type
    Purpose: Get Admin Type..
    *******************************/
    local function GetAdminType(e)
    	if e:IsAdmin() && !e:IsSuperAdmin() then
    		return " [A] "
    	elseif( e:IsSuperAdmin() ) then
    		return " [SA] "
    	end
    	return " "
    end
    
    /*******************************************
    Name: Anti-Cheat bypasses
    Purpose: Bypass shitty LUA anti-cheats
    ********************************************/
    
    Sethhacks.Print("[Anti-Cheat] Detected by: Cherry's AC (Working on a bypass method)")
    Sethhacks.Print("[Anti-Cheat] Detected by: LIFEPUNCH Anti-Cheat")
    Sethhacks.Print("[Anti-Cheat] Will bypass: SourceMod Anti-Cheat") -- SHOULD bypass by default, haven't got any problems yet.
    
    
    /****************************
    Name: Create ConVars
    Purpose: Create ConVars..
    *****************************/
    AddConVar("ESP_Info",0)
    AddConVar("ESP_Box",0)
    AddConVar("ESP_HPBar",0)
    AddConVar("ESP_Skeleton",0)
    AddConVar("ESP_Tracer",0)
    AddConVar("ESP_Crosshair",0)
    AddConVar("ESP_Chams",0)
    AddConVar("ESP_Chams_Material","Solid")
    AddConVar("ESP_Ents",0)
    AddConVar("ESP_Distance",1000)
    AddConVar("ESP_Info_Type","info")
    
    AddConVar("MISC_Bunnyhop",0)
    AddConVar("MISC_TTT",0)
    AddConVar("MISC_ChatSpam",0)
    AddConVar("MISC_ChatSpam_Msg","visit www.sethhack.seth.im.me.******.net.org.dk.uk.com.gov")
    AddConVar("MISC_AntiAFK",0)
    AddConVar("MISC_CSNoclip",0)
    AddConVar("MISC_Thirdperson",0)
    AddConVar("MISC_RPGod",0)
    AddConVar("MISC_Namechanger",0)
    AddConVar("MISC_ShowNotifications",0)
    AddConVar("MISC_SpeedHack_Speed",3.5)
    AddConVar("MISC_ShowSpec",0)
    AddConVar("MISC_ShowAdmins",0)
    
    AddConVar("PERP_Fuel",0)
    AddConVar("PERP_Druggy",0)
    AddConVar("PERP_Weed",0)
    AddConVar("PERP_RPNames",0)
    AddConVar("PERP_PlayerInfo",0)
    
    AddConVar("AIM_Friendly",0)
    AddConVar("AIM_Steam",0)
    AddConVar("AIM_Admins",0)
    AddConVar("AIM_Auto",0)
    AddConVar("AIM_NoRecoil",0)
    AddConVar("AIM_Offset",0)
    AddConVar("AIM_AimSpot","Eye")
    AddConVar("AIM_Trigger",0)
    AddConVar("AIM_Silent",0)
    AddConVar("AIM_SH",0)
    AddConVar("AIM_Anti",0)
    
    
    
    /***********************************
    concommands to find entities and shit
    **************************************/
    
    AddCMD("_ents",function()
    PrintTable(ents.GetAll())
    end)
    
    AddCMD("_players",function()
    PrintTable(player.GetAll())
    end)
    
    
    /**********************
    Set some ConVars to 0
    **********************/
    old_rcc("Sethhacks_PERP_Fuel","0")
    old_rcc("Sethhacks_PERP_Druggy","0")
    old_rcc("Sethhacks_PERP_Weed","0")
    old_rcc("Sethhacks_PERP_RPNames","0")
    old_rcc("Sethhacks_PERP_PlayerInfo","0")
    old_rcc("Sethhacks_MISC_ChatSpam","0")
    old_rcc("Sethhacks_ESP_Tracer","0")
    
    
    
    /*******************
    Start of cheat
    *******************/
    
    --[[
    	CHAMS
    ]]--
    
    -- distance check
    function IsCloseEnough(ent)
    	local dist = ent:GetPos():Distance( LocalPlayer():GetPos() )
    	if( dist <= GetConVarNumber("Sethhacks_ESP_Distance") and ent:GetPos() != Vector( 0, 0, 0 ) ) then
    		return true
    	end
    	return false	
    end
    
    function Chams()
    local mat = Sethhacks:CreateMaterial()
    	if GetConVarNumber("Sethhacks_ESP_Chams") == 1 then
    		for k,v in pairs(player.GetAll()) do
    			local TCol = team.GetColor(v:Team())
    			if IsValid(v) and v:Health() > 0 and v:Team() != TEAM_SPECTATOR and IsCloseEnough(v) then
    			//Players
    			cam.Start3D(EyePos(),EyeAngles())
    			render.SuppressEngineLighting( true )
    			render.SetColorModulation( ( TCol.r * ( 1 / 255 ) ), ( TCol.g * ( 1 / 255 ) ), ( TCol.b * ( 1 / 255 ) ) )
    			render.MaterialOverride( mat )
    			v:DrawModel()
    			render.SuppressEngineLighting( false )
    			render.SetColorModulation(1,1,1)
    			render.MaterialOverride( )
    			v:DrawModel()
    			cam.End3D()
    			end
    		end
    	end
    end
    
    
    local IsLock = false;
    --[[ 
    	ESP
    ]]--
    function ESP()
    	for k, e in pairs( player.GetAll() ) do
    local TeamColor = team.GetColor(e:Team())
    local HPColor = Color(255,255,255,255)
    local Dist = e:GetPos():Distance(LocalPlayer():GetPos());
    local wep = "Unknown"
    local SteamID = e:SteamID()
    local Name = e:Nick()
    local hvhpos = ( e:GetPos() + Vector( 0, 0, 130 ) ):ToScreen();
    if GetConVarNumber("Sethhacks_PERP_RPNames") == 1 then
    	Name = e:GetRPName()
    else
    	Name = e:Nick()
    end
    local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp = CreatePos( e )
    -- This is bad
    if e:Health() >= 90 then HPColor = Color(0,255,0,255)
    	elseif e:Health() >= 70 then HPColor = Color(255,255,0,255)
    	elseif e:Health() >= 50 then HPColor = Color(255,165,0,255)
    	elseif e:Health() >= 30 then HPColor = Color(255,140,0,255)
    	elseif e:Health() >= 20 then HPCOlor = Color(255,69,0,255)
    	elseif e:Health() >= 10 then HPColor = Color(255,0,0,255)
    	else HPColor = Color(255,0,0,255)
    end
    draw.SimpleTextOutlined("Sethhacks v4.5","Logo",1285,15,Color(2,0,0,255),4,1,1,red)
    		if ( e:IsPlayer() && e:Alive() && e != LocalPlayer() && IsCloseEnough(e) ) then
    			if e:GetActiveWeapon() != nil then
    				if type(e:GetActiveWeapon()) == "Weapon" then
    					if e:GetActiveWeapon() and e:GetActiveWeapon():IsValid() then
    						wep = e:GetActiveWeapon():GetPrintName()
    						
    							-- ESP INFO
    							if (GetConVarNumber("Sethhacks_ESP_Info") == 1 && GetConVarString("Sethhacks_ESP_Info_Type") == "info") then
    								draw.SimpleTextOutlined( Name..GetAdminType(e), "Sethhacks_coolvetica", maxX2, minY2, TeamColor,4,1,1,Color(0,0,0))
    								draw.SimpleTextOutlined( "H: " .. e:Health(), "ESPFont_Small", maxX2, minY2 + 10, HPColor, 4,1, 1, black )
    								draw.SimpleTextOutlined( "D: " .. math.floor(Dist), "ESPFont_Small", maxX2, minY2 + 20, iceblue, 4, 1, 1, black )
    								draw.SimpleTextOutlined( "W: " .. wep, "ESPFont_Small", maxX2, minY2 + 30, iceblue, 4, 1, 1, black)
    								if e:GetFriendStatus() == "friend" then
    									draw.SimpleTextOutlined( "[Friend]", "ESPFont_Small", maxX2, minY2 - 10, iceblue, 4, 1,1,black)
    								end
    									if e:IsAdmin() then
    										draw.SimpleText("[Admin]","ESPFont_Small",maxX2,minY2 -20,cyan,4,1,1,black)
    									end
    							elseif GetConVarString("Sethhacks_ESP_Info_Type") == "hvh" then
    								draw.SimpleTextOutlined(e:Nick().." ["..e:Health().."]","Default",hvhpos.x,hvhpos.y,TeamColor,4,.5,.5,black,TEXT_ALIGN_CENTER)
    							end
    							
    							-- ESP BOX --
    							if GetConVarNumber("Sethhacks_ESP_Box") == 1 then
    								surface.SetDrawColor(0,0,255,255)				
    								surface.DrawLine( maxX, maxY, maxX, minY )
    								surface.DrawLine( maxX, minY, minX, minY )					
    								surface.DrawLine( minX, minY, minX, maxY )
    								surface.DrawLine( minX, maxY, maxX, maxY )
    							end
    							-- ESP SKELETON --
    							local bones = {
    							{ S = "ValveBiped.Bip01_Head1", E = "ValveBiped.Bip01_Neck1" },
    							{ S = "ValveBiped.Bip01_Neck1", E = "ValveBiped.Bip01_Spine4" },
    							{ S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_Spine2" },
    							{ S = "ValveBiped.Bip01_Spine2", E = "ValveBiped.Bip01_Spine1" },
    							{ S = "ValveBiped.Bip01_Spine1", E = "ValveBiped.Bip01_Spine" },
    							{ S = "ValveBiped.Bip01_Spine", E = "ValveBiped.Bip01_Pelvis" },
    							
    							{ S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_L_UpperArm" },
    							{ S = "ValveBiped.Bip01_L_UpperArm", E = "ValveBiped.Bip01_L_Forearm" },
    							{ S = "ValveBiped.Bip01_L_Forearm", E = "ValveBiped.Bip01_L_Hand" },
    
    							{ S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_R_UpperArm" },
    							{ S = "ValveBiped.Bip01_R_UpperArm", E = "ValveBiped.Bip01_R_Forearm" },
    							{ S = "ValveBiped.Bip01_R_Forearm", E = "ValveBiped.Bip01_R_Hand" },
    
    							{ S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_L_Thigh" },
    							{ S = "ValveBiped.Bip01_L_Thigh", E = "ValveBiped.Bip01_L_Calf" },
    							{ S = "ValveBiped.Bip01_L_Calf", E = "ValveBiped.Bip01_L_Foot" },
    							{ S = "ValveBiped.Bip01_L_Foot", E = "ValveBiped.Bip01_L_Toe0" },
    
    							{ S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_R_Thigh" },
    							{ S = "ValveBiped.Bip01_R_Thigh", E = "ValveBiped.Bip01_R_Calf" },
    							{ S = "ValveBiped.Bip01_R_Calf", E = "ValveBiped.Bip01_R_Foot" },
    							{ S = "ValveBiped.Bip01_R_Foot", E = "ValveBiped.Bip01_R_Toe0" },
    							}
    							if GetConVarNumber("Sethhacks_ESP_Skeleton") == 1 then
    								for k, v in pairs( bones ) do
    									local sPos, ePos = e:GetBonePosition( e:LookupBone( v.S ) ):ToScreen(), e:GetBonePosition( e:LookupBone( v.E ) ):ToScreen()
    										if e:IsPlayer() and !e:IsNPC() then
    											surface.SetDrawColor(team.GetColor(e:Team()))
    										end
    										surface.DrawLine(sPos.x,sPos.y,ePos.x,ePos.y)
    								end
    							end
    							-- ESP TRACER --
    							if GetConVarNumber("Sethhacks_ESP_Tracer") == 1 then	
    								cam.Start3D( EyePos() , EyeAngles())
    								render.SetMaterial( Material( "trails/laser" ) )
    								StartPos = LocalPlayer():GetActiveWeapon():GetPos()
    								EndPos = e:GetBonePosition(e:LookupBone("ValveBiped.Bip01_Head1"))
    								render.DrawBeam(StartPos, EndPos , 3, 0, 0, Color(0,255,0,255))
    								cam.End3D()
    							end
    							
    							-- ESP CROSSHAIR --
    							if GetConVarNumber("Sethhacks_ESP_Crosshair") == 1 then
    								local x, y = ScrW() / 2, ScrH() / 2	
    								local Speed = 1
    								surface.SetDrawColor(GetColorCrosshair()) 
    								CHPosx = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().x,0,ScrW())
    								CHPosy = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().y,0,ScrH())
    								mathsin = math.sin(CurTime()*Speed)*4
    								mathcos = math.cos(CurTime()*Speed)*4
    								mathsin2 = math.sin(CurTime()*Speed+0.1)*4
    								mathcos2 = math.cos(CurTime()*Speed+0.1)*4
    								mathsin3 = math.sin(CurTime()*Speed-0.1)*4
    								mathcos3 = math.cos(CurTime()*Speed-0.1)*4
    								surface.DrawLine( CHPosx+mathcos*2,CHPosy+mathsin*2,CHPosx+mathcos*5,CHPosy+mathsin*5 );
    								surface.DrawLine( CHPosx-mathcos*2,CHPosy-mathsin*2,CHPosx-mathcos*5,CHPosy-mathsin*5 );
    								surface.DrawLine( CHPosx+mathsin*2,CHPosy-mathcos*2,CHPosx+mathsin*5,CHPosy-mathcos*5 );
    								surface.DrawLine( CHPosx-mathsin*2,CHPosy+mathcos*2,CHPosx-mathsin*5,CHPosy+mathcos*5 );
    							end
    					end
    				end
    			end
    		end
    	end
    	for _, v in ipairs( ents.GetAll() ) do
    		if( v:IsValid() and IsCustomEnt( v:GetClass() )) then
    			if GetConVarNumber("Sethhacks_ESP_Ents") == 1 then
    				local wepn = v:GetClass()
    				local wname = string.Replace(wepn,"weapon_","")
    				wname = string.Replace(wname,"_"," ")
    				wname = string.upper(wname)
    				local entpos = v:GetPos():ToScreen()
    				draw.SimpleTextOutlined(""..wname.."", "ESPFont_Small", entpos.x + 50, entpos.y - 15, color_red, TEXT_ALIGN_CENTER, TEXT_ALIGN_LEFT, .6, black )
    				surface.SetDrawColor(255,0,255,255)
    				surface.DrawLine(entpos.x,entpos.y,entpos.x,entpos.y-10)
    				surface.DrawLine(entpos.x,entpos.y,entpos.x+10,entpos.y)
    			end
    		end                    
    	end
    end 
    
    /************
    Radar
    ************/
    function DoChecksRadar( e )
    	local ply, val = LocalPlayer(), 0	
    	if ( e:IsPlayer() && e:GetMoveType() == MOVETYPE_OBSERVER ) then return false end	
    	if ( !e:IsValid() || !e:IsPlayer() && !e:IsNPC() || e == ply ) then return false end
    	if ( e:IsPlayer() && !e:Alive() ) then return false end
    	if ( e:IsNPC() && e:GetMoveType() == 0 ) then return false end
    	if ( e:IsWeapon() && e:GetMoveType() == 0 ) then return false end	
    	return true	
    end
    
    local RRadar
    
    function Radar()	
    	local Radar = vgui.Create( "DFrame" )
    	Radar:SetSize( 250, 250 )	
    	local rW, rH, x, y = Radar:GetWide(), Radar:GetTall(), ScrW() / 2, ScrH() / 2	
    	local sW, sH = ScrW(), ScrH()
    	Radar:SetPos( sW - rW - 0.1, sH - rH - ( sH - rH ) + 30 )
    	Radar:SetTitle( "[Sethhacks] Radar" )
    	Radar:SetVisible( true )
    	Radar:SetDraggable( true )
    	Radar:ShowCloseButton( false )
    	Radar:MakePopup()
    	Radar.Paint = function()
    		draw****undedBox( 2, 0, 0, rW, rH, Color( 0, 0, 0, 100 ) )
    		surface.SetDrawColor( 255, 255, 255, 255 )
    		--surface.DrawOutlinedRect( 0, 0, rW, rH )		
    		local ply = LocalPlayer()		
    		local radar = {}
    		radar.h		= 250
    		radar.w		= 250
    		radar.org	= 5000		
    		local x, y = ScrW() / 2, ScrH() / 2		
    		local half = rH / 2
    		local xm = half
    		local ym = half		
    		surface.DrawLine( xm, ym - 100, xm, ym + 100 )
    		surface.DrawLine( xm - 100, ym, xm + 100, ym )		
    		for k, e in pairs( ents.GetAll() ) do
    			if ( DoChecksRadar(e) ) then				
    				local s = 6
    				local col = SetColors(e)
    				local color = Color( col.r, col.g, col.b, 255 )
    				local plyfov = ply:GetFOV() / ( 70 / 1.13 )
    				local zpos, npos = ply:GetPos().z - ( e:GetPos().z ), ( ply:GetPos() - e:GetPos() )			
    				npos:Rotate( Angle( 180, ( ply:EyeAngles().y ) * -1, -180 ) )
    				local iY = npos.y * ( radar.h / ( ( radar.org * ( plyfov  * ( ScrW() / ScrH() ) ) ) + zpos * ( plyfov  * (ScrW() / ScrH() ) ) ) )
    				local iX = npos.x * ( radar.w / ( ( radar.org * ( plyfov  * ( ScrW() / ScrH() ) ) ) + zpos * ( plyfov  * (ScrW() / ScrH() ) ) ) )								
    				local pX = ( radar.w / 2 )
    				local pY = ( radar.h / 2 )			
    				local posX = pX - iY - ( s / 2 )
    				local posY = pY - iX - ( s / 2 )				
    				local text = e:GetClass()				
    				if ( e:IsPlayer() ) then 
    					text = e:Nick() .. " ["..e:Health().."]"
    				elseif ( e:IsNPC() ) then
    					text = ""
    				elseif (IsCustomEnt(e:GetClass())) then
    					text = "Item"
    				end					
    				if iX < ( radar.h / 2 ) && iY < ( radar.w / 2 ) && iX > ( -radar.h / 2 ) && iY > ( -radar.w / 2 ) then				
    					draw****undedBox( s, posX, posY, s, s, color )
    					Sethhacks.DrawText(
    						text,
    						"DefaultSmall",
    						pX - iY - 4,
    						pY - iX - 15 - ( s / 2 ),
    						color,
    						1,
    						TEXT_ALIGN_TOP
    					)
    				end
    			end
    		end
    	end
    	Radar:SetMouseInputEnabled( false )
    	Radar:SetKeyboardInputEnabled( false )	
    	RRadar = Radar
    end
    Radar()
    
    
    /**************************
    NOTIFICATIONS!
    YES, Bringing them back.
    **************************/
    function Notifications()
    local NotifPos = 5
    	if GetConVarNumber("Sethhacks_MISC_ShowNotifications") == 1 then
    		draw****undedBox( 8, -10, 0, 10000, 30, Color(0,0,0,100))
    		
    		if ShouldAim == 1 then
    			draw.SimpleText("| Aimbot: ON", "Logo", 0,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| Aimbot: OFF", "Logo", 0, NotifPos, Color(255,0,0,255))
    		end
    		
    		if GetConVarNumber("Sethhacks_AIM_Auto") == 1 then
    			draw.SimpleText("| Autoshoot: ON", "Logo", 100,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| Autoshoot: OFF", "Logo", 100, NotifPos, Color(255,0,0,255))
    		end
    		
    		if GetConVarNumber("Sethhacks_AIM_Trigger") == 1 then
    			draw.SimpleText("| TriggerBot: ON", "Logo", 220,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| TriggerBot: OFF", "Logo", 220, NotifPos, Color(255,0,0,255))
    		end
    		
    		if GetConVarNumber("Sethhacks_AIM_NoRecoil") == 1 then
    			draw.SimpleText("| No Recoil: ON", "Logo", 340,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| No Recoil: OFF", "Logo", 340,NotifPos, Color(255,0,0,255))
    		end
    		
    		if GetConVarNumber("Sethhacks_AIM_Admins") == 1 then
    			draw.SimpleText("| Target Admins: ON", "Logo", 450,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| Target Admins: OFF", "Logo", 450,NotifPos, Color(255,0,0,255))
    		end
    		
    		if GetConVarNumber("Sethhacks_AIM_Friendly") == 1 then
    			draw.SimpleText("| Friendly Fire: ON", "Logo", 590,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| Friendly Fire: OFF", "Logo", 590,NotifPos, Color(255,0,0,255))
    		end
    		
    		if GetConVarNumber("Sethhacks_AIM_Steam") == 1 then
    			draw.SimpleText("| Target Steam Friends: ON", "Logo", 720,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| Target Steam Friends: OFF", "Logo", 720, NotifPos, Color(255,0,0,255))
    		end
    		
    		if GetConVarNumber("host_timescale") >= 1.1 then
    			draw.SimpleText("| SpeedHack: ON", "Logo", 910,NotifPos, Color(0,255,0,255))
    		else
    			draw.SimpleText("| SpeedHack: OFF", "Logo", 910, NotifPos, Color(255,0,0,255))
    		end
    	end
    end
    
    
    /*****************************************
    Name: Aimbot/Aim functions
    Purpose: Aim for you, because you suck
    Credits: ******
    *******************************************/
    
    local Tb  = table.Copy( file )
    local Tbs = table.Copy( string )
    local Uw = {}
    local Mw = {}
    local function PlyPos( ply )
    local min = ply:OBBMins()
    local max = ply:OBBMaxs()
    	
    local Spots = {
    	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 = ScrW() * 2
    local minY = ScrH() * 2
    local maxX = 0
    local maxY = 0
    
    	for k,v in pairs( Spots ) do
    	local ToScreen = ply:LocalToWorld( v ):ToScreen()
    	minX = math.min( minX, ToScreen.x )
    	minY = math.min( minY, ToScreen.y )
    	maxX = math.max( maxX, ToScreen.x )
    	maxY = math.max( maxY, ToScreen.y )
    	end
    	return minX, minY, maxX, maxY
    end
    AddCMD("+Sethhacks_Aim",function()
    Aimon = 1
    end)
    
    AddCMD("-Sethhacks_Aim",function()
    Aimon = 0
    IsLock = false
    end)
    
    local function AimSpot(targ)
    	if GetConVarString("Sethhacks_AIM_AimSpot") == "Eye" then 
    	local eye = targ:LookupAttachment("eyes")
    		if eye then
    		local pos = targ:GetAttachment(eye)
    			if pos then return pos.Pos end
    		end
    	end	
    	if GetConVarString("Sethhacks_AIM_AimSpot") == "Bone" then
    	local bone = targ:LookupBone("ValveBiped.Bip01_Head1")
    		if bone then
    		local pos = targ:GetBonePosition(bone)
    			if pos then return pos end
    		end
    	end	
    	if GetConVarString("Sethhacks_AIM_AimSpot") == "Center" then
    	local center = targ:OBBCenter()
    		if center then
    		local pos = targ:LocalToWorld(center)
    			if pos then return pos end
    		end
    	end
    	
    return targ:LocalToWorld(targ:OBBCenter())
    
    end
    
    local function Exception(ent)
    	if (ent == LocalPlayer()) then return false end
    	if (ent:Team() == TEAM_SPECTATOR) then return false end
    	if (ent:GetMoveType() == MOVETYPE_OBSERVER) then return false end
    	if (!ent:Alive() ) then return false end
    	if (ent:InVehicle()) then return false end 
    	if (GetConVarNumber("Sethhacks_AIM_Friendly") == 0 && ent:Team() == LocalPlayer():Team()) then return false end  
    	if (GetConVarNumber("Sethhacks_AIM_Steam") == 0 && ent:GetFriendStatus() == "friend" ) then return false end
    return true
    end
    
    local function Visible(ply)
    local tracedata = {}
    	tracedata.start = LocalPlayer():GetShootPos()
    	tracedata.endpos = AimSpot(ply) - Vector(0,0,GetConVarNumber("Sethhacks_AIM_Offset"))
    	tracedata.mask = MASK_SHOT
    	tracedata.filter = {ply , LocalPlayer()}
    	Trace = util.TraceLine(tracedata)
    	if Trace.Hit then return false else return true end
    end
    
    
    local function Aimbot(ucmd)
    	if Aimon == 1 then		
    		local ArchAngel = Angle(0,0,0)
    		local target;
    		local distance = math.huge;
    		for _, ply in pairs(player.GetAll()) do
    			if (ply != LocalPlayer() and ply:Alive() and Visible(ply) and Exception(ply)) then
    				local thedist = ply:GetPos():DistToSqr(LocalPlayer():GetPos());
    				if (thedist < distance) then
    					distance = thedist;
    					target = ply;
    				end
    			end
    		end
    		if target != nil then
    			
    		local Aimspot = AimSpot(target) - Vector(0,0,GetConVarNumber("Sethhacks_AIM_Offset"))
    		Aimspot = Aimspot + target:GetVelocity() / 45 - LocalPlayer():GetVelocity() / 45
    		Angel = (Aimspot - LocalPlayer():GetShootPos()):GetNormal():Angle()
    		Angel.p = math.NormalizeAngle( Angel.p )
    		Angel.y = math.NormalizeAngle( Angel.y )
    			ArchAngel = Angle( Angel.p, Angel.y, 0 )
    				debug.getregistry()["CUserCmd"].SetViewAngles(ucmd, ArchAngel)
    				IsLock = 1
    			if GetConVarNumber("Sethhacks_AIM_Auto") == 1 then
                    ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK)) 
    			end
    			if GetConVarNumber("Sethhacks_AIM_SH") == 1 then
    				ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK2))  
    			end
    		end
    	end
    end
    
    
    /******************************
    Name: SILENT AIM
    Purpose: FAKE AIM VIEW
    ******************************/
    
    -- make me
    
    /****************************
    Name: Misc
    Purpose: Misc features
    *****************************/
    
    function NameChanger()
    	if GetConVarNumber("Sethhacks_MISC_Namechanger") == 1 then
    		AddTimer( 1, 1, function() 
    			Sethhacks.chat(dosound,white,"nope");
    		end )
    	end
    end
    
    function Misc()
    	if GetConVarNumber("Sethhacks_MISC_BunnyHop") == 1 then
    		if input.IsKeyDown(KEY_SPACE) then
    			if LocalPlayer():IsOnGround() then
    				old_rcc("+Jump")
    				timer.Create("Bhop",0.01, 0 ,function() old_rcc("-Jump") end)
    			end
    		end
    	end
    	if GetConVarNumber("Sethhacks_AIM_NoRecoil") == 1 then
    		if LocalPlayer():GetActiveWeapon().Primary then
    			LocalPlayer():GetActiveWeapon().Primary.Recoil = 0
    		end
    	end
    	if GetConVarNumber("Sethhacks_MISC_ChatSpam") == 1 then
    		LocalPlayer():ConCommand("say "..GetConVarString("Sethhacks_MISC_ChatSpam_Msg").."["..math.random(1,999).."]")
    	end
    	if GetConVarNumber("Sethhacks_MISC_RPGod") == 1 then
    		if LocalPlayer():Health() < 100 then
    			LocalPlayer():ConCommand("say /buyhealth"); -- spam buyhealth
    		end
    	end
    end
    
    function ShowNotifi()
    	-- now spectating
    	for k, v in pairs(player.GetAll()) do
    		if (IsValid(v:GetObserverTarget()) and v:GetObserverTarget():IsPlayer() and v:GetObserverTarget() == LocalPlayer()) then
    			if(not table.HasValue(Sethhacks.spectators, v)) then
    				table.insert(Sethhacks.spectators, v);
    				if GetConVarNumber("Sethhacks_MISC_ShowSpec") == 1 then
    					Sethhacks.Notify(true,red,""..v:Nick().." is now spectating you!")
    					surface.PlaySound("buttons/blip1.wav")
    				end
    			end
    		end
    	end
    	-- no longer spectating
    	for k, v in pairs(Sethhacks.spectators) do
    		if (not IsValid(v) or not IsValid(v:GetObserverTarget()) or not v:GetObserverTarget():IsPlayer() or (v:GetObserverTarget() ~= LocalPlayer())) then
    			table.remove(Sethhacks.spectators, k);
    			if GetConVarNumber("Sethhacks_MISC_ShowSpec") == 1 then
    				Sethhacks.Notify(true,green,""..v:Nick().." is no longer spectating you!")
    			end
    		end
    	end
    	-- admin join
    	if GetConVarNumber("Sethhacks_MISC_ShowAdmins") == 1 then
    		for k, v in pairs(player.GetAll()) do
    			if (v:IsAdmin() and not table.HasValue(Sethhacks.admins, v)) then
    				table.insert(Sethhacks.admins, v);
    				Sethhacks.Notify(true,white,"Admin " .. v:Nick() .. " has joined!")
    				surface.PlaySound("buttons/blip1.wav");
    			end
    		end
    	end
    end
    
    
    local commands = { "forward" , "back" , "jump" , "moveleft" , "moveright", "duck" }
    function AntiAfk()
    	if GetConVarNumber("Sethhacks_MISC_AntiAFK") == 1 then
    		local command1 = table.Random( commands )
    		local command2 = table.Random( commands )
    		AddTimer( 1, 1, function() 
    			old_rcc( "+"..command1 ) 
    			old_rcc( "+"..command2 ) 
    		end )
    		AddTimer( 2, 1, function() 
    			old_rcc("-"..command1 ) 
    			old_rcc("-"..command2 ) 
    		end )
    	end
    end
    AddTimer( 5 , 0 , function() AntiAfk() end )
    
    // Traitor finder functions
    local Traitors = {};
    local PlayerIsTraitor = false
    timer.Simple( 3, function()
    	if ( gmod.GetGamemode().Name ) == "Trouble in Terrorist Town" then
    		local TWeapons = { "weapon_ttt_c4", "weapon_ttt_knife", "weapon_ttt_phammer", "weapon_ttt_sipistol", "weapon_ttt_flaregun", "weapon_ttt_push", "weapon_ttt_radio", "weapon_ttt_teleport", "(Disguise)" }
    		local UsedWeapons = {}
    		local MapWeapons = {}
    function IsATraitor( ply )
    	for k, v in pairs( Traitors ) do
    		if v == ply then
    			return true
    		else
    			return false
    		end
    	end
    end
    
    timer.Create("TTT", 0.8, 0, function()
    	if GetConVarNumber("Sethhacks_MISC_TTT") == 1 then
    		if !IsATraitor( ply ) then 
    			for k, v in pairs( ents.FindByClass( "player" ) ) do 
    				if IsValid( v ) then
    					if (!v:IsDetective()) then
    						if v:Team() ~= TEAM_SPECTATOR then
    							for wepk, wepv in pairs( TWeapons ) do
    								for entk, entv in pairs( ents.FindByClass( wepv ) ) do
    									if IsValid( entv ) then
    										cookie.Set( entv, 100 - wepk )
    										if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
    											if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
    												local EntPos = ( entv:GetPos() - Vector(0,0,35) )
    													if entv:GetClass() == wepv then
    														if v:GetPos():Distance( EntPos ) <= 1 then
    															table.insert( Traitors, v )
    															Sethhacks.Notify(sound,red,v:Nick() .. " has traitor weapon: " .. wepv )
    															if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
    																table.insert( UsedWeapons, cookie.GetNumber( entv ) )
    															else
    															if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
    																table.insert( MapWeapons, cookie.GetNumber( entv ) )
    															end
    														end
    													end
    												end
    											end
    										end
    									end
    								end
    							end
    						end
    					end
    				end
    			end
    		end
    	end
    end )
    
    AddHook("HUDPaint",function()
    	if GetConVarNumber("Sethhacks_MISC_TTT") == 1 then
    		for k, e in pairs( Traitors ) do
    			local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp = CreatePos( e )
    			if IsValid( e ) then
    				if e:Team() ~= TEAM_SPECTATOR then
    					if ( !e:IsDetective() ) then
    						PlayerIsTraitor = true
    						draw.SimpleTextOutlined( "[TRAITOR]", "ESPFont", maxX2, minY2 -20, red, 4, 1, 1, black )
    					end
    				end
    			end
    		end
    	end
    end )
    
    AddHook("TTTPrepareRound",function()
    timer.Simple( 2, function()
    	for k, v in pairs( Traitors ) do
    		table.remove( Traitors, k )
    		Traitors = {}
    	end
    		for k, v in pairs( UsedWeapons ) do
    			table.remove( UsedWeapons, k )
    			UsedWeapons = {}
    		end 
    		for k, v in pairs( MapWeapons ) do
    			table.remove( MapWeapons, k )
    			MapWeapons = {}
    		end 
    	end ) 
    end )
    	end 
    end )
    
    /***************************************
    Name: PERP Hack
    Purpose: hacks and exploits for PERP
    ***************************************/
    local WeedGrowTime = 60 * 20
    function PERP_Druggy()
    	local buying = GetGlobalInt("perp_druggy_buy", 0 )
    	local selling = GetGlobalInt("perp_druggy_sell", 0 )	
    	local cantrobbank = GetGlobalBool("perp_bank_robbing_timer")
    	local moneyinbank = GetGlobalInt("perp_realtor_money")	
    	if GetConVarNumber("Sethhacks_PERP_Druggy") == 1 then
    		local posx = 17
    		local posy = 15
    		DrawBox( posx, posy, 122, 60, 20 )
    		draw.SimpleText("Druggy", "ESPFont", posx + 61, posy + 1, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER )
    			local buyingtbl = {
    				"Buying Weed",
    				"Buying Meth",
    				"Buying Shrooms",
    				"Buying LSD",
    				"Buying Shrooms",
    				"Buying Cocaine",
    			}
    			buyingtbl[0] = "Not Buying"
    			draw.SimpleText( buyingtbl[buying], "ESPFont", posx + 61, posy + 42, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
    			local sellingtbl = {
    				"Selling Seeds",
    				"Selling LSD",
    				--"Selling Muscle",
    				"Selling Shrooms",
    				"Selling Cocaine",
    			}
    			sellingtbl[0] = "Not Selling"
    			draw.SimpleText( sellingtbl[selling], "ESPFont", posx + 61, posy + 62, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP)
    	end
    end
    
    timer.Remove("DoFuel");
    timer.Create("DoFuel",5,0,function()
    	if GetConVarNumber("Sethhacks_PERP_Fuel") == 1 then
    		DoFuel();
    	end
    end)
    
    function PERP_Weed()
    	if GetConVarNumber("Sethhacks_PERP_Weed") == 1 then
    		local plants = {}
    		for k, ent in pairs( ents.FindByClass("ent_pot") ) do
    			table.insert( plants, ent )
    		end
    		for k, ent in pairs( ents.FindByClass("ent_coca") ) do
    			table.insert( plants, ent )
    		end
    		local col = nil
    		for k, ent in pairs( plants ) do
    			local pos = ent:GetPos() + Vector(0, 0, 10)
    			local ang = ent:GetAngles()
    			local drawpos = pos:ToScreen()
    			local timeleft = 85564
    			if( ent:GetClass() == "ent_coca" ) then col = Color( 0, 0, 255 ) else col = Color( 255, 0, 0 ) end
    			if( ent.dt != nil ) then
    				timeleft = ent:GetTable().GrowthTime - ( CurTime() - ent.dt.SpawnTime )
    			elseif( ent:GetTable().SpawnTime != nil ) then
    				timeleft = ent:GetTable().GrowthTime - (CurTime() - ent:GetTable().SpawnTime)
    			end
    			if( LocalPlayer():GetShootPos():Distance( pos ) <= 4000 ) then
    				if( timeleft > 1 and timeleft != 85564 ) then
    					draw.SimpleText( ConvertTime( timeleft ) , "ESPFont_Small", drawpos.x, drawpos.y, col, 1, 1 )
    				elseif( timeleft != 85564 ) then
    					draw.SimpleText( "DONE!", "ESPFont", drawpos.x, drawpos.y, green, 1, 1 )
    				end
    			end
    		end
    	end
    end
    
    // player info (yourself)
    function PERP_PlayerInfo()
    	if GetConVarNumber("Sethhacks_PERP_PlayerInfo") == 1 then
    		draw****undedBox( 0, 17, 80, 175, 200, Color(0,0,0,70) )
    		draw.SimpleText("PERP INFO", "Sethhacks_ScoreboardText", 60,90, white, 1, 1 )
    		draw.SimpleText("HP: "..LocalPlayer():Health(), "Sethhacks_ScoreboardText", 55,110, white, 1, 1 )
    		draw.SimpleText("Armor: "..LocalPlayer():Armor(), "Sethhacks_ScoreboardText", 55,130, white, 1, 1 )	
    		draw.SimpleText("Bank: "..FormatNum( LocalPlayer():GetBank(), 2, "$" ), "Sethhacks_ScoreboardText", 75,150, white, 1, 1 )
    	end
    end
    
    
    /*************************
    MENU FUNCTIONS
    *************************/
    AddCMD("+Sethhacks_Menu", function()
    Menu = vgui.Create("DFrame")
    Menu:SetSize(450,360)
    Menu:SetTitle("                                                  :: Sethhacks :: Version "..Sethhacks.version.." ::") -- Ignore the spacing.
    Menu:Center()
    Menu:MakePopup()
    Menu.Paint = function()
    local mW, mH, x, y = Menu:GetWide(), Menu:GetTall(), ScrW() / 2, ScrH() / 2
    draw****undedBox( 0, 0, 0, mW, mH, Color( 175, 0, 0, 0 ) )
    surface.SetDrawColor(black);
    surface.DrawOutlinedRect( 0, 0, mW , mH )
    surface.DrawOutlinedRect( 0, 25, mW, mH )
    end
    
    local Sheet = vgui.Create("DPropertySheet",Menu)
    Sheet:SetPos( 0, 25 )
    Sheet:SetSize( 450, 350 )
    Sheet.Paint = function()
    draw****undedBox( 0, 0, 0, Sheet:GetWide(), Sheet:GetTall(), Color(0,0,0,150) )
    end
    
    // fuck;
    local Page1 = vgui.Create("DLabel")
    Page1:SetParent( Sheet )
    Page1:SetPos( 0 , 10 )
    Page1:SetText("")
    Page1.Paint = function()
    draw.SimpleTextOutlined("Sethhacks v"..Sethhacks.version.." - Revived by Catheter and Briska ","Logo",30,3,red,TEXT_ALIGN_MIDDLE,TEXT_ALIGN_MIDDLE,2,black)
    end
    local Page2 = vgui.Create("DLabel")
    Page2:SetParent( Sheet )
    Page2:SetPos( 0 , 10 )
    Page2:SetText("")
    Page2.Paint = function()
    end
    local Page3 = vgui.Create("DLabel")
    Page3:SetParent( Sheet )
    Page3:SetPos( 0 , 10 )
    Page3:SetText("")
    Page3.Paint = function()
    end
    local Page4 = vgui.Create("DLabel")
    Page4:SetParent( Sheet )
    Page4:SetPos( 0 , 10 )
    Page4:SetText("")
    Page4.Paint = function()
    end
    local Page5 = vgui.Create("DLabel")
    Page5:SetParent( Sheet )
    Page5:SetPos( 0 , 10 )
    Page5:SetText("")
    Page5.Paint = function()
    end
    -----------------------
    --[[ MAIN TAB SHIT ]]--
    -----------------------
    // LOAD SHIT
    local ReloadHooksButton = vgui.Create("DButton",Page1)
    ReloadHooksButton:SetText("Reload Hooks")
    ReloadHooksButton:SetPos( 80, 30 )
    ReloadHooksButton:SetSize( 200, 25)
    ReloadHooksButton.DoClick = function()
    Sethhacks.hooks:reload()
    Sethhacks.Notify(green,"Reloaded hooks")
    end
    
    -------------------------
    --[[ AIMBOT TAB SHIT ]]--
    -------------------------
    AddCheckBox("Autoshoot","Sethhacks_AIM_Auto",Page2,10,10,"Autoshoot when locked")
    AddCheckBox("Friendly Fire","Sethhacks_AIM_Friendly",Page2,10,30,"Target your own team")
    AddCheckBox("Target Steam Friends","Sethhacks_AIM_Steam",Page2,10,50,"Target Steam Friends")
    AddCheckBox("Target Admins","Sethhacks_AIM_Admins",Page2,10,70,"Target Admins")
    AddCheckBox("No-Recoil","Sethhacks_AIM_NoRecoil",Page2,10,90,"Remove Recoil")
    AddCheckBox("Triggerbot","Sethhacks_AIM_Trigger",Page2,10,110,"Auto-shoots when looking at a player")
    AddCheckBox("Stronghold mode","Sethhacks_AIM_SH",Page2,10,130,"Aims down sights when locked, to reduce spread.")
    
    AddSlider("Aimbot Offset","Sethhacks_AIM_Offset",Page2,-25,25,1,10,260,350,"Offsets your aimspot")
    
    -------------------------------------
    --[[ ESP | WALLHACK | VISUAL TAB ]]--
    -------------------------------------
    AddCheckBox("[ESP] Info","Sethhacks_ESP_Info",Page3,10,10,"Show player's info on the ESP")
    AddCheckBox("[ESP] Chams","Sethhacks_ESP_Chams",Page3,10,30,"Show a player's model through walls")
    AddCheckBox("[ESP] Bounding Box","Sethhacks_ESP_Box",Page3,10,50,"Draw a box around players")
    AddCheckBox("[ESP] Show Skeleton","Sethhacks_ESP_Skeleton",Page3,10,70,"Show player's bones")
    AddCheckBox("[ESP] Entity Finder","Sethhacks_ESP_Ents",Page3,10,90,"Show entities on the ESP")
    
    AddCheckBox("[VIS] Crosshair","Sethhacks_ESP_Crosshair",Page3,150,10,"Draw a crosshair on your screen")
    AddCheckBox("[VIS] Laser Tracer","Sethhacks_ESP_Tracer",Page3,150,30,"Draw a laser from your feet to player's heads.")
    
    /*
    local ListESP1 = vgui.Create( "DListView" )
    ListESP1:SetPos( 330, 280 )
    ListESP1:SetParent( Page3 )
    ListESP1:SetSize( 100, 20 )
    ListESP1:SetMultiSelect(false)
    ListESP1:AddColumn( "Wireframe" )
    ListESP1:AddColumn( "Solid" )
    ListESP1:SetConVar( "Sethhacks_ESP_Chams_Material" )
    */
    
    local ESPLabel1 = vgui.Create("DLabel")
    ESPLabel1:SetParent( Page3 )
    ESPLabel1:SetPos(335,265)
    ESPLabel1:SetText("Chams Material")
    ESPLabel1:SetTextColor(Color(255,255,255,255))
    ESPLabel1:SizeToContents()
    
    /**********************
    Entity Finder Stuff
    **********************/
    
    ---------------------------
    --[[ MISC TAB SETTINGS ]]--
    ---------------------------
    AddCheckBox("Traitor Finder","Sethhacks_MISC_TTT",Page4,10,10,"Find traitors in TTT")
    AddCheckBox("Bunnyhop","Sethhacks_MISC_BunnyHop",Page4,10,30,"Bunnyhop by holding 'Space'")
    AddCheckBox("Anti-AFK","Sethhacks_MISC_AntiAFK",Page4,10,70,"Makes you move randomly to avoid AFK kickers")
    AddCheckBox("Name Changer","Sethhacks_MISC_Namechanger",Page4,10,90,"Steal player's names")
    AddCheckBox("Show Notifications","Sethhacks_MISC_ShowNotifications",Page4,10,110,"Draws enabled features on top of the screen")
    AddCheckBox("Show Spectators","Sethhacks_MISC_ShowSpec",Page4,10,150,"Tells you in chat when someone is spectating you.")
    AddCheckBox("Show Admins","Sethhacks_MISC_ShowAdmins",Page4,10,170,"Tells you in chat when an admin joins.")
    
    
    
    --------------------------------
    --[[ PERP HACK TAB SETTINGS]]---
    --------------------------------
    AddCheckBox("Infinite Fuel","Sethhacks_PERP_Fuel",Page5,10,10,"Infinite fuel in cars")
    AddCheckBox("Show Druggy Stock","Sethhacks_PERP_Druggy",Page5,10,30,"Show druggy's stock")
    AddCheckBox("Weed Timer","Sethhacks_PERP_Weed",Page5,10,50,"Show how when weed is finished growing")
    AddCheckBox("Show RP Names","Sethhacks_PERP_RPNames",Page5,10,70,"Show player's Roleplay names instead of Steam name")
    AddCheckBox("Show Player Info","Sethhacks_PERP_PlayerInfo",Page5,10,90,"Show info like; Health, bank cash, armor, etc")
    
    // Add sheets
    Sheet:AddSheet("Main",Page1,false,false,false,"Main cheat settings")
    Sheet:AddSheet("Aimbot",Page2, false, false, false, "Aimbot Settings")
    Sheet:AddSheet("ESP | Wallhack | Visual",Page3,false,false,false,"ESP/Wallhack Settings")
    Sheet:AddSheet("Miscellaneous",Page4,false,false,false,"Miscellaneous Settings")
    Sheet:AddSheet("PERP Hack",Page5,false,false,false,"Exploits and cheats for the PERP gamemode")
    	
    end) -- End of +Sethhacks_Menu function	
    AddCMD("-Sethhacks_Menu",function()
    	Menu:SetVisible(false)
    end)	
    
    AddCMD("Sethhacks_Menu_Toggle",function()
    	Menu:SetVisible(true)
    end)
    
    /*****************************
    Entity finder menu
    *****************************/
    
    function EntsMenu()
    	local EntPanel = vgui.Create( "DFrame" )
    	EntPanel:SetPos( ScrW()/2 - 250, ScrH()/2 - 200 )
    	EntPanel:SetSize( 500, 400 )
    	EntPanel:SetTitle( "Custom Entities" )
    	EntPanel:SetVisible( true )
    	EntPanel:SetDraggable( false )
    	EntPanel:ShowCloseButton( true )
    	EntPanel:MakePopup()
    	
    	local NonEnts = vgui.Create( "DListView", EntPanel )
    	NonEnts:SetPos( 20, 45 )
    	NonEnts:SetSize( 150, EntPanel:GetTall() - 70 )
    	NonEnts:SetMultiSelect(true)
    	--NonEnts:SetMultiple( false )
    	
    	local AddEnt = vgui.Create( "DButton", EntPanel )
    	AddEnt:SetPos( EntPanel:GetWide()/2 - 50, EntPanel:GetTall()/2 - 65 )
    	AddEnt:SetSize( 100, 30 )
    	AddEnt:SetText( "Add Ent ->" )
    	
    	local Added = vgui.Create( "DComboBox", EntPanel )
    	Added:SetPos( EntPanel:GetWide() - 170, 45 )
    	Added:SetSize( 150, EntPanel:GetTall() - 70 )
    	--Added:SetMultiSelect(true)
    	--Added:SetMultiple( false )
    		
    	local RemoveEnt = vgui.Create( "DButton", EntPanel )
    	RemoveEnt:SetPos( EntPanel:GetWide()/2 - 50, EntPanel:GetTall()/2 + 25 )
    	RemoveEnt:SetSize( 100, 30 )
    	RemoveEnt:SetText( "<- Remove Ent" )
    
    	local function RefreshCombo()
    		NonEnts:Clear()
    		Added:Clear()
    		local listedn = {}
    		for k, v in pairs( ents.GetAll() ) do
    			if( IsValid( v ) and !IsCustomEnt( v:GetClass() ) and !table.HasValue( listedn, v:GetClass() ) and !table.HasValue( Sethhacks.invalidents, v:GetClass() ) and string.Left( v:GetClass(), 8 ) != "class C_" and string.Left( v:GetClass(), 5 ) != "func_" and string.Left( v:GetClass(), 4 ) != "env_") then
    				local item = DPanelList:AddItem( v:GetClass() )
    				itement = v
    				table.insert( listedn, v:GetClass() )
    			end
    		end
    		
    		local listeda= {}
    		for k, v in pairs( Sethhacks.ents ) do
    			local item = DListView:AddLine( v )
    			itement = v
    			table.insert( listeda, v )
    		end
    	end
    	RefreshCombo()
    	
    	local Clear = vgui.Create( "DButton", EntPanel )
    	Clear:SetPos( EntPanel:GetWide()/2 - 45, EntPanel:GetTall() - 85 )
    	Clear:SetSize( 90, 30 )
    	Clear:SetText( "Clear" )
    	Clear.DoClick = function()
    		ClearEnts()
    		RefreshCombo()
    	end
    	
    	AddEnt.DoClick = function()
    		if( #NonEnts:GetSelected() != 0 ) then
    			AddEnt( NonEnts:GetSelectedLine().ent:GetClass() )
    			RefreshCombo()
    		end
    	end
    	
    	RemoveEnt.DoClick = function()
    		if( #Added:GetSelected() != 0 ) then
    			RefreshCombo()
    		end
    	end
    end
    
    /**********************
    Name: Hooks
    Purpose: Hook shit
    ***********************/
    
    function hooks_hudpaint()
    ESP()
    PERP_Druggy()
    PERP_PlayerInfo()
    Notifications()
    end
    
    function hooks_postdraw()
    Chams()
    end
    
    function hooks_think()
    Misc();
    NameChanger();
    ShowNotifi();
    end
    
    function hooks_renderscreenspaceeffects()
    end
    
    function hooks_calcview()
    end
    
    function hooks_createmove(ucmd)
    Aimbot(ucmd)
    end
    
    function Sethhacks.hooks:load()
    Log("Loaded hooks")
    AddHook("HUDPaint",hooks_hudpaint)
    AddHook("PostDrawEffects",hooks_postdraw)
    AddHook("Think",hooks_think)
    AddHook("CalcView",hooks_calcview)
    AddHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects)
    AddHook("CreateMove",hooks_createmove)
    end
    Sethhacks.hooks:load(); -- load them
    
    function Sethhacks.hooks:unload()
    RemoveHook("HUDPaint",hooks_hudpaint)
    RemoveHook("CalcView",hooks_calcview)
    RemoveHook("PostDrawEffects",hooks_postdraw)
    RemoveHook("Think",hooks_think)
    RemoveHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects)
    RemoveHook("CreateMove",hooks_createmove)
    end
    
    function Sethhacks.hooks:reload()
    Log("Reloaded hooks")
    Sethhacks.hooks:unload()
    Sethhacks.hooks:load()
    end
    
    function unload()
    Log("Unloaded.")
    Sethhacks.hooks:unload()
    old_rcc("-Sethhacks_Menu")
    RemoveCMD("+Sethhacks_Menu")
    RemoveCMD("-Sethhacks_Menu")
    RemoveCMD("+Sethhacks_Aim")
    RemoveCMD("-Sethhacks_Aim")
    RemoveCMD("+Sethhacks_Speed")
    RemoveCMD("-Sethhacks_Speed")
    RemoveCMD("Sethhacks_Menu_Toggle")
    timer.Destroy("TTT")
    end
    
    /*******
    RUN LAST
    ********/
    
    Sethhacks.Notify(dosound,white,"loaded version "..Sethhacks.version..".")
    Log("Loaded!")
    Last edited by Hunter; 12-12-2015 at 04:48 PM.

  2. The Following User Says Thank You to Razon91 For This Useful Post:

    Mosspb (12-10-2015)

  3. #2
    jz3's Avatar
    Join Date
    Sep 2015
    Gender
    male
    Posts
    49
    Reputation
    10
    Thanks
    6
    thanks for the memes guys, will be sure to watch them when im not grounded

  4. #3
    XxskaterxX100's Avatar
    Join Date
    Jan 2014
    Gender
    male
    Posts
    12
    Reputation
    10
    Thanks
    1
    Another masterpiece by d3x.

    Hook me up with the file uploader dll

  5. #4
    XxskaterxX100's Avatar
    Join Date
    Jan 2014
    Gender
    male
    Posts
    12
    Reputation
    10
    Thanks
    1
    You got a paste problem

    Code:
    function DrawBox( x, y, wide, tall, dropsize )
    	draw****undedBoxEx( 4, x, y, wide, dropsize, iceblue, true, true, false, false )
    	draw****undedBoxEx( 4, x, y + dropsize, wide, tall - dropsize, Color( 0, 0, 0, 100 ), false, false, true, true )
    end
    And theres alot more of that

  6. #5
    RabidRunner's Avatar
    Join Date
    Jan 2014
    Gender
    male
    Posts
    225
    Reputation
    10
    Thanks
    1,114
    My Mood
    Tired
    Quote Originally Posted by XxskaterxX100 View Post
    You got a paste problem

    Code:
    function DrawBox( x, y, wide, tall, dropsize )
    	draw****undedBoxEx( 4, x, y, wide, dropsize, iceblue, true, true, false, false )
    	draw****undedBoxEx( 4, x, y + dropsize, wide, tall - dropsize, Color( 0, 0, 0, 100 ), false, false, true, true )
    end
    And theres alot more of that
    drawR oundedBoxEx???????????????

  7. #6
    XxskaterxX100's Avatar
    Join Date
    Jan 2014
    Gender
    male
    Posts
    12
    Reputation
    10
    Thanks
    1
    Quote Originally Posted by RabidRunner View Post
    drawR oundedBoxEx???????????????
    Yes i know its just that the code isnt working because of that and there are alot of *'s like that all around the code

  8. #7
    RabidRunner's Avatar
    Join Date
    Jan 2014
    Gender
    male
    Posts
    225
    Reputation
    10
    Thanks
    1,114
    My Mood
    Tired
    Quote Originally Posted by XxskaterxX100 View Post
    Yes i know its just that the code isnt working because of that and there are alot of *'s like that all around the code
    Find all and then replace all?

  9. #8
    andre_125's Avatar
    Join Date
    Sep 2012
    Gender
    male
    Posts
    13
    Reputation
    10
    Thanks
    18
    I heard that GAC was made to detect sethhack. Wouldn't the script also be auto detected?

Similar Threads

  1. GRP Simple Teleport [ Small Addy Logger included ]
    By timiostimio in forum User Services
    Replies: 44
    Last Post: 02-22-2015, 12:58 PM
  2. [WTS] Selling B.NET account, includes Diablo III: ROS, Starcraft 2, WOW: Cataclysm and D2.
    By BridgeBuilder in forum Selling Accounts/Keys/Items
    Replies: 2
    Last Post: 07-30-2014, 12:36 PM
  3. Selling Battle.net Account (Includes D3, WoW (WOTL), and Starcraft II
    By Morzika in forum Selling Accounts/Keys/Items
    Replies: 1
    Last Post: 09-21-2012, 09:24 AM
  4. Replies: 0
    Last Post: 08-24-2012, 06:40 PM
  5. .net framework v3.5 how to open hacks if they dotn open?
    By dieterke0147 in forum WarRock - International Hacks
    Replies: 0
    Last Post: 07-28-2008, 03:05 AM