Tes3Mod:Mod File Format

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search
Type Data Object
ACTI Activator
ALCH Potion
APPA Alchem. Apparatus
ARMO Armor
BODY Body Parts
BOOK Book
BSGN Birthsign
CELL Cell
CLAS Class
CLOT Clothing
CONT Container
CREA Creature
DIAL Dialog Topic
DOOR Door
Type Data Object
ENCH Enchantment
FACT Faction
GLOB Global
GMST Game Setting
INFO Dialog response
INGR Ingredient
LAND Land
LEVC Leveled Creature
LEVI Leveled Item
LIGH Light
LOCK Lockpicking Items
LTEX Land Texture
MGEF Magic Effect
MISC Misc. Item
Type Data Object
NPC_ Non-Player Character
PGRD Path grid
PROB Probe Items
RACE Race
REGN Region
REPA Repair Items
SCPT Script
SKIL Skill
SNDG Sound Generator
SOUN Sound
SPEL Spell
STAT Static
TES3 Tes3 Header
WEAP Weapon

Overview[edit]

Mod files for the TES3 Construction Set are essentially collections of records, which are further divided into fields. Records generally correspond to objects in the construction set (e.g., a creature, a game setting, a dialogue entry), with the fine details of the object (e.g., health of a creature, a dialog entry test) being handled by the fields of the record.

Internally, the readers in both the game and the Construction Set take the approach of looping through all fields and then taking action based on the field name found. This means that fields can appear in almost any order, and unrecognized fields will be ignored. The Construction Set writes files in a specific order, though, which is described below and in the individual record pages. If your application is writing a mod file, it is suggested that you follow this preferred format if possible.

In addition to the fields listed on each record's page, all records support a DELE tag, indicating that a mod is deleting a record from one of its master files. This is always a uint with a 0 value.

Records[edit]

Type/Size Info
char[4] Record type
uint32 Size of data field.
uint32 Appears to be completely unused. May have been intended for additional flags.
uint32 Flags
0x00000400 = Persistent reference
0x00002000 = Blocked
uint8[dataSize] Data (see Fields, below)

Fields[edit]

Type/Size Info
char[4] Field type
uint32 Size of data field
uint8[dataSize] Data (format depends on record and field type)