addons.json
The addons.json file (located in resources\vMenu\config\) is where you tell vMenu about the custom content you've added to your server. It has five sections:
About
The addons.json file (located in resources\vMenu\config\) is where you tell vMenu about the custom content you've added to your server. It has five sections:
vehicles,pedsandweaponsput your addon models into vMenu's addon submenus.weapon_componentsadds your streamed weapon components to the weapons that accept them.extra_blendable_facesnames any custom blendable heads you've installed, so they show up in the MP Character inheritance menu.
This page covers all of them, so it's a long one. Use the On this page menu on the right to jump straight to the bit you need. On smaller screens it sits at the top of the page instead.
Removing sections
In this file you can list all your addon models. If you want to remove all addon models from one of the categories below, simply set that category to []. For example, to remove all models, set each category to the following:
{
"vehicles": [],
"peds": [],
"weapons": []
}Adding models
If you want to add new models, simply add a comma after the last row in a specific category, add a new line below, and just copy the format from the line above, replacing the name with your new name. For example, here I've added 4 more cars, 1 more ped and 5 more weapons:
{
"vehicles": [
"addonvehiclename1",
"addonvehiclename2",
"addonvehiclename3",
"addonvehiclename4",
"addonvehiclename5",
"addonvehiclename6"
],
"peds": [
"addonpedname1",
"addonpedname2",
"addonpedname3"
],
"weapons": [
"addonweaponname1",
"addonweaponname2",
"addonweaponname3",
"addonweaponname4",
"addonweaponname5",
"addonweaponname6",
"addonweaponname7"
],
"weapon_components": [
"weapon_component_name_1",
"weapon_component_name_2"
]
}Weapon components
The weapon_components section is for addon (streamed) weapon components, things like custom scopes, clips and suppressors. You only need it for components you've added yourself, every base game component is already built in to vMenu.
Just list the component names:
{
"weapon_components": [
"COMPONENT_MYRIFLE_SCOPE_01",
"COMPONENT_MYRIFLE_CLIP_02",
"COMPONENT_MYPISTOL_SUPP"
]
}You don't have to say which weapon each component belongs to. vMenu checks every component in this list against every weapon it knows about, base game and addon weapons alike, and each one automatically shows up as a toggle in the menus of the weapons that actually accept it. Components that don't match any weapon simply never appear, so if one of yours doesn't show up, double check that the name matches the one in your weapon's meta files exactly.
Base game components are shown with a proper name like Extended Clip, because the game has a translated label for them. Your addon components don't have one, so they're displayed using the exact name you type here. Bear that in mind when naming them, since COMPONENT_MYRIFLE_SCOPE_01 is what your players will see in the menu.
Blendable faces
The extra_blendable_faces section is used to add custom (streamed) blendable heads to the Parent #1 and Parent #2 lists in the MP Character inheritance menu.
If you've installed an add-on head pack on your server, the heads are already there as far as the game is concerned, but vMenu has no way of knowing what they're called. This section is where you give them names:
{
"extra_blendable_faces": [
"Custom Head 1",
"Custom Head 2",
"Custom Head 3",
"Custom Head 4",
"Custom Head 5"
]
}These entries are labels only. vMenu doesn't check them against anything, so you can name them whatever makes sense for your server.
Order matters
This is the important bit. Each entry is matched to a head by its position in the list, continuing on from where the base game heads stop.
A stock server has 46 blendable parent heads, numbered 0 to 45. So your first entry is head 46, your second is head 47, and so on. If your head pack occupies IDs 46 to 50, the example above is correct, and "Custom Head 1" is head 46.
If your entries are in a different order to the head IDs your pack actually uses, the names in the menu will point at the wrong faces. Adding, removing or reordering entries later shifts everything below them, so keep the list in the same order as your pack.
FiveM supports 92 blendable heads in total, which leaves room for up to 46 add-on heads on top of the base game's 46. Installing more than that can cause heads to load incorrectly or crash the game. Head pack installation itself is handled by the pack's own resource, not by vMenu.
Skin tones
Custom faces show up in the Parent #1 and Parent #2 lists, but deliberately not in the Parent #1 Skin and Parent #2 Skin lists. Skin tones always come from the base game heads.
That's why those are four separate options rather than two. Face shape and skin tone are picked independently, and then blended with the two sliders below them:
- Head Shape Mix blends the face shape between Parent #1 and Parent #2.
- Body Skin Mix blends the skin tone between Parent #1's skin and Parent #2's skin.
So you can give a character a custom head shape while still using a base game skin tone, which is exactly what you want, since a streamed head model doesn't come with its own skin textures. For the underlying game side of this, see the SetPedHeadBlendData native.
Listing the same name twice will log this in the client console, and the duplicate is ignored, which shifts every head below it by one:
[vMenu] [Error] Your addons.json file contains 2 or more entries with the same extra blendable face name! (Custom Head 1) Please remove duplicate lines!Give each face a unique name, even if two heads look similar.
Renaming vehicles
Vehicles cannot be renamed through vMenu. While this would be fairly easy to add, it is not the recommended way to name vehicles, so vMenu intentionally does not include an option for it. The recommended approach is to add vehicle names properly. To properly set a vehicle's name, follow the easy steps below:
-
Go to the
vehicles.metafile for your vehicle, set the<gameName>MODELNAME</gameName>entry to the vehicle model name. Do NOT enter a custom name in there. For example, if my addonvehicle is calledmgtin-game (shows up asmgtin the addons vehicle spawner/you spawn it by typingmgtin the spawn by name function) then set thegameNametomgtin thevehicles.metafile. -
Go to the
fxmanifest.lua(previously__resource.lua) of your vehicle resource, and add a newclient_script, you can name it whatever you want. For now I'll useveh_names.lua, so it should look like this:client_script 'veh_names.lua'. -
Create the file you just listed in the
fxmanifest.lua(previously__resource.lua) in your vehicle resource folder:veh_names.lua. -
In that lua file, paste the following:
Citizen.CreateThread(function() AddTextEntry("MODELNAME", "The Display Name You Want Your Vehicle To Appear As, Enter That Name Here") end) -
Now change the
"MODELNAME"to your vehicle's spawn name (the same name that you set as thegameNamein the vehicles.meta file.) In this case:"mgt". -
Now change the display name. Enter it in the second parameter of the
AddTextEntrycall, in place of the placeholder text. -
The final result should be something like this:
Citizen.CreateThread(function() AddTextEntry("mgt", "Mustang GT") end) -
Do this for every vehicle you have/want to set a custom name for, for example, if I wanted to also do
focusrsandbmwm5. I'd do it like this:Citizen.CreateThread(function() AddTextEntry("mgt", "Mustang GT") AddTextEntry("focusrs", "Focus RS") AddTextEntry("bmwm5", "BMW M5") end)
Default addons.json
{
"vehicles": [
"addonvehiclename1",
"addonvehiclename2"
],
"peds": [
"addonpedname1",
"addonpedname2"
],
"extra_blendable_faces": [],
"weapons": [
"addonweaponname1",
"addonweaponname2"
],
"weapon_components": [
"weapon_component_name_1",
"weapon_component_name_2"
]
}Appreciate my work?
Consider supporting me on Patreon!