Weapons Meta Merger is a carefully modded tool allowing players to customize and merge weapon configurations smoothly.

This efficient solution will enable users to easily adjust weapon stats, refine attributes, and create unique load-outs custom to their in-game preferences.

Gamer can control their armory using the Weapons Meta Merger, ensuring a more personalized and attractive experience.

What this script does?

TLDR: Merge all vanilla `weapon*.meta` and `pickups.meta` into a single file. Merged files are included.

Crawl list of all DLCs from latest `dlclist.xml`

Crawl list of all DLC patches from latest `extratitleupdatedata.meta`

Scan for all content.xml and weapons.meta, pickups.meta files in all DLC archives
+ Other filetypes can be adapted by writing a new parser in `./resources/parser.py`

Merge all vanilla `weapon*.meta` files and export to `outputs/merged/update/update.rpf/common/data/ai/weapons.meta`

Merge all vanilla `pickups.meta` files and export to `outputs/merged/update/update.rpf/common/data/pickups.meta`

Patch `content.xml` in every processed DLC to deactivate the loading of old weapons.meta and pickups.meta and export them to `./outputs/merged/update/update.rpf/dlc_patch`

Export documents on the list of DLCs and weapons/ammos/pickups by DLC.

Requirements

GTA V weapons mods require tampering `weapon*.meta` and `pickups.meta` in every individual DLCs and their patches.

This means changes need to be made across multiple DLC archives, whichs makes modding extremely vulnerable to manual errors and costs huge amount of cloned/modded archives.

By merging them all to a single file/a few files, edits can be made in one place. Thus, less error and less wasted space.

This also makes patching multiple weapon mods together easier.

Installation

For end-users (who do not necessarily need this mod): Copy everything in `./composed/merged/update/update.rpf` to `GTA V/mods/update/update.rpf. ‘
+ This does not make any changes to vanilla weapons in-game.

Developers

Install miniconda.

With installed conda, create environment from terminal `conda env create -f environment.yaml`

Activate environment: `conda activate weapon-merger`

Extract `weapons-pickups-meta-backup-1.70.7z` to the current folder (same level as this file).

Open `./main.ipynb` and run everything in one go. Merged files will be exported to `./outputs/merged`

Patch for LCPP

Copy `./composed/patch-lcpp/update/update.rpf/dlc_patch/mpheist4/content.xml` to `GTA V/mods/update/update.rpf/dlc_patch/mpheist4`

Uninstall

Extract `weapons-pickups-meta-uninstall-1.70.7z` to the current folder (same level as this file).

Open the `./composed/uninstall-content-dlcpatch.yaml`
This is the instruction to handle `content.xml` in each `dlc_patch`

Copy everything in `./uninstall/update/update.rpf` to `GTA V/mods/update/update.rpf`
+ These should have reverted the DLCs under `to-patch` in `./composed/uninstall-content-dlcpatch.yaml`

For the remaining DLCs, i.e. under `to-delete` in `./composed/uninstall-content-dlcpatch.yaml`, you can safely delete the `content.xml` file manually.
+ Originally, these files did not exist in the vanilla version.