Skip to content

Hashes and natives

GTA identifies models, weapons, and many named resources with Jenkins one-at-a-time hashes. Server code can compute them with vimp.hash.

ts
const pistol = vimp.hash('WEAPON_PISTOL')
const adder = vimp.hash('adder')

Client code exposes GTA native functions under vimp.natives, grouped by namespace and written in lower camel case.

ts
vimp.on('render', () => {
  const playerPed = vimp.natives.player.playerPedId()
  const speed = vimp.natives.entity.getEntitySpeed(playerPed)
  vimp.graphics.drawText(`Speed: ${speed.toFixed(1)}`, 0.02, 0.8)
})

Native calls run in the client game process. Validate handles, request required models or animation dictionaries, and release resources according to GTA lifecycle rules. A typed signature prevents many argument mistakes but does not make an unsafe native sequence valid.

Use the searchable native reference for exact signatures.

VIMP developer documentation