Skip to content

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.

ts
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.

VIMP developer documentation