This post describes how to change your main characters' positions, using a hex editor to alter information stored in a file in the saved game folder.

Primarily, this would be useful for cases where both characters have jumped through a wall, where a section of a BF dungeon is inaccessible, or when NPCs have wandered into areas you can not get to (ie get sealed inside the parcours in the citadel when you complete that quest).

There may be easier fixes, depending on the situation.
If one character gets through a wall, they can be restored to the play area by having the other character go up/down some stairs (or a hatch, etc.), or enter and exit the BF.
There can be a slight gap at the north west outside corner of two joining walls. For example, there is a skeleton archer north west of the wall surrounding the cursed abbey that can attack you when you are inside the wall. You may be able to use this to your advantage to get into inaccessible places by tossing a teleporter stone through such a gap.



Please read this post through before attempting, and make sure you follow the steps below carefully.


You will need a hex editor for this, such as the freeware programs Frhed, XVI32 or those listed here or reviewed on this site.
I use Hackman; the latest 8.x release on the homepage introduces a low file size limit in the freeware version, making it unusable for this purpose. It is still possible to find the previous 7.x release, though; check here, or search Google for "hack704.zip" or "hack702.zip", etc.



exclamation Warning exclamation
  • A mistake, typo or out-of-range value when editing the data file can cause the game to either crash to desktop or completely lock up, forcing a re-boot. Make a backup before hex editing anything.
  • The data.000 file basically defines your characters (stats, skills, experience points etc.) and keeps track of all NPC locations and status, in addition to storing your own locations. Without a valid, working data.000 file, the saved game will be useless.

If you use this technique to explore, it could be handy to take both teleporter stones with you, in the acts that you have them. If you end up in a place you shouldn't be, you may be able to toss a teleporter somewhere and teleport out. In some cases, it may not make sense to carry both, or it may not be possible.


Procedure

1) Save the game under a new name before attempting this, or make a copy of the saved game folder. It couldn't hurt to also make a backup of the data.000 file in the newly saved/copied game folder.

2) Browse to the saved game folder you wish to modify '..\Beyond Divinity\savegames\NameOfSave', and open the data.000 file in a hex editor.



[*] the Hero's location

3) Search for the text string AgentsV (ASCII mode search).

4) A little below this will be the text string Start Agent Save. In some hex editors, if you click on a character on the text side, the corresponding hex value will be highlighted as well. If that does not work, you should be able to select the text, to have the hex value(s) selected as well. Click on the 'a' in Save, then concentrate on the hex side.

5) Immediately below that 'a' (hex value '61') the character coordinates begin. The first two bytes, 40 2B, show the horizontal (east-west) position of your character, then a constant 00 00, followed by two bytes, B0 92, showing the vertical (north-south) position.
  • The origin of the coordinate system used by the game is in the north west corner of the map, with the Y axis (vertical) being positive downwards. Increasing the value of the X coordinate (horizontal) will move your character to the east, while increasing the Y coordinate (vertical) will move south.
  • In each two byte pair of data, the second byte has a much greater effect on position than the first. This allows the game to store exact character positions, but if you are just trying get past a wall, etc. you may not need the worry about the first byte at all.
    Changing the second byte by 1 (ie 19 to 1A or 2D to 2C) will move the character about two and a half times their height, as will changing the first byte over its full range, from 00 to FF.

6) The coordinates are repeated further down in the file, where a value that indicates which map you are on is also included. In Hackman click on the arrow button at the bottom of the scroll bar to move down the file one 'page' at a time; don't try to drag the scroll bar or click below it, you will go past the spot you need.

A page or two below the first set of coordinates there will be two lines of FF. The first line may be a full row or a little less, the second will be a little more than a full row, so the ends overlap. From the second line, starting 2 rows below the first FF, the coordinates are repeated, followed by a constant 00 00 and then the map indicator 00. A map indicator of 00 is the main game; 01 is the BF. In most cases you will not need to change this value.



[*] the DK's location

7) Search for the hex string 48 65 72 6F 30 00 0D, which looks like 'Hero0' followed by a space and box symbol. You should be able to type 'Hero0' as text into the search dialog, then switch to hex to add the last 2 bytes.

8) From there search backwards for the first text instance of Start Agent Save, which should be about 5 'pages' above the 'Hero0' term.

9) At this point the DK's location coordinates follow the exact same pattern as the hero's coordinates, described above.


10) After making the required changes to both instances of the coordinates for each character you wish to move, save and close the file. You do not have to shut down the hex editor if you want to play around with this, but you should close the file so the editor and game are not trying to access the file at the same time.

11) Start Beyond Divinity (if required) and load (or re-load) the game. If all went according to plan, you should now be somewhere else, hopefully where you were aiming. wink


The screenshots below should make this procedure a little clearer. The coordinates are those from the very start of the game.












A couple locations;



[*] Act 1

X = E0 57 ; Y = B0 C3 ; map 00 - inside the parcours, a little west of the entrance, in case an NPC you need to talk to wanders in and gets trapped.



[*] Act 2

X = 80 29 ; Y = 10 AB ; map 00 - at the start of the mushroom cave in the fire forest. In an earlier version, if you found some ingredients before talking to the alchemist and moved them in your inventory, it could trigger a quest log update prematurely, preventing the cut scene that opens the mushroom cave.

X = 40 67 ; Y = F0 93 ; map 00 - at the start of the cursed abbey. In an unpatched game, if you left the imp village by trying to enter the BF, was summoned and sent to the cursed abbey, then entered and exited the BF again, you would be returned to the imp village rather than the abbey. While there were no serious consequences, this would result in missing experience, teachers and an item that can permanently boost the mana of one character.

Last edited by Raze; 30/06/18 10:15 AM. Reason: fix links