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
cargo
is 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 --release
The 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 --release
Or directly execute the compiled binary:
./target/release/tosmole
The 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.