If you do not already have a hex editor, check out the freeware program
XVI32 or one of those
listed here.
<img src="/ubbthreads/images/graemlins/exclamation.gif" alt="" />
Warning <img src="/ubbthreads/images/graemlins/exclamation.gif" alt="" />
[*] This information is the result of playing, not rigorous and thorough testing. It works in various situations that I have tried (exceptions noted below), though may not with different patch combinations or changes made after the (now current) 1.44
patch.
[*] Either make a
[color:"yellow"]copy[/color] of the saved game folder you are going to edit or
[color:"yellow"]backup[/color] the file first. Doing both would not be overcautious. An out of range value will probably just be ignored, but editing the wrong spot may cause problems. The saved game format includes redundant information to help prevent bug fixes or game changes making saves unusable, so the chance of serious problems is slightly mitigated.
[*] Side effects from using this procedure are similar to placebo, and include boring gameplay, dry mouth, no challenge, headaches, ridicule and exploding computers.
[color:"yellow"]Gold;[/color]
Not that this is required with the latest patches, but you can give yourself gold by hex editing the
inv.b0 file. Search for the hex values below; there will be one instance for each pile of gold in that character's inventory, with the 2 byte amount of gold immediately before this.
Hero;
[color:"orange"]04 00 01 00 00 00 00 00 00 00 00 00 00 00[/color]
Death Knight;
[color:"orange"]04 00 01 00 01 00 00 00 00 00 00 00 00 00[/color]
I didn't check the minimum number of zeros you need to make sure you find the right spot, since that might depend on what else you have in your inventory. If you check how much gold you have in the save first and convert it to hex, you can confirm you are at the right spot. Also, if you have one pile of gold (per character) and an abbreviated search term brings up one instance, you have the right spot.
Each pile in Beyond Divinity is limited to 50,000 (or [color:"orange"]C3 50[/color] in hex). However you can edit the amount higher than that ([color:"orange"]FF FF[/color] = 65,535). BD will divide the stack up whenever you update the amount of gold that character has (by adding more, etc).
If you want to do this repeatedly, edit a stack of gold in each character's inventory, load the game, drop 15534 (or so) from both, leaving a pile of 50k and a single gold piece, save the game, repeat.
[color:"#23D478"]Unused Stat Points;[/color]
Hex edit the
data.000 file and search for the text string [color:"orange"]PartyV[/color] (there should only be one instance). Assuming your hex editor lists 16 bytes a row, then (in act 1) the hero's unused stat points are 8 rows below the 'a' and the Death Knight's are 8 rows below the 'V'.
When you convert the decimal value of the points you want to give yourself into hex, the last byte (pair of numbers) gets listed first in the data file, etc. This doesn't matter if you will be using [color:"orange"]FF[/color] (255), [color:"orange"]FF FF[/color] (65535) or [color:"orange"]FF FF FF[/color] (16777215).
For example, say you wanted 500 stat points, which in hex is [color:"orange"]01 F4[/color]. In the data file, this would be listed in reverse order as [color:"orange"]F4 01 00[/color].
Note: The relative positions for the stats change if you have a summoning doll active. There is likely a more reliable method to determine the proper stat location in this case, but I have not taken the time to figure that out.
Note 2: Each act the positions of the unused stat points are shifted down 3 rows and to the right 4 bytes.
Consider the text string [color:"orange"]PartyV1.0 16-03-[/color] as a reference.
Hero's stats;
Act 1 - 8 rows down from 'a'
Act 2 - 11 rows down from 'V'
Act 3 - 14 rows down from ' ' (space after 1.0)
Act 4 - 17 rows down from '0' in "03"
DK's stats;
Act 1 - 8 rows down from 'V'
Act 2 - 11 rows down from ' ' (space after 1.0)
Act 3 - 14 rows down from '0' in "03"
Act 4 - 18 rows down from 'a'
Note 3: With games started under version 1.42 (at least, maybe 1.40/1.41 also), there is also a second location where the free stat points have to be changed. In games started in an earlier version and then saved under 1.4x, this may not be necessary.
Search for the hex string [color:"orange"]48 65 72 6F 30 00 05[/color], which looks like 'Hero0' followed by a space and box symbol. There should be a couple instances of this, with one followed by
00 00 00 and another 'Hero' string. Just above the first Hero is the hex constant
FF FF FF FF, immediately followed by the hero's unused stat points, which must match what you changed previously.
Next, search for the hex string [color:"orange"]48 65 72 6F 30 00 0D[/color], which as above looks like 'Hero0' followed by a space and box symbol, but the last byte is different. There should only be one instance of this, followed by
00 00 00 and the string 'Death_Knight'. Again, just above 'Hero' is the hex constant
FF FF FF FF, immediately followed by the DK's unused stat points.
[color:"#23D478"]Skill and Experience Points[/color]
Hex edit the
data.000 file, and search for the hex series;
[color:"orange"]44 65 61 74 68 6B 6E 69 67 68 74 00 23[/color]
You can enter most of this in text, then add the [color:"orange"]00 23[/color] in hex; the first part is "Deathknight" and the next two symbols look like (but are not) a space and '#' sign, ie
[color:"#8CADFF"]Deathknight #[/color]
There will be several instances of this. Keep searching until you find the last one (there will be no 'Red' or 'Black' in front of it, and it should have a block of square and other symbols in the 2 rows above it.
The Death Knight's experience points are listed 6 rows up from the first 'h', and the skill points are 6 rows up from the '#' symbol.
From here search backwards in the data.000 file for the first instance of the hex series;
[color:"orange"]42 61 73 65 00 23[/color]
This looks like [color:"#8CADFF"]Base #[/color] (you can also just do a text search for 'Base'). The appropriate spot should only be a couple 'pages' above the Death Knight's values (though it will be more if there is a summoning doll active).
The hero's experience points are listed 6 rows above the [color:"orange"]00[/color] (between the 'e' and '#' symbol), and the stat points are 5 rows above the 'B' and 4 bytes to the left.
In both cases, there are 4 bytes for experience, then a constant
00 00 00 00 then 3 bytes for skill points. As with stat points, the hex pairs are listed in reverse order.
You can use [color:"orange"]FF FF FF[/color] for skill points, but even though experience has 4 bytes, you can not use [color:"orange"]FF FF FF FF[/color] (the game listed a 0 value when I tried). You can get to at least level 163 (chosen randomly to check), which is 1443528000 experience points, 560A7D40 in hex, or [color:"orange"]40 7D 0A 56[/color] in the data file.
Gold, stat points and skill points show up immediately. Edited experience points are displayed, but you must kill something or solve a quest to gain experience before the game will update your level.