SLDR I was impressed how you made your Injector, it was new to me, but after analyzing it, I figured it out.
Then though it could be done better, So I took it to next level.
After 3 days of madness programing, because I'm newbie, I finally made it.
This should be even more compatible, but probably there would be unexpected cases, so I would like if you guys could make it more flawless. Like I said I'm newbie and I have no idea of consequences or solutions to the work I have done here.
So what's different?
This is made in Ren'Py file. So you just put it in game folder or remove it from it, if you don't want it anymore.
This basically do the same thing, but instead of unpacking and changing files, this takes compiled code from running game, then decompiling it(via unrpyc library), then modifying it, and then injecting it to the game before it fully launches.
And no, it doesn't decompile whole game or files, it just decompile screen statements that needs to be modified.
Also it doesn't create/modify any files. It just add screen statement like you would do in rpy file but trough python fuction instead.
Downside or not, it does it every time you launch the game.
So maybe it will be after all more compatible thanks to modifying only 3 screen statements in particular way.
But my guess, it won't work for others, hoping you would fix that if would happen.
Code is almost same as yours(excluding new method of injecting), I only changed:
to avoid errors from undefined variables.