Как настроить файл 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 | Ядро FXServer | sv_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 threadhitch-профиль, чем «много медленных ядер». На 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 | Тяжёлый скрипт или слабый CPU | profiler record, отключение ресурсов по одному |
Полный перечень convars и их актуальные значения всегда стоит сверять с официальной документацией: Source. Ключи и параметры периодически меняются между артефактами.
Проверка перед публикацией
- Сервер стартует без красных ошибок в консоли.
- В списке серверов отображается корректное имя, иконка и теги.
playersв консоли показывает подключившегося, идентификаторы читаются.- Админ-команды работают только у админов.
- Бэкап конфига сохранён отдельно от сервера.
Если вы хостите не один проект, а несколько геймодов или тестовую площадку рядом с продакшеном, удобнее работать через 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 "".
Без OneSync жёсткий потолок — 32 слота (48 с расширением). Для RP-серверов ставьте set onesync on и подбирайте sv_maxclients под реальный онлайн: 48–64 слота — разумный старт. Ориентируйтесь не на желаемую цифру, а на показатель server thread в консоли: если он стабильно выше 8–10 мс при полной посадке, проблема в скриптах или в частоте CPU, а не в количестве слотов.
Технически да — set mysql_connection_string не репликуется клиентам. Но файл виден всем, у кого есть доступ к панели или FTP, поэтому используйте отдельного MySQL-пользователя с правами только на нужную базу, длинный пароль и подключение через 127.0.0.1, а не через внешний интерфейс. Секреты вынесите в отдельный secrets.cfg, подключаемый через exec, и никогда не публикуйте его в репозитории или в Discord.