Runtime и жизненный цикл
Сервер содержит встроенный Node.js 22 и загружает <scripts_path>/server/main.js в основном scripting isolate. До выполнения entrypoint VIMP устанавливает server-вариант глобального объекта vimp.
Startup gate
Зарегистрируйте handlers, инициализируйте обязательные сервисы и вызовите vimp.markReady(). Network listener запускается только после первого успешного вызова. Повторный вызов возвращает false, а отсутствие вызова до истечения script_ready_timeout_secs останавливает startup.
await connectDatabase()
registerGameplayHandlers()
if (!vimp.markReady()) {
throw new Error('The gamemode was already marked ready')
}Не отмечайте сервер готовым до инициализации зависимостей, нужных connection handlers. Необязательная фоновая работа, наоборот, не должна задерживать startup.
Выполнение и ошибки
Server handlers работают в основном embedded Node isolate. Worker threads могут выполнять независимые вычисления, но глобальный vimp в них не установлен.
Server scripts являются доверенным кодом. Fatal error, падение native addon или повреждение памяти может завершить весь процесс. Используйте внешний supervisor и проверяйте native dependencies до deployment.
Client scripts запускаются после подготовки клиентских файлов и GTA metadata. Client timers возвращают числовые identifiers, как указано в declarations.