Jump to content

Mod Request: Edit Character Appearance after character creation


Nordvahkiin

Recommended Posts

I went down the same rabbit hole, except I was a bit too ambitious. There are 2 separate blocks of binary data for the face and the body (these sections are separated by mantis blades and nano wire as far as I can tell). However, when I tried to import another save's data, the filesize increased by 10 bytes, and that was enough of a change for the game to see the save as corrupt.

 

I know this is only a size/data section size check because when I did not realize changing the data needed those extra 10 bytes and loaded the edited save with the same filesize as the original, the game did not complain and instead just teleported me below the floor and changed my character to default female V. I believe it's a filesize check due to the filesize being avaliable in the json file, but also, it could be a value tied to the size of the face/character customization section. (this makes more programming sense as the game should have to know how to accurately allocate the data from the savefile into memory.)

Edited by huzhekun
Link to comment
Share on other sites

  • Replies 86
  • Created
  • Last Reply

Top Posters In This Topic

Cah

 

 

I found hex values for character customization in the sav.dat - tried to change them but loading the save resulted in an instant crash. I'll just leave these findings here.

Yeah this is a potential workaround. I made two new characters, with different hairstyles, and found the 12 byte array in sav.dat where they differed (after 0x61697273). I then replaced the array in one save with the array from the other, and that save had the updated hairstyle from the other one.

 

Cna you explain us step by step how did you change that?

For started, how did you search 0x61697273 in HxD?

thb8m8X.jpg

I created two identical characters, except for the hairstyles, and then looked at the hex in the two sav.dat's for everywhere that they differed. One such place was right after this highlighted section, and you can see that 0x6861697273 is decoded as ascii characters "hairs" so that was a good hint it was what I was looking for. I then copied the few changed bytes that followed it from one file to the other.
But like I mentioned earlier, I looked at the sav.dat for my playthrough and this byte array wasn't even in it, so your mileage may vary.
Link to comment
Share on other sites

All right, I'm giving it a shot but I'm not very knowledgeable at this so I need some help.

So far I discovered that some if not all of the character customization options are saved near the string "—character_customization" in the save.dat file.

I created 2 saves one with default everything and the second one with red eyes and red hair, this is what changes between them:

7ndbPjY.jpg

For the eyes, it goes from 18_gradient_yellow to 16_gradient_red this one should be easy enough to replace and just work, but what I'm really interested is the hair color.

That one is tricky, it goes from "05ì liquorice" to "11_red_apple", the problem is this weird "ì " in the middle of the original name, I don't know how to edit this.

Also, this isn't the only thing that changes, here is the binary diff just of the hair part:

QcnloZz.jpg

Help anyone?

 

Personally, I'd create a new character with the desired hair color you want, and then look at the hex to see how that color is encoded, then just copy the byte array representing color to your desired file. That's essentially what I did to change hairstyles. Let me know if you need further help!

Link to comment
Share on other sites

I found out that it really doesn't matter the file size that is written in the metadata.9.json file, you can change it to any number that it still works, but you can't really add a single byte more or less to the save.dat file that it gets corrupted. We really need to find out the file structure of that save.dat file, any tips?

Link to comment
Share on other sites

I found out that it really doesn't matter the file size that is written in the metadata.9.json file, you can change it to any number that it still works, but you can't really add a single byte more or less to the save.dat file that it gets corrupted. We really need to find out the file structure of that save.dat file, any tips?

yeah, thats the issue I'm looking for, but the problem is that looking at the save file there is no filesize saved, which tells me that this would be offsets for reading in character customization parameters. with that being said, i feel like previously someone did change 2 diff colors of diff size names and it worked? no idea.

Link to comment
Share on other sites

Does anyone know a tool that compare Hex values but that it is smart enough to tell you that some bytes were just shifted?
For example
01 AB F0 B1 - > 01 FF AB F0 B1
Would detect that I added a FF after the first 01 and mark only this as red (different)

Edited by BlackFirePC
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...