serfreeman1337 - Аренда игровых серверов

CSstatsX SQL

Counter-Strike amxx plugin as CSX module replacement with SQL support.


This plugin can replace your CSX module. You need do some changes to your statistics plugins (statsx, miscstats etc.) to make them use this plugin, see how-to below. If you can't or you dont want use MySQL, this plugin will also work with local SQLite database. New features: player played time count and ranking by skill with ELO method, assists stats, weapon stats and player session history.

Version: 0.7.4 from 06.07.2016 [ GIT ]

Support forum




  • Compile this plugin.
    • For utf8 support you need compile and use it with AMXX 1.8.3.
  • Uncomment wanted SQL module in addons/amxmodx/configs/modules.ini file.
  • Set db connection details in following cvars: csstats_sql_host, csstats_sql_user, csstats_sql_pass, csstats_sql_db, csstats_sql_type.
  • Read instruction bellow to add support for your stats plugins.
  • For update from 0.4 import csstats_04_to_05.sql.
  • For update from 0.5 dev import csstats_05dev_to_05.sql.
  • For update from 0.6 import csstats_06_to_07.sql.
  • For update from 0.7 import csstats_07_to_072.sql.
    • For map stats import csstats_07_to_072_maps.sql.
    • Recompile all your plugins with new
  • For enabled player session stats you need import csstats_maps.sql. Please check table name.
    • csstats_maps_sqlite.sql for sqlite.

How to replace CSX module

  • Shutdown your server.
  • Copy dummy_csx_amxx file from archive to addons/amxmodx/modules folder on your server.
  • Rename it to csx_amxx.
  • Set csstats_sql_forwards cvar to 1.

How to add support for your plugins

Perform this instructions for ALL your stats plugins

  • Open plugin source code.
  • Add following on top:
  • Replace all get_statsnum for get_statsnum_sql.
  • Replace all get_user_stats for get_user_stats_sql.
  • Replace all get_stats for get_stats_sql.
  • Compile plugin.


  • csstats_sql_host "localhost" - MySQL host.
  • csstats_sql_user "root" - MySQL user
  • csstats_sql_pass "" - MySQL user password
  • csstats_sql_db "amxx" - DB name
  • csstats_sql_table "csstats" - table name
  • csstats_sql_type "mysql" - database type.
    • mysql - MySQL
    • sqlite - SQLite
  • csstats_sql_create_db "1" - auto create table.
    • 0 - dont query table create
    • 1 - query table create on map load
  • csstats_sql_update "-2" - how to update player stats in db
    • -2 - on death and disconnect
    • -1 - on round end and disconnect
    • 0 - on disconnect
    • higher than 0 - every n seconds and disconnect
  • csstats_sql_forwards "0" - enable own forwards for client_death, client_damage
    • 0 - disable
    • 1 - enable, required if you want replace csx module
  • csstats_sql_rankformula "0" - how to rank player
    • 0 - kills- deaths - tk
    • 1 - kills
    • 2 - kills + hs
    • 3 - skill
    • 4 - online time
  • csstats_sql_skillformula "0" - skill formula
  • csstats_sql_weapons "0" - enable weapon stats
    • 0 - disable
    • 1 - enable
      • This will create new table csstats_weapons in your database.
        NOTE: table will created only if you set cvar csstats_sql_create_db to 1
  • csstats_sql_maps "0" - enable player session stats
    • 0 - disable
    • 1 - enable
      • NOTE: you need to import csstats_maps.sql.
        Check install instructions.
  • csstats_sql_autoclear "0" - number of inactive days after which player's stats will be retested. (prune function)
  • csstats_sql_autoclear_day "0" - full stats reset in specified day of month.
  • csstats_sql_cachetime "-1" - cache option
    • -1 - enabled
    • 0 - disabled
    • doesn't work with csstats_sql_update -2 or 0
  • csstats_sql_assisthp "50" - minimum damage to count assist. 0 - disable this feature.


  • csstats_sql_reset - full stats reset. This command should executed in server console or via RCON.

Lags on player top 15 motd

