C++ library to interact with FFXIV game data
This is the first of many commits to improve code quality, and try to tame my bad looking code. Types such as Slot and Race are now living under types/ and have dedicated functions to go between ids and enumerations without a heavy std::map. A new repository API lives in a new SqPack header, which replaces the old crusty way of fetching repository information in GameData. Building equipment paths now live in libxiv (moved from novus) provided you have a model id. Standard methods to build index and dat filenames are provided in their functions now too. |
||
---|---|---|
include | ||
src | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
libxiv
A modding framework for FFXIV written in C++. This is used in Novus (my custom modding tool) and Astra (my custom launcher) but can easily be integrated into your own projects.
Note: This is still an experimental and in-development library. Thus, I have not tagged any stable releases. It's recommended just to checkout from main.
Goals
- Easily integratable into other FFXIV launchers so they can have update/install support without having to write it themselves.
- Can export Penumbra/Lumina format mods, I have no interest in exporting in TexTools's format.
- Can export/edit some formats such as models, and metadata/exl files.
- Can be used on Windows/Linux/macOS and doesn't pull in a huge runtime (C#) or run in Wine.
Features
- Easily extract game files and view excel sheets by name. See gamedata.h for usage.
- Install patches (right now it's limited to boot patches). See patch.h for usage.
- Install FFXIV by emulating the official installer, bypassing Wine and InstallShield. You can see how to use this in installextract.h.
- Parse some game data:
Dependencies
Note: Some of these dependencies will automatically be downloaded from the Internet if not found on your system.