Ultima 3 Roster File Format

This information was provided by Sam Glasby


ROSTER.ULT

is a fixed format file consiting of 20 records (+ anything else???) of fixed size. These 20 records (64 bytes each) correspond to the data for the Ultima III characters which are in the roster (inactive), as opposed to being in the party (active).

"Form the party" reads 4 records from ROSTER.ULT and does something with them. "Disperse the party" writes the data for the 4 characters back into ROSTER.ULT, overwriting whatever exists there.

Therefore, to edit an Ultima III party, one simplz needs to Disperse the Party, hex-edit the file (by hand, or with a utility program), then start Ultima III and Form the Party from the edited characters.


Format of the file is:

Record 1 (64 bytes), Record 2 (64 bytes), ..., (anything at end???)

Format of a record is:

Hex_Offset Field Width Field Name (normal range /possible range)
0000-0009 10 (9+1) Character Name (length 9, NULL-terminated string)
000a 1 (unknown)
000b 1 (unknown)
000c 1 (unknown)
000d 1 (unknown)
000e 1 Marks and Cards (add all numbers in both hex digits)
10=Force, 20=Fire, 40=Snake, 80=Kings
01=Love, 02=Sol, 04=Moon, 08=Death
000f 1 # Torches (0-99) ???
0010 1 In party? (00=no, FF=yes)
0011 1 Character Status (G,D,A ???)
0012 1 Strength (5-99 / 0-99? 0-ff?)
0013 1 Dexterity (5-99)
0014 1 Intelligence (5-99)
0015 1 Wisdom (5-99)
0016 1 Race (E, D, F, H, B)
0017 1 Class (W, R, T, I, A, D, F, L, C, B)
0018 1 Gender (M, F, O)
0019 1 Current Magic Points (0-99 / 0-ff?)
001a-001b 2 Current Hit Points (150-2500 / 0000-9999)
001c-001d 2 Hit Points Maximum (150-2500 / 0000-9999)
001e-001f 2 Experience Points (0-9999)
0020 1 (unknown) (40)
0021-0022 2 Food (0-9999)
0023-0024 2 Gold (0-9999)
0025 1 # Magic Gems (0-99)
0026 1 # Skeleton Keys (0-99)
0027 1 # Time Stop Powders (0-99)
0028 1 Currently worn Armour (00=Skin, 07=Exotic / 8+)
0029-002f 1 each # Suits of earch armour (Cloth..Exotic)
0030 1 Currently Wielded Weapon (00=Hands, 0F=Exotic / 10+)
0031-003f 1 each # of each weapon (Dagger..Exotic)

Weapons in Ultima III

0x ##/X Weapon Type 0x ##/X Weapon Type
-- 00/A Hands 38 08/I +2 Axe
31 01/B Dagger 39 09/J +2 Bow
32 02/C Mace 3a 0a/K +2 Sword
33 03/D Sling 3b 0b/L Gloves
34 04/E Axe 3c 0c/M +4 Axe
35 05/F Bow 3d 0d/N +4 Bow
36 06/G Sword 3e 0e/O +4 Sword
37 07/H 2H Sword 3f 0f/P Exotic Weapon

Armour in Ultima III

0x ##/X Armour Type 0x ##/X Armour Type
-- 00/A Skin 2c 04/E Plate
29 01/B Cloth 2d 05/F +2 Chain
2a 02/C Leather 2e 06/G +2 Plate
2b 03/D Chain 2f 07/H Exotic Armour