Snapshot mirror of gitlab.com/TheGrandLibrary/misc/xackery/quail (TheGrandLibrary, Sept 2025)
Find a file
Xackery 776fc1acc7
Some checks failed
Tag Prep Release / build_and_preview (push) Failing after 5s
Build Go Binaries / build_and_preview (push) Successful in 3m3s
Add tag fix
2025-04-12 12:50:21 -07:00
.github/workflows Bump go version (#45) 2025-02-11 11:41:37 -08:00
.vscode Add v4 zone initial support (#75) 2025-04-03 17:39:23 -07:00
cmd Add v4 zone initial support (#75) 2025-04-03 17:39:23 -07:00
helper Add gzip helper (#72) 2025-03-31 10:28:33 -07:00
notes Add links to dumps 2023-11-01 22:01:20 -07:00
pfs Fix Sprite3d related errors (#51) 2025-02-24 22:11:07 -08:00
qfs Fix quail memory file system, add terrain tweaks (#65) 2025-03-22 18:47:08 -07:00
quail Add obg placeholder support 2025-04-03 21:37:21 -07:00
raw Add obg placeholder support 2025-04-03 21:37:21 -07:00
scripts Fix paths (#74) 2025-04-02 22:44:18 -07:00
tree Add property fixes (#54) 2025-03-01 11:22:59 -08:00
wasm Add WebAssembly export (#23) 2025-01-18 18:34:34 -08:00
wce Add tag fix 2025-04-12 12:50:21 -07:00
.env_default Add tree system for grouping actors (#32) 2025-01-23 10:29:22 -08:00
.gitignore Add Actordef improvements, new yaml contracts (#49) 2025-02-23 20:17:37 -08:00
doc.go Updated documentation, fixed mesh 2022-07-19 08:54:09 -07:00
go.mod Fix zon related bugs (#67) 2025-03-27 19:21:13 -07:00
go.sum Fix zon related bugs (#67) 2025-03-27 19:21:13 -07:00
LICENSE Add exe icon, fix CICD 2023-02-17 01:01:57 -08:00
main.go Fix version2 (#44) 2025-02-11 11:34:04 -08:00
main_wasm.go Add WebAssembly export (#23) 2025-01-18 18:34:34 -08:00
Makefile Fix ter version 2 and 1 uv2 2025-04-03 19:02:34 -07:00
quail.exe.manifest Add exe icon, fix CICD 2023-02-17 01:01:57 -08:00
quail.png Added quail logo 2022-07-26 09:55:51 -07:00
README.md Add WebAssembly export (#23) 2025-01-18 18:34:34 -08:00
rsrc_windows_386.syso Add exe icon, fix CICD 2023-02-17 01:01:57 -08:00
rsrc_windows_amd64.syso Add exe icon, fix CICD 2023-02-17 01:01:57 -08:00

quail-logo quail GoDoc Go Report Card

Quail is a command line EverQuest asset manager.

You can find the latest download of quail in releases

Features include:

  • zip/unzip pfs archives such as eqg, s3d, pak, and pfs
  • convert between pfs archives and .quail folder format (also known as wce (WorldCom Emu))
  • inspect binary files like wld, mod, mds
  • tree to visualize binary files

Status

Quail currently in an early preview status. While many functionality goals have even reached, they are buggy and not supporting every use case.

Compiling WebAssembly API

Quail can be compiled to WebAssembly to be used in the browser. To compile to WebAssembly, run:

GOOS=js GOARCH=wasm go build -o wasm/quail.wasm main_wasm.go

EverQuest File Overview

Pfs

Pfs represents packaged files, you can think of them as zip compressed archives but has a special format

Extension Notes
eqg EverQuest Game Asset Pfs Archive
s3d EverQuest Game Asset Pfs Archive (Legacy)
pak EverQuest Game Asset Pfs Archive (Legacy)
pfs EverQuest Game Asset Pfs Archive (Legacy)

Model/Mesh

Model meshes represents geometry data, and some times metadata

Extension Notes
dat zone model for version 4 zones
mds npc, object and item model information
mod npc, object and item model information
ter zone model data for version 1 to 3, similar to mod/mds just without bone data
wld megapack of model metadata and model information for s3d legacy pfs archives

Model/Metadata

Model Metadata gives additional information about a mesh

Extension Notes
ani Animation data, frame by frame based on bone locations
edd Emitter definition data, aligns with prt to give details about how particles and emitters work
lay Layered texture data (Used for texture swaps/variations in a single model)
lit Light baking data, has same count as vertices
lod Level of Detail related information, usually refs to additional meshes to render based on distance
prt Particle Rendering Transformations,
pts Particle Transformation Statements,
tog Toggle data
zon Zone placement data, gives information about the zone terrain and object placements. Version 3 and below this is a binary file, Version 4+ it is raw text in a 3DsMax format
eco Ecology metadata, used for randomizing and blending maps in Version 4 Zones
rfd Radial Flora Data, grass, rocks,and other placable greenery metadata

Special Files

Name Notes
floraexclusion.dat Flora exclusion areas, Versin 4 zones use this to create ignores on RFD files
prj 3DS Max Project files, this is used by internal team for opening a pfs mesh, doesn't appear to have any use for EverQuest.
dbg.txt Debug log, shows the last export attempt internally, doesn't appear to have any use for EverQuest.

Running Tests and Setting Up a Development Environment

At the root of the repo, you'll see a file called .env_default. Copy it to the file .env, and edit the EQ_PATH variable inside to point to your EQ directory. NOTE that this EQ directory will get folders made like _gequip.s3d/, or _test_data/, so you may want to consider pointing to a unused EQ path if you don't like the clutter of folders on top.

External resources

gltf writer for wld fragments in lantern

fragment overview ref

eq-sage ref