VRisingTextureReplacer
This is a framework that enables player texture replacement in V Rising single player. Included are a few sample textures.
| Last updated | a day ago |
| Total downloads | 29 |
| Total rating | 0 |
| Categories | Oakveil Update |
| Dependency string | Phnxsmv-VRisingTextureReplacer-1.0.1 |
| Dependants | 0 other packages depend on this package |
README
V Rising Texture Replacer
This is a framework that enables player character texture replacement in V Rising. Included are a few sample textures.
This mod is meant for single player!
The changes are client side only, so they will probably not be visible to other players in multiplayer, unless everyone uses the same replacement textures. Even then, I have not tested this mod in multiplayer, so I cannot guarantee it will work without issues.
Requirements
Installation
- Put the DLL along with the Textures folder, and replacement textures in it, into the BepInEx plugins folder.
- The plugin will create a config file in the BepInEx config folder. This file is meant for toggling info logging of this plugin. The default setting is "false". If you have any issue, set it to "true". Errors and warnings will be logged regardless. The additional info tells you if and what textures have been replaced. The info logging is disabled by default to avoid spamming the log file, but it can be helpful for debugging.
Creating Custom Textures
-
Assets are in VRising\VRising_Data\StreamingAssets\ContentArchives
-
AssetStudio for browsing and finding assets and their archives that contain them
-
AssetRipper for extracting assets. (AssetStudio has issues with extracting normal maps!)
-
UABEA sixth release for replacing assets. The sixth release of UABEA works. The seventh release is unstable, do not use! I have not tested UABEA for extracting assets.
Save any edited texture as PNG. The plugin will convert it to the correct format when loading it, either DXT5 or DXT5 linear depending on the texture type.
Technical details
The plugin works by loading the replacement textures into memory and then patching the game's skinned mesh renderer. The replacements happen when the player changes equipment. I hooked HybridEquipmentSystem because it ticks every frame on the client. I diff the Equipment component because HybridCurrentEquipment (which I suppose registers equipment changes) lives on a separate entity that's not in the player's GameObject map.
Credits
Claude Opus 4.7 Adaptive for helping with the code and providing guidance on how to implement the texture replacement.
License
This project is licensed under the AGPL-3.0 license.