FF16Tools v1.6.3
Tools & Library for Final Fantasy XVI/16
Features
- **Pac File Unpacker/Repacker**: Easily extract and restore your game files from a.pac file.
- **Tex to DDS Conversion**: Convert.tex files to the popular DDS format for texture optimization.
- **DDS to Tex Conversion**: Convert DDS and other image formats back to.tex for easy texture editing.
- **Nex (NXD) Conversion**: Convert between Nex (Next ExcelDB) and SQLite databases.
- **Save File Unpack/Pack**: Extract and save your game files as PNG from the Steam directory.
- **FlatBuffer Schemas**: Flatten.kdb (KineDriver) and.bnmb (Bonamik) files for easier editing.
All these features have been tested on Final Fantasy 16 files from Steam/PC.
## Pac File
You can use the graphical interface or the command line (CLI) commands for a more streamlined experience.
### Unpacking
**Unpacking All Files from a Pack**:
```bash
FF16Tools.CLI unpack-all -i <path_to_pac> [-o <output_directory>]
```
**Unpacking a Specific File from a Specific Pack**:
```bash
FF16Tools.CLI unpack -i <path_to_pac> -f <game_file> [-o <output_directory>]
```
**Unpacking All Packs**:
```bash
FF16Tools.CLI unpack-all-packs -i <path_to_folder_with_packs> [-o <output_directory>]
```
**Packing a Directory into a.pac**:
```bash
FF16Tools.CLI pack -i <path_to_directory> [-o <output_directory>]
```
**Listing Files**:
```bash
FF16Tools.CLI list-files -i <path_to_pac>
```
### Textures
**Converting.tex to.dds**: Easily convert.tex files to DDS by dragging and dropping them into the program or using the command:
```bash
FF16Tools.CLI tex-conv -i <path>
```
**Converting to.tex**: You can convert DDS and other image formats back to.tex using the same method or by using the command:
```bash
FF16Tools.CLI img-conv -i <path>
```
**Warning:**
3D textures are not currently supported.
### Nex (NXD)
**To SQLite**:
```bash
nxd-to-sqlite -i <path to directory> [-o output sqlite file]
```
**From SQLite**:
```bash
sqlite-to-nxd -i <path to sqlite file> [-t <table_list_separated_by_spaces> -o <output_directory>]
```
## Note
When converting from SQLite to Nex, you can provide a table list to avoid converting all the tables if not needed.
For a SQLite database editor/viewer, you can use SQLiteStudio.
Check the Changelog for updated table column names.
Refer to the table layouts for the column value types. This mapping has been done mostly manually. If you notice any issues or have figured out the column names, please contribute!
Nex can contain nested data, so arrays and other structs are converted to json strings.
Nex can contain row sets that don't actually contain any rows. This information is lost during the SQLite conversion, but hopefully it won't matter.
You may need to edit root.nxl from 0001 to reflect the number of rows (if you've added or removed any).