← Blog

Как настроить файл server.cfg в FiveM

Par Benjamin D. · PDG

· Mis à jour le 19 августа 2026 г. · Lecture 8 min

Содержание

Файл server.cfg FiveM — это единственная точка входа, через которую сервер понимает, кто он такой, какие ресурсы грузить, сколько игроков пускать и кому давать админские права. Ошибка в одной строке — и сервер либо не появляется в списке, либо падает при старте. Разберём структуру файла по блокам, с рабочими примерами и типовыми ошибками.



Где лежит server.cfg FiveM и как он читается

При запуске артефактов FXServer вы указываете путь к конфигу явно, поэтому имя файла может быть любым — но по традиции это server.cfg, лежащий в корне папки с данными сервера, рядом с каталогом resources/.

# Linux, запуск вручную
cd /home/fivem/server
./run.sh +exec server.cfg

# Windows
FXServer.exe +exec server.cfg

На хостинге с панелью Pterodactyl файл виден в разделе File Manager, и его можно править прямо в браузере, без FTP. После сохранения нужен рестарт (или refresh + ensure для конкретного ресурса из консоли). Если вы используете txAdmin, он генерирует свой конфиг в профиле развёртывания (обычно txData/<имя>/server.cfg) — редактировать нужно именно его, иначе изменения не применятся.

Порядок строк имеет значение

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

  • set, sets и setr должны идти до ensure тех ресурсов, которые читают эти переменные при старте;
  • sv_licenseKey и onesync лучше объявлять в самом начале;
  • ресурсы-фреймворки (ESX, QBCore, ox_lib, oxmysql) грузятся раньше зависимых скриптов;
  • start и ensure в конце файла — так проще отлаживать.

Разница между set, sets, setr и sv_

КомандаОбласть видимостиТипичное применение
setТолько серверПароли БД, ключи API, серверные настройки скриптов
setsСервер + список серверов (метаданные)sets tags, sets banner_detail, sets Discord
setrСервер + репликация клиентуПеременные, которые читает клиентский скрипт (GetConvar)
sv_ convarsЯдро FXServersv_hostname, sv_maxclients, sv_licenseKey

Важно: никогда не используйте setr для секретов. Всё, что помечено setr или sets, уходит клиенту и видно в открытом виде.



Базовая структура рабочего server.cfg FiveM

Ниже — скелет конфига, который стартует «чисто», без фреймворка. На его основе можно наращивать ESX/QBCore.

# ============ СЕТЬ ============
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

# ============ ЛИЦЕНЗИЯ И SYNC ============
sv_licenseKey "cfxk_xxxxxxxxxxxxxxxxxxxxx_xxxxxx"
set onesync on
sv_maxclients 48

# ============ ИДЕНТИФИКАЦИЯ ============
sv_hostname "^2[RP] MyCity ^7| ^3Whitelist ^7| discord.gg/xxxx"
sv_projectName "MyCity RP"
sv_projectDesc "Serious roleplay, EU, custom scripts"
sets locale "ru-RU"
sets tags "roleplay, esx, russian, whitelist"
sets banner_detail "https://cdn.example.com/banner_detail.png"
sets banner_connecting "https://cdn.example.com/banner_connect.png"
sets Discord "discord.gg/xxxx"
load_server_icon myicon.png

# ============ ПРИВАТНОСТЬ И БЕЗОПАСНОСТЬ ============
sv_endpointPrivacy true
sv_authMaxVariance 1
sv_authMinTrust 5
sv_scriptHostsPolicy "internal"
rcon_password ""

# ============ STEAM (опционально) ============
# set steam_webApiKey "XXXXXXXXXXXXXXXXXXXXX"

# ============ БАЗА ДАННЫХ ============
set mysql_connection_string "mysql://fivem:[email protected]/fivem_db?charset=utf8mb4"

# ============ РЕСУРСЫ ============
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
ensure rconlog

# ============ ПРАВА ============
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1234567 group.admin

Ключевые параметры, которые ломают старт чаще всего

  • sv_licenseKey — берётся в личном кабинете Cfx.re и привязывается к IP. Сменили хостинг или IP-адрес — обновите ключ, иначе сервер не появится в списке.
  • sv_maxclients — максимум 48 без OneSync, до 2048 с onesync on/onesync legacy в зависимости от тарифа лицензии. Ставить больше слотов, чем выдержит CPU, бессмысленно.
  • endpoint_add_tcp / endpoint_add_udp — порт должен совпадать с портом, открытым на хосте. На панели он назначается автоматически, и вручную его менять не нужно.
  • rcon_password "" — пустое значение отключает RCON. Если включаете, ставьте длинный случайный пароль: открытый RCON — прямой путь к захвату сервера.
  • sv_endpointPrivacy true — скрывает IP игроков в списке, обязательный минимум приватности.

