HD Reworked Project - 2-in-1 (like "Shampoo & Body Wash") Merging Guide

+

Guest 3841499

Guest
HD Reworked Project - 2-in-1 (like "Shampoo & Body Wash") Merging Guide

I've had too many people asking me how to get it done - how to merge HDRP correctly. Here it is. Since I am the "Legendary Cook" and such titles come with heavy burdens, such as making this guide just to get "Wall of text, man.., not reading this..." comments. I decided to... possibly... ease that burden for myself and maybe a few others by making this 2-in-1 guide that lists:
- Steps for knowledgeable cooks who don't need all the sub-steps to understand the process, only need to know what to do, not how to do it
- Steps for less knowledgeable cooks who at least know the difference between unpacking/packing, uncooking/cooking, importing, and have or know where to get the necessary tools

For ALL Cooks: A mod is only truly merge-friendly if it has absolutely 0 XBM conflicts with all and every mod on the merge-list, regardless of priority! I experimented with Mod Merger more than any sane person would and quite often (but not always), something like merging a correctly-cooked modded 1K texture with conflicting, yet also correctly-cooked modded texture upscaled to 4K resulted in a bunch of "...cannot find x at mip x..." errors. That error means the entire texture was corrupt during merging process, neither modded texture would appear in the game, only vanilla. To have truly merge-friendly HDRP5 mods with 100% certainty, there should not be a single XBM conflict between them and any other mod/mods, even if HDRP5 merge-friendly mods have the highest priority. To have 100% error-free merge-friendly compilation of mods with 100% certainty, there should not be a single XBM conflict between ANY mods. If XBM conflicts exist - uncook conflicting mods, merge manually, recook conflicting mods. Always save Mod Merger log, always open it, search for "fail", not "error" (without " "). The only acceptable "fail" entry is the one related to cook.db and it has no negative impact. HDRP5 must be divided into several sub-mods (at least 3) to be merge-friendly. Although this guide uses HDRP5 as an example, it can very much be utilized to re-cook other uncookable/incorrectly cooked mods. As (Ha!, more like "IF") you go through steps, you will also see why I also advice to have the whole game uncooked or have access to someone who can provide certain uncooked vanilla files.

For knowledgeable cooks:
1. Unpack HDRP5, repack only W2MESH, BUFFER, W2MG, W2MI, and W2P files, delete 0KB texture.cache file, do not repack .TEXARRAY extension files and bundle XBM files, pack as a separate standalone mod (<-- prevents Mesh CRC Header corruption error during merging)
2. Uncook what HDRP5 lets you before you get the OUT OF MEMORY error, preserve only .TEXARRAY extension files, and only full healthy XBM files that come with TGA files, delete all TGA files
3. Unpack HDRP5, delete all file types that were packed in step 1 and all bundle XBM files for full healthy XBM files you preserved in step 2, repack remaining bundle XBM files
4. Delete original HDRP5 bundle and buffer files, but keep original texture.cache, copy/paste bundle file from step 3 into HDRP5 content folder, uncook again to get the rest of (non-DDS) healthy textures
5. Create a fake mod with all and only SRT files for abies, and creeper trees, use resulting bundle with original HDRP5 texture.cache, uncook to get DDS tree files
6. Cook HDRP5 red brick TEXARRAY textures with .TEXARRAY extension files (both in Uncooked folder) as a standalone mod (<-- prevents OUT OF MEMORY error during merging/uncooking)
7. Cook remaining HDRP5 XBM textures as as standalone mod
8. Placing DDS tree textures in Uncooked folder along with all abies, creeper SRT files, and all remaining non-HDRP5 vanilla abies, creeper DDS textures (exclude creeper mesh hedera), then cook as a standalone mod (<-- prevents DDS texture files from not-merging)
9. Verify all 4 HDRP5 mods have 0 conflicts in Mod Merger, merge, open log, look for "fail", aside from cook.db, there should be none

Notes:
- Going or reading through "For less knowledgeable cooks" steps may actually help you get all of the above done quicker as it not only explains what to do, but how to do it faster
- For step 8 vanilla DDS files, the full game must be uncooked somewhere, although using W3Edit/WolvenKit should be enough to get all SRT files to uncook, then cook a fully merge-friendly HDRP5 tree DDS mod with (as far as I remember...) only benign "couldn't find xxxxx.DDS file" errors during merging
- Steps 7 and 8 could be combined into 1 single standalone mod and I only listed them separately to explain differences between XBM and DDS cooking
- To get healthy pinus DDS texture files, you can use Ninja Ripper, rip when Player is standing next to pine trees (with original uncookable HDRP5 mod installed), go through a ton of ripped DDS files to find all the pinus textures, open them (preferably in GIMP as it auto-decodes YCoCg/AExp images), save/export as DDS with DXTA5 interpolated alpha compression, generate MipMaps (<-- also prevents shimmering of tree textures), cook correctly as directed in step 8, but you have to know what vanilla pinus DDS textures look like and for that you need the game uncooked or have someone show/send the textures...
- Using TextureCache Parser/Reader is another way of getting all the textures (aside from any pinus), but you have open each texture file, save non-tree's as TGA's (mesh hedera is also TGA), import with correct texture type (Diffuse, NormalmapGloss, Specular, Particle, etc.), re-save DDS just to generate MipMaps, etc. - takes way longer


