Unificator de vehicule și arme
Lasă aici folderul în care fiecare mașină are propria resursă și primești o resursă de vehicule și una de arme: un stream unificat, meta unificate și un fxmanifest corect. Găsește ce revendică două pachete în același timp, pentru că acolo se rupe o unificare: id-uri de modkit care ajung unul peste altul, id-uri de handling definite de două ori, setări de sirenă și de lumini într-un câmp de opt biți, două fișiere diferite cu același nume și blocul de animații de arme în care scrie fiecare pachet. Fiecare conflict este rezolvat de o regulă pe care o poți citi sau trecut pe listă ca să decizi tu, iar rezultatul trece prin Vehicle Pack Validator înainte de descărcare.
Această unealtă și notele ei sunt deocamdată în engleză.
Acest instrument este oprit pentru mentenanță
L-am oprit pentru puțin timp. Restul site-ului funcționează normal, iar instrumentul revine singur.
How to use it
Drop the folder that holds your car resources (the [vehicles] folder, or whatever you called it), a handful of resource folders at once, or their zips. You get back a fivemad_vehicles folder and afivemad_weapons folder, each with one stream/, one data/ of merged metas, a correct fxmanifest.lua and a README carrying the same report you see on the page. Everything runs in your browser and no file is uploaded anywhere.
When you install it, remove the originals from server.cfg. Leaving them running means every model name, handling id and mod kit in the merged resource is defined twice, which is exactly the problem the merge was supposed to solve.
Read this before you merge
One big resource is a tidiness win, not a performance one. The game streams per model, not per resource, so a player's memory use is the same either way. What changes is how you run the server:
- One switch for everything.
ensurerestarts the whole folder. You cannot stop one car any more. - Adding one car re-hashes all of them. The server SHA-1s every file in a resource's
stream/when the file list changes. With one car per resource that is one car's worth of hashing; with 500 cars in one resource it is all 500. - One broken meta takes every car down. The game's XML parser fails the whole file, not the bad entry, so a single stray character in the merged
vehicles.metamakes all of them disappear at once. That is why the output is run through the Vehicle Pack Validator here before you can download it. - Changing one meta re-ships all of them. Metas live in the resource's packfile, so editing one line makes every connected player re-download the packfile holding every car's metas. Stream files are cached per file and are not affected.
- Updating a pack means merging again. Keep the original folders.
The honest reason to do it: fewer folders, one ensure line, one set of ids you control, and the id clashes below found and fixed instead of silently breaking three other cars.
What collides, and the rule for each
Mod kit ids
This is the classic one. A kit is found by its kitName, but the game stores kits in one table addressed by the <id value> inside the kit, so two kits on one id are one kit: the parts of the loser stream perfectly and no tuning menu ever lists them, with nothing in any console to tell you. Every kit gets an id nothing else uses, the number in front of the name is brought back in line with it, and everycarvariations entry that asked for the old name is rewritten in the same pass.
FiveM widens the game's 1024 entry kit table to 65,536 entries, so a merged pack has room. Renumbered kits start at 1000 by default, because the base game's own carcols fills ids up to 999: 135 is Rockstar's135_prototipo_modkit and plenty of packs in the wild sit right on top of it. Id 0 is the engine default and 65535 is the "no kit" sentinel, so neither is handed out. Note that a pack renumbered above 1023 is a FiveM pack: plain GTA V overflows past that.
Siren and light settings
Tighter than mod kits by a long way. sirenSettings is an eight bit field: an id above 255 wraps and takes over whatever owns the remainder, and 0 and 255 are reserved, so there are 254 siren settings in the whole game and no server side way to raise it. lightSettings is the same family, 1 to 255, with no limit adjuster in existence at all.
So two things happen here. A block that is identical to one another pack already brought is pointed at the one that exists instead of taking a new id, which is what a light setting is for and what keeps a big emergency pack inside the range. Anything that still needs its own id gets a free one and the cars that used it are rewritten. If the range runs out you are told, plainly, rather than handed a file where ids wrap.
One limit is stated rather than solved: the base game's own <Lights> ids have never been published anywhere, so light ids are kept apart from each other and from the ones your cars ask for, but a clash with a Rockstar light setting cannot be checked. The base game's kit and siren ids are known and are avoided.
Handling ids
Two packs defining the same handlingName with different numbers both keep their numbers: the second is renamed and the handlingId of its own cars is pointed at the new name. Names are cut to fit the 14 characters the game stores.
There is one case where renaming would be wrong. A pack that defines a handling id belonging to a Rockstar car (ADDER, POLICE) is deliberately retuning that car, and the vehicle asking for the name is one you cannot edit, so a renamed entry would just sit there with nothing behind it. Two packs doing that to the same car is a decision, not something a rule can settle: one is kept and you are told. Worth knowing:handling is last loaded wins in FiveM, so before the merge the pack whose resource started last was the one you were actually driving.
Vehicle model names
A model name is the spawn name, so only one can exist. One copy is kept, with its models, and the other is listed for you: if they are really two different cars, rename one in its own pack and merge again. Note the asymmetry that makes this confusing in the wild: vehicles.meta is first registration wins while handling is last wins, which is how you end up with one car wearing another car's physics.
A pack that defines a base game model name is left exactly as it is and reported. That is a replace pack: it overwrites a Rockstar car for every player and every traffic spawn, which may be what its author intended, but it is worth knowing before you fold it into an add-on pack.
Files with the same name
Every file ends up in one flat stream/, which is the only way a name clash is visible at all. Inside one resource the server keys streamed files on the bare file name and the first one it happens to read wins, with no message and no sorting, so which of two same-named files survives depends on the filesystem and can differ between your test box and the server. Across two resources the last one registered wins, and the only output is a debug print nobody sees.
Three rules, in order:
- Byte for byte the same file is written once. Two packs converted from the same base often ship an identical
vehshare.ytd. - A tuning part with no texture dictionary of its own is renamed, and the
<modelName>in its own mod kit is rewritten to match, so both parts survive. - Anything else keeps the first copy and says so. A part that ships its own
.ytdis not renamed on purpose: the texture dictionary name lives inside the model file, so renaming the pair would leave the part untextured. Rename it in one of the packs instead.
The output folder is always stream/ in lower case. The server only reads that exact spelling, so a resource with a Stream/ folder works on a Windows test box and streams nothing on a Linux host. If one of your inputs has that, the merge fixes it and tells you.
Weapons
A weapon name is a hash that every script, loadout and inventory config on the server already uses, so it is never renamed. Two packs shipping the same WEAPON_ name keep one and you are told which: which one the game would pick is genuinely not knowable, because FiveM unloads and re-mounts every weapon info file during startup, so even "load order" is not the same on join as it is after a restart.
The merge that actually matters on this side is quieter.Every single weapon pack writes into the Default block of weaponanimations.meta, and a second Default block replaces the first rather than adding to it. So those blocks are merged entry by entry: one Default, one FirstPerson, one of each set, with every pack's weapon inside. Without that, the last pack merged is the only one with animations.pedpersonality.meta is merged three levels deep for the same reason, and the whole thing goes into exactly one weaponanimations.meta, because FiveM only loads the last of several on a fresh join.
The weapon wheel order lists are also renumbered. The game sorts the wheel by OrderNumber, not by position in the file, and every add-on template hardcodes the same number, so merged packs regularly end up with several slots claiming one and a wheel order that changes between restarts.
Text entries
The AddTextEntry lines out of every resource's own scripts are collected into oneclient.lua. A key two packs give different words to keeps the first and is reported.dlctext.meta is left out because FiveM refuses to load that file type at all, and a.gxt2 string table cannot come across either, so if a car shows a raw label that is where its name used to live.
What it does not merge
- An asset protected resource (one with a
.fxap). Its metas are encrypted for everything except the FiveM client, so no tool can read them. It is named and left alone. - Scripts. Only the
AddTextEntrylines are taken. A resource that ships a real script with its car or gun is reported: keep that resource for the script, or port it yourself. - Engine sounds are carried, not merged. A
.dat151.relis compiled binary. The files come across under names that do not clash and theirdata_filelines are rewritten, but they stay N banks, so the roughly 190 bank ceiling where add-on audio goes silent is unchanged. The sound names inside two packs' files cannot be read here, so if two packs used the same engine name one still loses. - Map resources. A
_manifest.ymflists the ymaps of the resource it sits in and two of them cannot be joined. A resource with ymaps is better left where it is. .rarand.7zcannot be opened in a browser. Unpack them first and drop the folders.- A
.rpfis a game archive, not a resource. Run it through the Mod Converter first.
The Limits tab
After a merge you get a panel of the caps that really exist, with the count this pack puts against each one.Merging moves exactly one of them: each weapons.meta mounted is one of 512CWeaponInfoBlob slots, so N files becoming one buys back N minus one. Everything else on that panel counts entries rather than files and is the same number whether your cars live in one resource or a hundred: streamed assets against 65,535 per streamer, weapon archetypes and components against 2,048 each, pickup types against the 125 the base game leaves free, and the siren and light ranges above.
Two things people repeat that are not limits: the 16 MB asset "limit" is the lowest of four warning thresholds and blocks nothing, and there is no resource count cap anywhere in FiveM. A custom gameconfig.xml is not needed for add-on cars either: the ones on the mod sites set the vehicle slot count lower than FiveM already ships.
Limits of the tool itself
- It does not open the models. A broken mesh or a wrong embedded texture is not something it can see.
- Which copy wins a duplicate weapon, component, pickup or ammo name is not knowable, so it is reported rather than guessed at. The same is true for duplicate
vehiclelayoutslayout names. - A pack's own
<Colors>table in carcols is dropped after the first. A resource cannot add colours to the game at all, and unioning them would move the indices every carvariations entry counts on. - Big drops are read in memory, so a multi gigabyte set of packs is better merged in two halves.
- The sample is made up: invented names, placeholder model files, no game or author data.
Mai multe unelte config & cod
Clothing Designer
Deschizi un .ydd sau .ydr de haine cu fișierele lui .ytd, pictezi în 3D sau pe layoutul UV cu layere, text și imagini, apoi exporți texturi .ytd noi.
YMAP Builder
Pui props după coordonate și primești un XML .ymap valid, cu rotații, extents și distanțe LOD corecte.
Creator de Zone
Desenează o zonă pe harta reală din GTA V, în 2D sau 3D, și copiaz-o ca ox_lib, PolyZone, ox_target sau qb-target.
