GFF Format

An all purpose file format used to store game data.

Layout
GFF file contains seven sections starting with the header and offsets to the other six sections contained with the header.
 * Header
 * Struct Array
 * Field Array
 * Label Array
 * Field Data Block
 * Field Indices Array
 * List Indices Array

File Header
Values contained in the header in the order followed: File Version is always "V3.2". File Version should be checked at the start of the file read.

File Type is a string that contains the file extension. It should be three all caps letters followed by a space. For example "DLG ", "UTC ", "JRL ", ect. File Type should be checked at the start of a file read to make sure the file is the expected type.

Struct Array
The first struct array is the Top-Level struct and it is the root container for all other fields, structs and lists. The Top-Level struct is always present and so at least the struct away is always a minimum length of 1.

The struct elements are stored consecutively and start at element 0.

Struct Format
Each struct is 12 bytes in size.

The Top-Level Struct (index 0) always as a Type of 0xFFFFFFFF.

Field Array
The field elements are stored consecutively and start at element 0.

CExoLocString
Language IDs

Editors

 * https://neverwintervault.org/project/nwn1/other/tool/gffeditor
 * https://deadlystream.com/files/file/719-k-gff/