Morrowind Mod:Mod File Format/INFO

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

INFO records contain information on dialogue topics (including voices, greetings, persuasion, and journal entries). INFO records are children of the previous DIAL record.

C Field Type/Size Info
The three IDs form a linked list of INFOs for the DIAL. The first INFO has an empty PNAM; the last has an empty NNAM. Note: for override records, next/prev topic IDs can refer to topics in the base record or the current one.
+ INAM zstring Info name string (unique sequence of #'s), ID
+ PNAM zstring Previous info ID
+ NNAM zstring Next info ID
- DATA struct
(12 bytes)
Info data (always emitted except for deleted records)
uint8 - Dialogue type (duplicates parent DIAL's DATA value)
uint8[3] - Unused
uint32 - Disposition / Journal index
uint8 - Rank
int8 - Gender
-1 = None
0 = Male
1 = Female
uint8 - PCRank
uint8 - Unused

Note: a 20-byte version is also allowed in the Construction Set, but does not appear in any game files. It is likely an older version. The data appeared in the same order, but all values were int32/uint32.

- ONAM zstring Actor
- RNAM zstring Race
- CNAM zstring Class
- FNAM zstring Faction (or the literal string "FFFF" for _NO FACTION_)
- ANAM zstring Cell
- DNAM zstring PC Faction
- SNAM zstring Sound
- NAME string Response text
* SCVR string Strings for the Function/Variable list
char - Index ('0' to '5')
char - Type ('1' to 'C', hex digit)
'1' = Function
'2' = Global
'3' = Local
'4' = Journal
'5' = Item
'6' = Dead
'7' = Not ID
'8' = Not Faction
'9' = Not Class
'A' = Not Race
'B' = Not Cell
'C' = Not Local
char[2] - Details
'00' to '72' = Function: function index
'fX' = Global/Local/Not Local: Value is a float in FLTV
'lX' = Global/Local/Not Local: Value is a long in INTV
'sX' = Global/Local/Not Local: Value is a short in INTV (serves only as a value range - INTV is always a uint32)
'JX' = Journal
'IX' = Item
'DX' = Dead
'XX' = Not ID
'FX' = Not Faction
'CX' = Not Class
'RX' = Not Race
'LX' = Not Cell
char - Operator
'0' = '='
'1' = '!='
'2' = '>'
'3' = '>='
'4' = '<'
'5' = '<='
char[] - Name: Except for functions (which require no further information), everything after the fifth character is the ID for the global, local, journal, etc.
INTV
uint32 Integer value for SCVR comparison
FLTV
float32 Float value for SCVR comparison
- BNAM string Result text
The remaining fields apply only to journal entries. Although emitted as booleans, only one can be set at any given time, effectively making them an enumerable.
- QSTN bool8 Quest Name
- QSTF bool8 Quest Finished
- QSTR bool8 Quest Restart