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-vehicle-validator

v1.0.0

Published

Validate FiveM vehicle resources - check fxmanifest, meta files, YTD sizes, texture compression, and folder structure

Downloads

110

Readme

fivem-vehicle-validator

Validate FiveM vehicle resources for common issues before deploying to your server. Catches broken manifests, missing meta files, oversized textures, and structural problems.

  FiveM Vehicle Validator
  ==================================================
  Resource:  my-lambo
  Files:     8 (34.2MB)
  Stream:    5 files
  Meta:      3 files

  ERRORS (1)
  --------------------------------------------------
  ✘ [YTD_OVER_LIMIT] lambo.ytd is 18.3MB — exceeds FiveM's 16MB streaming limit
    → Fix: Compress textures. Use FiveMRides Optimizer: https://fivemrides.com/optimizer/

  WARNINGS (1)
  --------------------------------------------------
  ⚠ [HANDLING_SUSPICIOUS_VALUE] fMass = 80000 seems unusual (expected 100-50000 kg)

  YTD FILES
  --------------------------------------------------
  lambo.ytd                         18.3MB [████████████████████████░░] ✘ OVER LIMIT
  lambo+hi.ytd                       8.1MB [██████████░░░░░░░░░░] ✓

  --------------------------------------------------
  ✘ FAILED — 1 error(s) must be fixed

Install

npm install -g fivem-vehicle-validator

Or use without installing:

npx fivem-vehicle-validator ./my-vehicle

Usage

# Validate a resource
fivem-validate ./resources/my-car

# Show fix suggestions
fivem-validate ./resources/my-car --fix-hints

# JSON output (for CI/scripts)
fivem-validate ./resources/my-car --json

# Validate all resources in a folder
for dir in ./resources/*/; do fivem-validate "$dir"; done

What It Checks

Errors (must fix)

| Code | Description | |------|-------------| | MANIFEST_MISSING | No fxmanifest.lua or __resource.lua | | MANIFEST_NO_FILES | No files{} block in manifest | | MANIFEST_NO_VEHICLES_META | vehicles.meta not in files{} | | MANIFEST_NO_DATA_FILE | Missing data_file declaration for a meta file | | MANIFEST_META_NOT_IN_FILES | Meta file exists but not listed in files{} | | VEHICLES_META_MISSING | No vehicles.meta found | | VEHICLES_META_INVALID_XML | vehicles.meta is not valid XML | | VEHICLES_META_NO_ITEMS | No vehicle entries in vehicles.meta | | VEHICLES_META_DUPLICATE_MODEL | Duplicate modelName (spawn conflicts) | | VEHICLES_META_MISSING_FIELD | Missing required field (modelName, txdName, etc.) | | YTD_OVER_LIMIT | YTD file exceeds 16MB streaming limit | | STREAM_NO_FILES | No stream files (vehicle invisible) | | STREAM_NO_YTD | Models found but no textures |

Warnings (should fix)

| Code | Description | |------|-------------| | MANIFEST_LEGACY | Using deprecated __resource.lua | | MANIFEST_FX_VERSION | fx_version not set to cerulean | | YTD_NEAR_LIMIT | YTD between 12-16MB (risky) | | YFT_LARGE | Model file over 25MB (lag risk) | | STREAM_TOTAL_LARGE | Total stream over 50MB | | STREAM_HI_NO_BASE | _hi.yft without matching base .yft | | HANDLING_SUSPICIOUS_VALUE | Physics value outside normal range | | STRUCTURE_STREAM_IN_ROOT | Stream files not in stream/ folder | | STRUCTURE_JUNK_FILES | Thumbs.db, .DS_Store, etc. | | STRUCTURE_NESTED_RESOURCE | fxmanifest.lua in wrong directory |

Programmatic API

const { validateResource } = require('fivem-vehicle-validator');

const result = await validateResource('./my-vehicle');

console.log(result.passed);     // true/false
console.log(result.errors);     // [{code, message, fix}]
console.log(result.warnings);   // [{code, message, fix}]
console.log(result.stats);      // {totalFiles, streamFiles, ytdFiles, ...}

Auto-Fix Tools

Found issues? Fix them automatically:

  • Oversized YTD / unoptimized texturesFiveMRides Optimizer — Smart BC5/BC7 compression, reduces file sizes 40-70%
  • Broken resource structure / missing metaFiveMRides Converter — Rebuilds complete resource with fxmanifest, handling, and 102 engine sounds
  • Need to convert from GTA5-Mods.comFiveMRides Converter — Upload ZIP/RPF, get FiveM-ready resource in seconds

Why 16MB Matters

FiveM has a hard streaming limit: any single YTD file over 16MB will cause texture loss in-game. The textures simply won't load. This is the #1 cause of invisible/blurry vehicles on FiveM servers.

This validator checks every YTD file against this limit and warns you before you deploy a broken resource.

Read more: How to Fix FiveM Texture Loss

Contributing

Issues and PRs welcome. If you'd like to add new checks, each check is a separate module in src/checks/.

License

MIT — FiveMRides