Disciples of Steel - Chronicles of CyHagan Game Cheats
Disciples of Steel stores your characters in a file called #.CHR,
where # is a number from 1 to 8. Load this file into your favorite hex
editor (I prefer Norton's DISKEDIT).
There can be up to 24 characters in the roster, though there can be
only 8 characters in your party at a time. Each character is stored in
a block of 200 ($0190) bytes, starting with the character's name in
lower case. Here are the relative offsets from the start of the
character block:
Offset Name Offset Type
----------------- ------ ----
Character's Name $0000-$0009 10-character string,
padded with spaces ($20)
Experience Points $000E-$0011 4-byte unsigned integer
Strength $0062 1 byte? (see notes)
Intelligence $0064 1 byte?
Wisdom $0066 1 byte?
Accuracy $0068 1 byte?
Intuition $006A 1 byte?
Constitution $006C 1 byte?
Charisma $006E 1 byte?
Luck $0070 1 byte?
NOTE: I'm not sure why there's an extra byte between stats. Either
the second byte is for modified stats (boosted by magic items, etc.)
or the stats are 2-byte unsigned integers.
Skill Name Offset Type
----------------- ------ ----
Armor $0072-$0073 All skills are 2-byte
Shield $0074-$0075 unsigned integers.
Dodge $0076-$0077
Edged $0078-$0079
Crush $007A-$007B
Axe $007C-$007D
Spear $007E-$007F
Bow $0080-$0081
Open Hand $0082-$0083
Track $0084-$0085
Hide $0086-$0087
Disarm $0088-$0089
Backstab $008A-$008B
Steal $008C-$008D
Perception $008E-$008F
Karma $0090-$0091
Essence $0092-$0093
Power $0094-$0095
Haggle $0096-$0097
Firstaid $0098-$0099
Resistance $009A-$009B
Body $009C-$009D
I haven't deciphered these offsets yet: $000A-$000D
$0012-$0061
$009E-$018F
I'm pretty sure that $0012-$0061 contains items in your inventory
and a flag indicating whether or not they're currently equipped, but I
haven't figured out the format yet. Your hit points by location, armor
by location, and money are probably stored here somewhere. I don't
think $009E-$018F has any purpose at all, since it seems to contain just
zeroes ($30) and spaces ($20), probably just to pad the character out to
exactly 200 bytes.
Note that these are _relative_ offsets from the start of each
character's block. For example, the Strength for the second character
in the roster would be at the _absolute_ offset $01F2 (each character
block is $0190 bytes long, and the Strength offset is $62, therefore
$0190+$0062 = $01F2).
Don't forget to make a backup of the character file before you edit
it, in case you make a mistake. If you don't have a hex editor, or
don't want to do the work yourself, I'm writing a cheat program and/or
an UGE module that you can use. Look for it here, soon.