Skip to content

События

Built-in events сообщают об изменениях runtime и entities. Custom named events переносят JSON-совместимые данные конкретного gamemode.

Server handlers

Для built-in events vimp.on получает позиционные аргументы из declarations. Custom client event дополнительно передаёт отправившего его игрока.

ts
vimp.on('garage:spawn', (player, payload) => {
  const vehicle = vimp.vehicles.create(
    vimp.hash(payload.model),
    94.5,
    -1940.2,
    20.7,
    307,
    { numberPlate: 'VIMP', engineOn: true },
  )

  if (vehicle) {
    player.emit('garage:spawned', { vehicleId: vehicle.id })
  }
})

player.emit отправляет событие одному клиенту, vimp.emitAllClients — всем. Server vimp.emit выполняет синхронную локальную диспетчеризацию и ничего не отправляет по сети.

Client и UI

Client vimp.emitServer отправляет запрос серверу. CEF может вызвать emitClient или emitServer. События server-to-client и CEF-to-client приходят в client vimp.on.

Строгая типизация payload

Расширяйте пустые event maps через declaration merging в context-specific .d.ts, подключённом соответствующим tsconfig.

ts
declare module '@vimp-mp/types/server' {
  interface VimpServerEvents {
    'inventory:use': { slot: number }
  }
}

TypeScript проверяет сборку, но не данные во время выполнения. Проверяйте любой client payload на сервере до изменения состояния.

VIMP developer documentation