Battlespire - Hacking SAVETREE.DAT
Created by Dave Humphrey - 8 March 1998
aj589@freenet.carleton.ca - www.uesp.net
COMMENTS
=======================================
This document started as simply an offset list for solely the character data
in the SAVETREE.DAT. While this information is contained, I have expanded
things to include a more thorough explanation of the format of thise file.
Please remember that I am in no way related to Bethesda and that none of the
information below can be guaranteed to be 100% correct. If you've been
hacking the file and have found additional information/corrections or have
any questions, feel free to contact me at the above address.
OVERALL FILE FORMAT
=======================================
It took me a while to figure out the overall format since the structure I
first assumed was wrong, leading me down the wrong track. The way I
currently understand it makes more sense and describes the entire file from
beginning to end. The SAVETREE.DAT file is made of a number of blocks in the
following fomat.
Begin Block
[4 bytes] = Block Type
[Integer] = Block Size from current position, in bytes
[ Block Information] = Depends on Block Type
End Block
This structure is repeated until a block of size 0 is encountered. Following
this is 81 bytes at the end of the file which has not been identified yet.
The total size of each block is the Block Size read + 4 (due to the block
type). The following is a list of the various block types found in a number
of files (bytes appear as they found in file, in hexadecimal). As it turns
out the size of the block actually determines the main type, with the block
type bytes specifing some other data (such as sub-type). The sizes of the
blocks along with their possible types are listed below. Block size is does
not include the 4 bytes of block type.
Size Possible Description
============ ============================
3Eh (62) ?
ACh (172) ?
B4h (180) Spell
330h (816) Item
354h (852) Monster/Character Data
4F2h (1266) Contains mostly a bunch of 01's, Only one/file?
The block type bytes may be different for various block sizes.
Block Type Possible Description
============== ============================
00 00 00 00
00 00 00 08
00 00 00 14
00 00 00 20
00 00 00 30
00 00 00 31
00 00 00 32
00 00 00 4D
00 00 00 84
00 00 00 89
00 00 00 96
00 00 00 FE
00 00 00 FF
00 01 00 00 Occurs only for first field in file
68 01 3F 96
There is currently nothing known about these bytes, save the one for
character data.
CHARACTER DATA OFFSETS
=======================================
What follows is a list of offsets for the character data. It also works
partially for mobs but not perfectly, indicating some difference between the
two. These came from a variety of sources. Initially someone (Ken,
jerry_fletcher@hotmail.com) emailed me some Battlespire modules for UGE,
some sort of univeral game editor. This gave me the basis for most of the
attribute and skill offsets, but didn't describe the format very accurately.
From hacking the game by creating classes with various attributes and looking
at the savegame I was able to determine the other offsets in time.
The 'Normal' attribute and skills are the values when no spell or item
modifies are in place. For example a characters natural Stealth is 45%.
He/she puts on a pair of boots which modifies Stealth by +10%. Now their
stealth is at 55% while their normal stealth value remains at 45%.
The 'Count' attribute is related to skill advancement. For instance, each
time the character jumps this count is incremented. When it reaches a
certain level the jumping skill increases and the count is reset.
The 'Offset' is the distance from the start of the character field, including
the 4 bytes of block type characters.
The 'Field Size/Type' gives the size of the field. Long Integers are defined
as 4 bytes while Integers are 2.
Offset Field Name Field Size/Type
======= ==================== =====================
69 Name 32 Characters?
101 Strength Long Integer
105 Intelligence Long Integer
109 Willpower Long Integer
113 Agility Long Integer
117 Endurance Long Integer
121 Personality Long Integer
125 Speed Long Integer
129 Luck Long Integer
133 Normal Strength Long Integer
137 Normal Intelligence Long Integer
141 Normal Willpower Long Integer
145 Normal Agility Long Integer
149 Normal Endurance Long Integer
153 Normal Personality Long Integer
157 Normal Speed Long Integer
161 Normal Luck Long Integer
165 Current SP Integer
167 Max SP Integer
169 Normal Max SP Integer
171 Current Wounds Long Integer
175 Max Wounds Long Integer
179 Normal Max Wounds Long Integer
183 ???Medical Long Integer
187 ???Medical Count Long Integer
191 Normal ???Medical Long Integer
195 Jumping Long Integer
199 Jumping Count Long Integer
203 Normal Jumping Long Integer
207 ???Lockpicking Long Integer
211 ???Lockpicking Count Long Integer
215 Normal ???Lockpicking Long Integer
219 Stealth Long Integer
223 Stealth Count Long Integer
227 Normal Stealth Long Integer
231 Swimming Long Integer
235 Swimming Count Long Integer
239 Normal Swimming Long Integer
243 Backstabbing Long Integer
247 Backstabbing Count Long Integer
251 Normal Backstabbing Long Integer
255 Dodging Long Integer
259 Dodging Count Long Integer
263 Normal Dodging Long Integer
267 ???Running Long Integer
271 ???Running Count Long Integer
275 Normal ???Running Long Integer
279 Destruction Long Integer
283 Destruction Count Long Integer
287 Normal Destruction Long Integer
291 Restoration Long Integer
295 Restoration Count Long Integer
299 Normal Restoration Long Integer
303 Illusion Long Integer
307 Illusion Count Long Integer
311 Normal Illusion Long Integer
315 Alteration Long Integer
319 Alteration Count Long Integer
323 Normal Alteration Long Integer
327 Thaumaturgy Long Integer
331 Thaumaturgy Count Long Integer
335 Normal Thaumaturgy Long Integer
339 Mysticism Long Integer
343 Mysticism Count Long Integer
347 Normal Mysticism Long Integer
351 Short Blade Long Integer
355 Short Blade Count Long Integer
359 Normal Short Blade Long Integer
363 Long Blade Long Integer
367 Long Blade Count Long Integer
371 Normal Long Blade Long Integer
375 Hand-to-Hand Long Integer
379 Hand-to-Hand Count Long Integer
383 Normal Hand-to-Hand Long Integer
387 Axe Long Integer
391 Axe Count Long Integer
395 Normal Axe Long Integer
399 Blunt Weapon Long Integer
403 Blunt Weapon Count Long Integer
407 Normal Blunt Weapon Long Integer
411 Missile Long Integer
415 Missile Count Long Integer
419 Normal Missile Long Integer
423 Critical Strike Long Integer
427 Critical Strike Count Long Integer
431 Normal Critical Strike Long Integer
447 Class Name 22 Characters
471 Resistance Character
00001=Magic
00010=Frost
00100=Fire
01000=Shock
10000=Poison
484 Immunity Character
00001=Magic
00010=Frost
00100=Fire
01000=Shock
10000=Poison
473 Acute Hearing Character
00=No
01=Yes
474 Spell Absorption Character
00=No
01=Yes
475 Rapid Healing Character
00=No
01=Yes
476 Regenerate Health Character
00=No
01=Yes
477 Regenerate SP Character
00=No
01=Yes
478 Atheleticism Character
00=No
01=Yes
480 Spell Point Mult Character
483 Adrenaline Rush Character
00=No
01=Yes
484 Low Tolerance Character
00001=Magic
00010=Frost
00100=Fire
01000=Shock
10000=Poison
485 Critical Weakness Character
00001=Magic
00010=Frost
00100=Fire
01000=Shock
10000=Poison
486 Regenerate Spell Points Character
00=Yes
01=No
487 Forbidden Weapon Character
00001=Short
00010=Long
00100=Blunt
01000=Axe
10000=Missile
488 Forbidden Armor Character
03=Heavy
02=Medium
01=Light
490 Forbidden Material Character
09=Daedric
08=Orcish
etc....
503 Class Name (again)? 22 Characters
536 Spell Point Mult Character
544 Forbidden Armor Character
546 Forbidden Material Character
619 Gender 00=Male Character
08=Female
643 Hair Picture # Character
644 Mouth Picture # Character
645 Eye Picture # Character
674 Race (0-5) Character
There are currently three unknown entries in the skill list. Their estimated
values are given although this is not yet confirmed. They are based on the
skill offset list found in Daggerfall. The skill order is the same except
for the skills not found in Battlespire (like the language skills etc...).
The running skill is uite certain, based on the position in the list and the
fact that running potions exist in the game. The merchant skill is a best
guess but other possibilites for this offset are either streetwise or
etiquette. Similarily lock-picking may be replaced by pick-pocketing or
mercantile. There is a possibility that a new skill exists at these locations,
one not found in Daggerfall. Verification of these skills are still required
(e-mail me!).
ITEM DATA OFFSETS
=======================================
The following is the list of known and some unknown variables found in the
item block. Thanks to Cory Orndorff (orn9124@kutztown.edu) for sending me
some offsets to get me started. Again, the 'Offset' is the distance from
the begginning of the block, including the 4 byte block type.
Offset Description Size
======== ========================== ===========
69 Name 32 Characters?
103 Picture Number? ???
105 Weight (1 bit=0.5 lbs) ???
112 Current Usage ???
116 Max Usage ???
120 Material ???
00=Iron
01=Steel
02=Silver
03=Elven
04=Dwarven
05=Mithril
06=Adamantium
07=Ebony
08=Orcish
09=Daedric
131 Number of Items ???
Any additions or corrections please contact me at
uesp@uesp.net, thanks.
If you have any problems, suggestions or comments on this page or website, please
feel free to use the Contact Form to send
a message to the WebMaster.
This document was last modified on: Friday, 17 August 2007, at 19:43:21
and has been accessed
1085
times
( battle/batoff.txt ).
/text.shtml