dervus / xivtool

Final Fantasy XIV asset browser and exporter

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xivtool

Rust library and CLI tool for browsing, loading, and exporting game data of Final Fantasy XIV.

Usage

cli

xivtool help

lib

use std::sync::Arc;
use xiv::{sqpack::SqPack, ex, structs};

// open sqpack repo
let repo: Arc<SqPack> = SqPack::open("/path/to/ffxiv/sqpack").unwrap();

// load exd file using serde struct
let races: Vec<structs::Race>
    = ex::read_exd(repo.clone(), "Race", ex::Locale::English)
        .unwrap()
        .map(Result::unwrap)
        .collect();

println!("{:#?}", races);

// load exd file using generic dynamically typed record type
let items: Vec<ex::Row> =
    ex::read_exd(repo.clone(), "Item", ex::Locale::English)
        .unwrap()
        .map(Result::unwrap)
        .collect();
        
println!("{:?}", items.first());

Implemented features

  • SqPack repository
    • Lazy index loading
    • Find file by name
    • Read file
  • Client database (.exd files)
    • Dynamically typed Row type
    • Map to custom structs using Serde
    • Export to CSV
  • Textures (.tex files)
    • Export to PNG, JPG, TGA using image-rs
    • Export to KTX2
  • Models (.mdl files)
    • Export to glTF
  • Animations

License

Public domain

About

Final Fantasy XIV asset browser and exporter

License:The Unlicense


Languages

Language:Rust 100.0%