CS2 Lua API

database

Глобальная таблица database — хранилище «ключ → значение», которое переживает перезапуск скрипта, чита и игры. Чтение и запись — как у обычной таблицы: database.key, database[key] = value.

Правила#

  • Ключ — только строка. database[1] — ошибка string expected.
  • Хранилище общее для всех скриптов: одинаковый ключ в двух скриптах — одно и то же значение.
  • Изменения сохраняются через несколько секунд после записи и при выгрузке чита.
  • Отсутствующий ключ читается как nil.

Давайте ключам префикс с именем своего скрипта ("my_script.counter"), чтобы не перезаписать данные другого скрипта.

database[key]#

Читает значение.

Параметр Тип Описание
key string ключ

Возвращает: сохранённое значение или nil.

Прочитанная таблица — новая копия. Изменения в ней не сохраняются, пока вы не присвоите её обратно: database[key] = t.

local KEY = "my_script.stats"

local stats = database[KEY] or { runs = 0 }
stats.runs = stats.runs + 1
database[KEY] = stats            -- без этой строки изменение потеряется

print("Скрипт запущен ", stats.runs, " раз")

database[key] = value#

Записывает значение.

Параметр Тип Описание
key string ключ
value any значение (см. таблицу)
Значение Что сохранится
nil nil (ключ читается как nil)
boolean, string как есть
целое число целое
дробное число дробное
таблица с ключами 1..n без дыр массив
другая таблица словарь
функция, userdata, cdata (vector, color, 64-битные числа) nil
таблица глубже 16 уровней nil

Метатаблицы не сохраняются.

Возвращает: ничего.

-- Сохраняем цвет как таблицу чисел: сам color сохранить нельзя
local col = color(255, 128, 0, 255)
database["my_script.color"] = { col.r, col.g, col.b, col.a }

local t = database["my_script.color"]
local restored = color(t[1], t[2], t[3], t[4])
print(restored)   --> Color(255, 128, 0, 255)