Types & Structures
Complete reference of all primitive types, math objects, and engine structures exposed to Aimsense Lua.
Math Primitives
Section titled “Math Primitives”vector
Section titled “vector”3D Coordinate vector structure.
local v1 = vector() -- (0, 0, 0)local v2 = vector(x, y) -- (x, y, 0)local v3 = vector(x, y, z)Fields: x, y, z (Numbers, read/write).
Operators: +, -, *, /, ==, # (length), tostring.
| Method | Parameters | Returns | Description |
|---|---|---|---|
v:length() |
(none) | number |
3D magnitude $\sqrt{x^2 + y^2 + z^2}$. |
v:length_sqr() |
(none) | number |
Squared 3D magnitude $x^2 + y^2 + z^2$. |
v:length2d() |
(none) | number |
2D magnitude $\sqrt{x^2 + y^2}$ (ignoring z). |
v:length2d_sqr() |
(none) | number |
Squared 2D magnitude $x^2 + y^2$. |
v:dist(other) |
vector |
number |
Euclidean distance to another point. |
v:dot(other) |
vector |
number |
Dot product between vectors. |
v:cross(other) |
vector |
vector |
Cross product vector. |
v:lerp(other, t) |
vector, number |
vector |
Linear interpolation towards other with fraction t. |
v:angles() |
(none) | qangle |
Converts vector direction to view Euler angles. |
v:angles(ang) |
qangle |
vector |
Returns unit direction vector for the given Euler angles. |
v:to_screen() |
(none) | vector |
Transforms 3D world coordinate to 2D screen coordinate. |
v:dist_to_ray(start, stop) |
vector, vector |
number |
Perpendicular distance from vector to a line segment. |
v:closest_ray_point(start, stop) |
vector, vector |
vector |
Nearest point on ray segment to this vector. |
qangle
Section titled “qangle”3D Euler angle orientation structure.
local a1 = qangle()local a2 = qangle(pitch, yaw)local a3 = qangle(pitch, yaw, roll)Fields: pitch, yaw, roll (Numbers, read/write).
RGBA Color container (0..255 channels).
local c1 = color() -- White (255, 255, 255, 255)local c2 = color(val) -- Greyscale (val, val, val, 255)local c3 = color(val, alpha) -- Greyscale with alphalocal c4 = color(r, g, b) -- Opaque RGBlocal c5 = color(r, g, b, a) -- RGBAFields: r, g, b, a (Numbers 0..255).
| Method | Parameters | Returns | Description |
|---|---|---|---|
c:alpha_modulate(a) |
number |
color |
Returns new color with explicit alpha (0..255). |
c:alpha_modulatef(f) |
number |
color |
Returns new color with alpha multiplied by fraction (0.0..1.0). |
c:lerp(other, t) |
color, number |
color |
Interpolates towards other color by fraction t. |
c:clone() |
(none) | color |
Returns duplicate color instance. |
c:as_int32() |
(none) | number |
Returns packed 32-bit ARGB/RGBA integer. |
c:as_fraction() |
(none) | number, number, number, number |
Returns channels as 0.0..1.0 floats. |
vertex
Section titled “vertex”Raw Direct3D vertex definition for render.vertex.
local vt = vertex(pos: vector, clr: color)Fields: x, y, z, color.
Entity Objects
Section titled “Entity Objects”entity_t
Section titled “entity_t”Base class for all entities in the game. Supports direct netprop access.
| Method | Returns | Description |
|---|---|---|
e:ent_index() |
number |
Entity index. |
e:get_abs_origin() |
vector |
Absolute world position origin. |
e:get_abs_angles() |
qangle |
Absolute world orientation angles. |
e:collision_origin() |
vector |
Collision bounding box center. |
e:obb_mins() / e:obb_maxs() |
vector |
Oriented bounding box bounds in local coordinates. |
e:is_player() |
boolean |
true if entity is a player. |
e:is_weapon() |
boolean |
true if entity is a base combat weapon. |
e:get_classid() |
number |
Client network class ID. |
e:get_classname() |
string |
C++ classname (e.g. "CCSPlayer", "CWeaponAK47"). |
e:set_model_index(idx) |
nil |
Overrides entity model index. |
e:ptr() |
number |
Raw memory address for LuaJIT FFI interaction. |
e:friendly() |
boolean |
true if player is running Aimsense (shared users). |
e:get_avatar() |
image_t | nil |
Steam profile avatar texture. |
e:set_icon(icon) |
nil |
Sets scoreboard rank icon (SVG string, path, or level). |
player_t
Section titled “player_t”Inherits all methods from entity_t, adding player-specific methods:
| Method | Returns | Description |
|---|---|---|
p:get_name() |
string |
Steam persona display name. |
p:get_player_info() |
player_info_t |
Steam IDs and engine user info. |
p:is_alive() |
boolean |
true if player health > 0 and life state is alive. |
p:is_enemy() |
boolean |
true if player is on the opposing team. |
p:is_bot() |
boolean |
true if player is an AI bot. |
p:is_dormant() |
boolean |
true if player is dormant to the local client. |
p:get_active_weapon() |
weapon_t | nil |
Currently equipped active weapon instance. |
p:get_eye_position() |
vector |
World position of player eye camera. |
p:get_bone_position(bone) |
vector |
3D matrix bone position. |
p:get_hitbox_position(hitbox) |
vector |
3D center of hitbox (0 is head). |
p:get_bounding_box() |
vector, vector |
Screen-space mins, maxs 2D box. Returns empty vector if off-screen. |
p:get_animstate() |
animstate_t | nil |
CS:GO animation state machine. |
p:get_animlayers() |
0-based wrapper | Array wrapper of 13 animation layers. |
p:get_simulation_time() |
table |
[1] = Current simulation time, [2] = Previous. |
p:get_dormant_last_update() |
number |
globals.curtime timestamp when entity was last seen. |
p:get_esp_alpha() |
number |
Current ESP fade opacity (0.0..1.0). |
weapon_t
Section titled “weapon_t”Inherits all methods from entity_t, adding weapon-specific methods:
| Method | Returns | Description |
|---|---|---|
w:weapon_index() |
number |
Item definition index. |
w:get_weapon_info() |
weapon_data_t |
Internal CCSWeaponData table. |
w:get_icon() |
image_t |
SVG/texture weapon icon. |
w:get_inaccuracy() |
number |
Current weapon firing inaccuracy. |
w:get_spread() |
number |
Current weapon spread cone radius. |
w:can_shoot() |
boolean |
true if weapon can fire this tick (off cooldown & loaded). |
w:shooting_weapon() |
boolean |
true if firearm (not knife, grenade, or C4). |
w:is_grenade() |
boolean |
true if throwable grenade. |
w:is_knife() |
boolean |
true if melee knife. |
Event Structures
Section titled “Event Structures”user_cmd_t
Section titled “user_cmd_t”Passed to createmove and post_createmove callbacks:
| Field | Type | Description |
|---|---|---|
command_number |
number |
Incremental command number sequence. |
tickcount |
number |
Tickcount command will be processed at. |
move |
vector |
Movement velocity vector (x = forward, y = side, z = up). |
viewangles |
qangle |
Aim view angles. |
buttons |
number |
IN_* bitmask (e.g. IN_ATTACK, IN_JUMP, IN_DUCK). |
random_seed |
number |
Spread seed integer. |
send_packet |
boolean |
Set false to choke packet this tick. |
allow_send_packet |
boolean |
Compatibility alias of send_packet. |
chokedcommands |
number (read-only) |
Number of commands currently choked. |
allow_defensive |
boolean |
Set false to block defensive tickbase breaking for this tick. |
override_defensive |
any |
Forces defensive exploit state. |
Method: cmd:set_move(yaw: number, speed?: number) resolves movement direction immediately against cmd.viewangles and updates move.
antiaim_context_t
Section titled “antiaim_context_t”Passed to antiaim callback. All methods are setter overrides:
| Method | Parameters | Description |
|---|---|---|
ctx:pitch |
degrees: number |
Overrides anti-aim pitch angle. |
ctx:yaw |
degrees: number |
Overrides anti-aim absolute yaw angle. |
ctx:yaw_offset |
degrees: number |
Overrides anti-aim yaw offset relative to base yaw. |
ctx:fakelag |
ticks: number |
Overrides fake lag choke limit for this tick. |
ctx:desync |
enabled: boolean |
Enables or disables desynchronization. |
ctx:desync_angle |
degrees: number |
Overrides desync width limit. |
ctx:desync_side |
side: number |
Overrides desync flip side (-1 or 1). |
shot_t
Section titled “shot_t”Passed to aim_shot and aim_ack callbacks:
| Field | Type | Stage | Description |
|---|---|---|---|
client_shoot_pos |
vector |
Intent | Eye position when shot was fired. |
target_pos |
vector |
Intent | Target point aimed at. |
client_angle |
qangle |
Intent | View angles shot was fired with. |
command_number |
number |
Intent | User command number of shot. |
wanted_damage |
number |
Intent | Predicted autowall damage. |
wanted_damagegroup |
number |
Intent | Predicted hitgroup. |
hitchance |
number |
Intent | Calculated hitchance percentage (0..100). |
backtrack |
number |
Intent | Backtrack ticks utilized. |
record |
lag_record_t |
Intent | Lag compensation record aimed at. |
shoot_pos |
vector |
Result | Confirmed server shoot position. |
end_pos |
vector |
Result | Impact location on server. |
damage |
number |
Result | Actual damage dealt (0 on miss). |
hit_point |
vector |
Result | Coordinates where entity was hit. |
acked |
boolean |
Result | true when server has acknowledged shot. |
miss_reason |
string |
Result | Miss reason ("spread", "resolver", "unregistered shot", "" on hit). |
lag_record_t
Section titled “lag_record_t”| Field | Type | Description |
|---|---|---|
player |
player_t |
Target player instance. |
origin / velocity |
vector |
Position and velocity at recorded tick. |
mins / maxs |
vector |
Local bounding bounds. |
abs_angles / view_angles |
qangle |
Player orientation. |
simulation_time |
number |
Simulation timestamp of record. |
duck_amount / duck_speed |
number |
Duck state variables. |
choked_ticks |
number |
Number of ticks choked by target prior to record. |
shifting_tickbase |
boolean |
true if target is manipulating tickbase. |
breaking_lag_compensation |
boolean |
true if record exceeds teleport distance limit. |
trace_t
Section titled “trace_t”Returned by utils.trace_line and utils.trace_hull:
| Field | Type | Description |
|---|---|---|
startpos |
vector |
Ray start world coordinates. |
endpos |
vector |
Ray endpoint or surface impact point. |
fraction |
number |
Fraction of path traversed (0.0..1.0, 1.0 = unobstructed). |
allsolid |
boolean |
true if ray started inside solid geometry. |
startsolid |
boolean |
true if initial point is inside solid geometry. |
hit_entity |
entity_t | nil |
Entity impacted by trace. |
hitgroup |
number |
Hitgroup index hit (1 = head, 2 = chest, etc.). |
fire_bullet_t
Section titled “fire_bullet_t”Returned by utils.trace_bullet:
damage: Calculated penetration damage (-1if bullet fails to penetrate).trace: Resultingtrace_tstructure.
game_event_t
Section titled “game_event_t”Passed to game_events callback:
| Method | Parameters | Returns | Description |
|---|---|---|---|
ev:get_name() |
(none) | string |
Event name (e.g. "player_hurt"). |
ev:get_int(key) |
string |
number |
Reads integer event property. |
ev:get_float(key) |
string |
number |
Reads float event property. |
ev:get_bool(key) |
string |
boolean |
Reads boolean event property. |
ev:get_string(key) |
string |
string |
Reads string event property. |
You can also directly index properties on the event object: event.userid, event.dmg_health.
player_info_t
Section titled “player_info_t”Returned by player:get_player_info():
name: Persona display name string.userid: User ID integer.steamID: Legacy Steam2 ID string.steamID64: 64-bit Steam ID integer.szSteamID: Formatted SteamID string.xuid_low/xuid_high: 64-bit XUID halves.bot:trueif player is an AI bot.
animstate_t
Section titled “animstate_t”CS:GO animation state:
eye_yaw,eye_pitch,foot_yaw,last_foot_yaw,move_yawduck_amount,velocity_length_2d,on_ground,landingduration_in_air,duration_moving,duration_still,speed_normalizedprimary_cycle,move_weight,origin,last_origin,velocitymin_aim_yaw,max_aim_yaw,min_pitch,max_pitchlast_update_time,last_update_frame,last_update_increment
net_channel_info_t
Section titled “net_channel_info_t”Returned by utils.get_net_channel():
get_name(),get_address()get_latency(flow),get_avg_latency(flow)(flow: 0= out,1= in)get_loss(flow),get_choke(flow),get_packets(flow),get_data(flow)get_time(),get_time_connected(),get_timeout_seconds(),get_time_since_last_received()get_sequence(flow),get_packet_time(flow, frame)is_loopback(),is_timing_out(),is_playback(),is_valid_packet(flow, frame)
systime_t
Section titled “systime_t”Returned by common.get_local_time():
year,month,day,day_of_week,hour,minute,second,millisecond.
recv_voice_data_t & voice_data
Section titled “recv_voice_data_t & voice_data”Used in voice_message callback and utils.send_voice_message:
- Fields:
client(player_t),xuid_low,xuid_high,sequence_bytes,section_number,uncompressed_sample_offset,get_voice_data(). - Constructible:
voice_data().
