MAATRIX GAMES / Блог / Кастомизация загрузочного экрана сервера

Кастомизация загрузочного экрана сервера

MAATRIX GAMES

Игрок заходит на новый сервер первый раз — и первые секунды видит либо голый чёрный экран с прогресс-баром, либо ваш логотип, короткое приветствие и ссылку на Discord. Второй вариант работает на вас: он говорит «здесь всё настроено, тут следят за проектом» ещё до того, как игрок оказался в игре. Разберём, у каких игр это вообще есть, как подключить свою картинку и подсказки, и почему не стоит вешать на загрузочный экран баннер на 5 мегабайт.

У каких игр вообще есть кастомный загрузочный экран

Сразу закрою вопрос, который обычно всплывает первым: это не универсальная фича. У каждой игры/движка свой механизм, и у части игр его нет вообще — там максимум можно поменять текстовое приветствие (MOTD) или иконку сервера в списке.

  • Есть полноценный кастомный загрузочный экран (картинка/видео/HTML + текст): FiveM, RAGE:MP, alt:V, MTA:SA, Garry's Mod.
  • Есть логотип/баннер, но не полный загрузочный экран (показывается в момент подключения или в браузере серверов): Rust.
  • Есть иконка сервера и текстовое приветствие, но не загрузочный экран в привычном смысле: Minecraft (иконка в списке серверов + MOTD).
  • Нет ничего из этого «из коробки»: CS2, TF2, ARK, Valheim, Palworld, 7 Days to Die и большинство survival/shooter игр на нативных движках — там кастомизация ограничена названием сервера и описанием.

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

Rust: server.logoimage и server.headerimage

В Rust нет отдельного «экрана загрузки» как HTML-страницы, но есть три консольных команды, которые управляют тем, что игрок видит при подключении и в браузере серверов:

server.logoimage "https://example.com/logo.png"
server.headerimage "https://example.com/header.png"
server.description "Ванильный сервер с еженедельным вайпом. Правила и Discord — в описании."

Эти параметры прописываются в server.cfg или передаются флагом при старте сервера. server.logoimage — небольшой логотип, который показывается рядом с названием сервера во время подключения и в самом браузере серверов. server.headerimage — широкий баннер (рекомендуемое соотношение сторон примерно 3:1), он виден в списке серверов ещё до захода. Важный нюанс: оба параметра — это именно URL, файл должен быть доступен из интернета по HTTPS, а не лежать локально на сервере. Если хостите картинку сами — убедитесь, что она отдаётся стабильно и без задержек, иначе логотип у части игроков просто не подгрузится.

server.url можно направить на ваш сайт или страницу Discord — это отдельная кликабельная ссылка в информации о сервере.

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

Создать сервер

FiveM: полноценный ресурс loadscreen

Из всех игр в каталоге у FiveM (GTA V) самая гибкая система — загрузочный экран здесь это полноценная HTML-страница, которую вы пишете сами. Создаётся отдельный ресурс, обычно в resources/[local]/loadscreen/:

resources/
  [local]/
    loadscreen/
      fxmanifest.lua
      html/
        loading.html
        bg.jpg

fxmanifest.lua минимально выглядит так:

fx_version 'cerulean'
game 'gta5'

loadscreen 'html/loading.html'
loadscreen_manual_shutdown 'yes'

В loading.html — обычная веб-страница: фон через CSS (background-image: url('bg.jpg')), логотип сервера, блок с правилами, ссылка на Discord и, если хотите, случайные игровые подсказки через маленький JS-скрипт, меняющий текст раз в несколько секунд. loadscreen_manual_shutdown 'yes' даёт возможность самому решать, когда закрывать экран загрузки (например, дождаться полной инициализации клиентских скриптов), но для этого нужно вызвать SendLoadingScreenMessage и обработать его на клиенте — если такой контроль не нужен, эту строку можно не указывать, и экран закроется автоматически. Ресурс обязательно нужно добавить в server.cfg:

ensure loadscreen

RAGE:MP и alt:V работают по похожему принципу — свой CEF-based загрузочный экран через клиентские ресурсы (client_packages/client-side соответственно), но там больше JS-обвязки и синтаксис отличается от FiveM. MTA:SA и SA-MP тоже поддерживают кастомные загрузочные экраны через ресурсы/моды, но это более старые движки, и материалов по ним меньше — закладывайте больше времени на тесты.

Garry's Mod: sv_loadingurl

В Garry's Mod загрузочный экран задаётся одной консольной командой в server.cfg:

sv_loadingurl "http://example.com/loading/index.html"

Это тоже HTML-страница, но, в отличие от FiveM, она обычно хостится отдельно (не обязательно локально на сервере) и открывается как веб-страница поверх процесса загрузки карты. Внутри — стандартный HTML/CSS: логотип, фон, блок правил, ссылка на Discord, можно добавить прогресс через JS-события Gmod (GameDetails, LoadingProgress и подобные хуки, которые движок передаёт странице). Минус подхода — если у игрока плохое соединение с хостом, где лежит страница, сам загрузочный экран может подгружаться с задержкой или не подгрузиться вовсе, поэтому лучше держать её на быстром CDN и делать лёгкой.

