Skip to content

mmVehiclesMetaMerger v2.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Aug 02:57
164c5bc

Tool made to easily merge multiple GTA 5 vehicle meta files, now with a desktop interface.

Downloads

File What it is
...-portable.exe No install. Drop it in a folder and run it. Recommended.
...-setup.exe Normal installer, adds a Start Menu shortcut.

The portable build creates vehicles_meta/, carcols_meta/, carvariations_meta/, handling_meta/, vehiclelayouts_meta/ and output/ next to itself, exactly like the console version did.

New in 2.1.0: named output folders

Every merge now lands in its own folder named after the pack you pointed it at, instead of overwriting the same six files at the root of output/.

Point it at D:\packs\_________\data and the result appears in output\_________\. The name is worked out from the source path — container folders like data, stream and dlc are skipped, and a pack nested inside a folder of its own name collapses to one. You can edit the suggested name before the run starts. Run the same pack twice and the second is filed as _________(2); nothing is ever overwritten.

The Output panel is now a scrollable list of those folders, newest first, each showing the pack name, the vehicle count and how long ago it ran. Click one to see the meta files inside it, ‹ back to return, and each folder can be deleted from the list.

This also fixes cross-pack contamination. The five working folders were only ever added to, so merging pack B straight after pack A quietly mixed A's cars into B's output. Each import now clears its working folder first, so a run only ever contains the pack you gave it.

What is new

A desktop interface. No more console menu. All sixteen operations are laid out and grouped Merge / Import / Tools, with live counts of what is staged in each working folder, a folder picker for the source directory, the merged output files listed for one-click reveal in Explorer, and the console output streamed into an activity log.

Option 13: Import all + Emergency Flags. Does what option 12 does, then merges, then appends these to every vehicle in the merged output/vehicles.meta:

  • FLAG_LAW_ENFORCEMENT
  • FLAG_EMERGENCY_SERVICE
  • FLAG_REPORT_CRIME_IF_STANDING_ON

A flag a vehicle already carries is never written twice, and flags it already had are kept. Empty flag elements are filled in. Everything outside the flag elements is left byte-for-byte identical.

The old options 13, 14 and 15 are now 14, 15 and 16.

The merging engine is unchanged

src/core.js is a mechanical, byte-for-byte extraction of the merge and import functions from app.js. Only the terminal-specific seams were swapped so a window can drive them. app.js is untouched and still runs as the original command line tool via npm run cli.

Fixed since 2.0.0

vehicles.meta silently failing to merge (2.0.1). One odd file anywhere in the batch — a different root element, a missing <InitDatas> block, or invalid XML — threw an error that was swallowed internally, so output/vehicles.meta was never rewritten and you were left looking at the previous run's file. Every other meta type was unaffected, which is what made it confusing. Bad files are now named, written to errors.txt and skipped, and everything else still merges.

Extract model names only returning one vehicle per file (2.0.2). It read only the first <Item> in each file, so a vehicles.meta holding several vehicles exported just the first and silently dropped the rest. It now walks every entry.

Numbered meta files being ignored (2.0.3). This is the big one. A FiveM resource can declare the same data_file type several times, so packs routinely ship vehicles.meta, vehicles1.meta, vehicles2.meta and so on. The importer matched the exact name vehicles.meta only, so it found one file and silently skipped every other car in the pack. handling.meta usually being a single shared file is why that one always looked correct. All five importers now match numbered variants and are case-insensitive, and the import step reports how many files it found.

Both merge and extract steps now report their counts, for example "47 vehicle(s) from 12 file(s)", so a skipped file is visible instead of silent.


Original tool by mmleczek.