Hello again, it’s been a few years lol
taletool
Taletool is an open-source command-line tool and Rust library for inspecting, unpacking and rebuilding NosTale client data formats. It is designed to be an embeddable and scriptable tool that fits any workflow. It is also the
first public tool to support every NosTale file format.
Source code:
Prebuilt downloads:
Supported files
tl;dr - all
Archives and text data
- NScliData*.NOS - client strings
- NSetcData.NOS - mini-game and taboo word lists
- NSgtdData.NOS - items, monsters, skills, quests, maps, shops and other game data
- NSlangData_{locale}.NOS - language files
Sprites and animations
- NS4BbData.NOS - free-size sprite resources
- NSipData.NOS - map-item sprite resources
- NSmpData*.NOS - monster and NPC sprites
- NSppData*.NOS - player sprites
- NSmcData.NOS - monster and NPC animations
- NSpcData.NOS - player animations
- NSpmData.NOS - player frame/resource remaps
- NSmnData.NOS - monster and NPC GBFC index
- NSpnData.NOS - player GBFC index
Textures, geometry, effects and maps
- NStpData*.NOS - map textures
- NStpeData*.NOS - effect textures
- NStpuData*.NOS - UI and widget textures
- NStgData*.NOS - geometry
- NStgeData.NOS - effect geometry
- NStuData*.NOS - map settings and geometry object trees
- NStcData.NOS - map cell flags
- NSgrdData*.NOS - optimized map height grids
- NSedData.NOS - effect color animations
- NSeffData.NOS - effect definitions
- NSemData.NOS - effect transform animations
- NSesData.NOS - effect texture animations
- NStkData.NOS - map-neighborhood data
Audio
- snd.pck - sound archive
- sndinfo.lst - audio metadata
Partial support
- *.PKG - legacy patch packages (inspect and apply only)
- NStsData.NOS - virtually empty and was never loaded by the client, at least since 2009
Example workflow
The CLI follows the data hierarchy. First unpack an archive, then use the appropriate command to convert or modify an extracted payload.
For example, to edit a texture:
Code:
taletool archive unpack "NStpData*.NOS" --out work/nstp
taletool texture unpack work/nstp/100.bin --out work/texture-100
# Edit the generated mip-NNN.png files
taletool texture pack work/texture-100 --out work/nstp/100.bin
taletool archive pack work/nstp --out rebuilt --preset NStpData
Every command has built-in help:
Code:
taletool --help
taletool archive --help
taletool texture unpack --help
For developers
The project is split into reusable Rust crates, so support for individual NosTale formats can be integrated into other projects, including graphical editors and modding tools.
Format documentation for all supported formats is in the repository:
The project is licensed under
AGPL-3.0-or-later.
Bug reports and contributions are welcome on GitHub:
Have fun and see you again, sooner or later.