Minecraft: иконка сервера и MOTD — не совсем то, но рядом

В Minecraft отдельного загрузочного экрана нет — мир игрок видит сразу после захода, и повлиять на этот момент нельзя. Но есть два соседних инструмента, которые дают похожий эффект первого впечатления:

server-icon.png — квадратная иконка ровно 64×64 пикселя в формате PNG, которая кладётся в корень сервера рядом с server.properties. Она показывается в списке серверов у игрока в клиенте ещё до подключения:

/minecraft-server/
  server.properties
  server-icon.png
  eula.txt

Если размер отличается от 64×64 — Minecraft просто проигнорирует файл, без ошибок в логах, так что если иконка не появилась — это первое, что стоит проверить.

MOTD — строка приветствия в server.properties, тоже видна в списке серверов до входа:

motd=§6MyServer§r | Ванильный SMP, вайп раз в месяц | discord.gg/example

§ — управляющий код цвета в Minecraft (аналог §), дальше идёт код цвета (6 — золотой, r — сброс форматирования). Поддерживаются два цвета/переноса строки в зависимости от версии клиента — на новых версиях MOTD может отображаться в две строки. Подробнее про сами конфиги и связанные с TPS настройки — в статье про оптимизацию модов и TPS на Minecraft-сервере.

Оптимизация размера изображения — почему это не мелочь

Тут действует тот же принцип, что и с любой веб-графикой: тяжёлый файл замедляет то, что должно быть мгновенным. Загрузочный экран или логотип — это дополнительный HTTP-запрос(ы) в момент, когда игрок и так ждёт подключения. Если баннер весит 4-5 МБ вместо разумных 100-300 КБ, часть игроков на слабом интернете будет ждать заметно дольше, а на совсем плохом соединении картинка может не подгрузиться вообще и уйти в таймаут.

Практические ориентиры (без точных цифр FPS/скорости — тут всё зависит от соединения игрока, привожу общий принцип):

  • Сжимайте PNG/JPG перед заливкой — любой современный оптимизатор (даже штатный экспорт «для веба» в графическом редакторе) снижает вес в разы почти без потери качества на глаз.
  • Для баннеров и фонов используйте JPG или WebP, для логотипов с прозрачностью — PNG.
  • Не заливайте оригинал с фотоаппарата или скриншот 4K — ресайзните под реальный размер отображения (для Rust server.logoimage/server.headerimage это небольшие превью, для HTML-экранов FiveM/Gmod — ориентируйтесь на разрешение 1920×1080, крупнее не имеет смысла).
  • Если картинка хостится у вас же — раздавайте её с быстрого канала, а не с того же диска, где крутится сама игра под нагрузкой.

Брендирование сервера — зачем вообще этим заниматься

Загрузочный экран — это то, что видит буквально каждый новый игрок в первые секунды знакомства с сервером, ещё до того, как он вообще что-то сделал в игре. Логотип, внятное приветствие и ссылка на Discord прямо там снимают вопрос «а тут вообще кто-то администрирует?» и подсказывают, куда идти за правилами, вместо того чтобы игрок читал их постфактум в чате после первого бана. Для сообществ, которые всерьёз растят аудиторию, это дешёвый способ выглядеть собраннее конкурентов — рядом полезно настроить и Discord-бота для управления сервером, чтобы ссылка с загрузочного экрана вела не в пустой канал, а в живое сообщество.

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

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

Создать сервер

Частые вопросы

Можно ли использовать GIF или видео вместо статичной картинки?

В FiveM — да, через HTML-ресурс можно вставить видео-фон (<video> в HTML) или анимированный GIF, но это заметно увеличивает вес загрузочного экрана — тестируйте на медленном соединении, прежде чем выкатывать всем. В Rust и Minecraft — нет, там только статичные изображения/иконки.

Почему логотип в Rust не отображается у некоторых игроков?

Чаще всего дело в самом URL — картинка должна быть доступна по HTTPS без авторизации и без блокировок по User-Agent/Referer. Проверьте, открывается ли ссылка в браузере в приватном режиме.

Обязательно ли делать loadscreen в FiveM, или можно без него?

Необязательно — без ресурса loadscreen игрок увидит стандартный загрузочный экран FiveM. Это чисто опциональная кастомизация.

Как часто нужно обновлять картинку на загрузочном экране?

Жёсткого правила нет, но если у сервера меняется сезон/вайп/правила — логично обновить и текст на экране, чтобы он не вводил новичков в заблуждение устаревшей информацией.

Влияет ли загрузочный экран на время самого коннекта к серверу?

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