CS2 Lua API

esp

Модуль esp добавляет свои элементы в редактор раскладки ESP (вкладка Visuals). Элементы можно перетаскивать по слотам, включать и настраивать, как встроенные; раскладка сохраняется в конфиге.

редактор ESP с элементами скрипта «HP text» и «Lua bar» рядом с моделью

Аргумент target пишется строго в нижнем регистре:

target Для чего
"enemy" противники
"teammates" союзники
"weapon" оружие
"bomb" бомба
"hostages" заложники
"grenades" гранаты

Неизвестный target — ошибка unknown esp type.

Колбэк элемента#

  • fn(ent) вызывается не чаще раза за кадр на каждую цель; результат кешируется.
  • ent — сущность цели (у игроков — пешка) или nil. Всегда обрабатывайте nil.
  • Ошибка внутри колбэка выводится в консоль, элемент скрывается.

esp.item(target: string, name: string)#

Элемент без рисования: переключатель в раскладке и группа своих настроек. Его включённость читает :get().

Параметр Тип Описание
target string для чего элемент
name string имя элемента

Возвращает: esp_item.

local glow_item = esp.item("enemy", "Lua marker")
local opts = glow_item:group()
local size = opts:slider("Size", 2, 10, 4)

events.render:set(function()
    if not glow_item:get() then return end
    for _, pawn in ipairs(entity.pawns(true)) do
        local p = render.world_to_screen(pawn:origin())
        if p then render.circle(p, color(255, 0, 255, 255), size:get()) end
    end
end)

esp.text(target: string, name: string, preview: string, fn: function)#

Текстовая плашка. Функция возвращает строку; пустая строка скрывает плашку.

Параметр Тип Описание
target string для чего элемент
name string имя элемента
preview string текст-образец в превью редактора
fn function fn(ent) -> string

Если функция вернула не строку, в консоль пишется callback must return a string value.

Возвращает: esp_item.

-- Расстояние до противника в метрах
esp.text("enemy", "Distance", "12 m", function(ent)
    local me = entity.local_pawn()
    if ent == nil or me == nil then return "" end
    return string.format("%d m", math.floor(me:origin():dist(ent:origin()) * 0.0254))
end)

esp.bar(target: string, name: string, fn: function)#

Полоска. Функция возвращает value[, max].

Параметр Тип Описание
target string для чего элемент
name string имя элемента
fn function fn(ent) -> number[, number]

Результат функции:

  • value < 0 — полоска скрыта;
  • передан max > 0 — заполнение value / max; max <= 0 — полоска скрыта;
  • max не передан — value считается процентом (0–100).

Если value не число, в консоль пишется callback must return a number value.

Возвращает: esp_item.

-- Броня противника полоской
esp.bar("enemy", "Armor", function(ent)
    if ent == nil then return 100 end   -- превью
    return ent.m_ArmorValue or 0, 100
end)

esp_item:get()#

Возвращает: boolean — включён ли элемент в раскладке.

local marker = esp.item("enemy", "Marker")
print(marker:get())

esp_item:set(v: boolean)#

Включает или выключает элемент в раскладке.

Параметр Тип Описание
v boolean включён ли элемент

Возвращает: ничего (в отличие от методов ui, цеплять вызовы нельзя).

local hp = esp.text("enemy", "HP text", "100", function(ent)
    return ent and tostring(ent:health()) or "100"
end)
hp:set(true)

esp_item:name()#

Возвращает: string — имя, переданное в конструктор.

local marker = esp.item("enemy", "Marker")
print(marker:name())   --> Marker

esp_item:group()#

Группа настроек элемента в его окне. В неё добавляются элементы ui.

Возвращает: ui_group.

local dist = esp.item("enemy", "Distance ring")
local opts = dist:group()
local radius = opts:slider("Radius", 50, 1000, 300)
local col    = opts:color_picker("Color", color(0, 200, 255, 255))