For top15 motd non-thread queries are used, this can make your server lag while displaying motd. I added support for threaded queries for top15 from version 0.4, but to add this support for your stats plugins you need to be a somekind of scripter. Send me your stats plugins source code or use plugins with threaded support bellow.

Thanks to Lev from forum for dummy_csx module.

CSXSQL: Onlinetime Awards

TOPx By GameTime alternative plugin for CSstatsX SQL. This plugin will give access flags for top players by online time. Compile options:


  • Why /top15 is opening too long?
  • Your mysql database are responding too long. This may cause by high ping or too much queries. In last case you can check plugin cvar csstats_sql_update and if its -2, you can try set -1 or 0.  In version 0.7 cache function is improved, this should help decrease open time for /top15. Check csstats_sql_cachetime cvar. There should not be such issues with local SQLite database.
  • How to deal with #2002 Can't connect to local MySQL server through socket '/tmp/mysql.sock' error?
  • You can set instead of localhostas host (csstats_sql_host) or if you are VDS owner you can solve this by setting symlink:
    • Find your mysql.sock file with following commands:
    • then make symlink:

  • How to deal with #1045 Access denied for user 'root'@'localhost' (using password: NO) error?
  • Check your MySQL details. Put plugin cvars in addons/amxmodx/configs/amxx.cfg file.


