Skip to content

Vehicle workflow example

ts
vimp.on('playerConnected', (player) => {
  const vehicle = vimp.vehicles.create(
    vimp.hash('adder'),
    94.5,
    -1940.2,
    20.7,
    307,
    {
      primaryColor: 27,
      secondaryColor: 111,
      numberPlate: 'VIMP',
      lockState: 1,
      engineOn: true,
      dimension: player.dimension,
    },
  )

  if (vehicle) {
    vehicle.setStreamSyncedMeta('ownerId', player.id)
    player.putIntoVehicle(vehicle.id, -1)
  }
})

The model hash, position, appearance, engine, lock state, and dimension are part of the initial authoritative snapshot. Owner metadata is presentation state; the gamemode should retain its own server-side ownership record for security.

Handle a null result when vehicle capacity is exhausted and destroy the vehicle when its owning gameplay session ends.

VIMP developer documentation