#
listener
Global signal system for multi-purpose callbacks.
#
Events
should_aimbot_target(entIndex: number): boolean
- Determines if the player should be targeted by the aimbot or not.
- Also applies to legit bot.
secret.listener.add("should_aimbot_target", "notarget", function(index)
return true -- blocks
end)
should_triggerbot_target(entIndex: number): boolean
- Determines if the player should be targeted by the triggerbot.
secret.listener.add("should_triggerbot_target", "notrigger", function(index)
return true -- blocks
end)
should_draw_player(entIndex: number): boolean
- Determines if the player should be drawn in the esp or not.
secret.listener.add("should_draw_player", "nodraw", function(index)
return true -- blocks
end)
should_draw_entity(entIndex: number): boolean
- Determines if an entity should be drawn in the esp or not.
secret.listener.add("should_draw_entity", "nodraw", function(index)
return true -- blocks
end)
think()
- Called every frame.
secret.listener.add("think", "spam_console", function()
print("spammmm!")
end)
paint_traverse()
- Mostly used for custom drawing.
- This is a 2D render context.
secret.listener.add("paint_traverse", "draw_box", function()
surface.SetDrawColor(255,255,255,255)
surface.DrawRect(25, 25, 100, 100)
end)
view_render_post()
- Occurs after ViewRender has been ran, usually used for screengrab proof esp.
- This is a 3D render context.
secret.listener.add("view_render_post", "draw_2d_box", function()
cam.Start2D()
surface.SetDrawColor(255,255,255,255)
surface.DrawRect(25, 25, 100, 100)
cam.End2D()
end)
server_connect(ip: string, port: number, hostname: string)
- Called when connecting to a server.
server_disconnect(reason: string)
- Called when disconnected/kicked/banned from a server.
presend(CUserCmd: table)
- Called right before movement packets are sent.
- Provides full access to the native Garry's Mod
CUserCmdclass. - Provides additional functions not found in the default GMod class, allowing extended control over the usercmd.
secret.listener.add("presend", "viewangles", function(cmd)
cmd.angles = Angle(50, 50, 0) -- sets our viewangles
cmd.SetWorldClicker(cmd, Vector(20, 20, 20)) -- sets our context menu angle, not present in the garry's mod class.
end)
#
CUserCmd
get/set - cmd.buttons: number
get/set - cmd.command: number
get/set - cmd.tick: number
get/set - cmd.angles: Angle
get/set - cmd.forward: number
get/set - cmd.side: number
get/set - cmd.up number
get/set - cmd.impulse: number
get/set - cmd.seed: number
get - cmd.hash: number
get/set - cmd.mousex: number
get/set - cmd.mousey: number
get - cmd.prediction: bool
wndproc(vk_key: number): boolean
- Called whenever a Windows virtual key event is received.
- If
trueis returned, the input will be blocked from reaching the game.
secret.listener.add("wndproc", "block_space", function(vk)
if vk == 0x20 then -- space key
return true -- block input
end
end)
override_vischeck(aimbot_target_index: number, tstart: vector, tend: vector, record: boolean): boolean
- Called every time the cheat performs a visibility check between you and a potential aimbot target.
- Currently only ragebot uses this listener.
- tstart – starting position of the trace (usually your eye position).
- tend – ending position of the trace (usually the target hitbox).
- record - is the trace running at a backtrack record?
- Return value:
true→ force the vischeck to succeed (target is always considered visible).false→ force the vischeck to fail (target is never considered visible).nil→ do nothing and let the default engine visibility check decide.
-- simple override, treat everyone as visible.
secret.listener.add("override_vischeck", "always_visible", function(target_index, tstart, tend, record)
return true
end)
-- custom logic, allow vis if distance < 500 units
secret.listener.add("override_vischeck", "short_range_vis", function(target_index, tstart, tend, record)
local dist = (tend - tstart):Length()
if dist < 500 then
return true
end
end)
should_aimbot_autofire(): boolean
- Called every time the ragebot decides whether it should autofire.
- Useful for custom logic to control when the ragebot fires (e.g., based on target state, weapon, or other conditions).
secret.listener.add("should_aimbot_autofire", "custom_logic", function()
-- only allow autofire if some condition is met
return LocalPlayer():Health() > 50
end)