For less knowledgeable cooks:
You obviously need all the right tools and know how to use them - latest QuickBMS, W3Oven, performance-patched ModKit 1.3, W3Edit/W3Oven, TextureCache Parser/Reader, and to make the whole process much faster and easier, download Everything - https://www.voidtools.com/ . It has Advanced Copy function (under Edit) that lets you copy/paste selected files/file types with appropriate directories already created for those files/file types (use *.extension, like *.XBM, *.TGA, etc.). It's easy to learn how to use it. It is best to have the whole game uncooked, but not necessary. If one day you wish to become a "Legendary Cook", perform the optional * steps :D.

Step 0 - File structure:
- create 6 folders - Cooked, CookedX, Modded, Uncooked, UncookedX, PathToLegendary, and backup original version of modHDRP5 somewhere

Step 1 - Meshes, mesh buffers, and FX: (<-- prevents Mesh CRC Header corruption error during merging)
- Unpack HDRP5 bundle and buffers into CookedX and Cooked folders (identical files in both folders)
- Point Everything to Cooked folder, discard all files with .XBM and .TEXARRAY extensions
- Pack with W3Oven, name modHDRP5MeshesFX, delete 0KB texture.cache file if one is created
- Remove all files from Cooked folder, preserve all files in CookedX folder

Step 2- Brick TEXARRAY textures: (<-- prevents OUT OF MEMORY error during merging/uncooking)
- Uncook HDRP5 into UncookedX folder (it fails to do so completely)
- Point Everything to UncookedX folder, search for files with .TGA extension, delete them all
- Search for *red_brick.TEXARRAY*, use Advanced Copy on .XBM and .TEXARRAY extension files, paste files into Uncooked folder
- Cook with W3Oven as a standalone modHDRP5TexBricks, remove all files from Cooked, Uncooked, and UncookedX folders
* Uncook what you cooked into PathToLegendary folder, save W3Oven log, search for "fail", aside from cook.db, there should be none, delete all files in PathToLegendary folder

Step 3 - All other non-DDS textures:
- Point Everything to CookedX folder (should still have all the files you unpacked in Step 1)
- Search for *red_brick.texarray* .XBM and .TEXARRAY extension files, delete them all
- Copy/paste remaining files from CookedFX folder into Cooked folder, pack with W3Oven, name modX, delete 0KB texture.cache all files in Cooked folder
- Copy/paste/overwrite modHDRP5 bundle and buffers with modX bundle and buffers
- Uncook modified modHDRP5 with bundle from modX into UncookedX folder and this time there should be no OUT OF MEMORY errors and all non-red_brick.TEXARRAY textures should be healthy
- Point Everything to UncookedX folder, search for .TGA extension files, delete them all, search for .XBM extension files, select all, use Advanced Copy to paste them into Uncooked folder
- Cook with W3Oven as a standalone modHDRP5TexOther, delete any files left in Cooked, Uncooked, CookedX, UncookedX folders
* Uncook what you cooked into PathToLegendary folder, save W3Oven log, search for "fail", aside from cook.db, there should be none, delete all files in PathToLegendary folder

Step 4 - DDS textures (<-- prevents DDS texture files from not-merging)
- Use W3Edit/WolvenKit to create a fake mod with all SRT and only SRT files for "environment\vegetation\trees" creeper and abies directories (avoid mesh hedera entirely)
- Just like in step 3, copy/paste/overwrite modHDRP5 bundle with the bundle from the fake mod you just created, uncook into Uncooked folder
- With modded HDRP5 DDS textures and all SRT files for creeper and abies in Uncooked folder, you can recook with W3Oven a semi-error-free modHDRPDDS (benign errors will occur)
* With modded HDRP5 DDS textures, remaining vanilla DDS textures (from fully uncooked game), and all SRT files for creeper and abies in Uncooked folder, you can recook with W3Oven an error-free modHDRPDDSLegendary
* Uncook what you cooked into PathToLegendary folder, save W3Oven log, search for "fail", aside from cook.db, there should be none, delete all files in PathToLegendary folder


Notes:
- Steps 3 and 4 could be combined into 1 single standalone mod and I only listed them separately to explain differences between XBM and DDS cooking
- To get healthy pinus DDS texture files, you can use Ninja Ripper, rip when Player is standing next to pine trees (with original uncookable HDRP5 mod installed), go through a ton of ripped DDS files to find all the pinus textures, open them (preferably in GIMP as it auto-decodes YCoCg/AExp images), save/export as DDS with DXTA5 interpolated alpha compression, generate MipMaps (<-- also prevents shimmering of tree textures), cook correctly as directed in step 8, but you have to know what vanilla pinus DDS textures look like and for that you need the game uncooked or have someone show/send the textures...
- Using TextureCache Parser/Reader is another way of getting all the textures (aside from any pinus), but you have open each texture file, save non-tree's as TGA's (mesh hedera is also TGA), import with correct texture type (Diffuse, NormalmapGloss, Specular, Particle, etc.), re-save DDS just to generate MipMaps, etc. - takes way longer



I really hope people who know and appreciate art see this thread... and see that in this cruel world - love... - like love from beautiful art work, can sometimes come with pain.., at least for those who need love from many sources of all kinds of art, and.., in a loving way.., need to make all that art to be in harmony with all of its pieces.., to work as one.., to be as one.., to merge as one... You have the power to alleviate that pain and turn it into more love.., true love.., pure love.., , the type of love you give to your art, and your textures... And what does pure love do? It brings joy.., it flows.., and it merges, yes, merges with our souls... I really wish there was more of such love around...

 
Last edited by a moderator:
Wow... It's very helpful article.

It is helpful to merge HDRP but also moderator can make merge-friendly mod or no need to be merged mod. It is much better to understand the article if there is a video, but it is already perfect.

Thank you for sharing your wonderful knowledge.
 
Top Bottom