Цветовые коды в sv_hostname

FiveM поддерживает символ ^ + цифра: ^1 красный, ^2 зелёный, ^3 жёлтый, ^4 синий, ^5 голубой, ^6 пурпурный, ^7 белый, ^8 оранжевый, ^9 серый, ^0 чёрный. Не превращайте название в радугу — фильтры поиска в лаунчере учитывают текст, а не украшения.



OneSync, ресурсы и права: тонкая настройка

OneSync и режимы синхронизации

OneSync переносит часть логики сущностей на сервер и позволяет выйти за 32/48 слотов. Варианты:

ЗначениеСмыслКогда использовать
onesync onПолный OneSync (Infinity при большом sv_maxclients)Актуальный выбор для RP-серверов
onesync legacyСтарый режим, до 64 слотовЛегаси-скрипты, несовместимые с Infinity
onesync offОтключено, лимит 32Мини-геймоды, тесты
set onesync on
set onesync_population true      # серверная популяция NPC
set onesync_forceMigration true
sv_maxclients 64
set sv_enforceGameBuild 3407     # версия билда GTA V (DLC)

sv_enforceGameBuild критичен, если вы используете свежие транспорт/одежду из последних DLC. Несовпадение билда с ресурсами — классическая причина «краша при загрузке» у части игроков.

start, ensure, stop, restart

  • start — запускает ресурс один раз, при повторном вызове игнорируется;
  • ensure — запускает, а если ресурс уже работает, перезапускает его. В конфиге предпочтительнее;
  • ensure [категория] не работает: указывать нужно точное имя папки ресурса, а не путь;
  • папки с префиксом [...] (например [esx]) — это категории, они автоматически сканируются, но каждый ресурс внутри всё равно запускается по имени.
# Порядок для ESX-сборки
ensure oxmysql
ensure ox_lib
ensure es_extended
ensure esx_menu_default
ensure esx_menu_list
ensure esx_menu_dialog
ensure esx_skin
ensure esx_identity
# только после фреймворка — джобы и кастом
ensure esx_police
ensure my_custom_script

ACE-права: как не выдать админку всем

Система прав FiveM строится на принципалах (игрок или группа) и ACE (разрешение на действие).

# Создаём иерархию
add_principal group.moderator group.user
add_principal group.admin group.moderator
add_principal group.owner group.admin

# Разрешения
add_ace group.moderator command.kick allow
add_ace group.moderator command.ban allow
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_ace group.owner command allow

# Привязка людей
add_principal identifier.license:aa11bb22cc33dd44ee55 group.owner
add_principal identifier.discord:213012345678901234 group.admin

Идентификаторы можно посмотреть в консоли по команде players или в логах подключения. Используйте license: — он стабилен, в отличие от ip:. И держите список админов в отдельном файле, подключаемом через exec:

exec permissions.cfg
exec resources.cfg

Это заметно упрощает поддержку: основной server.cfg FiveM остаётся коротким и читаемым, а права и список ресурсов живут отдельно.



Производительность, безопасность и отладка

Что реально влияет на тикрейт

FiveM однопоточен в основном игровом цикле, поэтому определяющий фактор — частота одного ядра CPU, а не количество ядер. Отсюда практические выводы:

  • Ryzen с высокой частотой и NVMe-диск дают ощутимо более ровный server thread hitch-профиль, чем «много медленных ядер». На Serveur FiveM у нас именно такая конфигурация — высокочастотные Ryzen + SSD NVMe.
  • Стриминг кастомных машин и мапов упирается в диск и сеть при массовых подключениях — NVMe тут не роскошь.
  • Каждый плохо написанный ресурс с тиком Wait(0) отъедает время у всего сервера. Проверяйте через resmon 1 в клиенте и profiler record 500 в серверной консоли.
# Полезные конвары для нагрузки
set sv_useDirectListing true
set sv_listingIPOverride "203.0.113.10"   # если сервер за NAT/прокси
set sv_forceIndirectListing false

# Логи и отладка
set sv_debugQueue false
sv_scriptHostsPolicy "internal"

