Skip to content

PrestigeRoleplay/fivem-joaat-hash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fivem-joaat-hash

JOAAT (Jenkins One-At-A-Time) hash calculator for FiveM and GTA V.

Compute the same hashes that the RAGE engine uses internally for vehicle spawn names, weapon names, ped models, and every other string identifier. This is the algorithm behind FiveM's GetHashKey() native.

What is JOAAT?

Jenkins One-At-A-Time (JOAAT) is a non-cryptographic hash function designed by Bob Jenkins. GTA V's RAGE engine uses it everywhere to convert human-readable names like adder or zentorno into unsigned 32-bit integers that the engine looks up internally.

When you call GetHashKey("adder") in a FiveM script, it returns 0xB779A091 — that's JOAAT. When you're building vehicle resource files, editing vehicles.meta, or debugging spawn issues, you'll often need to convert between names and hashes. That's what this tool does.

Install

npm install -g fivem-joaat-hash

Or use it as a library in your project:

npm install fivem-joaat-hash

CLI Usage

# Single hash
joaat adder
# → adder  0xB779A091

# Batch mode
joaat sultan zentorno t20
# → sultan    0x39DA2754
# → zentorno  0xAC5DF515
# → t20       0x6322B39A

# Check against known GTA V vehicles
joaat --reverse adder
# → adder  0xB779A091  ✓ known vehicle

joaat --reverse mycustomcar
# → mycustomcar  0x8A2B983F  (not in known list)

# List all known vehicle hashes
joaat --list

# Decimal output instead of hex
joaat --decimal adder
# → adder  3078558353

API Usage

const { joaat, joaatHex, reverseLookup, KNOWN_VEHICLE_HASHES } = require('fivem-joaat-hash');

// Compute hash
joaat('adder');          // → 3078558353  (unsigned 32-bit)
joaatHex('adder');       // → "0xB779A091"

// Case-insensitive (just like RAGE engine)
joaat('ADDER') === joaat('adder');  // → true

// Reverse lookup against known vehicles
reverseLookup(0xB779A091);         // → "adder"
reverseLookup('0xB779A091');       // → "adder"  (hex strings work too)
reverseLookup(0x00000001);         // → null     (unknown hash)

// Access the full known vehicle list
Object.keys(KNOWN_VEHICLE_HASHES); // → ["adder", "zentorno", ...]

Known Vehicle Hashes

The library includes 50+ common GTA V vehicle hashes for quick reference and reverse lookup. Run joaat --list to see them all, or access KNOWN_VEHICLE_HASHES in the API.

Categories included: Super, Sports, Muscle, SUVs, Sedans, Emergency, and Motorcycles.

Why This Matters for FiveM

  • Vehicle resource files — YTD/YFT/YDR filenames are resolved by their JOAAT hash. If the hash doesn't match vehicles.meta, the vehicle won't load.
  • Streaming — FiveM's streaming system maps resource names to hashes. Debugging streaming issues often requires computing hashes manually.
  • Script developmentGetHashKey() in Lua/JS/C# all use JOAAT under the hood. Pre-computing hashes avoids runtime overhead in hot paths.
  • Meta file editingvehicles.meta, handling.meta, carvariations.meta all reference vehicles by both name and hash.

Related Tools

Running Tests

npm test

License

MIT - Copyright (c) 2026 FiveMRides

About

JOAAT hash calculator for FiveM & GTA V — compute vehicle spawn name hashes. CLI + API.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors