npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

fivem-joaat-hash

v1.0.0

Published

JOAAT (Jenkins One-At-A-Time) hash calculator for FiveM & GTA V. Compute vehicle spawn name hashes via CLI or API.

Readme

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