Oblivion Mod:Save File Format/BOOK

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search

A BOOK Change Record (change record type 21) describes changes to the game's books (BOOK mod file records). It can contain the following subrecords (with their corresponding byte in the overall Flags), in order of appearance:

The relative positions of the subrecords and their contents (as far as they are understood) are based on actual save files.

Form Flags

The Form Flags subrecord is present when bit 0 (0x00000001) is set in any change record's overall Flags. Its length is a constant 4 bytes.

The Form Flags subrecord has been seen in nearly every type of change record, always associated with bit 0, always using the same name in the text dump files, and always using the same format. The only record types without any Form Flags (so far) have been: CELL, FACT, INFO, PACK, and QUST. Furthermore, in analyzed save files, bit 0 has never been set for any of those five record types, so it is possible that even for those records, bit 0 is reserved for the Form Flags subrecord.

Name Type/Size Info
flags ulong The record's current form flags. Related to form flags in mod files, but the meaning of some bits is unknown.
Example: If an item from an ESM file was originally a quest item, and stopped being one, flags = 0x00000009
Example: If an item from an ESM file was not originally a quest item, and became one, flags = 0x00000409

Value[edit]

The Value subrecord is present when bit 3 (0x00000008) is set in a BOOK change record's overall Flags. Its length is a constant 4 bytes. This subrecord provides the new value (in gold) of an item. However, this subrecord is never mentioned in the text dump files; the name "Value" has been assigned to it based on its inferred meaning.

The meaning of this subrecord has been confirmed by using the console command "SetItemValue" on select items and then checking the resulting save file contents. It was previously misidentified as "Furniture Book" based on the fact that the subrecord appears for all furniture receipts after the player purchases them. However, the Value subrecord appears in those cases because the script HouseFurnReceiptScript specifies "SetItemValue 0" for all such receipts. It also appears on many items after "SetQuestObject 0" is called for the item, since a new item value needs to be assigned at that point.

Name Type/Size Info
value ulong Value of item in gold. It does not include the value added by any enchantments. See above comments for details.

Book Skill[edit]

The Book Skill subrecord is present when bit 2 (0x00000004) is set in a BOOK change record's overall Flags. Its length is a constant 1 byte, and provides the skill taught when a book is read. This subrecord is typically used when a skill book has been read by the player, preventing the player from obtaining multiple skill increases by repeatedly reading the same book.

Name Type/Size Info
teaches ubyte A value of 255 indicates "no skill is taught", i.e. the book has been read by the player and therefore should no longer be treated as a skill book. Presumably overwrites the value of Teaches in the original DATA subrecord for the book.