Persistent Weapon Blood V1.1

Persistent Weapon Blood 1.0

Have you disappointed with weapons clearing their blood by just switching to another weapon? Or have you disappointed with the fact blood of weapons gets cleared when generated by popping from inventories of pedestreans?
This script/plugin keeps weapon blood and resolves those issues, just like in Left 4 Dead 2 and Dying Light. This mod also restores weapon blood state as is when the player collects some pickup thanks to EasyHook (if you want to know how to hook some of the game code or place detours into it with C# scripts/plugins, you should view the source code below!).
Available as a script for ScriptHookVDotNet and a plugin for RAGE Plugin Hook.

For your information, the weapon blood issues mentioned above are also present in RDR2. I think weapon blood feature deserved more attention by Rockstar Games, but they didn’t add additional space for weapon blood states (so the game restore them when ped switch their weapons) to ped inventory item struct in CPedInventory in both GTA V and RDR2.


This script/plugin tracks blood states (strictly CamoDiffuseTexIdxs values) of weapons and restores when switched to them again.
Trackes for all pedestrians (peds), including the player ped of course.
When peds lose some weapons with variable blood states, this script/plugin drops the states.
Applies the blood states when peds drop their weapons with non-default blood states.
When the player collect weapon pickups with non-default blood states, the blood states will be restored when they switch to the weapons again. Supported for all peds just in case.
When you switched to another character and a new ped is created, this mod can’t track blood states of the weapons they had before.
Supports (at least intended to support) all game versions, at least for ScriptHookVDotNet version (tested in b2845, b2699, and b372).
For RAGE Plugin Hook version, this plugin may not work in some older game versions.
No dedicated support for cracked/pirated game versions.

Install either version, but not both.

For ScriptHookVDotNet Version

Install Script Hook V
Install Script Hook V .NET (v3.6.0 or later required)
Create a “scripts” folder in your GTA V directory if it doesn’t already exist.
Copy PersistentWeapoBlood.dll and EasyHook.dll to the “scripts” folder in your GTA V directory.
For EasyHook.dll, you can put it in the root directory. You must use 2.7.7097.0 (or later version) of EasyHook.dll.

For RAGE Plugin Hook Version

Install RAGEPluginHook
Alternatively LSPDFR contains the latest RAGE Plugin Hook.

Create a “Plugins” folder in your GTA V directory if it doesn’t already exist.
Copy PersistentWeapoBlood.dll to the “Plugins” folder in your GTA V directory.
Copy EasyHook.dll to your root GTA V directory.
You can use 2.7.6578.0 or later version of EasyHook (this plugin intentionally specifies 2.7.6578.1 since LSPDFR uses 2.7.6578.0 version of EasyHook.dll).

This script/plugin itself is highly optimized for both runtimes, but if you don’t mind using either version, I would recommend the ScriptHookVDotNet version. RPH does not seem to continuously improve performance of the runtime (if you doubt it, use a profiler like one of Visual Studio with the source code of this mod for CPU usage) like SHVDN has done. Even without NoScriptThread (this mod use this flag) and in v3.6.0, SHVDN still performs better than RPH.
However, you should note that ScriptHookVDotNet suffers the compatibility issue with any programs that throws C++ exceptions or SEH exceptions (including debuggers) and RAGE Plugin Hook until v3.6.0 (will be solved in v3.7.0). If you have SHVDN v3.6.0 or earlier installed and you use RPH at the same time, RPH may crash the entire game when one of the loaded RPH plugins crashes for a unhandled exception (intended behavior: only the crashed RPH plugin stops executing).

Note For CamoDiffuseTexIdxs
This field is a binary dictionary map data of CWeaponInfo (used in weapons.meta files), which enables to use up to 8 alternative camo diffuse textures. Texture names for this feature must be named as “w_camo_%d” (“%d” will be filled in a number between 1 and 8 inclusive, but the field of weapons.meta takes a number between 0 and 7). Probably materials must also be set up for weapon models.



Download mod

FileFile size
zip Persistent Weapon Blood v1.182 KB

Leave a Reply

Your email address will not be published. Required fields are marked *