Поднимаем ваш первый сервер FiveM
От нуля до сервера, куда смогут зайти ваши друзья: artifacts, licence key, server.cfg, порт, на котором спотыкаются все, и как закрыть сервер до того, как кого-то приглашать.
5 минут чтения
Это самый короткий путь от нуля до сервера, куда смогут зайти ваши друзья, с объяснением каждого шага, а не со списком команд для копипаста.
Заложите примерно сорок минут. Большая часть уйдёт на скачивание.
Всё здесь относится к FiveM Legacy. FiveM for GTAV Enhanced отличается в нескольких местах, и они отмечены по ходу.
Что нужно заранее
| Что | Зачем |
|---|---|
| Копия GTA V | Только чтобы играть. Самому серверу она не нужна. |
| Аккаунт Cfx.re | Чтобы создать licence key, бесплатно. |
| Windows или Linux | 2 ядра и 4 ГБ ОЗУ хватит для старта. |
| Открытый порт | 30120 по умолчанию, TCP и UDP. |
Именно на последней строке умирает большинство первых попыток, поэтому у неё ниже свой раздел.
1. Получите файлы сервера
Сервер называется FXServer. Скачайте последнюю рекомендованную сборку со
страницы artifacts Cfx.re и
положите её в отдельную папку, например C:\FXServer\server.
Держите файлы сервера и свои данные в разных папках:
C:\FXServer\ server\ artifacts, заменяются при каждом обновлении server-data\ ваши resource и ваш server.cfg
Причина — обновления. Когда выходит новый artifact, вы удаляете server и
распаковываете новый. Если ваша папка resources лежит внутри, вы только что
удалили свой сервер.
2. Получите licence key
Зайдите на portal.cfx.re, авторизуйтесь и создайте ключ. Он спросит IP-адрес: укажите машину, на которой будет крутиться сервер, и выберите правильный тип, потому что ключ, созданный под неверный IP, просто откажется запускаться.
Ключ — это секрет. Любой, у кого он есть, может поднять сервер от вашего
имени и добиться отзыва ключа. Его место в server.cfg, а server.cfg
никогда не попадает в публичный git-репозиторий.
3. Напишите server.cfg
Это файл, на котором держится всё остальное. Вместо того чтобы копировать чужой и гадать, что делает половина строк, соберите свой в генераторе server.cfg: он пишет разделы в правильном порядке, использует имена convar, сверенные со справочником команд Cfx.re, и объясняет каждую опцию по мере того, как вы её выставляете.
Что важно на первом сервере:
# По строке на протокол, обе на один и тот же порт.endpoint_add_tcp "0.0.0.0:30120"endpoint_add_udp "0.0.0.0:30120"# С 32 слотов нужен onesync on или legacy; выше 64 — обязательно on.set onesync onsv_hostname "Мой первый сервер"sv_maxClients 48# Возьмите это на portal.cfx.resv_licenseKey changeme
Порядок загрузки — не украшение
Resource стартуют в том порядке, в котором они перечислены. Resource, которая зависит от другой, должна идти после неё:
ensure oxmysqlensure ox_libensure es_extendedensure my_own_script
Почти каждое «attempted to index a nil value» на свежем сервере — это проблема порядка загрузки, а не сломанный скрипт.
4. Откройте порт как следует
FiveM нужны TCP и UDP на одном и том же порту. Если открыть только TCP, вы получите самый запутанный симптом во всём этом хобби: сервер появляется в вашем собственном списке, принимает подключение, а потом висит на «Connecting».
Заблокировать его могут три разных места, и обычно нужно пройти все три:
- Брандмауэр Windows или
ufwна Linux: разрешите входящие 30120 TCP и UDP. - Ваш роутер, если машина стоит дома: пробросьте 30120 TCP и UDP на локальный IP машины.
- Фаервол хостинга, если вы арендуете VPS. Это веб-панель, а не сама машина, и именно про него все забывают.
Чтобы понять, действительно ли дело в порте, попросите кого-нибудь подключиться, пока вы смотрите в консоль сервера. Если там вообще ничего не появляется, трафик до вас не доходит, и проблема в сети, а не в конфиге.
5. Запустите его
Из папки server-data:
C:\FXServer\server\FXServer.exe +exec server.cfg
На Linux:
bash /home/fivem/server/run.sh +exec server.cfg
В Enhanced исполняемый файл называется cfx-server.exe.
Здоровый первый запуск печатает строку о том, что сервер слушает порт, а затем список resource. Две ошибки встречаются достаточно часто, чтобы их назвать:
- «Could not find licence key» означает, что
sv_licenseKeyотсутствует, неверный или привязан к другому IP. - «onesync is not enabled» при более чем 32 слотах означает, что не хватает
set onesync on.
6. Добавить фреймворк или нет
Он вам не обязателен. Фреймворк даёт job, деньги, инвентарь и систему персонажей; без него у вас free roam, и это совершенно нормальная точка старта.
Если фреймворк всё же нужен, выберите одну экосистему и оставайтесь в ней:
| Фреймворк | Какой он |
|---|---|
| Qbox | Активно поддерживается, современный Lua, построен на ox_lib и ox_inventory. |
| QBCore | Огромный каталог скриптов, более старая кодовая база. |
| ESX Legacy | Самый старый, до сих пор широко используется, большинство сторонних скриптов нацелены на него. |
Смешивать их — самый верный способ получить сервер, который никто не сможет отладить. Что бы вы ни выбрали, генератор job и генератор item пишут корректный формат для всех трёх.
7. Закройте сервер до того, как кого-то приглашать
Конфигурация по умолчанию не является безопасной.
# Блокирует изменённые файлы игры. 2 блокирует ещё и неизвестные.sv_pureLevel 1# Управляет тем, что клиентам разрешено создавать.sv_entityLockdown relaxed# Трейнеры и меню. Оставьте выключенным.sv_scriptHookAllowed false
Затем нормально настройте права админов через
генератор прав ACE, а не выдавайте group.admin
руками. И прежде чем ставить хоть одну скачанную resource, прочитайте
как распознать скрипт с бэкдором. На
публичном сервере это вопрос «когда», а не «если».
Не задавайте rcon_password, если вы реально не пользуетесь RCON.
Незаданный пароль — на одну утечку меньше.
Куда двигаться дальше
- Генератор fxmanifest.lua, когда будете писать свою первую resource
- Генератор resource — рабочий каркас с уже готовыми серверными проверками
- Спрайты blip и модели транспорта — два списка, ради которых вы будете держать открытую вкладку