Mesh swapping
How to replace a mesh in AC Valhalla, by an other existing mesh?
The idea is to find what tells the game to load the mesh, and edit the game data to tell to load an other mesh instead.
The textures being linked with the mesh, no additional edits are requited.
Tools :
- Blacksmith (AC Resources explorer/extractor) : http://t-poses.com/bs/
- HxD (Hex editor) : https://mh-nexus.de/en/hxd/
- Notepad++ (text editor) : https://notepad-plus-plus.org/downloads/
- Forger (patch manager) : https://www.nexusmods.com/assassinscreedodyssey/mods/42
With Blacksmith :
- Identify the LODSelector of the original mesh, and get its file ID. (I will refer this as the old LODSelector.)
- Identify the LODSelector of the mesh that will replace it, and get its file ID. (I will refer this as the new LODSelector.)
- Identify the BuildSelector of the original mesh, and get its file ID. (Sometimes it has the same name, others it doesn't.)
- Identify all the Forges containing that BuildSelector.
With HxD (or another hex editor) :
- Open the .acv file of the new LODSelector. (extracted by Blacksmith)
- Use the search function. Search for an Integer number (unsigned int 64 bits, little endian) using its file ID (new LODSelector).
- Copy somewhere the 8 bytes found, and remove the spaces. (It is the same file ID, but encoded in hexadecimal.)
- Open the .acv file of the BuildSelector.
- Use the search function. Search for an Integer number (unsigned int 64 bits, little endian) using this time the file ID of the old LODSelector.
- Write down all the offsets where you found it. (There should be 2 of them.)
- Repeat for all the copies of the BuildSelector found in the other forges, to make sure the offsets are the same. (Usually it's the case, but there are always exceptions.)
With your favourite text editor :
- Create your .forger2 patch.
- You want it to edit the BuildSelector in all the forges where you found it. (Because the game is susceptible to use any of them.)
"File", is the name of the forge
"Required": false, if the forge doesn't exist in your installation of the game, it tells Forger to ignore the error.
"FileID", put here the file ID of the BuildSelector. (It is the file that will be modified.)
"OffsetHex", is the hexadecimal address where to overwrite the Data. Put here the Offsets where you found the old LODSelector ID in the BuildTable.
"Data", is the bytes to write in the file. Put here the hexadecimal value of the file ID of the new LODSelector.
(Everything put between /* */ will be ignored by Forger. You can use this to add comments in your file, to remember what your patch does.)
With Forger :
- Don't forget to activate your patch ;)
Here is a working example of a .forger2 patch
(It uses a mesh found in the forge dlc_150. So it will only work if it is present.){
"Format": "ForgerPatch2",
"GameEXE": "ACValhalla",
"CollectionTitle": "Modded Cloaks",
"CollectionVersion": 1,
"CollectionID": "TholwinModdedCloaks",
"RequiredProgramVersion": "2.10.0",
"Patches": [
{
"PatchTitle": "Brigandine Cloak - Cover (Mythical)",
"PatchDescription": "Replaces Brigandine's shoulder pads (rank Mythical), by the fur of the DLC Celtic Cloak (rank Epic)",
"PatchID": "TholwinModdedCloaks_Brigandine_Cover",
"PatchVersion": 1,
"Targets": [
/* Replacing the references to the "LODSelector" Cover_Player_Outfit_02_Mythical (ID:1954641273844 = F4E3B219C7010000)
* by the reference of the "LODSelector" Cover_Player_Outfit_Celtic_Epic (ID:2006388963265 = C1F71926D3010000)
* inside the "BuildTable" Cover_Player_Outfit_02_Mythical (ID:1954641273921)
*/
{
"File": "DataPC_SharedGroup_00.forge",
"Required": true, "FileID": 1954641273921,
"Edits":
[
{
"OffsetHex": "2CE",
"Data": "C1F71926D3010000",
},
{
"OffsetHex": "345",
"Data": "C1F71926D3010000",
},
]
},
{
"File": "DataPC_SharedGroup_00_patch_01.forge",
"Required": false,
"FileID": 1954641273921,
"Edits":
[
{
"OffsetHex": "2EE",
"Data": "C1F71926D3010000",
},
{
"OffsetHex": "345",
"Data": "C1F71926D3010000",
},
]
},
{
"File": "dlc_142/DataPC_142_dlc_SharedGroup_00.forge",
"Required": true,
"FileID": 1954641273921,
"Edits":
[
{
"OffsetHex": "2EE",
"Data": "C1F71926D3010000",
},
{
"OffsetHex": "345",
"Data": "C1F71926D3010000",
},
]
},
{
"File": "dlc_150/DataPC_150_dlc.forge",
"Required": true,
"FileID": 1954641273921,
"Edits":
[
{
"OffsetHex": "2EE",
"Data": "C1F71926D3010000",
},
{
"OffsetHex": "345",
"Data": "C1F71926D3010000",
},
]
},
{
"File": "dlc_20/DataPC_ACK_DLC_Ireland.forge",
"Required": false,
"FileID": 1954641273921,
"Edits":
[
{
"OffsetHex": "2EE",
"Data": "C1F71926D3010000"
},
{
"OffsetHex": "345",
"Data": "C1F71926D3010000",
},
]
},
]
},
]
}
4 comments
i have 16gb ram and i-7 processor, dunno what the problem ;(