Script that automatically detects and can load add-on vehicles, instead of needing to type the names yourself.
Download the ScriptHookV SDK and extract its contents to ScriptHookV_SDK.
Clone this repository to the same folder ScriptHookV_SDK was extracted so you have ScriptHookV_SDK and GTAVManualTransmission in the same folder. If you get build errors about missing functions, update your natives.h.
Clone my GTAVMenuBase to the same folder you're gonna clone this to.
Add-on vehicles can be grouped into named, menu-visible entries via
AddonSpawner/UserDLC (your own vehicle packs) and AddonSpawner/GameDLC
(temporarily expanding the hard-coded official DLC list ahead of a script
update). See GTAVAddonLoader/GameDLC.md for the
file format and conventions.
Language packs are UTF-8 XML files stored in AddonSpawner/Languages. The
language can be changed immediately from the in-game Settings menu and is saved
as Language in settings_general.ini. The bundled language is English
(en-US).
If a pack or an individual entry cannot be loaded, the affected text falls back to built-in English. Additional languages will not be supported out-of-the-box.
Create another language by copying en-US.xml, then change the language code,
display name and translated values:
<?xml version="1.0" encoding="utf-8"?>
<language code="fr-FR" name="Français">
<text key="menu.main.title">Générateur de véhicules add-on</text>
<text key="menu.main.settings">Paramètres</text>
</language>Language codes are case-sensitive and should use BCP 47 form. Keep every
key unchanged. Unknown keys are ignored, missing or empty entries use the
English fallback, and duplicate keys in one file use the last value. Use XML
entities such as &, <, >, ", and ' for reserved
characters. Dynamic messages contain named placeholders such as {vehicle},
{model}, {count}, {dlc}, {version}, {category}, and {value}; keep
the required placeholders in translated values. Entries with missing or extra
placeholders are rejected and use the English fallback.
Language files are rescanned whenever the menu opens, so new or edited packs
can be used without rebuilding the plugin or restarting the game. If multiple
files declare the same language code, the first valid file in filename order is
used (the bundled en-US pack customizes the built-in English fallback).
It is recommended to generate language packs from en-US.xml, and to use an AI
model to do this task.
When adding new strings:
- Use the template pattern in
ScriptMenu.cpp - Update the corresponding referring English strings in
sEnglishStringsinLanguage.cpp - The post-build script automatically regenerates
en-US.xmlfor consistency.