FiveM зависает на экране загрузки: причины и как это отладить
Игроки зависают на экране загрузки FiveM навсегда? Проверьте spawnmanager, multicharacter, ресурс loadscreen, сборку игры, большую потоковую передачу и загрузку фреймворка с F8.
Игроки подключаются, полоса заполняется, и затем ничего: экран загрузки остается навсегда, или игра замерзает на черном экране. Это руководство проходит через причины в порядке, который быстрее всего исключить, и показывает, как использовать F8 и консоль сервера, чтобы найти ту, что у вас есть.
В первую очередь: это все или один игрок?
- Все застрял. Причина на сервере: ресурс, фреймворк или loadscreen.
- Один игрок застрял. Посмотрите на клиента этого игрока: кеш, медленное соединение, моды или старая сборка игры. Начните с очистки кеша FiveM.
Присоединитесь один раз и нажмите F8. Это работает и на экране загрузки. Прочитайте, что там напечатано, и держите консоль сервера открытой с другой стороны.
1. Ошибка скрипта на клиенте
F8 перечисляет ошибки клиента. Любая строка вроде этой во время загрузки — сильная подсказка:
SCRIPT ERROR: @my_script/client/main.lua:25: attempt to index a nil value (global 'ESX')Скрипт клиента, который падает в его начальном потоке, может оставить поток спауна незаконченным. Исправьте скрипт, названный в ошибке: руководства для чтения ошибки скрипта, ESX nil и QBCore nil охватывают распространенные. Затем перезагрузите ресурс и повторно присоединитесь.
Тестируйте исключением, если ничего не напечатано: остановите самый недавно добавленный или измененный ресурс, повторно присоединитесь и посмотрите, заканчивается ли загрузка.
2. Никто не спаунит игрока
После загрузки что-то должно заспавнить игрока и выключить экран загрузки. Обычно:
spawnmanagerделает это на обычном сервере.- multicharacter и spawn selector фреймворка делают это на ESX и QBCore.
Убедитесь, что эти ресурсы запускаются в правильном порядке и что только один из них обрабатывает спауд. Типичный конфликт — это стандартный spawnmanager автоматически спаунящий игрока, в то время как ресурс multicharacter также хочет это делать. Убедитесь, что базовые ресурсы запускаются перед фреймворком, как в правильном порядке ensure:
ensure oxmysql
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure spawnmanager
ensure esx_multicharacter # or qb-multicharacter / qbx_core's ownЕсли ресурс multicharacter зависает, посмотрите в консоли сервера на ошибку базы данных от него: загрузка персонажа читает базу данных, и отказ SQL оставляет игрока в ожидании. Смотрите ошибку подключения oxmysql и таблица SQL не существует.
3. Пользовательский loadscreen, который никогда не закрывается
Серверные loadscreens — это ресурсы, объявленные в их манифесте:
fx_version 'cerulean'
game 'gta5'
loadscreen 'html/index.html'
loadscreen_manual_shutdown 'yes'
files { 'html/**/*' }С loadscreen_manual_shutdown 'yes', FiveM не закрывает loadscreen автоматически. Скрипт клиента должен это сделать, вызвав встроенные функции завершения, как только игрок будет готов:
ShutdownLoadingScreen()
ShutdownLoadingScreenNui()Если ресурс loadscreen имеет опцию ручного завершения и никто не вызывает эти встроенные функции, экран остается навсегда. Либо удалите loadscreen_manual_shutdown, либо убедитесь, что ваш поток спауна вызывает их. Тестируйте, остановив ресурс loadscreen и повторно присоединившись.
Loadscreen, который сломан, который загружает внешний файл, который недостижим, или который воспроизводит очень большое видео, также может блокировать или замедлять экран. Держите его легким и локальным.
4. Большая потоковая передача и загрузки
Присоединение загружает все потоковые файлы, которые у игрока еще нет. Сервер со многими большими транспортными средствами, картами и пакетами одежды может занять минуты при первом подключении, и экран загрузки не показывает ничего, если загрузка медленная. Признаки:
- F8 или экран загрузки показывает загрузки в процессе.
- Это работает для возвращающихся игроков, но не для новых.
- Проблема усугубляется после того, как вы добавили пакет активов.
Исправления: сократите размер и количество потоковых активов (смотрите перегруженные активы), разместите сервер на соединении с достаточной полосой пропускания и попросите игроков дождаться завершения первой загрузки.
5. Проблемы с сборкой игры или версией сервера
Если сервер принудительно устанавливает сборку игры, игрок на более старой или другой сборке может не присоединиться чисто. Проверьте sv_enforceGameBuild в server.cfg против DLC, который требует ваши активы. Смотрите sv_enforceGameBuild. Устаревший артефакт сервера также может вызвать странные присоединения: обновите ваши артефакты.
6. Фреймворк не загружает персонажа
Игроки спаунятся, но фреймворк никогда не заканчивает загрузку игрока. В консоли сервера посмотрите на:
- ошибку базы данных при загрузке игрока или персонажа
- ошибку от
es_extended,qb-coreилиqbx_coreв событии player-loaded - скрипт, который подкрепляет это событие и выбрасывает, останавливая другие обработчики
Если вы видите ошибку там, исправьте её и повторно присоединитесь. Сломанный инвентарь или сломанный скрипт работы также может не выполниться внутри потока player-loaded, поэтому сначала проверьте самые недавно добавленные.
Процедура отладки
- Присоединитесь и нажмите F8. Запишите каждую ошибку.
- Прочитайте консоль сервера во время присоединения.
- Остановите самый недавно измененный ресурс, повторно присоединитесь.
- Остановите ресурс loadscreen, повторно присоединитесь.
- Все еще застрял для всех: начните с только базовых ресурсов и добавьте остальные обратно группами.
Совет: если вы добавляете ресурсы группами по пять или десять, вы найдете плохой с несколькими перезагрузками вместо тестирования 80 ресурсов один за другим.
Контрольный список
| Симптом | Исправление |
|---|---|
| Ошибка в F8 во время загрузки | Исправьте этот скрипт клиента, повторно присоединитесь |
| Черный экран, никто не спаунит | Проверьте spawnmanager или multicharacter, только один поток спауда |
| Loadscreen никогда не закрывается | Удалите loadscreen_manual_shutdown или вызовите встроенные функции завершения |
| Только новые игроки застрял | Большая потоковая передача: сократите активы, дождитесь загрузок |
| Один игрок застрял | Очистите их кеш FiveM |
Застрял после изменения sv_enforceGameBuild |
Совместите сборку с вашим DLC и игрой игрока |
| Ошибка базы данных в консоли сервера | Исправьте oxmysql или отсутствующую таблицу, затем повторно присоединитесь |
Короткие ответы
Почему мой FiveM зависает на экране загрузки?
Клиент никогда не заканчивает присоединение: игрок не заспавнен, ресурс loadscreen никогда не завершает работу, скрипт ошибается при загрузке или большая загрузка все еще выполняется. F8 и консоль сервера показывают какая.
Как открыть консоль F8 во время загрузки?
Нажмите F8 на экране загрузки или в игре. Она показывает ошибки скрипта клиента и состояние соединения. Ошибки там часто называют точный файл и строку.
Должен ли spawnmanager работать?
Что-то должно заспавнить игрока. Либо spawnmanager это делает, либо multicharacter или spawn скрипт вашего фреймворка. Если ни то, ни другое, игрок остается на экране загрузки.
Скрипты без этой проблемы
Mic PhoneСкладной телефон, который раскладывается в планшет и работает и на настоящем телефоне игрока.Смотреть скрипт →
Arcade MachinesСемь аркадных игр в настоящих автоматах, с таблицами рекордов и ставками.Смотреть скрипт →
CCTV Security CamerasУстанавливаемые камеры, планшет с мультиэкраном в реальном времени и распечатанные фото-улики.Смотреть скрипт →