Xp3filter.tjs — Patch.tjs
"Seamless file overriding: Allows you to replace specific game assets (scripts, images, audio) by placing them in a patch folder, defined by rules in Xp3filter.tjs, without touching the original .xp3 archives."
If you have a specific error or behavior from these files you'd like to debug, let me know.
Before understanding the patches, we must understand the environment. Kirikiri uses a custom scripting language called TJS2 (Transactional JavaScript 2 – a misnomer, as it is closer to Delphi/Pascal syntax). Patch.tjs Xp3filter.tjs
This is where Patch.tjs and Xp3filter.tjs enter.
The existence of Patch.tjs presents a significant security consideration for developers using the Kirikiri engine. Because the engine automatically executes code in Patch.tjs without integrity checks, it becomes a trivial vector for: "Seamless file overriding: Allows you to replace specific
To mitigate this, developers often:
Xp3filter.tjs is a custom filter script that intercepts and modifies how the engine reads files from XP3 archives. It acts as a middleware layer between the game’s request for a file and the actual file data returned. If you have a specific error or behavior
Most games are packed into data.xp3. Repacking is messy and risks CRC checks. Patch.tjs lives outside the archive, meaning you never touch the original files.