Icon of CSstatsX SQL (63.4 KiB)
  • Здравствуйте, это ошибка какая-то, или так и должно быть ?

    Суть:если я убью одного, то в стату защищает его только под конец след.раунда, т.е. весь следующий раунд игра идёт с той же статистикой.
    Если я убиваю более 1-го игрока, к примеру "5", то зачислится "4", и через раунд ещё "1"

    csstats_sql_update -1
    csstats_sql_cachetime 0

  • DeadXACAH says:

    На версии 0.7.2 /top15 иногда не обновляется, только после смены карты, хотя /rank и /rankstats обновляется стабильно. стоит csstats_sql_update "-2", а при значении больше 0 вообще не обновляется ничего.
    На 0.7.1 таких проблем не возникало. 072 таблицы создавались с нуля, не обновлялись.

    • Как не обновляется? Просто не открывается или что?

      • DeadXACAH says:

        Открывается, но в нём старая инфа.
        Например: было у меня 100 фрагов, убил ещё 10, пишу /rank, показывается, что у меня 110 фрагов, тут же пишу /top, показывает 100 фрагов.
        А когда csstats_sql_update больше 0 то инфа вообще в БД не отправляется. Ставил 60, у меня csdm.
        Ошибок в логах никаких нет. Rehlds и Regame last, amx 182, сейчас проверяю на 183.

  • r0de says:

    privet. u menja jestj problema so skillami

    aes_statsx_skill "0 60.0 75.0 85.0 100.0 115.0 130.0 140.0 150.0 165.0 180.0 195.0 210.0"

    kogda skill 100, to pokazivajet M+, kogda skill 165, togda pokazivajet G, kak ispravit?

  • Добавьте пожалуйста функцию удаления игроков из статистики имеющих меньше определенного количества фрагов.

  • Для компиляции с AES закомментируйте #define NO_AES в исходнике.
    В каком и где?

  • serfreeman1337, Can you make such cvar how in original stats to clean up rank automatically in sql > csstats_sql_maxsize

    in original
    // Max size of the stats file
    // Default value: 3500
    csstats_maxsize 16000

  • ImbaSS says:

    Подскажи пожалуйста как правильнее будет прописать в исходник:
    * хост mysql
    cvar[CVAR_SQL_HOST] = register_cvar("csstats_sql_host","localhost",FCVAR_UNLOGGED|FCVAR_PROTECTED)

    * пользователь mysql
    cvar[CVAR_SQL_USER] = register_cvar("csstats_sql_user","root",FCVAR_UNLOGGED|FCVAR_PROTECTED)

    * пароль mysql
    cvar[CVAR_SQL_PASS] = register_cvar("csstats_sql_pass","",FCVAR_UNLOGGED|FCVAR_PROTECTED)

    * название БД mysql или sqlite
    cvar[CVAR_SQL_DB] = register_cvar("csstats_sql_db","amxx",FCVAR_UNLOGGED|FCVAR_PROTECTED)

  • ImbaSS says:

    L 05/21/2016 - 01:54:40: [ACTIVATED] Plugin Opengl Detector 0.7.9d activated
    L 05/21/2016 - 01:54:40: [ACTIVATED] Plugin AIM Detector 0.7.5d activated
    L 05/21/2016 - 01:54:40: [csstatsx_sql.amxx] SQL connection failed
    L 05/21/2016 - 01:54:40: [csstatsx_sql.amxx] [ 2002 ] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    L 05/21/2016 - 01:54:40: [csstatsx_sql.amxx] SQL connection failed
    L 05/21/2016 - 01:54:40: [csstatsx_sql.amxx] [ 2002 ] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    L 05/21/2016 - 01:54:40: [fB 1.2]mySQL is OK! Time difference -163 sec, DB delay 0.555386424 sec

    А что делать например если у меня не VDS, я сервер одного хоста конекчу к базе данных другого хостинга и у меня ошибка эта вылезает все равно.. Я пишу в поле хост адресс своего сайта и через него у меня идет коннект..

    • Прописать данные mysql в исходнике плагина.
      Потому что квары из amxx.cfg нормально читаются только со стандартным admin.amxx или amxbans.

  • Evgen says:

    Привет, хотелось бы узнать по какому принципу работает CSXSQL: Onlinetime Awards? То есть по какому сыгранному времени? И где настраивается время проведенное на сервере? Или он просто выдает флаги топ 3 например кто на первых 3-х местах в топе?

  • Поправь =)

    подсчет времени нахождениЯ игрока на сервере

  • serfeeman, после CSstatsX SQL установки (установка прошла корректно), плагин AES: StatsX CStrike перестал отображать в /top15, /rank - звания игроков, хотя
    aes_statsx_top "*abcfij"
    aes_statsx_rank "bcij"
    aes_statsx_astats "aj"
    так же перестали работать команды /alist и /astats
    plugins_aes.ini :
    csstatsx_sql.amxx ; для записи в БД
    aes_statsx_cstrike_n.amxx ; сама статистика
    statsx_collor_sql.amxx ; /me, hp

  • [AMXX] Displaying debug trace (plugin "csstatsx_sql.amxx")
    [AMXX] Run time error 4: index out of bounds
    [AMXX] [0] csstatsx_sql.sma::Stats_SaveHit (line 797)
    [AMXX] [1] csstatsx_sql.sma::EventHook_Damage (line 612)
    Что делать?

  • PbIC9TuHa says:

    Прости меня дубалома :) НО не получается у меня заставить ТОп 15 брать из базы . В базу плагин инфу кладет а выводит из dat файла :(
    что не так делаю уже перемучился компилить ....

  • L 03/17/2016 - 20:51:21: [AMXX] Displaying debug trace (plugin "csstatsx_sql.amxx", version "0.5")
    L 03/17/2016 - 20:51:21: [AMXX] Run time error 4: index out of bounds
    L 03/17/2016 - 20:51:21: [AMXX] [0] csstatsx_sql.sma::Stats_SaveHit (line 797)
    L 03/17/2016 - 20:51:21: [AMXX] [1] csstatsx_sql.sma::EventHook_Damage (line 612)

  • server crash

    • hmm

      Please follow compile instructions for all your stats plugins (eg miscstats.amxx lala) if you want replace csx module.
      But i recommend to just modify your stats plugins with "Without CSX module replacment" instruction, cos its ez.

  • I can not find in 1.8.3-dev-git4982-base

    • This in addons/amxmodx/scripting/include/ file.
      After you change those lines compile your plugins with addons/amxmodx/scripting/amxxpc.exe or just copy .sma to this folder and run compile.exe, your .amxx will be in compiled folder :)

  • BaJIepbI4 says:

    Установил вчера данный плагин с заменой CSX. Все вроде бы супер, но сегодня обнаружил уйму дублирующихся записей в БД. В игре открываю /top, а там, начиная со второго места один и тот же игрок с одинаковыми значениями. Зашел в базу, а там его запись повторяется около 2000 раз. И не только его запись. У других игроков тоже имеются дубля. Это можно поправить?