Archived
1
Fork 0
C++ library to interact with FFXIV game data
This repository has been archived on 2025-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Joshua Goins 79c482ac97 Fix compilation on MSVC
Pugixml is now downloaded if not found, and the CMake messages are now
clearer that the dependency is downloaded from the internet.

The POSIX getline function is now replaced with std::getline, which
works on MSVC.
2022-04-15 21:01:17 -04:00
include Add method to get index file directly 2022-04-14 08:22:10 -04:00
src Fix compilation on MSVC 2022-04-15 21:01:17 -04:00
CMakeLists.txt Fix compilation on MSVC 2022-04-15 21:01:17 -04:00
LICENSE Add license 2022-03-15 15:45:31 -04:00
README.md Add basic MDL parsing 2022-04-11 20:02:20 -04:00

libxiv

sourcehut GitHub
mirror ryne.moe
mirror

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.

  • fmt for formatting strings and logs.
  • zlib for extracting data.
  • unshield for extracting cab files from the FFXIV installer. This dependency is automatically skipped on Windows builds because unshield lacks a port for it.