We've updated our Terms of Service and Privacy Policy. Learn More

Dismiss

Hi there! We're required to tell you that Donut Team uses cookies for user sessions and security. But don't worry—we don't sell your data to anyone.

By continuing to use our site, you agree to our use of cookies for these purposes.

Dismiss

Donut Team is a labor of love, built and maintained by a small group of passionate developers. We invest our own time and resources to offer our tools, mods, and web services completely free of charge.

We don't run ads, and we will never sell your data - period.

If you've enjoyed anything we've created, please consider supporting our work with a one-time or monthly donation via our Ko-fi page. Every contribution helps us continue building great experiences for the community.

Dismiss

Patch.tjs Xp3filter.tjs [portable]

return data;

Patch.tjs and Xp3filter.tjs are essential files for Train Simulator, and their importance cannot be overstated. Here are a few reasons why:

The Kirikiri engine (and its modern iteration, Kirikiri-Z) stores virtually all game assets—including scripts, dialogue text, images, background music, and sound effects—inside compressed archive files with the .xp3 extension (e.g., data.xp3 ). Patch.tjs Xp3filter.tjs

Typically, the game’s startup script ( startup.tjs or SystemMainWindow.tjs ) will include:

Many developers apply a unique encryption layer to their .xp3 archives to protect their intellectual property. return data; Patch

return data; // return original if no change

If you load a game and see strange symbols instead of English or Japanese characters, the game is failing to initialize the correct font mapping via its patch scripts. return data; // return original if no change

: While the standard Kirikiri SDK does not enforce encryption, almost all commercial visual novel developers inject custom encryption keys into their .xp3 tables to prevent asset theft and unauthorized distribution. 🔑 What is xp3filter.tjs ?

While both files use the scripting language native to the Kirikiri engine, they serve entirely different operations during a game's initialization sequence.

Main Branch

Other Branches