Безопасность конфига

  • Никогда не публикуйте конфиг в Discord/GitHub без вычистки sv_licenseKey, mysql_connection_string, steam_webApiKey и токенов.
  • rcon_password — либо пустой, либо 24+ случайных символов. RCON передаётся по UDP без шифрования.
  • Пользователь MySQL для сервера — только права на свою базу, без GRANT ALL ON *.*.
  • Whitelist на старте проекта дешевле, чем чистка базы после рейда. Реализуется через Discord-роль или собственный скрипт с проверкой license в playerConnecting.
  • Регулярные бэкапы конфига + дампа БД. Автоматические резервные копии на панели решают это без cron, но если вы держите сервер сами на VPS Linux, настройте mysqldump по расписанию.
# Пример бэкапа БД на VPS
0 4 * * * mysqldump -u backup -pPASS fivem_db | gzip > /backups/fivem_$(date +\%F).sql.gz

Волюметрический DDoS — задача инфраструктуры, а не конфига: на серверах Fly-Serv anti-DDoS включён по умолчанию, поэтому в server.cfg ничего «антиддосного» прописывать не нужно. Если же вы разворачиваете сервер сами, минимальный набор на хосте — SSH-ключи вместо пароля, ufw и fail2ban:

ssh-keygen -t ed25519 -C "fivem-admin"
sudo ufw allow 22/tcp
sudo ufw allow 30120
sudo ufw enable
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

Типовые ошибки и их причины

СимптомВероятная причинаРешение
Сервер не в спискеНеверный или привязанный к другому IP sv_licenseKeyПерегенерировать ключ под текущий IP
Could not find resource XИмя в ensure ≠ имя папки, лишний путьУказать точное имя каталога, проверить регистр
Сервер стартует и сразу выключаетсяСинтаксическая ошибка в конфиге, отсутствующая кавычкаСмотреть первые 30 строк консоли, проверять парность кавычек
Часть игроков крашится на загрузкеНесовпадение sv_enforceGameBuild с ресурсамиВыставить билд под используемые DLC
Все игроки — админыadd_ace group.user command allow или мусор в permissionsПересобрать иерархию ACE с нуля
Высокий server thread hitchТяжёлый скрипт или слабый CPUprofiler record, отключение ресурсов по одному

Полный перечень convars и их актуальные значения всегда стоит сверять с официальной документацией: Source. Ключи и параметры периодически меняются между артефактами.

Проверка перед публикацией

  1. Сервер стартует без красных ошибок в консоли.
  2. В списке серверов отображается корректное имя, иконка и теги.
  3. players в консоли показывает подключившегося, идентификаторы читаются.
  4. Админ-команды работают только у админов.
  5. Бэкап конфига сохранён отдельно от сервера.

Если вы хостите не один проект, а несколько геймодов или тестовую площадку рядом с продакшеном, удобнее работать через VPS Pterodactyl и разносить инстансы по отдельным контейнерам. Остальные поддерживаемые игры — в разделе Tous nos serveurs de jeu.



Заключение

Грамотный server.cfg FiveM — это не длинный файл, а предсказуемый: лицензия и OneSync сверху, метаданные и безопасность в середине, ресурсы и права — в подключаемых файлах. Такой конфиг легко читать в четыре утра, когда сервер не поднимается. Держите резервную копию, сверяйте convars с документацией и следите за нагрузкой на основной поток.



FAQ

Почему сервер FiveM не появляется в списке, хотя конфиг без ошибок?

В 90% случаев дело в sv_licenseKey: ключ привязан к IP-адресу, и после смены хостинга или переноса сервера он перестаёт валидироваться. Перегенерируйте ключ в кабинете Cfx.re под текущий IP. Дополнительно проверьте, что endpoint_add_tcp и endpoint_add_udp используют порт, реально открытый на хосте, и что sv_master1 не отключён строкой sv_master1 "".

Сколько слотов ставить в sv_maxclients и когда нужен OneSync?

Без OneSync жёсткий потолок — 32 слота (48 с расширением). Для RP-серверов ставьте set onesync on и подбирайте sv_maxclients под реальный онлайн: 48–64 слота — разумный старт. Ориентируйтесь не на желаемую цифру, а на показатель server thread в консоли: если он стабильно выше 8–10 мс при полной посадке, проблема в скриптах или в частоте CPU, а не в количестве слотов.

Можно ли хранить пароль от базы данных прямо в server.cfg?

Технически да — set mysql_connection_string не репликуется клиентам. Но файл виден всем, у кого есть доступ к панели или FTP, поэтому используйте отдельного MySQL-пользователя с правами только на нужную базу, длинный пароль и подключение через 127.0.0.1, а не через внешний интерфейс. Секреты вынесите в отдельный secrets.cfg, подключаемый через exec, и никогда не публикуйте его в репозитории или в Discord.