Because of the way the game engine works, using this table is slightly complicated. After loading a game, press
~
(tilde, the key next to the 1 key) to Find Party. The table will try and get the name of the first party member. If it is correct, press Yes to continue. If it is incorrect, press No and enter the name of the first character. Once you do either of these, the table will always use this name to locate the first character until you close the table. If you enter an incorrect name, click Edit > Change Player Name (or Ctrl+N) to change the name you entered (or close and reopen the table).The engine changes the address of the players on many map changes (and possibly some other events). Whenever this happens (the player names will not show correctly), use the tilde key twice to relocate the player. Finding the players and updating their values happens fairly quickly, but Location updates after a short delay. When the table is showing the correct values, you can use it as you would use any other cheat table: edit values that you can see but keep them within the game's limits. Do not edit values for characters that have not joined yet. Do not edit/freeze values while the table shows incorrect data.
IMPORTANT: If you start a brand new game, save it, quit DosBOX, start again, load the save and then launch the table. Also note that if you enter an incorrect name or use some very common word (something in the game's dialogs and descriptions) for the first character's name and no match or an incorrect match is found, the table will still 'open' but will be unusable because all the pointers will be wrong.
ALSO IMPORTANT: 'First character' is always the same, even if you swap slots. It is always the character that was created/imported in the top-left box before starting the game. This is different from the first two games where if you swapped slots, the moved characters would be shown in the new slots.
Throughout the table, -1 usually indicates that data is unavailable/not applicable. E.g., Class 2 and 3 XP will show -1 for single-class characters. Or Spells Learnt will show -1 if that spell is not known to the character.
I myself have not played this series of games so I don't know how well these tables work, and bugs/mistakes are definitely possible. The All-Seeing Eye 3 program is still the best out there to accompany this game, but this table provides a few advantages:
- Finding players and loading data is much faster than ASE3, and is not dependent on which save you loaded.
- Lets you negate poisoned, paralyzed or petrified states. To remove Unconscious or Dead states, simply increase their HP.
- You can freeze all cooldowns at 0 0 0. With this, you can attack continuously even when not hasted. These attacks are even faster than Haste. Or you can spam a continuous stream of fireballs. I have not given a hotkey to freeze cooldowns because it's dangerous to freeze values when the game regularly changes the addresses of the data. You can manually freeze Cooldowns, and unfreeze them before you are about to leave the map (or some other event that causes addresses to change).
- You can enable (and freeze) certain buffs such as Invisibility, Haste, or Negative Plane Protection on characters. I've listed the buffs I've found, but unfortunately I haven't found how/where the game stores some buffs like Bless, Prayer, etc. Also, although I've found certain buffs like Aid, it is useless to set or freeze this because it actually modifies your HP, and its state being active has nothing to do with the HP change. However, unlike the first two games, enabling Armor or Magical Vestment will give you the benefits of those buffs if you are not wearing heavier armor.
- Ctrl+R will Refill HP and Food, and set State to Healthy for all slots where Slot is 0 or higher (i.e., someone is present in that slot). Make sure that correct values are displayed in the table before using this!
- Unlike the other two games, I have not given a hotkey to freeze values for Godmode, noting the same danger described above. You can manually freeze HP, State or Food% as long as you keep track of the changing addresses. Unfreeze them before an event causes the addresses to change, Find Player after the addresses change, and freeze them again.
- Apart from quickly learning all arcane spells (Arcane Spells Learnt), you can also modify how many casts of which spells you have left at which level (Arcane Spells Active). Theoretically you could have 50 magic missiles and 200 fireballs, but I don't recommend going crazy with these numbers. Although using slightly large numbers under Active has not caused the game to crash for me, having too many spells learnt has caused the game to crash when I rest. Under Learnt, -1 means you don't know the spell at all, 0 means you know the spell, and any higher number means how many of that spell you have memorized.
- You can also change the divine spells learnt and active for divine casters. Using this, Paladins could get access to divine spells that they usually don't have access to.
- You can change all equipped and inventory items on the fly, though I'll admit that going through the long list of items is a little tedious. After adding/changing an item, it may or may not be visible in the slot: pick up the invisible item to make it visible.
- Only for Delmair, I've provided the address for Tiger Form. Any non-zero value will change him into a tiger. You could freeze this as you are about to rest and unfreeze it after -- or just manually change the value. Anybody can be transformed into a tiger this way, but they don't get the tiger paws that Delmair does, so it is not useful to do for others.
- Ctrl+P (Edit > Select Portrait) will open a portrait selector so you can choose the image you want if you want to change a character's portrait without having to guess the id. Useful if you want to use some of the new portraits for imported parties. You have to save and reload after changing portraits to see them reflected in the game. I've only included the portraits available at character creation. There may be other portraits present in the game.
- Like ASE3, I've included basic maps of all areas (Ctrl+J or Edit > Jump Across Map). If you know where you want to jump to, you can open the map and click on the tile where you want to be transported. Unlike ASE3, my maps are hard-coded and not read from memory, and this was all done manually so there might be mistakes. Note that after jumping you will have to turn or walk to 'see' the different location in the game. Also, unlike ASE3, if you play with the map beside the DosBOX window, it will not track your movement in real time. You will need to reload the map to show your current position.
- Location (in the table) depicts where in the game you are (which map, X-Y coordinates, facing which direction). If you open the map, I've given the X,Y coordinates (on mouseover) as they are represented in ASE3.
- It is possible to change the map, then save/reload to jump to a different map. However, sometimes this works, at other times it can cause the game to crash. It's safer to use ASE3 to edit your savegame and load that.
- If Location is expanded, you can use IJKLUO to move around the map just like you would with WASDQE, but you will be able to move to anywhere on the 32x32 grid -- through walls, doors, etc. This will not work if Location is not expanded: this was done to prevent accidental triggering of the movement when you are typing save names or in another window. However, if you forget to collapse it after you are done moving, the keys will trigger. Unfortunately, the movement is not 'live' -- just like the map-based movement, you will need to legitimately turn around to update the environment after you have moved, so I suspect most people won't find this useful. Also, going through walls has sometimes caused the game to crash for me (not always). It's safer to walk through unopened doors and stay on legitimate tiles. The keys will not trigger movement if the map is not recognized (e.g., when the game engine changes data addresses).
Important: ALWAYS make sure correct values are displayed in the table before using ANY of its features. I suggest keeping one of the character slots expanded to monitor their Name. Maintain backups of your saves. After making changes in the table, save in a separate slot so you always have your previous save available in case something goes wrong. This table has not been extensively tested and I have already noted some modifications that can cause the game to crash: there could very well be others. Use at your own risk.
---------------------------------------------------
Update: if anyone is interested, Bless and Prayer seem to be stored at offset 1E7BCA from address [CharAdr] as bit values. Bit 2 = Bless and Bit 7 = Prayer. This shows the yellow effects box around the character portraits, but there is no way for me to know whether Bless or Prayer are actually active or if these values only draw the box and are otherwise meaningless.
Detect Magic is at offset 1E7BC9, again a binary value, Bit 1.
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1