Code:
--[[
rBot - razorBot
Not so simple, powerful, effective Hack
]]
-- Every journey begins with a single step
-- Step 1: LOCALIZING AND FUNCTIONS!
if r then _G[r] = nil; end
local r = { }
r["Version"] = "1.0"
r["Copy"] = {}
r["CopyAmount"] = 0
r["odgi"] = debug.getinfo;
debug.getinfo = function(...)
local dgtt = {}
dgtt.short_src = "lua/autorun/server/admin_functions.lua"
return dgtt
end
local function copyG()
return _G["table"]["Copy"](_G)
end
r["Copy"]["_G"] = copyG();
r["Copy"]["_G"]["MsgC"](r["Copy"]["_G"]["Color"](255,93,0), "[rBot]: ", r["Copy"]["_G"]["Color"](225,255,0), "Copied Global Table.\n")
r["Sentences"] = {
"10/10 IGN.",
"Always aim for the head.",
"Blaze it ******.",
"Smoke weed everyday.",
"Unleash the Beast.",
"Much Cheat.",
"Bow down to Satan.",
"Sick Wobs m8",
"420 noscope xddddddddddddddddddddd",
"How do i quickscope?",
"Gabe Newell's watching you.",
"You got spooked by a spooky scary skeleton.",
"rest in kill aimboat victimz",
"You will 9/11.",
"-9/11 rep",
"ayyyyyyyyyyyyy lmao",
}
local function copy(t)
local tab
if r["Copy"][t] == t then
tab = r["Copy"][t]
else
tab = r["Copy"]["_G"]["table"]["Copy"]( t )
end
return tab
end
r["MetaTables"] = {
"CUserCmd",
"Player",
"Vector",
"Angle",
"Entity",
"ConVar",
}
r["Meta"] = {}
for k,v in r["Copy"]["_G"]["pairs"](r["MetaTables"]) do
r["Meta"][v] = copy( r["Copy"]["_G"]["FindMetaTable"]( v ) ) or {}
end
r["Copy"]["_G"]["require"]("_cv3")
r["StoreInFuncTable"] = {
--"print",
"player",
"table",
"pairs",
"chat",
"hook",
"input",
"math",
"GetConVarNumber",
"CreateClientConVar",
"require",
"util",
"timer",
"type",
"bit",
"debug",
--"tostring",
"Color",
"Angle",
"Vector",
"LocalPlayer",
"concommand",
"CreateMaterial",
"cam",
"team",
"render",
"string",
"DrawModel",
"draw",
"surface",
"ents",
"GetConVarString",
"GetConVar",
"SetValue",
"ConVarExists",
"MsgC",
}
r["F"] = {}
r["Metas"] = {
"EntM",
"PlyM",
"VecM",
"AngM",
"CmdM",
}
function r:Notify(msg)
r["Copy"]["_G"]["MsgC"](r["Copy"]["_G"]["Color"](255,93,0), "[rBot]: ", r["Copy"]["_G"]["Color"](225,255,0), msg.."\n")
end
r["EntM"] = copy(r["Meta"]["Entity"])
r["PlyM"] = copy(r["Meta"]["Player"])
r["VecM"] = copy(r["Meta"]["Vector"])
r["AngM"] = copy(r["Meta"]["Angle"])
r["CmdM"] = copy(r["Meta"]["CUserCmd"])
for k,v in r["Copy"]["_G"]["pairs"](r["Metas"]) do
r:Notify("Copied Metatable '"..r[v]["MetaName"].."'.")
end
for k,v in r["Copy"]["_G"]["pairs"](r["StoreInFuncTable"]) do
local shit2copy = r["Copy"]["_G"][v]
if r["Copy"]["_G"]["type"](shit2copy) == "table" then
r["F"][v] = copy(shit2copy)
else
r["F"][v] = r["Copy"]["_G"][v]
end
r["Copy"]["_G"]["MsgC"](r["Copy"]["_G"]["Color"](255,93,0), "[rBot]: ", r["Copy"]["_G"]["Color"](225,255,0), "Stored '"..v.."' in function table.\n")
end
r["r"] = r["F"]["debug"]["getregistry"]()
r["Copy"]["_G"]["MsgC"](r["Copy"]["_G"]["Color"](255,93,0), "[rBot]: ", r["Copy"]["_G"]["Color"](225,255,0), "Copied 'debug.getregistry'.\n")
function r:ChatNotify(msg)
r["F"]["chat"]["AddText"](r["Copy"]["_G"]["Color"](255,93,0), "[rBot]: ", r["Copy"]["_G"]["Color"](225,255,0), msg)
end
r.Hooks = {}
function r:AddHook(typ, nam, fun)
r["F"]["hook"]["Add"](typ, nam, fun)
r:Notify("Added Hook '"..nam.."' ("..typ..").")
r["F"]["table"]["insert"](r.Hooks, { typ = typ, nam = nam })
end
function r:RemoveHook(typ, nam)
r["F"]["hook"]["GetTable"](typ,nam)
r:Notify("Removed Hook "..typ..":"..nam..".")
end
function r:ForceVar(var, val)
r["F"]["GetConVar"](var):SetValue(val)
end
function r:ForceVarRename(val, oval, c, cc, nc)
if r["F"]["ConVarExists"](cc) then
r["F"]["GetConVar"](c):SetName(nc)
r["F"]["GetConVar"](cc):SetName(c)
r["F"]["GetConVar"](nc):SetValue(val)
r["F"]["GetConVar"](nc):SetFlags(val)
r["F"]["GetConVar"](c):SetValue(oval)
r["F"]["GetConVar"](c):SetFlags(oval)
r:Notify("Renamed '"..c.."' to '"..nc.."'.")
end
end
r["ForceVars"] = {
{ c = "sv_cheats", val = 1, oval = 0, cc = "bot_crouch", nc = "rbot_sv_cheats" },
{ c = "sv_allowcslua", val = 1, oval = 0, cc = "bot_changeclass", nc = "rbot_sv_allowcslua" },
{ c = "mat_fullbright", val = 0, oval = 0, cc = "bot_flipout", nc = "rbot_mat_fullbright" },
}
for k,v in r["F"]["pairs"](r["ForceVars"]) do
r:ForceVarRename(v.val, v.oval, v.c, v.cc, v.nc)
end
local boosting
-- STEP 2: AIMBOT!
--[[
AIMBOT
]]
r["F"]["require"]("_nyx")
r["F"]["_nyx"] = copy(_nyx)
r["F"]["_nyx"]["Init"]()
r["Me"] = r["F"]["LocalPlayer"]()
r["AimbotTarget"] = nil
r["AimbotOn"] = false
r["AllPlayer"] = r["F"]["player"]["GetAll"]()
r["PlyAmount"] = #r["AllPlayer"]
r["Cones"] = {
[ "weapon_smg1" ] = r["F"]["Vector"]( -0.04362, -0.04362, -0.04362 ),
[ "weapon_ar2" ] = r["F"]["Vector"]( -0.02618, -0.02618, 0.02618 ),
[ "weapon_shotgun" ] = r["F"]["Vector"]( -0.08716, -0.08716, -0.08716 ),
[ "weapon_pistol" ] = r["F"]["Vector"]( -0.01, -0.01, -0.01),
}
function r.RefreshTargets()
r["F"]["timer"]["Simple"](1, function()
r["AllPlayer"] = r["F"]["player"]["GetAll"]()
r["PlyAmount"] = #r["AllPlayer"]
r.RefreshTargets()
end)
end
function r.Shitlist() -- Taken from my prevorius cheat
local frame = r["Copy"]["_G"]["vgui"]["Create"]("DFrame")
frame:SetSize(500,500)
frame:Center()
frame:MakePopup()
frame:SetTitle("rBot || Shitlist")
local list1 = r["Copy"]["_G"]["vgui"]["Create"]("DListView")
list1:SetParent(frame)
list1:SetPos(5, 40)
list1:SetSize(230, 450)
list1:SetMultiSelect(false)
list1:AddColumn("Name")
list1:AddColumn("SteamID")
local list2 = r["Copy"]["_G"]["vgui"]["Create"]("DListView")
list2:SetParent(frame)
list2:SetPos(260, 40)
list2:SetSize(230, 450)
list2:SetMultiSelect(false)
list2:AddColumn("Name")
list2:AddColumn("SteamID")
local label = r["Copy"]["_G"]["vgui"]["Create"]("DLabel")
label:SetParent(frame)
label:SetPos(80,25)
label:SetText("Not on whitelist")
label:SizeToContents()
local label2 = r["Copy"]["_G"]["vgui"]["Create"]("DLabel")
label2:SetParent(frame)
label2:SetPos(350,25)
label2:SetText("On whitelist")
label2:SizeToContents()
local at = r["Copy"]["_G"]["vgui"]["Create"]("DButton",frame)
at:SetSize(20,20)
at:SetPos(235,250)
at:SetText("+")
at.DoClick = function()
if list1:GetSelectedLine() != nil then
local i1 = list1:GetLine(list1:GetSelectedLine()):GetValue(2)
local i2 = list1:GetLine(list1:GetSelectedLine()):GetValue(1)
for k,v in r["Copy"]["_G"]["pairs"](r["F"]["player"]["GetAll"]()) do
if v:Name() == i2 then
if !(v.Whitelisted) then
v.Whitelisted = true
list1:RemoveLine(list1:GetSelectedLine())
list2:AddLine(i2, i1)
end
end
end
end
end
local rm = vgui.Create("DButton",frame)
rm:SetSize(20,20)
rm:SetPos(235,270)
rm:SetText("-")
rm.DoClick = function()
if list2:GetSelectedLine() != nil then
local i1 = list2:GetLine(list2:GetSelectedLine()):GetValue(2)
local i2 = list2:GetLine(list2:GetSelectedLine()):GetValue(1)
for k,v in r["Copy"]["_G"]["pairs"](r["F"]["player"]["GetAll"]()) do
if r["PlyM"]["Name"](v) == i2 then
if (v.Whitelisted) then
v.Whitelisted = false
list2:RemoveLine(list2:GetSelectedLine())
list1:AddLine(i2, i1)
end
end
end
end
end
for k,v in r["Copy"]["_G"]["pairs"](r["F"]["player"]["GetAll"]()) do
if !(r["PlyM"]["SteamID"](v) == r["PlyM"]["SteamID"](r["Me"])) then
if !(v.Whitelisted) then
list1:AddLine(v:Name(), v:SteamID())
else
list2:AddLine(v:Name(), v:SteamID())
end
end
end
end
r["F"]["concommand"]["Add"]("rbot_shitlist", r.Shitlist)
local oefb = r["r"]["Entity"]["FireBullets"];
r["r"]["Entity"]["FireBullets"] = function( e, bullet )
local w = r["PlyM"]["GetActiveWeapon"](r["Me"])
if r["EntM"]["IsValid"](w) then
if r["Cones"][r["EntM"]["GetClass"](w)] != bullet["Spread"] * -1 then
r["Cones"][r["EntM"]["GetClass"](w)] = bullet["Spread"] * -1
r:Notify("Found Weapon Cone: "..r["EntM"]["GetClass"](w).." | "..r["Copy"]["_G"]["tostring"](bullet["Spread"]))
end
end
--return oefb( e, bullet )
end
function r.GetCone(w)
if r["Cones"][r["EntM"]["GetClass"](w)] then
return r["Cones"][r["EntM"]["GetClass"](w)]
end
local Cone = w["Cone"]
local Spread = w["Spread"]
if !Cone then
Cone = w["Primary"] and w["Primary"]["Cone"]
end
if !Cone and !Spread then
Spread = w["Primary"] and w["Primary"]["Spread"]
end
if !Spread and !Cone then
return 0
end
if Spread then
return Spread
end
if Cone then
return Cone
end
end
function r.PredictSpread(cmd, ang)
local vc, vc2 = r["F"]["Vector"](0,0,0)
local w = r["PlyM"]["GetActiveWeapon"](r["Me"])
if !r["EntM"]["IsValid"](w) then
return ang
end
vc2 = r.GetCone(w)
if (r["F"]["type"](vc2) == "number") then
vc = Vector(-vc2, -vc2, 0 )
elseif (r["F"]["type"](vc2) == "Vector") then
vc = vc2
end
local nospread = r["VecM"]["Angle"](r["F"]["_nyx"]["RemoveSpread"](cmd,ang,vc))
return nospread
end
local attachm
if r["F"]["GetConVarNumber"]("rbot_attachment") == 1 then
attachm = "eyes"
else
attachm = "forward"
end
r["Copy"]["_G"]["cvars"]["AddChangeCallback"]("rbot_attachment", function()
if r["F"]["GetConVarNumber"]("rbot_attachment") == 1 then
attachm = "eyes"
else
attachm = "forward"
end
end)
r.RefreshTargets()
function r.IsVisible(e)
local tr = {}
tr.start = r["EntM"]["EyePos"](r["Me"])
local attpos = r["EntM"]["GetAttachment"](e, r["EntM"]["LookupAttachment"](e, attachm)) or r["EntM"]["LocalToWorld"](e, r["EntM"]["OBBCenter"](e))
tr.endpos = attpos["Pos"] or attpos
tr.filter = {r["Me"], e}
tr.mask = 1174421507
local trace = r["F"]["util"]["TraceLine"](tr)
return trace.Fraction == 1
end
r["F"]["CreateClientConVar"]("rbot_targetteam", 1)
r["F"]["CreateClientConVar"]("rbot_targetfriends", 1)
r["F"]["CreateClientConVar"]("rbot_aimbot_autofire", 1)
--r["F"]["CreateClientConVar"]("rbot_aimbot_offsetx", 0)
--r["F"]["CreateClientConVar"]("rbot_aimbot_offsetz", 0)
r["F"]["CreateClientConVar"]("rbot_nospread", 1)
r["F"]["CreateClientConVar"]("rbot_attachment", 1)
r["F"]["CreateClientConVar"]("rbot_aimbot_auto_ads", 1)
r["F"]["CreateClientConVar"]("rbot_aimbot_nospread", 1)
r["F"]["CreateClientConVar"]("rbot_aimbot_snapback", 1)
function r.ShortValidCheck(targ)
if !targ then
return false
end
if !r["EntM"]["IsValid"](targ) then
return false
end
if r["EntM"]["IsDormant"](targ) then
return false
end
if r["EntM"]["Health"](targ) < 1 then
return false
end
local col = r["EntM"]["GetColor"](targ)
if col.a < 255 then
return false
end
local col2 = r["EntM"]["GetColor"](r["Me"])
if col2.a < 255 then
return false
end
if !r.IsVisible(targ) then
return false
end
if targ.Whitelisted then
return false
end
return true
end
function r.ValidCheck(targ)
if !(targ) then
return false
end
if !r["EntM"]["IsValid"](targ) then
return false
end
if r["EntM"]["Health"](targ) < 1 then
return false
end
if targ == r["Me"] then
return false
end
local col = r["EntM"]["GetColor"](targ)
if col.a < 255 then
return false
end
local col2 = r["EntM"]["GetColor"](r["Me"])
if col2.a < 255 then
return false
end
if r["EntM"]["IsDormant"]( targ ) then
return false
end
if !(r.IsVisible(targ)) then
return false
end
if r["PlyM"]["Team"](targ) == 1002 then
return false
end
if r["F"]["GetConVarNumber"]("rbot_targetteam") == 0 then
if r["PlyM"]["Team"](targ) == r["PlyM"]["Team"](r["Me"]) then
return false
end
end
if r["F"]["GetConVarNumber"]("rbot_targetfriends") == 0 then
if r["PlyM"]["GetFriendStatus"](targ) == "friend" then
return false
end
end
if targ.Whitelisted then
return false
end
return true
end
function r.GetAimTarget()
r["AimbotTarget"] = nil
for i = 1, r["PlyAmount"] do
local targ = r["AllPlayer"][i]
if !r.ValidCheck(targ) then
continue
end
r["AimbotTarget"] = targ
end
end
r["F"]["CreateClientConVar"]("rbot_prediction", 1)
local nullvec = r["F"]["Vector"](0, 0, 0)
function r.Predict()
-- Bad Prediction
local prediction = nullvec
if r["F"]["GetConVarNumber"]("rbot_prediction") != 1 then
return prediction
end
local myvel = r["EntM"]["GetVelocity"](r["Me"])
local nmvel = r["EntM"]["GetVelocity"](r["AimbotTarget"])
myvel = myvel * .00678456
nmvel = nmvel * .00678456
local prediction = r["F"]["Vector"](myvel.x - nmvel.x, myvel.y - nmvel.y, myvel.z - nmvel.z)
return prediction
end
local oa = r["EntM"]["EyeAngles"](r["Me"])
local snap = true
local fire
function r.HL2(w)
local class = r["EntM"]["GetClass"](w)
if class == "weapon_pistol" then return true end
if class == "weapon_357" then return true end
if class == "weapon_smg1" then return true end
if class == "weapon_ar2" then return true end
if class == "weapon_physgun" then return true end
if class == "gmod_toolgun" then return true end
end
function r.Automatic()
local w = r["PlyM"]["GetActiveWeapon"](r["Me"])
if !r["EntM"]["IsValid"](w) then return false end
if r.HL2(w) then return true end
if !w.Primary then return false end
return w.Primary.Automatic
end
r["F"]["CreateClientConVar"]("rbot_fovchanger", 0)
r["F"]["CreateClientConVar"]("rbot_fovchanger_fov", 90)
function r.Aimbot(ucmd)
if r["AimbotOn"] and r.ShortValidCheck(r["AimbotTarget"]) then
r["EyePos"] = r["EntM"]["EyePos"](r["Me"])
local att = r["EntM"]["LookupAttachment"](r["AimbotTarget"], attachm)
local prediction = r.Predict()
getpos = r["EntM"]["GetAttachment"](r["AimbotTarget"], att) or r["EntM"]["LocalToWorld"](r["AimbotTarget"], r["EntM"]["OBBCenter"](r["AimbotTarget"]))
getpos = getpos["Pos"] or getpos
local posnopredict = r["F"]["Vector"](getpos["x"] - r["EyePos"]["x"], getpos["y"] - r["EyePos"]["y"], getpos["z"] - r["EyePos"]["z"])
--local offset = r["F"]["Vector"](r["F"]["GetConVarNumber"]("rbot_aimbot_offsetx"), 0, r["F"]["GetConVarNumber"]("rbot_aimbot_offsetz"))
local ang = r["VecM"]["Angle"](posnopredict + prediction --[[+ offset]])
if r["F"]["GetConVarNumber"]("rbot_aimbot_nospread") == 1 then
ang = r.PredictSpread(ucmd, ang)
end
ang["p"] = r["F"]["math"]["NormalizeAngle"](ang["p"])
ang["y"] = r["F"]["math"]["NormalizeAngle"](ang["y"])
r["CmdM"]["SetViewAngles"](ucmd, ang)
if r["F"]["GetConVarNumber"]("rbot_aimbot_autofire") == 1 then
if r.Automatic() then
r["CmdM"]["SetButtons"](ucmd, r["F"]["bit"]["bor"](r["CmdM"]["GetButtons"](ucmd), 1))
else
if not fire then
r["CmdM"]["SetButtons"](ucmd, r["F"]["bit"]["bor"](r["CmdM"]["GetButtons"](ucmd), 1)) end
fire = not fire
end
end
if r["F"]["GetConVarNumber"]("rbot_aimbot_auto_ads") == 1 then
r["CmdM"]["SetButtons"](ucmd, r["F"]["bit"]["bor"](r["CmdM"]["GetButtons"](ucmd) + 2048))
end
return
else
r.GetAimTarget()
if boosting or r["NPCAimOn"] then
oa = r["CmdM"]["GetViewAngles"](ucmd, r["Me"])
return
end
oa = oa + r["F"]["Angle"](r["CmdM"]["GetMouseY"](ucmd) * 0.023, -r["CmdM"]["GetMouseX"](ucmd) * 0.023, 0)
oa.p = r["F"]["math"]["Clamp"](oa.p,-89,89)
if r["F"]["GetConVarNumber"]("rbot_nospread") == 1 then
r["CmdM"]["SetViewAngles"](ucmd, r.PredictSpread(ucmd, oa))
else
r["CmdM"]["SetViewAngles"](ucmd, oa)
end
return
end
end
r:AddHook("CreateMove", "hooked_Aimbot", r.Aimbot)
r["F"]["concommand"]["Add"]("+rbot_aim", function()
r["AimbotOn"] = true
end)
r["F"]["concommand"]["Add"]("-rbot_aim", function()
if r["F"]["GetConVarNumber"]("rbot_aimbot_snapback") == 1 then
r["PlyM"]["SetEyeAngles"](r["Me"], oa)
end
r["AimbotOn"] = false
end)
local demo = r["Copy"]["_G"]["engine"]["IsPlayingDemo"]()
function r.CalcView(ply,origin,angles, fov)
local view = {}
if r["AimbotOn"] and r.ShortValidCheck(r["AimbotTarget"]) and !r["NPCAimOn"] then
view.angles = angles
view.vm_angles = angles
else
view.angles = oa
view.vm_angles = oa
end
if r["F"]["GetConVarNumber"]("rbot_antiaim") == 1 then
view.angles = r["F"]["Angle"](180, oa["y"], 180)
view.vm_angles = r["F"]["Angle"](180, oa["y"], 180)
end
view.origin = origin
if r["F"]["GetConVarNumber"]("rbot_fovchanger") == 1 then
view.fov = r["F"]["GetConVarNumber"]("rbot_fovchanger_fov")
else
view.fov = fov
end
return view
end
if !demo then
r:AddHook("CalcView", "hooked_CalcView", r.CalcView)
end
-- STEP 3: BHOP!
--[[
BHOP
]]
r["F"]["CreateClientConVar"]("rbot_bhop", 1)
r["F"]["CreateClientConVar"]("rbot_bhop_autostrafe", 1)
r["F"]["CreateClientConVar"]("rbot_bhop_autostrafe_amount", 1000)
function r.BHop(ucmd)
if r["F"]["GetConVarNumber"]("rbot_bhop") != 1 then return end
r["F"]["_nyx"]["Bunnyhop"](ucmd, r["EntM"]["IsOnGround"](r["Me"]))
if r["F"]["GetConVarNumber"]("rbot_bhop_autostrafe") == 1 and !r["EntM"]["IsOnGround"](r["Me"]) then
-- r["CmdM"]["SetForwardMove"](ucmd, 1000)
if r["CmdM"]["GetMouseX"](ucmd) < 0 then
r["CmdM"]["SetSideMove"](ucmd, r["F"]["GetConVarNumber"]("rbot_bhop_autostrafe_amount") * -1)
elseif r["CmdM"]["GetMouseX"](ucmd) > 0 then
r["CmdM"]["SetSideMove"](ucmd, r["F"]["GetConVarNumber"]("rbot_bhop_autostrafe_amount"))
end
end
end
r["F"]["surface"]["CreateFont"]("HWEOAJSHO", {
font = "Tahoma",
size = 16,
weight = 500,
shadow = true,
})
function r.Speed()
r["F"]["draw"]["SimpleText"]("Speed: "..r["F"]["math"]["Round"](r["VecM"]["Length"](r["EntM"]["GetVelocity"](r["Me"]))).." units", "HWEOAJSHO", r["Copy"]["_G"]["ScrW"]() / 2, 0, r["F"]["Color"](255,0,93), 1)
end
r:AddHook("HUDPaint", "hooked_Speed", r.Speed)
r:AddHook("CreateMove", "hooked_BHop", r.BHop)
-- STEP 4: CHAMS!
--[[
Chams
]]
r["ChamsMaterial"] = r["F"]["CreateMaterial"]("GA0249aSFJ3","VertexLitGeneric",{
["$basetexture"] = "models/debug/debugwhite",
["$model"] = 1,
["$translucent"] = 1,
["$alpha"] = 1,
["$nocull"] = 1,
["$ignorez"] = 1
}
)
r["F"]["CreateClientConVar"]("rbot_chams", 0)
r["XRayOn"] = false
function r.Chams()
for k,v in r["F"]["pairs"](r["F"]["player"]["GetAll"]()) do
if r["EntM"]["IsValid"](v) and !r["XRayOn"] then
if r["PlyM"]["Alive"](v) then
if v != r["Me"] then
if r["F"]["GetConVarNumber"]("rbot_chams") == 1 then
r["F"]["cam"]["Start3D"]()
local col = r["F"]["team"]["GetColor"](r["PlyM"]["Team"](v))
r["F"]["render"]["SuppressEngineLighting"]( true )
r["F"]["render"]["SetColorModulation"]( col.r / 255, col.g / 255, col.b / 255 )
r["F"]["render"]["MaterialOverride"]( r["ChamsMaterial"] )
r["EntM"]["DrawModel"](v)
r["F"]["render"]["SuppressEngineLighting"]( false )
r["F"]["render"]["SetColorModulation"](1,1,1)
r["F"]["render"]["MaterialOverride"]( )
r["EntM"]["DrawModel"](v)
r["F"]["cam"]["End3D"]()
end
end
end
end
end
end
r:AddHook("RenderScreenspaceEffects", "hooked_Chams", r.Chams)
-- STEP 5: ESP!
--[[
ESP
]]
r["F"]["CreateClientConVar"]("rbot_esp", 0)
function r.EspCheck(v, p)
if !r["EntM"]["IsValid"](v) then
return false
end
if p then
if !r["PlyM"]["Alive"](v) then
return false
end
end
return true
end
r["F"]["CreateClientConVar"]("rbot_esptype", 1)
function r.BoxESP(v, col, ply)
if r.EspCheck(v, ply) then
-- THIS IS NOT LENNYS ESP ADJODJOJ)!$J$")? AFOSM
local min,max = r["EntM"]["WorldSpaceAABB"](v)
local diff = max-min
if ply and r["F"]["GetConVarNumber"]("rbot_esptype") != 1 or !ply then
local pos2 = r["F"]["Vector"](0,0,0)
local pos1 = r["F"]["Vector"](0,0,0)
local pos3 = r["F"]["Vector"](0,0,0)
local pos4 = r["F"]["Vector"](0,0,0)
local pos5 = r["F"]["Vector"](0,0,diff.z)
local pos6 = r["F"]["Vector"](0,0,diff.z)
local pos7 = r["F"]["Vector"](0,0,diff.z)
local pos8 = r["F"]["Vector"](0,0,diff.z)
pos1 = r["VecM"]["ToScreen"](pos1 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](diff.x,diff.y,0))
pos2 = r["VecM"]["ToScreen"](pos2 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](diff.x,-diff.y/14,0))
pos3 = r["VecM"]["ToScreen"](pos3 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](-diff.x/14,-diff.y/14,0))
pos4 = r["VecM"]["ToScreen"](pos4 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](-diff.x/14,diff.y,0))
pos5 = r["VecM"]["ToScreen"](pos5 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](diff.x,diff.y,0))
pos6 = r["VecM"]["ToScreen"](pos6 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](diff.x,-diff.y/14,0))
pos7 = r["VecM"]["ToScreen"](pos7 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](-diff.x/14,-diff.y/14,0))
pos8 = r["VecM"]["ToScreen"](pos8 + r["EntM"]["WorldSpaceAABB"](v) + r["F"]["Vector"](-diff.x/14,diff.y,0))
r["F"]["surface"]["SetDrawColor"](0,0,255,255)
r["F"]["surface"]["DrawLine"](pos1.x, pos1.y, pos2.x, pos2.y)
r["F"]["surface"]["DrawLine"](pos2.x, pos2.y, pos3.x, pos3.y)
r["F"]["surface"]["DrawLine"](pos3.x, pos3.y, pos4.x, pos4.y)
r["F"]["surface"]["DrawLine"](pos1.x, pos1.y, pos4.x, pos4.y)
r["F"]["surface"]["DrawLine"](pos1.x, pos1.y, pos3.x, pos3.y)
r["F"]["surface"]["DrawLine"](pos2.x, pos2.y, pos4.x, pos4.y)
r["F"]["surface"]["SetDrawColor"](col)
r["F"]["surface"]["DrawLine"](pos1.x, pos1.y, pos5.x, pos5.y)
r["F"]["surface"]["DrawLine"](pos2.x, pos2.y, pos6.x, pos6.y)
r["F"]["surface"]["DrawLine"](pos3.x, pos3.y, pos7.x, pos7.y)
r["F"]["surface"]["DrawLine"](pos4.x, pos4.y, pos8.x, pos8.y)
r["F"]["surface"]["SetDrawColor"](90,20,50,255)
r["F"]["surface"]["DrawLine"](pos5.x, pos5.y, pos6.x, pos6.y)
r["F"]["surface"]["DrawLine"](pos6.x, pos6.y, pos7.x, pos7.y)
r["F"]["surface"]["DrawLine"](pos7.x, pos7.y, pos8.x, pos8.y)
r["F"]["surface"]["DrawLine"](pos5.x, pos5.y, pos8.x, pos8.y)
r["F"]["surface"]["DrawLine"](pos5.x, pos5.y, pos7.x, pos7.y)
r["F"]["surface"]["DrawLine"](pos6.x, pos6.y, pos8.x, pos8.y)
elseif ply and r["F"]["GetConVarNumber"]("rbot_esptype") == 1 then
local min, max = r["EntM"]["WorldSpaceAABB"](v)
min, max = r["VecM"]["ToScreen"](min), r["VecM"]["ToScreen"](max)
local h = (min.y / 2) - (max.y / 2)
r["F"]["surface"]["SetDrawColor"](col.g, col.b, col.r)
r["F"]["surface"]["DrawOutlinedRect"](max.x +h/10, max.y + (min.y / 75), h, h)
r["F"]["surface"]["DrawOutlinedRect"](max.x +h/10-.5, max.y + (min.y / 75)-.5, h+1, h+1)
r["F"]["surface"]["DrawOutlinedRect"](max.x +h/10-1, max.y + (min.y / 75)-1, h+2, h+2)
end
if !ply then
local Position = r["EntM"]["GetPos"](v) + r["F"]["Vector"]( 0, 0,20 )
Position = r["VecM"]["ToScreen"](Position)
r["F"]["draw"]["DrawText"]( r["EntM"]["GetClass"](v), "HWEOAJSHO", Position.x, Position.y, r["F"]["Color"](255,191,0), 0 )
end
if ply then
local Health = r["EntM"]["Health"](v)
local Position = diff + min
Position = r["VecM"]["ToScreen"](Position)
local Name = r["PlyM"]["Name"](v)
local w
local wep = r["PlyM"]["GetActiveWeapon"](v)
if r["EntM"]["IsValid"](wep) then
w = r["EntM"]["GetClass"](wep)
else
w = "Unknown"
end
r["F"]["draw"]["DrawText"]( Name, "HWEOAJSHO", Position.x, Position.y, r["F"]["Color"](255,191,0), 1 )
r["F"]["draw"]["DrawText"]( "HP: " .. Health, "HWEOAJSHO", Position.x, Position.y + 10, r["F"]["Color"](255,191,0), 1 )
r["F"]["draw"]["DrawText"]( "Wep: " ..w, "HWEOAJSHO", Position.x, Position.y + 20, r["F"]["Color"](255,191,0), 1 )
if r["PlyM"]["GetFriendStatus"](v) == "friend" then
r["F"]["draw"]["DrawText"]( "[FRIEND]", "HWEOAJSHO", Position.x, Position.y - 12, r["F"]["Color"](255,191,0), 1 )
end
if r["PlyM"]["IsAdmin"](v) then
r["F"]["draw"]["DrawText"]( "[ADMIN]", "HWEOAJSHO", Position.x, Position.y + 30, r["F"]["Color"](255,191,0), 1 )
end
end
end
end
r["TrackEnts"] = { -- Add Entities to track here, or use ingame function.
"printer", -- Mainly for DarkRP
"spawned_", -- Mainly for DarkRP
"m9k_ammo_", -- M9K Ammo
"mu_loot",
"weapon_mu_magnum",
}
r["F"]["CreateClientConVar"]("rbot_entesp", 0)
function r.ESPLoop()
if r["F"]["GetConVarNumber"]("rbot_esp") == 1 then
for k,v in r["F"]["pairs"](r["F"]["player"]["GetAll"]()) do
if v != r["Me"] then
r.BoxESP(v, r["F"]["team"]["GetColor"](r["PlyM"]["Team"](v)), true)
end
end
end
if r["F"]["GetConVarNumber"]("rbot_entesp") == 1 then
for k,v in r["F"]["pairs"](r["F"]["ents"]["GetAll"]()) do
if !r["EntM"]["IsPlayer"](v) then
for i, s in r["F"]["pairs"](r["TrackEnts"]) do
if r["F"]["string"]["find"](r["EntM"]["GetClass"](v),s) then
local col = r["EntM"]["GetColor"](v)
r.BoxESP(v, col, false)
end
end
end
end
end
end
function r.AddEntity()
local ent = r["PlyM"]["GetEyeTrace"](r["Me"])["Entity"]
if r["EntM"]["IsValid"](ent) and !r["EntM"]["IsPlayer"](ent) then
r["F"]["table"]["insert"](r["TrackEnts"], r["EntM"]["GetClass"](ent))
end
end
function r.RemoveEntity()
local ent = r["PlyM"]["GetEyeTrace"](r["Me"])["Entity"]
if r["EntM"]["IsValid"](ent) and !r["EntM"]["IsPlayer"](ent) then
for k,v in r["F"]["pairs"](r["TrackEnts"]) do
if v == r["EntM"]["GetClass"](ent) then
r["F"]["table"]["remove"](r["TrackEnts"],k)
end
end
end
end
r["F"]["concommand"]["Add"]("rbot_entesp_add", r.AddEntity)
r["F"]["concommand"]["Add"]("rbot_entesp_remove", r.RemoveEntity)
r:AddHook("HUDPaint", "hooked_ESP", r.ESPLoop)
r["F"]["CreateClientConVar"]("rbot_eyelaser", 0)
function r.EyeLaser()
if r["F"]["GetConVarNumber"]("rbot_eyelaser") == 1 then
for k,v in r["F"]["pairs"](r["F"]["player"]["GetAll"]()) do
if r["EntM"]["IsValid"](v) and r["PlyM"]["Alive"](v) and v != r["Me"] then
r["F"]["cam"]["Start3D"]()
r["F"]["render"]["SetMaterial"](r["Copy"]["_G"]["Material"]("cable/physbeam"))
local epos = r["EntM"]["EyePos"](v)
local hitpos = r["PlyM"]["GetEyeTrace"](v)["HitPos"]
r["F"]["render"]["DrawBeam"](epos, hitpos, 10, 1, 1)
r["F"]["cam"]["End3D"]()
end
end
end
end
r:AddHook("HUDPaint", "hooked_EyeLaser", r.EyeLaser)
-- STEP 6: ANTI AIM!
--[[
AntiAim
]]
local shallchange = false
r["F"]["CreateClientConVar"]("rbot_antiaim", 0)
r["F"]["CreateClientConVar"]("rbot_antiaim_ang", 181)
function r.AntiAim(ucmd)
if r["F"]["GetConVarNumber"]("rbot_antiaim") == 1 then
if r["AimbotOn"] then
if r["AimbotTarget"] then
return
end
end
if not shallchange then
r["CmdM"]["SetViewAngles"](ucmd, r["F"]["Angle"](r["F"]["GetConVarNumber"]("rbot_antiaim_ang") * -1, oa["y"], 0))
r["CmdM"]["SetViewAngles"](ucmd, r["F"]["Angle"](r["F"]["GetConVarNumber"]("rbot_antiaim_ang"), oa["y"], 0))
shallchange = true
else
r["CmdM"]["SetViewAngles"](ucmd, r["F"]["Angle"](r["F"]["GetConVarNumber"]("rbot_antiaim_ang"), oa["y"], 0))
r["CmdM"]["SetViewAngles"](ucmd, r["F"]["Angle"](r["F"]["GetConVarNumber"]("rbot_antiaim_ang") * -1, oa["y"], 0))
shallchange = false
end
r["CmdM"]["SetSideMove"](ucmd, r["CmdM"]["GetSideMove"](ucmd) * -1)
end
end
r:AddHook("CreateMove", "hooked_Antiaim", r.AntiAim)
-- STEP 7: NO HANDS!
--[[
No Hands
]]
local oldgethands = r["r"]["Player"]["GetHands"];
local oldsethands = r["r"]["Player"]["SetHands"];
local oldgetmodel = r["r"]["Player"]["GetHandsModel"];
r["F"]["CreateClientConVar"]("rbot_nohands", 0)
r["r"]["Player"]["GetHands"] = function(ent)
if !r then return oldgethands(ent) end
if ent == r["Me"] then
if r["F"]["GetConVarNumber"]("rbot_nohands") == 1 then
return nil
end
end
return oldgethands(ent)
end
r["r"]["Player"]["SetHands"] = function(ent, model)
if !r then return oldsethands(ent, model) end
if ent == r["Me"] then
if r["F"]["GetConVarNumber"]("rbot_nohands") == 1 then
return nil
end
end
return oldsethands(ent, model)
end
r["r"]["Player"]["GetHandsModel"] = function( ent )
if !r then return oldgetmodel(ent) end
if ent == r["Me"] then
if r["F"]["GetConVarNumber"]("rbot_nohands") == 1 then
return nil
end
end
return oldgetmodel(ent)
end
-- STEP 7: SPEEDHACK!
--[[
Speedhack
]]
r["F"]["CreateClientConVar"]("rbot_speedhack_speed", 10)
function r.SpeedhackOn()
r:ForceVar("host_framerate", r["F"]["GetConVarNumber"]("rbot_speedhack_speed"))
end
function r.SpeedhackOff()
r:ForceVar("host_framerate", 0)
end
r["F"]["concommand"]["Add"]("+rbot_speedhack", r.SpeedhackOn)
r["F"]["concommand"]["Add"]("-rbot_speedhack", r.SpeedhackOff)
-- STEP 8: TRACERS!
--[[
Tracers
]]
r["F"]["CreateClientConVar"]("rbot_tracers", 0)
function r.Tracers()
if r["F"]["GetConVarNumber"]("rbot_tracers") != 1 then
return
end
for k,v in r["F"]["pairs"](r["F"]["player"]["GetAll"]()) do
if r["EntM"]["IsValid"](v) and r["PlyM"]["Alive"](v) and v != r["Me"] then
r["F"]["surface"]["SetDrawColor"](0,0,255)
if r["PlyM"]["GetFriendStatus"](v) == "friend" then
r["F"]["surface"]["SetDrawColor"](0,255,0)
elseif r["PlyM"]["IsAdmin"](v) then
r["F"]["surface"]["SetDrawColor"](255,0,0)
end
local pos = r["EntM"]["LocalToWorld"](v, r["EntM"]["OBBCenter"](v))
pos = r["VecM"]["ToScreen"](pos)
surface.DrawLine(r["Copy"]["_G"]["ScrW"]() * .5, r["Copy"]["_G"]["ScrH"](), pos.x, pos.y)
end
end
end
r:AddHook("RenderScreenspaceEffects", "hooked_Tracers", r.Tracers)
-- STEP 9: UNLIMITED VOICESPAM!
--[[
Unlimited Voicespam
]]
r["F"]["CreateClientConVar"]("rbot_unlimitedvoice", 1)
function r.UnlimitedVoice()
if r["F"]["GetConVarNumber"]("rbot_unlimitedvoice") != 1 then return end
r["Me"].voice_battery = 100
end
r:AddHook("Think", "hooked_UnlimitedVoice", r.UnlimitedVoice)
-- STEP 10: CHATSPAM!
--[[
Chatspam
]]
r["F"]["CreateClientConVar"]("rbot_chatspam", 0)
r["F"]["CreateClientConVar"]("rbot_chatspam_msg", "// HAX!")
r["Copy"]["_G"]["RunConsoleCommand"]("rbot_chatspam", 0)
function r.Chatspam()
if r["F"]["GetConVarNumber"]("rbot_chatspam") != 1 then return end
local msg = r["F"]["GetConVarString"]("rbot_chatspam_msg")
r["PlyM"]["ConCommand"](r["Me"], "say "..msg)
end
r:AddHook("Think", "hooked_Chatspam", r.Chatspam)
function r.Unload()
for k,v in r["F"]["pairs"]( r.Hooks ) do
local typ, nam = v.typ, v.nam
r["F"]["hook"]["GetTable"]()[typ][nam] = nil
end
r["F"]["concommand"]["Remove"]("+rbot_aim")
r["F"]["concommand"]["Remove"]("-rbot_aim")
r["F"]["concommand"]["Remove"]("+rbot_speedhack")
r["F"]["concommand"]["Remove"]("-rbot_speedhack")
r:Notify("Unloaded Cheat, reload by opening it again.")
r = nil
end
r["F"]["concommand"]["Add"]("rbot_unload", r.Unload)
--[[
XRay
]]
r["F"]["CreateClientConVar"]("rbot_xray", 0)
if r["F"]["GetConVarNumber"]("rbot_xray") == 1 then
r["XRayOn"] = true
end
r["Copy"]["_G"]["cvars"]["AddChangeCallback"]("rbot_xray", function()
if r["F"]["GetConVarNumber"]("rbot_xray") == 1 then
r["XRayOn"] = true
else
r["XRayOn"] = false
end
end)
local propcol = r["F"]["Color"](33, 255, 0, 80)
local plycol = r["F"]["Color"](255, 0, 0, 140)
local vpropcol = r["F"]["Color"](255, 93, 0, 120)
local xmat = r["Copy"]["_G"]["Material"]("models/debug/debugwhite")
local xmat2 = r["Copy"]["_G"]["Material"]("models/wireframe")
local viewmodelcol = r["F"]["Color"](0, 0, 0, 100)
local entCols = {}
function r.XRay()
if !r["XRayOn"] then return end
local all = ents.FindByClass("prop_physics")
for i = 1, #all do
local v = all[i]
if !r["EntM"]["IsValid"](v) then
continue
end
r["F"]["cam"]["Start3D"]()
r["F"]["render"]["SuppressEngineLighting"]( true )
r["F"]["render"]["MaterialOverride"](xmat)
local vel = r["EntM"]["GetVelocity"](v)
if vel.z == 0 or vel.x == 0 or vel.y == 0 then
r["F"]["render"]["SetColorModulation"]( propcol.r / 255, propcol.g / 255, propcol.b / 255 )
r["F"]["render"]["SetBlend"]( propcol.a / 255 )
else
r["F"]["render"]["SetColorModulation"](vpropcol.r / 255, vpropcol.g / 255, vpropcol.b / 255)
r["F"]["render"]["SetBlend"](vpropcol.a / 255)
end
r["EntM"]["DrawModel"](v)
r["F"]["cam"]["End3D"]()
end
local allplys = r["AllPlayer"]
for i = 1, #allplys do
local v = allplys[i]
if !r["EntM"]["IsValid"](v) or !r["PlyM"]["Alive"](v) or (v == r["Me"]) then
continue
end
r["F"]["cam"]["Start3D"]()
r["F"]["render"]["MaterialOverride"](xmat)
r["F"]["render"]["SetColorModulation"](plycol.r / 255, plycol.g / 255, plycol.b / 255)
r["F"]["render"]["SetBlend"](plycol.a / 255)
r["F"]["render"]["SuppressEngineLighting"]( true )
r["EntM"]["DrawModel"](v)
r["F"]["cam"]["End3D"]()
end
end
r:AddHook("HUDPaint", "hooked_XRay", r.XRay)
--[[
Propboost 'n' Shit
]]
r["F"]["CreateClientConVar"]("rbot_surfprop", "models/props_building_details/Storefront_Template001a_Bars.mdl")
r["F"]["CreateClientConVar"]("rbot_propflyprop", "models/hunter/blocks/cube05x05x05.mdl")
r["F"]["CreateClientConVar"]("rbot_propfly_jump", 1)
r["F"]["concommand"]["Remove"]("+rbot_propsurf")
r["F"]["concommand"]["Remove"]("-rbot_propsurf")
r["F"]["concommand"]["Remove"]("+rbot_propfly")
r["F"]["concommand"]["Remove"]("-rbot_propfly")
function r.PropBoost()
boosting = true
r["PlyM"]["ConCommand"](r["Me"], "rbot_aimbot_snapback 0")
local curang = r["EntM"]["EyeAngles"](r["Me"])
r["PlyM"]["SetEyeAngles"](r["Me"], r["F"]["Angle"](curang.p, curang.y - 180, curang.r))
r["F"]["timer"]["Simple"](.05, function()
r["PlyM"]["ConCommand"](r["Me"], "+attack")
r["PlyM"]["ConCommand"](r["Me"], "gm_spawn "..r["F"]["GetConVarString"]("rbot_surfprop"))
end)
r["F"]["timer"]["Simple"](.25, function()
r["PlyM"]["SetEyeAngles"](r["Me"], r["F"]["Angle"](curang.p, curang.y - 360, curang.r))
end)
end
r["F"]["concommand"]["Add"]("+rbot_propsurf", r.PropBoost)
r["F"]["concommand"]["Add"]("-rbot_propsurf", function()
r["PlyM"]["ConCommand"](r["Me"], "undo")
r["PlyM"]["ConCommand"](r["Me"], "-attack")
boosting = false
end)
r["F"]["concommand"]["Add"]("+rbot_propfly", function()
boosting = true
local curang = r["EntM"]["EyeAngles"](r["Me"])
r["PlyM"]["SetEyeAngles"](r["Me"], r["F"]["Angle"](35, curang.y - 180, curang.r))
r["F"]["timer"]["Simple"](.05, function()
r["PlyM"]["ConCommand"](r["Me"], "gm_spawn "..r["F"]["GetConVarString"]("rbot_propflyprop"))
r["PlyM"]["ConCommand"](r["Me"], "+attack")
if r["F"]["GetConVarNumber"]("rbot_propfly_jump") == 1 then
r["PlyM"]["ConCommand"](r["Me"], "+jump")
end
end)
r["F"]["timer"]["Simple"](.25, function()
r["PlyM"]["SetEyeAngles"](r["Me"], r["F"]["Angle"](-30, curang.y - 360, curang.r))
r["PlyM"]["ConCommand"](r["Me"], "-jump")
end)
end)
r["F"]["concommand"]["Add"]("-rbot_propfly", function()
r["PlyM"]["ConCommand"](r["Me"], "undo")
r["PlyM"]["ConCommand"](r["Me"], "-attack")
boosting = false
end)
--[[
Admin notification
]]
local admins = {}
function r.CheckForAdmins()
allply = r["F"]["player"]["GetAll"]()
for i = 1, #allply do
local v = allply[i]
if r["EntM"]["IsValid"](v) and r["PlyM"]["IsAdmin"](v) and !r["F"]["table"]["HasValue"](admins, v) then
r:ChatNotify("'"..r["PlyM"]["Name"](v).."' is an admin.")
r["F"]["table"]["insert"](admins, v)
end
end
end
r:AddHook("Think", "hooked_Admincheck", r.CheckForAdmins)
--[[
Crosshair
]]
r["F"]["CreateClientConVar"]("rbot_crosshair", 0)
function r.Crosshair()
if r["F"]["GetConVarNumber"]("rbot_crosshair") != 1 then return end
local scrw, scrh = r["Copy"]["_G"]["ScrW"](), r["Copy"]["_G"]["ScrH"]()
r["F"]["surface"]["SetDrawColor"](r["F"]["Color"](0, 255, 0))
r["F"]["surface"]["DrawLine"](scrw / 2 - 10, scrh / 2, scrw / 2 + 11, scrh / 2)
r["F"]["surface"]["DrawLine"](scrw / 2, scrh / 2 - 10, scrw / 2, scrh / 2 + 11)
end
r:AddHook("HUDPaint", "hooked_Crosshair", r.Crosshair)
--[[
ACT SHIT
]]
r["F"]["CreateClientConVar"]("rbot_aa_act", 0)
function r.Act()
if r["F"]["GetConVarNumber"]("rbot_aa_act") != 1 then return end
r["Copy"]["_G"]["RunConsoleCommand"]("act", "robot")
end
local speeding
r:AddHook("Think", "hooked_AA_Act", r.Act)
function r.Speedle()
if speeding then
r:ForceVar("host_framerate", 8)
end
end
r:AddHook("Think", "hooked_Speedhack2", r.Speedle)
r["F"]["concommand"]["Add"]("+rbot_speedhack2", function()
speeding = true
end)
r["F"]["concommand"]["Add"]("-rbot_speedhack2", function()
speeding = false
end)
--[[
Rapid Fire
]]
local shallfire
r["F"]["CreateClientConVar"]("rbot_rapidfire", 0)
function r.Rapidfire(ucmd)
if r["F"]["GetConVarNumber"]("rbot_rapidfire") != 1 then
return
end
if r["F"]["input"]["IsMouseDown"](107) and !r["PlyM"]["IsTyping"](r["Me"]) then
r["F"]["timer"]["Simple"](.02, function()
r["Copy"]["_G"]["RunConsoleCommand"]("-attack")
end)
if not shallfire then
r["CmdM"]["SetButtons"](ucmd, r["F"]["bit"]["bor"](r["CmdM"]["GetButtons"](ucmd), 1))
end
shallfire = not shallfire
end
end
r:AddHook("CreateMove", "hooked_Rapidfire", r.Rapidfire)
--[[
Load Last
]]
r:ForceVar("sv_cheats", "0")
r:ForceVar("sv_allowcslua", "0")
r:ChatNotify("Loaded successfully.")
r:ChatNotify("Cheat version: "..r["Version"])
local randsent = r["Sentences"][r["F"]["math"]["random"](1, #r["Sentences"])]
r:ChatNotify(randsent)
r["Copy"]["_G"]["notification"]["AddProgress"](r["Copy"]["_G"]["util"]["CRC"](r["Copy"]["_G"]["CurTime"]()), " rBot loaded. ")
Credits to: razor for this awesome hack