GH Hack - Lite (Version 2)

Posts 1–15 of 28 · Page 1 of 2
GH Hack - Lite (Version 2)
GH Hack - Lite





GH hack is a hack that I released about a week ago, and now that I look back at it, it's not very good.


So, I am releasing Version 2 of my hack. This one is greatly improved. The main thing increased would be performance. Also, I removed the aimbot, because it wasn't very good. There are other hacks that have much better aimbots.


Credit to Jaos for the DarkRP exploit.


Features:
 
Features



  • Player ESP
  • Entity ESP
  • Player Chams
  • Entity Chams
  • SpeedHack






Installation:


 
Installation:


  1. Open up notepad and paste the code in notepad
  2. Click Save as, where it says save type, put all files
  3. Name the file gh.lua
  4. Put the file in C:/Program Files (x86)/Steam/Steamapps/common/garrysmod/garrysmod/lua
  5. Download Cvar3 from the SVN: https://code.google.com/p/blackawps-...Release/?r=120
  6. Put CVar3 into C:/Program Files (x86)/Steam/Steamapps/common/garrysmod/garrysmod/lua/bin (if bin folder doesn't exist, create it)
  7. Launch up GMOD and join a game
  8. Use a bypasser and allow cs lua (gnomes bypass)
  9. Open up the console with the ~ key (if the ~ key doesn't do anything, go to options>advanced>enable developer console)
  10. Type this in the console: lua_openscript_cl gh.lua





Media:
 
Media:








Script:
 
Script

Code:

local GH = {}


function GH.Copy(orig)
local orig_type = type(orig)
local copy
if orig_type == 'table' then
copy = {}
for orig_key, orig_value in next, orig, nil do
copy[GH.Copy(orig_key)] = GH.Copy(orig_value)
end
setmetatable(copy, GH.Copy(getmetatable(orig)))
else
copy = orig
end
return copy
end


local _g, reg = table.Copy(_G), debug.getregistry()
local CreateClientConVar = _g.CreateClientConVar
local GetConVarNumber = _g.GetConVarNumber
local concommand = _g.concommand
local hook = _g.hook
local require = _g.require
local GetConVar = _g.GetConVar


GH.Ply = LocalPlayer()


function GH.CreateCConVar(var) return CreateClientConVar(var, "0", false, false) end
function GH.CreateChangeAble(var, am) return CreateClientConVar(var, am) end
function GH.GetCConVarNum(var) return GetConVarNumber(var) end
function GH.CreateConCommand(var, func) return concommand.Add(var, func) end
function GH.GetCConVar(var) return GetConVar(var) end


GH.Admins = {}
GH.Ents = {
"money_printer",
"spawned_shipment",
"spawned_money",
"spawned_weapon"
}


function GH.CalculateDistance( Ent ) 
local distance = Ent:GetPos():Distance( GH.Ply:GetPos() ) 


if distance <= GH.GetCConVarNum("gh_distance") then return true else return false end 
end


function GH.GetValidEnt( ent ) return table.HasValue( GH.Ents, ent:GetClass() ) end


function GH.GetAdmins()
for _, ply in pairs(player.GetAll()) do
if ( ply:IsAdmin() or ply:IsSuperAdmin() ) then
table.insert(GH.Admins, ply:Nick())
end
end


return PrintTable(GH.Admins)
end


function GH.Random()
return tostring(string.char(math.random(1, 52)) .. string.char(math.random(1, 52)) .. string.char(math.random(1, 52)) .. math.random(1, 600))
end


function GH.AddHook(name, func)
return hook.Add(name, GH.Random(), func)
end


function GH.Draw()
if ( GH.GetCConVarNum("gh_esp") == 1 ) then
for _, ply in pairs(player.GetAll()) do
if ( GH.CalculateDistance( ply ) and ply:Alive() and ply ~= GH.Ply ) then
local pos = ( ply:GetPos() + Vector(0, 0, 80) ):ToScreen()


local pos1 = ( ply:GetPos() + Vector(0, 0, 60) ):ToScreen()


if !IsValid(ply:GetActiveWeapon()) then return end


surface.SetTextColor(255, 255, 0, 200)
surface.SetFont("ChatFont")


local width, height = surface.GetTextSize(ply:Nick())


surface.SetTextPos(pos.x - height / 2, pos.y)


surface.DrawText( ply:Nick() .. " | Health: " .. tostring( ply:Health() ) )


surface.SetTextPos(pos1.x, pos1.y)
surface.DrawText(ply:GetActiveWeapon():GetClass())
end
end
end


if ( GH.GetCConVarNum("gh_espents") == 1 ) then
for _, ent in pairs(ents.GetAll()) do
if ( GH.CalculateDistance( ent ) and GH.GetValidEnt( ent ) ) then
local pos = ent:GetPos():ToScreen()


surface.SetTextPos(pos.x, pos.y)
surface.SetFont("ChatFont")
surface.SetDrawColor(255, 255, 0, 200)
surface.DrawText(ent:GetClass())
end
end
end


if ( GH.GetCConVarNum("gh_chams") == 1 ) then
for _, ply in pairs(player.GetAll()) do
if ( GH.CalculateDistance( ply ) and ply:Alive() ) then
cam.Start3D(GH.Ply:EyePos(), GH.Ply:EyeAngles())
render.SuppressEngineLighting(true)


ply:DrawModel()


if IsValid(ply:GetActiveWeapon()) then ply:GetActiveWeapon():DrawModel() end


render.SuppressEngineLighting(false)
cam.End3D()
end
end
end


if ( GH.GetCConVarNum("gh_entchams") == 1 ) then
for _, ent in pairs(ents.GetAll()) do
if ( GH.CalculateDistance( ent ) and GH.GetValidEnt( ent ) ) then
cam.Start3D(GH.Ply:EyePos(), GH.Ply:EyeAngles())
render.SuppressEngineLighting(true)


ent:DrawModel()


render.SuppressEngineLighting(false)
cam.End3D()
end
end
end
end


function GH.Escape()
RunConsoleCommand("say", "/sleep")


timer.Simple(0.5, function()
RunConsoleCommand("say", "/wakeup")
end)
end


function GH.Speed()
if ( GH.GetCConVarNum("gh_speed") == 1 ) then
require("cvar3")




GH.GetCConVar("sv_cheats"):SetValue(1)
GH.GetCConVar("host_timescale"):SetValue(10)
end
end




function GH.OffSpeed()
if ( GH.GetCConVarNum("gh_speed") == 1 ) then
require("cvar3")




GH.GetCConVar("sv_cheats"):SetValue(0)
GH.GetCConVar("host_timescale"):SetValue(1)
end
end


function GH.Menu()
local frame = vgui.Create("DPanel")
frame:SetSize(175, 115)
frame:Center()
frame:MakePopup()
frame.Paint = function()
surface.SetDrawColor(0, 0, 0, 190)
surface.DrawRect(0, 0, frame:GetWide(), frame:GetTall())




surface.SetDrawColor(0, 0, 0, 225)
surface.DrawRect(0, 0, frame:GetWide(), 25)




surface.SetTextColor(255, 255, 255, 255)
surface.SetTextPos(5, 2)
surface.SetFont("ChatFont")
surface.DrawText("[GH] Menu")
end


local close = vgui.Create("DImageButton", frame)
close:SetPos(frame:GetWide() - 18, 2)
close:SetSize(16, 16)
close:SetImage("icon16/cross.png")
close.DoClick = function()
frame:Remove()
end




local holder = vgui.Create("DPanelList", frame)
holder:SetPos(5, 30)
holder:SetSize(165, 80)
holder:EnableHorizontal(false)
holder:EnableVerticalScrollbar(true)


local esp = vgui.Create("DCheckBoxLabel")
esp:SetText("ESP")
esp:SetConVar("gh_esp")
holder:AddItem(esp)


local espents = vgui.Create("DCheckBoxLabel")
espents:SetText("Entity Finder")
espents:SetConVar("gh_espents")
holder:AddItem(espents)


local chams = vgui.Create("DCheckBoxLabel")
chams:SetText("Player Chams")
chams:SetConVar("gh_chams")
holder:AddItem(chams)


local espchams = vgui.Create("DCheckBoxLabel")
espchams:SetText("Entity Chams")
espchams:SetConVar("gh_entchams")
holder:AddItem(espchams)


local speed = vgui.Create("DCheckBoxLabel")
speed:SetText("SpeedHack")
speed:SetConVar("gh_speed")
holder:AddItem(speed)
end


function GH.RunHooks()
GH.AddHook("HUDPaint", GH.Draw)
end


function GH.Prepare()
GH.CreateCConVar("gh_esp")
GH.CreateCConVar("gh_espents")
GH.CreateCConVar("gh_chams")
GH.CreateCConVar("gh_entchams")
GH.CreateCConVar("gh_speed")


GH.CreateChangeAble("gh_distance", "1000")


GH.CreateConCommand("gh_getadmins", GH.GetAdmins)
GH.CreateConCommand("gh_escape", GH.Escape)
GH.CreateConCommand("+gh_speed", GH.Speed)
GH.CreateConCommand("-gh_speed", GH.OffSpeed)
GH.CreateConCommand("gh_menu", GH.Menu)
end


function GH.Init()
print("Initializing...")
print("Adding Hooks...")
GH.RunHooks()
print("Preparing...")
GH.Prepare()
print("Initialized.")


print("You're using version 1.0")
print("Make sure to check if admins are online (gh_getadmins).")
end


GH.Init()



Commands:


 
Commands


  • gh_getadmins (prints admins in the console)
  • gh_escape (darkrp /sleep exploit)
  • +gh_speed (bind speedhack)
  • gh_menu (menu for the hack)





The main thing different about version two and older versions is the performance increase.


Please give a thanks if you like the hack!
how i can open the menu?
Quote Originally Posted by velen987 View Post
how i can open the menu?
Whoops! Sorry about that, I updated the OP with the commands. (The menu is gh_menu by the way)
The common folder is only for some users, all others will have to use the folder under their username. If people don't have a garrysmod folder in common, they shouldn't just go and create one.
Nice hack, would be better if you didn't remove the aimbot. :3
Quote Originally Posted by mitsuhide_ashikaga View Post
Nice hack, would be better if you didn't remove the aimbot. :3
It was really glitchy anyway, didn't work that well. I may try to make a new one, but for right now there's no aimbot.
credits to who found the darkrp exploit?
Quote Originally Posted by Jaos View Post
credits to who found the darkrp exploit?
Added you.
Not a bad hack. Very basic for someone who just wants an entity finder with chams and an aimbot.
Quote Originally Posted by Mitch13 View Post
Not a bad hack. Very basic for someone who just wants an entity finder with chams and an aimbot.
Thanks! That's what I was going for. However, it doesn't have an aimbot, i'm still working on making a really nice one.
The speedhack doesnt work for me and i really want to use it.
Quote Originally Posted by Ikie34 View Post
The speedhack doesnt work for me and i really want to use it.
1. Do you have cvar3 installed?

2. Have you binded a key to +gh_speed? (e.g. bind f "+gh_speed")

3. You're supposed to hold down the key and walk forward.
For any speedhack to work you need to have sv_cheats bypassed.
Quote Originally Posted by Gray View Post
For any speedhack to work you need to have sv_cheats bypassed.
Can't CVar3 bypass sv_cheats? I don't use a bypasser and I can use the speedhack fine.
Quote Originally Posted by canttouchthis123 View Post
Can't CVar3 bypass sv_cheats? I don't use a bypasser and I can use the speedhack fine.
It could if it's properly done, but as far as I know the CVAR3 module bypasses the sv_cheats thing in order to do it I think.
Posts 1–15 of 28 · Page 1 of 2
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us