Skip to content

engine

execute_client_cmd

engine.execute_client_cmd(command: string)

Name Type Description
command string Command to execute
Example
1
2
3
4
5
register_callback("player_death", function(event)
    if event:get_pawn("attacker") == entitylist.get_local_player_pawn() then 
        engine.execute_client_cmd("say 1")
    end
end)

play_sound

engine.play_sound(sound_name: string, volume: number)

Name Type Description
sound_name string Sound name
volume number Volume in the range [0.0, 1.0]

chat_print

engine.chat_print(text: string)

Name Type Description
text string Text to print

camera_in_thirdperson

engine.camera_in_thirdperson(): boolean


get_level_name

engine.get_level_name(): string


get_product_version_string

engine.get_product_version_string(): string


get_net_channel

engine.get_net_channel(): net_channel_t


get_hitbox

engine.get_hitbox(pawn: base_entity_t, hitbox_index: number): hitbox_t

Name Type Description
pawn base_entity_t Player pawn
hitbox_index number Hitbox index

get_hitbox_pos

engine.get_hitbox_pos(pawn: base_entity_t, hitbox_index: number): vec3_t

Name Type Description
pawn base_entity_t Player pawn
hitbox_index number Hitbox index

Info

Returns nil if unsuccessful

Example
local g_camera_origin = vec3_t(0, 0, 0)
register_callback('override_view', function(view) g_camera_origin = view.origin end)
register_callback('paint', function()
    entitylist.get_entities("C_CSPlayerPawn", function(player)
        local head_pos = engine.get_hitbox_pos(player, 0)
        if head_pos == nil then return end

        local pos2d = render.world_to_screen(head_pos)
        if pos2d == nil then return end

        local trace = engine.trace_shape(ray_t(), g_camera_origin, head_pos, trace_filter_t(0x2800100001, 3, true))
        local visible = trace.fraction < 1 or trace.start_in_solid
        render.circle_filled(pos2d, 5, 0, visible and color_t(1, 0, 0, 0.5) or color_t(0, 1, 0, 0.5))
    end)
end)

get_netvar_offset

engine.get_netvar_offset(module_name: string, table_name: string, prop_name: string): number

Name Type Description
module_name string Module name
table_name string Name of the table
prop_name string Name of the property

trace_shape

engine.trace_shape(ray: ray_t, start: vec3_t, end: vec3_t, filter: trace_filter_t): trace_t

Name Type
ray ray_t
start vec3_t
end vec3_t
filter trace_filter_t
Example
1
2
3
4
5
6
7
8
9
local g_camera_angles = angle_t(0, 0, 0)
local g_camera_origin = vec3_t(0, 0, 0)
register_callback('override_view', function(view) g_camera_angles = view.angles g_camera_origin = view.origin end)
register_callback('paint', function()
    local forward, _, _ = math.angle_vectors(g_camera_angles)
    local filter = trace_filter_t(0x2800100001, 3, true)
    local trace = engine.trace_shape(ray_t(), g_camera_origin, g_camera_origin + (forward * 10000), filter)
    render.circle_3d(trace.end_pos, 5, color_t(1, 1, 1, 1), 1, trace.hit_normal)
end)

trace_bullet

engine.trace_bullet(from_pawn: base_entity_t, from: vec3_t, to: vec3_t): number

Name Type Description
from_pawn base_entity_t Player whose weapon will be used for this trace
from vec3_t Position to start tracing from
to vec3_t Position where the trace ends

Info

Returns nil if bullet can't hit