Как работает FloV:MP

Разбор платформы простыми словами: из чего она состоит, как ставится на сервер, как запускается, как игроки подключаются через лаунчер и что находится в личном кабинете. Без списков команд — только объяснение принципов.


01

Что такое FloV:MP

FloV:MP — это самостоятельный мультиплеерный движок для GTA V и веб-платформа, через которую этим движком управляют. Движок отвечает за сеть, синхронизацию игроков и транспорта, серверную логику и клиентский интерфейс. Платформа (этот сайт и личный кабинет) отвечает за лицензии, учёт серверов, облачную консоль, телеметрию, сборку лаунчера и биллинг.

Ключевая идея — полная автономия. Проект не зависит от мастер-листов, чужих бэкендов и сторонних сервисов. Один узел равен одному VDS равен одному вашему серверу: вы поднимаете его на своей машине, а платформа только подтверждает лицензию и собирает статистику. Если портал недоступен, сервер продолжает работать в течение льготного периода и не выключается.

Такой подход появился не случайно. RAGE:MP и alt:V как сервисы закрылись под давлением Take-Two, и полагаться на чужую инфраструктуру стало рискованно. FloV:MP переносит всю критичную часть под контроль владельца проекта: сетевой рантайм работает локально, а раздача файлов идёт через собственный CDN.


02

Из чего состоит платформа

Серверная часть — это гейммод на C# и .NET 8. Здесь описывается вся логика мира: экономика, работа, транспорт, права администраторов, взаимодействие с базой данных. Код компилируется в обычную .NET-сборку и загружается движком при старте узла. Тяжёлые операции выполняются асинхронно, чтобы главный игровой поток никогда не блокировался.

Клиентская часть — это интерфейс игрока: HUD, меню, камеры, окна регистрации и магазина. Она написана на JavaScript и HTML и рендерится встроенным браузером поверх игры. Дизайн и вёрстка полностью ваши — движок лишь передаёт данные между C#-логикой и этим интерфейсом.

Сетевой рантайм поднимает весь транспортный слой самостоятельно: стриминг сущностей, отправку и приём синхронизации, сетевые воркеры и встроенный HTTP-сервер. Игровой трафик идёт по UDP на порту 7788. Никакого обращения к внешним мастер-серверам при этом не происходит.

Платформа связывается с сервером только по одному поводу — проверить лицензию. Сервер при старте и затем каждые 15 минут отправляет запрос на портал, получает подписанный ответ (HMAC-SHA256) и по нему понимает, разрешён ли запуск, какой лимит слотов и к какому IP привязан ключ.


03

Как поставить сервер

После покупки Lifetime-лицензии в личном кабинете появляется раздел с дистрибутивом. Скачивается серверное ядро под Linux — это архив с бинарниками движка, конфигами и скриптом запуска. Его нужно распаковать в отдельную папку на вашем VDS.

Отдельным шагом в рабочую папку копируются .bin-файлы движка (данные сетевого слоя). Без них узел не стартует — это единственная ручная операция, всё остальное делает скрипт.

Дальше заполняется файл конфигурации server.toml. В нём указывают три вещи: лицензионный ключ вида FLV-XXXX-XXXX-XXXX, публичный IPv4-адрес сервера (к нему привяжется ключ) и адрес вашего FastDL CDN, откуда игроки будут скачивать клиентские файлы. Остальные параметры — имя сервера, лимит игроков, gamemode — опциональны и имеют разумные значения по умолчанию.

Последнее — открыть в фаерволе порт UDP 7788 для игрового трафика и порт HTTP (80 или 443) для FastDL. На этом подготовка закончена.


04

Как сервер запускается и работает

Запуск делается одной командой — ./start.sh. Скрипт поднимает движок, загружает вашу C#-сборку, проходит онлайн-верификацию лицензии и открывает приём игроков. В консоли видно, какой проект активирован, сколько слотов разрешено и до какой даты действует ключ.

Если во время работы портал окажется недоступен, сервер не упадёт: включается льготный период на 7 суток, в течение которых узел работает по последнему подтверждённому ответу. Как только связь восстановится, отсчёт сбрасывается. Это защищает от простоя из-за сетевых проблем или обслуживания платформы.

У сервера две консоли. Игровая открывается клавишей F8 прямо в клиенте и нужна для отладки на месте. Веб-консоль живёт в личном кабинете: небольшой агент на сервере опрашивает очередь команд с портала и отдаёт вывод обратно в браузер живым потоком. Через неё можно перезапустить узел, остановить его, отправить сообщение всем игрокам, перезагрузить отдельный ресурс или выполнить произвольную команду — не заходя по SSH.

Телеметрия отправляется раз в минуту: онлайн, тикрейт, FPS, потребление памяти. История хранится на платформе и превращается в графики в разделе аналитики, так что видно динамику нагрузки и просадки.


05

Как игроки подключаются

Игроки заходят на сервер через ваш собственный лаунчер. Он собирается в личном кабинете: вы задаёте название, логотип, цвета и адрес сервера, а платформа выдаёт готовый установщик под Windows. Общего клиента «для всех серверов» нет — лаунчер привязан к вашему проекту.

При первом запуске лаунчер находит установленную GTA V через реестр Windows, скачивает клиентские файлы проекта с вашего FastDL CDN и проверяет их по хешам. Если файл повреждён или устарел — он подтягивается заново.

Кнопка «Играть» запускает игру через компонент FloVMP.Connect. Он корректно подменяет точку входа так, чтобы это не конфликтовало с BattlEye, и передаёт игровой сессии данные авторизации из лаунчера — игроку не нужно логиниться второй раз уже внутри игры.

Личный кабинет игрока (профиль, новости, настройки) встроен в сам лаунчер и работает с тем же серверным HTTP API, что и веб-платформа.


06

Что находится в кабинете

Проекты и серверы — корень всего. Проект объединяет лицензию, набор серверов (боевой, дев, тест), общий SDK и API-ключи. Внутри проекта видно статус каждого узла, онлайн и последний пинг.

Ключи и статус лицензии — сам ключ, к какому IP он привязан, до какой даты активен и в каком состоянии находится (активен, льготный период, заблокирован). Здесь же меняется привязка IP при переезде на другой сервер.

Облачная консоль, телеметрия и аналитика — живой вывод сервера, графики онлайна и нагрузки, история телеметрических пакетов. Watchdog следит за узлом и пишет в лог падения и автоперезапуски.

API и вебхуки — публичные эндпоинты проекта (статус, список игроков, приём донатов), выпуск и ротация агентского ключа, подключение оповещений в Discord и Telegram. Раздел SDK содержит готовые сниппеты для C#-гейммода и серверных скриптов.

Сборщик лаунчера, биллинг, партнёрская программа и настройки — сборка брендированного установщика, история платежей и счётов, реферальная статистика, а также безопасность аккаунта: двухфакторная аутентификация по TOTP и роли для членов команды.