Libraries and tools for working with EverQuest game data
use libeq::pfs::PfsReader;
use libeq::wld;
fn main() {
// Extract .wld data from an .s3d file
let file = std::fs::File::open("gfaydark.s3d").unwrap();
let mut archive = PfsReader::open(file).unwrap();
let data = archive.get("gfaydark.wld").unwrap().unwrap();
// Load .wld file
let wld = wld::load(&data).unwrap();
let materials = wld.materials().collect::<Vec<_>>();
let meshes = wld.meshes().collect::<Vec<_>>();
let models = wld.models().collect::<Vec<_>>();
let objects = wld.objects().collect::<Vec<_>>();
}s3d is a CLI tool for listing, extracting, creating, and verifying EverQuest PFS archives. Built on libeq_pfs.
| Platform | Arch | Download |
|---|---|---|
| 🐧 Linux | x86_64 | s3d |
| 🍎 macOS | aarch64 | s3d |
| 🪟 Windows | x86_64 | s3d |
| Other | All releases |
# List files in an archive
s3d list gfaydark.s3d
# Extract all files
s3d extract gfaydark.s3d -o gfaydark/
# Create an archive from a directory
s3d create gfaydark-new.s3d gfaydark/This workspace also includes the wld-cli tool for viewing and extracting fragments from .wld files. Built on libeq_wld.
| Platform | Arch | Download |
|---|---|---|
| 🐧 Linux | x86_64 | wld-cli |
| 🍎 macOS | aarch64 | wld-cli |
| 🪟 Windows | x86_64 | wld-cli |
| Other | All releases |
# To view fragments
cargo run -p wld-cli -- explore gfaydark.wld
# Extract to raw fragment data files:
cargo run -p wld-cli -- extract gfaydark.wld destination/
# Extract and create to/from RON:
cargo run -p wld-cli -- extract --format ron gfaydark.wld gfaydark.ron
cargo run -p wld-cli -- create --format ron gfaydark.ron gfaydark.wld
# Extract and create to/from JSON:
cargo run -p wld-cli -- extract --format json gfaydark.wld gfaydark.json
cargo run -p wld-cli -- create --format json gfaydark.json gfaydark.wld