Документация

Установка, структура и API

Краткая выжимка для тех, кто хочет понять устройство движка до покупки. Полная документация передаётся вместе с лицензией.

Требования к хостингу

Подойдёт любой обычный виртуальный хостинг или VPS с современным PHP. Экзотики не нужно.

PHP8.0 и выше, проверено до 8.3
База данныхMySQL 5.7+ или MariaDB 10.3+
Веб-серверApache с mod_rewrite или Nginx
Расширения PHPpdo_mysql, mbstring, gd, curl, json, openssl
Игровой серверAMX Mod X 1.9+ и модуль gRIP для плагинов
ПланировщикCron желателен, но не обязателен

Установка

Основной способ — мастер в браузере: он проверит окружение, примет реквизиты базы и создаст администратора.

Загрузка

Распакуйте архив в корень сайта, включите mod_rewrite.

Мастер

Откройте адрес /install и пройдите четыре шага.

Данные

Мастер импортирует схему базы и заведёт администратора.

Готово

Каталог установки блокируется, его можно удалить.

Ручная установка, если мастер недоступен:

# 1. Конфигурация
cp inc/config/config.local.php.example inc/config/config.local.php

# 2. База данных
mysql -u USER -p DB < modules/install/schema.sql

# 3. Права на запись
chmod -R 775 files templates/*/cache logs

# 4. Планировщик (необязательно)
* * * * * php /path/ajax/cron.php key=СЕКРЕТ

Структура проекта

Единая точка входа, ядро в отдельном каталоге, функциональность — в модулях.

index.php            // единая точка входа
.htaccess            // ЧПУ и правила отдачи
inc/
  core.php           // ядро: константы, автозагрузка, сессия, роутер
  functions.php      // глобальные хелперы
  config/            // конфигурация, секреты в config.local.php
  classes/           // классы движка
  lib/               // сторонние библиотеки
ajax/                // api.php, chat.php, cron.php, oauth.php, widgets.php
modules/             // модули ядра
modules_extra/       // дополнительные модули
templates/           // шаблоны оформления и админки
files/               // пользовательские загрузки
logs/                // журналы по каналам

Шаблонизатор

Свой лёгкий шаблонизатор: компилирует tpl-файлы в PHP и кэширует результат. Синтаксис читается без обучения.

КонструкцияНазначение
{include file="parts/x.tpl"}подключение другого шаблона
{if($c)} … {else} … {/if}условие
{foreach(...)} … {/foreach}цикл по массиву
{{$var}}вывод переменной
{func Class:method(args)}вызов метода класса
{sql select(...)}выборка из базы прямо в шаблоне
{* … *}комментарий, в вывод не попадает

Внешнее API

Эндпоинт /ajax/api.php обслуживает игровые серверы и плагины. Аутентификация — по ключу из админки: заголовок X-Api-Key либо параметр key. Доступ к каждому методу ограничивается списком scopes у ключа.

МетодHTTPПараметрыScopeНазначение
check_player GET steam_id | ip | nick bans Бан и мут одним запросом
check_ban GET steam_id | ip | nick bans Проверка активного бана
check_mute GET steam_id | ip | nick mutes Проверка активного мута
bans_list GET server_id bans Активные баны для кэша плагина
mutes_list GET server_id mutes Активные муты для кэша плагина
add_ban POST steam_id, nick, ip, reason, minutes bans Выдача бана с игрового сервера
add_mute POST steam_id, mute_type, minutes mutes Мут: all, chat или voice
unban POST ban_id | steam_id | ip bans Снятие бана
push_stats POST server_id, steam_id, frags, deaths stats Отправка игровой статистики
check_priv GET steam_id privileges Текущая привилегия игрока

Все ответы — JSON вида {"ok":true,…} или {"ok":false,"error":"…"}.

# Выдача бана с игрового сервера
curl -X POST "https://ваш-проект.ru/ajax/api.php?method=add_ban" \
  -H "X-Api-Key: ВАШ_КЛЮЧ" \
  -d "steam_id=STEAM_0:1:12345&nick=Player&reason=cheat&minutes=1440&server_id=1"

Плагины игровых серверов

Комплект плагинов AMX Mod X, которые связывают сервер с сайтом через HTTP. Ставятся как обычные amxx-плагины.

Ядро связи

Меню игрока по команде в чате: баланс, купленные привилегии, игровая валюта. Нативы, чтобы дёргать сайт из ваших плагинов.

Наказания

Баны и муты с общей базой сайта, локальный кэш активных наказаний и очередь запросов на случай, если сайт недоступен.

Префиксы

Купленный на сайте префикс появляется в игровом чате без перезахода на сервер.

Фракции

Фракции, территории и ларьки: серверная механика, управление и статистика на сайте.

История версий

1.4.001.08.2026
  • Модули «Кейсы» и «Фракции»
  • Живые уведомления без перезагрузки
  • Раздел SEO и брендинга в админке
1.3.014.05.2026
  • Единая база банов и мутов с игровыми серверами
  • Плагин банов с очередью и кэшем
  • Публичные жалобы на игроков
1.2.020.02.2026
  • Второй шаблон оформления
  • Общий чат на главной
  • Загрузка аватаров с проверкой содержимого
1.1.005.11.2025
  • OAuth: VK, Google, Steam, Яндекс
  • Внешний API с ключами и scopes
  • Ленивое истечение привилегий без cron
1.0.012.08.2025
  • Первый публичный релиз: магазин, кошелёк, форум, админка

Нужны подробности под ваш случай?

Расскажите про проект — ответим, что движок умеет уже сейчас, а что придётся дописать.