Fields read by the server or the client, or assembled from other files. The description says what the field means and how it acts; below it — where that was established.
DataTable\<language>\NDMsgMonster.edfclient file
Total 5Known 0Derived 4Unused 1
Schema
monsters.md §5: 88-byte groups + strings
Registry level
derived
Derived from
MobMessage_str.dat
Record: group (88 bytes)
Offset
Field
What it is and how it acts
Assembled from
Server readers
Role
Status
Data
+0x000
number
set number
monsters.md §5
MobMessage_str.m_dwIndex
—
client
derived
—
+0x004
lengths ×10
lengths of 10 phrases
monsters.md §5
MobMessage_str.m_strMobMessage (language columns)
—
client
derived
—
+0x054
phrase count
number of phrases; the phrase number in the packet is taken modulo this number
monsters.md: §2: Scripts\strs AOP\MobMsg.strs is the GU layout (110 slots = 11 languages × 10), not AoP (90)
Offset
Field
What it is and how it acts
Goes to client as
Server readers
Role
Status
Data
+0x000
m_dwIndex
set number
monsters.md §5
—
—
—
known
373 values; most often 0 (0%)
+0x004
m_strCode
set code (number from m_strEmotionCode)
monsters.md §5
—
—
—
known
373 values; most often 0 (0%)
+0x044
m_nUsingNum
phrases per set per language: equals +0x54 of NDMsgMonster.edf for 372 of 373 AoP sets [bytes]
monsters.md §5
—
—
—
known
2 values; most often 3 (98%)
+0x048
m_strMobMessage ×110
phrases: languages × 10, cstr2560, encoding by language; AoP — 90 slots, GU — 110: slots 90–109 are GU only, readers not checked
monsters.md §5
—
—
—
known
367 values; most often _ / _ / _ / _ … (2%)
Unused parameters
Fields that neither the server nor the client reads. For each: why it was decided so and where that was established. The editor keeps their bytes as they are.
DataTable\<language>\NDMsgMonster.edfclient file
Record: group (88 bytes)
Offset
Field
Why unused
Data
+0x02C
pointers ×10
unused: the loader 005DF9D0 writes the addresses of allocated strings here and does not read the file values (almost all 0 in AoP)