tosmole is a Rust project designed to parse Tree of Savior file types—including XSM, XAC, IPF, IES—and provide a web interface for browsing game data and duplicates.
- XSM – Animation files (WIP)
- XAC – Character & skeleton files
- IPF – Game archive files
- IES – Tabular data
- Parses IPF archives and generates a hierarchical folder tree
- Computes file statistics (unique files, total files)
- Parses duplicates from XML files (XAC, XSM, XPM, DDS)
- Serves a web interface using Actix Web and Tera templates
- Configurable game root path, address, and port via
paths.json
- Install Rust (recommended via rustup)
- Ensure
cargois in your system PATH
- Clone the repository:
git clone https://github.com/R-Hidayatullah/tosmole
cd tosmole- Compile the project in release mode:
cargo build --releaseThe executable will be located in target/release/tosmole.
tosmole loads paths and server configuration from paths.json:
{
"game_root": "/path/to/TreeOfSavior",
"address": "127.0.0.1",
"port": 8080
}game_root: Path to the Tree of Savior installationaddress(optional): Server address (default:127.0.0.1)port(optional): Server port (default:8080)
The language folder is automatically derived as:
<game_root>/release/languageData/English
Run tosmole with:
cargo run --releaseOr directly execute the compiled binary:
./target/release/tosmoleThe server will start at the configured address and port. Open your browser and navigate to:
http://127.0.0.1:8080
- Browse folder trees of IPF archives
- View duplicate entries parsed from XML
- Access file statistics
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch:
feature/my-feature - Make your changes and commit
- Push to your fork and open a Pull Request
This project is licensed under GPL-3.0.