Purpose
DNT files contain various tabular relational data required by the game, containing information such as item stats, skill values, etc.
Examples
Files in /resource/ext/
General Format Overview
The DNT file structure consists of a header, column headings, and rows of data.
DNT Format
Length Prefixed Non Null Terminated String (LPNNTS)
DNT files use strings prefixed with UINT16 length and no NUL termination byte.
Header
| Name | Data Type | Value | Description |
|---|---|---|---|
| Magic Number |
UINT32
|
0x00000000
|
DNT file magic number. |
| Column Count |
UINT16
|
Varies | Number of columns in this table. |
| Row Count |
UINT32
|
Varies | Number of rows in this table. |
| Columns |
Column[ColumnCount]
|
Varies | An array of Column declarations. |
Column
| Name | Data Type | Value | Description |
|---|---|---|---|
| Column Name |
LPNNTS
|
Varies | The name of this column. |
| Column Data Type |
UINT8
|
Varies | The type of data this column contains. See Appendix A for the ID to data type mapping. |
Rows
| Name | Data Type | Value | Description |
|---|---|---|---|
| Rows |
Row[Header.RowCount]
|
Varies | Array of row entries. |
Row
| Name | Data Type | Value | Description |
|---|---|---|---|
| Cell Entries |
Cell[Header.ColumnCount]
|
Varies | Array of cells, one per column of data. |
Cell
Row cells are stored linearly, where the encoding is specified by the corresponding column. See Appendix A for how to read each data type.
Appendices
Appendix A: Column Data Types
| ID | Type | Data Type |
|---|---|---|
| 1 | Text | LPNNTS |
| 2 | Boolean | UINT32 |
| 3 | Integer | INT32 |
| 4 | Float | FLOAT32 |
| 5 | Double† | FLOAT32 |
† While DNT tables specify a type of double, it is still 32 bits long and equivalent to Float.