Expand description
§Physis
Physis is a library for reading and writing FFXIV data. It knows how to read many of the game’s formats, and can write some of them too.
§Supported Game Versions
All game versions are supported, including benchmark versions of the game. Only the Windows client data is tested and other platforms probably won’t work.
§Supported Platforms
Physis compiles and runs on all major platforms including Windows, macOS, Linux and WebAssembly.
§Usage
Physis exposes it’s API in a few different languages:
§Rust
If you want to use Physis in your Rust project, you can simply add it as a dependency in Cargo.toml:
[dependencies]
physis = "0.5"Documentation is available online at docs.xiv.zone. It’s automatically updated as new commits are pushed to the main branch.
If you need a high-level Excel API, see Icarus which is based off of Physis.
§C/C++
C/C++ projects (or any language that can interface with C) can use libphysis.
§C#
C# projects can use PhysisSharp which exposes part of the Physis API to C#.
§Building
You need to set up Rust and then run cargo build. Although Physis is a library, we have a few examples you can run.
§Contributing & Support
Feel free to submit patches to help fix bugs or add functionality. Filing issues is appreciated, but I do this in my free time so please don’t expect professional support.
See CONTRIBUTING for more information about contributing back to the project!
§Credits & Thank You
- goatcorp (XIVQuickLauncher, docs.xiv.dev, and even more)
- Ioncannon (FFXIV Data Explorer) for the first documenting the file formats
- binrw team for an awesome Rust library!
- sha1-smol for a dependency-free SHA1 implementation
- FFXIVTools for it’s Havok parsing implementation
- texture2ddecoder for it’s BCn texture decoding functions.
And everyone else who writes FFXIV tools!
§License

This project is licensed under the GNU General Public License 3. Some parts of the code or assets may be licensed differently, refer to the REUSE metadata.
Modules§
- avfx
- Types for animated VFX (
.avfx) files. - blowfish
- Implementation of the Blowfish ECB block cipher used by the retail client.
- bootdata
- Handling data in the “boot” directory, which contains the launcher files.
- cfg
- Types for and writing the plaintext config (
.cfg) files. - cmp
- Types for character make parameter (
.cmp) files. - common
- Common structures, enumerations and functions used by other modules.
- cutb
- Types for cutscene binary (
.cutb) files. - dic
- Types for word dictionary (
.dic) files. - equipment
- Dealing with equipment and its data.
- exd
- Types for Excel data (
.exd) files. - exh
- Types for Excel header (
.exh) files. - exl
- Types for Excel list (
.exl) files. - fiin
- Types for file info (
.fiin) files. - hwc
- Types for hardware cursor (
.hwc) files. - iwc
- Types for
.iwcfiles. - layer
- Types for layer group binary (
.lgb) files. - lcb
- Types for
.lcbfiles. - lvb
- Types for level variable binary (
.lvb) files. - model
- Types for model (
.mdl) files. - mtrl
- Types for material (
.mtrl) files. - pap
- Types for
.papfiles. - patch
- Types for ZiPatch (
.patch) files. - patchlist
- Types for patch lists.
- pbd
- Types for pre-bone deform (
.pbd) files. - pcb
- Types for player collision binary (
.pcb) files. - phyb
- Types for
.phybfiles. - race
- Playable race and genders.
- repository
- Parsing game repositories, such as “ffxiv”, “ex1” and their version information.
- resource
- File resource handling.
- savedata
- Types for and writing various saved data formats from the game.
- scd
- Types for
.scdfiles. - sgb
- Types for shared group binary (
.sgb) files. - shcd
- Types for shader (
.shcd) files. - shpk
- Types for shader packages (
.shpk) files. - skeleton
- Types for skeleton (
.sklb) files. - skp
- Types for
.skpfiles. - sqpack
- SqPack file formats - including Db, Data and Index/Index2 files.
- stm
- Types for staining template material (
.stm) files. - svb
- Types for
.svbfiles. - tera
- Types for terrain (
.tera) files. - tex
- Types for textures (
.tex) files. - tmb
- Types for
.tmbfiles. - uld
- Types for UI layout definition (
.uld) files. - uwb
- Types for
.uwbfiles.
Structs§
Type Aliases§
- Byte
Buffer - Acontinuous block of memory which is owned.
- Byte
Span - A continuous block of memory which is not owned, and comes either from an in-memory location or from a file.