you may want to read:
1.1. "modder-warning
      mod now active" in bottom right? What's that???

and remember that there is a: 1.2. "Help! I can't save!"

-!----------------------------------------------------------------
-!----------------------------------------------------------------

I have tried to make the MOD as self-explanatory as possible.
So, ideally you are not required to read through this ReadMe.

-!----------------------------------------------------------------
-!----------------------------------------------------------------

This ReadMe is meant as a "reference/lookup",
if you're unsure about something in the MOD,
please look at the TOC(Table Of Contents),
and read the corresponding article.

Most of the time there is also a game-specific ReadMe.
(MttkMod_~some~identifier~_ReadMe.txt)
Please look there also if your problem is adressed there.

If you don't find an answer in those 2 ReadMe's to your problem,
please post in the forum-thread of the MOD.
(a link may be provided in the game-specific ReadMe)

-!----------------------------------------------------------------
-!----------------------------------------------------------------

Version 11.10.2025
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
           TOC
------------------------------------------------------------------
0.   Installation and default usage
0.1. MAKE A BACKUP
0.2. restore a BACKUP
0.3. install MttkMOD
0.4. updating MttkMOD
0.5. default usage - enable MOD

1.   About my MODs (purpose, aims, mechanics...)
1.1. "modder-warning
      mod now active" in bottom right? What's that???
1.2. "Help! I can't save!" When is saving blocked and how to unblock!
1.3. about Rollback
1.4. PYsix: RenPy < 8 and RenPy >= 8 and my workarounds

1.5. error-corrections
1.5.1 RenPy-Errors
1.6. Save Game Description
1.6.1. about compatibility
1.6.2. MttkModSavesSpecials
1.7. keyboard-keys(Quick -Save, -Load; screenshot)
1.7.1. gestures for touch-devices
1.8. reactivating "_history_list" (and History-screen) if needed
1.9. using a different mouse-icon

2.   invoking MttkModMenu
2.1. starting screen
2.2. WTish (WalkThrough~ish) and options
2.3. uninstall - "u"
2.4. translating this MOD

3.   section "General Modding"
3.1. confirm quitting game
3.2. confirm quickloading
3.3. console
3.4. developer mode
3.5. (functions of) mousewheel
3.6. RenPy-sync
3.6.1. RenPy-sync and Save Game Description
3.7. extra writing the persistent
3.8. ALT-cursor-keys
3.9. "X"-key
3.10. system_cursor (Preference)
---  game-specific:
3.11. show (RenPy)History ; see also 1.8.
3.12. general optical changes
3.13. scene replay Gallery
3.14. detection of translations and pot. switching
3.15. more details of translations and instructions on it

4.   section cheats
4.1. tips on choices
4.2. even more comments on choices
4.3. ONLY "points" on choices
4.4. more choices : Add-Choices and Multiple-Choices
4.5. cheat randoms to your favor
4.6. cheat more randoms
4.7. warn (&stop skipping) buttons
---  game-specific:
4.8. splashscreen
4.9. "gallery" (un)locker
4.10. variable-cheats
---  DEPRECATED!
4.11. "full VN-mode"


------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------

------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------





0.   Installation and default usage
------------------------------------------------------------------
------------------------------------------------------------------
0.1. MAKE A BACKUP
-!----------------------------------------------------------------

! MAKE A BACKUP! BEFORE! installing ANY MODs !

0.1.1. backing up the game:
You downloaded an archive.
Just don't delete that archive after unpacking it!
(else you must download it again, BUT you may not get the exact same version then...)

0.1.2. backing up SaveGames(and Preferences):
As an example for windows-systems, refer to other guides, for other OS.
Every RenPy-game creates two folders with SaveGames and "persistent" on your machine.
(upon FIRST startup)
1) in the games' "game"-folder, the folder: "saves"
2) in the "RenPy"-folder of the userspace of THIS user on this machine
(e.g. C:\Users\username\AppData\Roaming\RenPy replace "username" with your username.
 the start-path is stored into an enviromnemt-variable: %APPDATA%
 you can access that folder by copying "%APPDATA%\RenPy"(without quotes as everywhere else!)
 into the adress-field of your file-browser(e.g. "eplorer")
)
a folder (that by default starts with the game-name followed by dash and a number)
(=the SaveGame-folder) is being created.

Ideally the content of both folders is equal!, but e.g. on multi-user machines they may be different!

If the folders are equal, make an archive(or copy it to somewhere else) of the SaveGame-folder (in userspace).
If they are different, backup them both...
-!----------------------------------------------------------------
------------------------------------------------------------------



0.2. restore a BACKUP
------------------------------------------------------------------

How to find the folder in userspace, see 0.1

-delete the game-folder and all its contents
-delete the SaveGame-folder in the userspace and all its contents

-unpack the game-archive
-unpack archive(s) (or copy from the elsewhere location) the "saves"-folder
 and the SaveGame-folder in the userspace
 (both folders don't exist, you must create them!)
------------------------------------------------------------------
------------------------------------------------------------------



0.3. install MttkMOD
------------------------------------------------------------------

If in the "game"-folder of the game already exists a "zMttkModFolder":
Delete it (with all contents)!

Unpack the MOD-archive into the "game"-folder of the game.
(the new folder "zMttkModFolder" has been created)
------------------------------------------------------------------
------------------------------------------------------------------



0.4. updating MttkMOD
------------------------------------------------------------------
Delete the "zMttkModFolder" in the "game"-folder of the game (with all contents)!

Unpack the new MOD-archive into the "game"-folder of the game.

Old preferences of the MOD are being preseved;
potentially new preferences of the MOD get default values.
i.e.: "unmodded" (default as new installed)

I suggest to do again the 'default options' as told in 0.5.1.
------------------------------------------------------------------
------------------------------------------------------------------



0.5. default usage - enable MOD
------------------------------------------------------------------
(parts of this are also described in
 2.   invoking MttkModMenu       and
 2.1. starting screen              )
------------------------------------------------------------------

0.5.1. first start after install - default options
------------------------------------------------------------------
(after splashscreen and potential question if you are old enough)
In MainMenu now should be a new button:
"MttkMod" <- click that!

You are now offered the default mode of the MOD by: "set mod-options to:"
"MttkMod (modders' default)" <- click that!

(close the MOD start-screen by clicking "° ° ° EXIT ° ° °")
Quit the game.
Wait 3 sce.
Start the game again ->
------------------------------------------------------------------

0.5.2. default usage - MOD screen
------------------------------------------------------------------
(asuming you had set MOD-options to modders' default and restarted)
(after you started a new game, or loaded a game)

On choices of the game you get "tips" e.g.
-choice starting with yellow "-->" means: modder advises to take this choice
-or choices may be trailed(in brackets) by extra-info: (Love+1)

If you open the MOD (starting) screen by clicking "MttkMod" in the GameMenu:
-you (may) been told additional info about the game-state in general e.g.:
--Money: 10$
--Day: 1
-or info about characters in the game e.g.:
--Girl1: Love 3(/10)
--Girl2: Love 8(/10)
--Girl3: Love -1(/6)

this, of course, is a SPOILER !

AND is NOT essentially needed to be understood.
(you may just ignore all those cryptic numbers, and just play the game...)
------------------------------------------------------------------
-!----------------------------------------------------------------
I'd say that's it...happy endings!
And don't forget: save quick, save often!
-!----------------------------------------------------------------
------------------------------------------------------------------



------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------





1.   About my MODs
------------------------------------------------------------------

First off, my MODs are NEVER intented as disrespect of the original developers.
(In fact, if I make one of my MODs available to the public, it's mostly a sign of me really liking the game!)
If you are a developer and dislike ANYTHING in my MOD, please write that in the forum-thread! We will then try to find a way to alter the MOD, so that we are both satisfied.
If the claim is legitimate, I could even withdraw the MOD completely.
To all players: if you like the game, please consider to SUPPORT the DEVELOPER(s).

Second: (must be said)
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.
ANY USAGE, READING, LEARNING FROM OR USE IN CONJUNCTION BY OR WITH
MACHINE LEARNING, DEEP LEARNING, ARTIFICIAL INTELLIGENCE OR SIMILIAR
IS STRICLY FORBIDDEN.

Third:
MAKE A BACKUP! BEFORE! installing ANY MODs!



"This program is distributed in the hope that it will be useful"..,
and as others call their MODs, I want to provide a way to have a "better experience" of the game.

Generally my MODs give more information.
(often in kinda cryptic ways(starting screen), when you look at it first, especially if you haven't played the game before.
Hopefully the crytic numbers make sense while you play)
e.g. hidden stats: e.g. a love-value; maybe with the mention of "milestones": actual-value / max-value ( >= value-that-is-needed-to-do-all-actions )

Generally my MODs don't do ("simple") variable-changings.
(e.g. love+1) You can activate the "console" in section "General Modding" to do that.

Generally my MODs are bound to (a) specific version(s) of the game.
The MOD will tell about a wrong version and you will not (really) be able to play the game.
If so: exit the game, delete the game including ALL saves(especially the persistent(s)!) and then reload your backup.

Generally (my) MODs are not compatible with other MODs.
Generally other compatible MODs will be told by the ("newer") MOD.

Generally I start a new game when playing a MOD of a game. Therefore I have mostly nearly no experience about using SaveGames from older versions.
I try ~generally~ to keep down- and up-ward compatibility, but can't guarantee anything.

Generally my MODs aim to leave NO TRACE that it ever has been used. Especially in "SaveGames"("store") and you can "uninstall" my variables from persistent(press the "u" keyboard-key while in MttkModMenu for instructions).
WARNING(1): generally I don't use Roll-Forward-Backward esp. on a "SaveGame" I intend to port to another version.
Especially when a shown "mod now active"-badge is involved rolling backward(and forward and backward and...) and then saving a game has a high chance to "break" my intent to "leave no trace" and is even be thinkable to be fatal. (see 1.3.)
WARNING(2): on error-corrections the aim to stay hidden may be lessened(see 1.4.)
WARNING(3): "_history_list": if the game "deactivated" RenPy's behaviour to keep a "history"(not only not showing the "History-screen"), my MOD will reactivate it! AND the variable "_history_list"(with len>0) will be in the "SaveGame"! (see 1.8.)
(
But keep in mind! if you e.g. cheat-added a choice to do 2 things, when the game normally only gives the option to do one,
(e.g. "Kiss girl A" OR "Kiss girl B" and "MOD: kiss'em both")
even if the MOD never left any trace, the game of course KNOWS that you cheated, when its being told that "girl A" AND "girl B" have been kissed!
)
Among other things I do to achieve that, I BLOCK SAVING while the MOD-main-screen is shown. (see 1.2. "Help! I can't save!" if needed)
And I show a badge in bottom right corner while the MOD is active and saving is NOT blocked, but you "should not" save, temporary saves are ok...
PLEASE see 1.1. "modder-warning _ mod now active" in bottom right? What's that??? a little further down.



for many options you will be required to restart the game
--- yes, this means you must QUIT the game.
--- and only after it has closen correctly and completely, double-click the game.exe (again)!
------ tho android is still on my wishlist, it is still there:
------ if there is no "Quit"-option it may be neccessary to FORCE stopping the game from/via the "apps preferences of your device"

Because some MOD-options require to "redirect" standard RenPy-behaviour (this also must be done at init-time). Of course I could "redirect" it always and check by a variable if "my"- or the "RenPy"- version shall be used (I do that e.g. with the choices-screen). But then "my" version would always run, even if not needed/wanted i.e. use cpu-time and memory. Also of course every running piece of software(no matter how artfully crafted) IS a potetial security-threat.
Therefore my MOD-content is only activated after the user/player explicitly says so ! Yes, even if deactivated, init-time will increase (not sure if you can count that in seconds on a 10-year-old computer, BUT on such old machines you may experience noticable lags in game-play if the option is activated). (Tho I would admit that performance nowadays is not too much of concern.)

Some options have some extended behaviour e.g. "cheat randoms to your favor". Once activated, and then game restarted, will e.g. always land a "critical hit". But if you deactivate the option(without restart), you'll experience the fight without the cheat e.g. only landing a "critical hit" every sixth time.
If you switch back to activate the option before closing the game, you can always switch back and forth while playing the game. (this is (mostly) undocumented, tho)



As everybody can decompile the .rpyc I consider my MOD "open source" and in extension "public domain". If you are a dev or modder, I have no problem if you "re-use" concepts of my code. BUT "copy-and-paste" is highly discouraged, mainly because is has the high chance that you don't know what (!not)you! are doing and ultimately run into an error nobody can explain!
If anybody "re-uses" my code, I ask you to change all (e.g. variable- and function-) !names! to names of YOUR flavour/choice,
BUT ALL YOUR NAMES SHALL NOT INCLUDE ANY OF THE FOLLOWING:
"MTTK", "MTTKMOD" or "MATTOCK"
also "MTK" if possible, but at least "mtkStr"
in ANY lower/UPPER-case combination (e.g. also NOT: "Mttk", "mttkMod", "Mattock", asoasf)
Thank you, for respecting my privacy in advance.
Credits(e.g. to "Mattock") would be nice, but are NOT required. Granting my (name-)wish, is BY FAR more IMPORTANT to me!





-!----------------------------------------------------------------
-!----------------------------------------------------------------
1.1. "modder-warning
      mod now active" in bottom right? What's that???
------------------------------------------------------------------

The MOD has "redirected" the game to its own files and tells you about that.
Or has put some "information" into the "store"(the to-be SaveGame).
"So what?" you may say, and you're partly correct.
As long as you play THIS version of the game WITH the MOD installed, there is nothing to worry about!

BUT if you save a game while the badge is showing AND you want to use that SaveGame in a game version different to this one, or without the MOD installed, you may then run into problems.
(RenPy does some things to make it quite likely that you can load the SaveGame, but there still may be some things "under the hood" that cause problems later)

Saving while the badge is NOT shown, produces a SaveGame that is completely equally usable as any SaveGame of this version of the game WITHOUT the MOD installed.
(exception: see 1.3. about Rollback)
(exception: see 1.8. "_history_list")


To sum it up:      (save quick, save often;)
When suddenly the badge pops up, consider loading an earlier SaveGame and save quite directly BEFORE the badge is showing.
If e.g. the last save is too long ago: save now, play until the badge goes away and if you're satisfied with the outcome, save AFTER the badge has vanished.
Avoid using(/porting) any SaveGame made while the badge is shown to any other version of the game.
(and NO, rollback is NOT the same as loading a SaveGame!)

-!-------------you're now done reading the minimum--------------!-


minor extension to the summary:
If the game supports rolling-back and you don't like all said options, you can roll-back to a Statement("say") two "say" before the badge is showing and save then...
As said, this is better than saving WITH the badge, but generally not good enough to "port" a SaveGame.

For my MODs the badge is shown mainly for "config.label_overrides" those are mostly used for error-corrections.
And for cheat-add-choices. (some of them also used for error-corrections)


------------------------------------------------------------------
------ start of: only nerds like Mattock read this ---------------

lengthy, more technical, explanation: (really not needed of a player to know that, but while I'm at it...)
When RenPy saves a SaveGame, it creates an archive with:
(the following list is not complete and parts of it are "simplified" a lot)
-a screenshot of the game, that was taken shortly before creation of the SaveGame

-the "log", which is created by "pickle" and contains (at least):
--"the store"(aswell as other stores): for simplicity consider that the variables of the game
---(
as to this topic could be written an own ReadMe bigger than this, and my knowledge is questionable, let me just say(/warn) that non-python-native-objects(that do not explicitly support pickle/unpickle) always need/get some special treatment by RenPy, which has changed over the evolution of RenPy. In early(way before 6.99) RenPy did "just nothing"(of course that is not correct) and most "Objects" could not be "saved". (imho it would have been better to leave it at that, and force every Object to have an explicit __self__.__dict__ and pickle that, tho from my limited understanding this is a main part of what RenPy/Python does - difference is: they do it! NOT the creator of the Class(Object)(?))
---)

--the "Context" the game is in: (again a list that is not complete and simplified)
---what music is(/was) playing (also any playing "sound" of any "registered channel")
---what images are being shown (in what order(from back to front))
---what screens are being shown
----where to find these screens and in what state(e.g. screenvariables) are these screens
---content of the "return_stack" (if not None most likely a list of Node's)
---the "Node" the game is currently at

Finally, what is a "Node" ?
In short: it's (again a list that is not complete and simplified)
(-a name (if the Node is a "label" then the name of the label) else some kind of (hex-)adress)
-a filename (where this node comes from)
-a linenumber (in up file where this node is defined)
-an id(hashable) (def diff_info)
--I think this is being used to determine if the "Node" once stored into the "log" is the same, as the "Node" now present(i.e. same filename, same linenumber, ...)

And that Node-Object(i.e. the instance of it stored into the "log") is the(my) problem.
"the last executed label" is also part of the Node(could be in the Context also, but I think it's "statement_start").
So what may happen:
The filename of the Node in the "log" is some "*mttkMod*", that file is not present now!
Then RenPy looks for "the last executed label".
(I'm sure if that label is not found, you'll get an exception, but as mttkMod did a "label_override", chances are high that it'll exist even in different versions of the game)
(Not sure if the "linenumber"-argument is taken into consideration, but I hope not.)
And what I personally seen long time ago was, that I was sent back to the start of that label.

---to make it even more complicated the "Node"(or context or ?whatever?) also has the Rollback-information!
you may consider this something familiar to the "History"; only with explict naming of screens shown; music played and even variables changed FOR EVERY "rollback-step"! (from what I see default is to store 128 rollback-steps)
---the "SaveGame" itself is still "on" the last position when the player "dismissed", but on top of that the information to what point the player rolled back (and then rolled forth again) is also noted in the "SaveGame"
---so, loading the "SaveGame" will kinda result in loading to the last "dismiss" and then "rolling" to last position the game was rolled to.


(pot.) Problems:
-what's with the statements between "statement_start" and stored Node?
--these will get repeated most likely -> this could be fatal, not now, but later on in the game, and you will NEVER know that it originated here...
---e.g. there may be: someCriticalVar -= 1      and normally this happens only once, and you're down to zero...but now it happens twice and you're down to -1 , but the game never expects that variable to go negative(->exception) or once it's negative, this means a game over at some checkpoint in the future...
-what if in the future version the label still stayed in the code(mostly for excusable lazyness of the dev) but never get's jumped to in the new version, coz it's totally outdated, and you jump to even more outdated code from there...

There may be more problems, but the chapter is already too long and I hope you understand my opinion.
------------------------------------------------------------------
------ end of: only nerds like Mattock read this -----------------

------------------------------------------------------------------
------------------------------------------------------------------



1.2. "Help! I can't save!" When is saving blocked and how to unblock!
-!----------------------------------------------------------------

Saving is blocked if you use my MOD in a game-version it was not written for!
As you've been told: delete the game, including the MOD, aswell as all SaveGames(for this version of the game) in the "home"-directory and reload your backup! (and don't install the (wrong) MOD)

Saving is blocked while the MttkModMenu-screen is being shown, to prevent mttkMod-variables getting stored into the SaveGame.
Safely "re-enable" saving capabilities:
-press repeatedly ESCape until each press changes from game-menu to game or from game to game-menu
-if MttkModMenu is active, close it (e.g. by pressing "x")
-once MttkModMenu has vanished, go to the game-menu
-open MttkModMenu
-close MttkModMenu
now you should be able (again) to save a game!

In short: open and close MttkModMenu twice

IF this does not help, you're invited to tell me about it in the forum-thread!
IF this did not help, close the (complete) game and restart it;
load a game, do something, and now you must be able to save a game!

IF the game-restart also did not re-enable you to save a game, I beg you to report this in the forum-thread!
(mostly because it shall JUST NOT BE POSSIBLE! and I REALLY want to know what the reason is!!!)
-!----------------------------------------------------------------
------------------------------------------------------------------



1.3. about Rollback
-!----------------------------------------------------------------

As said, generally I don't use Roll-Forward-Backward(from now on in short: "rollback").
Still, it is an important feature for RenPy-games and people should expect it to "work"!
Of course rollback is working(if not deactivated by the game) in my MODs, one exception would be the "purge" at the last Multiple-Choice.
Also(you may see 1.1.nerd.notes) rollback has the capability to defy my intent to stay hidden,
but on top also the (extremely low!) chance of creating a "SaveGame" that will prove fatal in a different version (WITHOUT the MOD).

So, in effect it's quite the same as in 1.1.:
While playing the game with the MOD installed, everything is cool!
BUT if you want to make a "SaveGame" to be ported to the next version of the game:
-be SURE the "mod now active"-badge is not showing!
-if the "mod now active"-badge is showing, do not rollback, please load a game(mebbe try autosaves)
--then, if you never used rollback everything is cool
--else save also, but if you (like and) used rollback, keep in mind the possibility of future game versions to detect that you cheated(used MttkMod)
---and in very rare and unlikely cases you can only use the SaveGame after I have made a MOD for the new version and you use it
-!----------------------------------------------------------------
------------------------------------------------------------------



1.4. PYsix: RenPy < 8 and RenPy >= 8 and my workarounds
( PYsix = about using python 2.7 AND python >= 3 )
-!----------------------------------------------------------------

This is NOT about the differences of PY2 and PY3!
If you want to know about that, PLEASE fire up your browser and type some keywords(python2, python3 pysix, lib2to3) to your favorite search-engine.
I do this (mainly) with the file zMttkModFolder/6MttkModSupport.rpy
you WILL NEED that file for ALL my MODs!
I don't explain (here) what I do (you can read some comments in 6MttkModSupport if interested).
Just be informed I do some kind of isle-solution which'll decrease possible compatibility with other MODs even more.
-!----------------------------------------------------------------
------------------------------------------------------------------




1.5. error-corrections
------------------------------------------------------------------

The archive may have a file "errors.txt" where there are descriptions of errors(and at least hints for the dev on how to solve those errors), I found in the game.
IF I did provide an error-correction, it is said in "errors.txt" where(in what file) I did it.

If this archive has a file "MttkModError.rpy", take that,
aswell as "6MttkModSupport.rpy" !
and if it is existing finally file "forTranslaters/MttkModTranslatableLabels.rpy".
You can be use these completely independently from the full MOD! (to ONLY solve the errors I had corrected there)

But some errors are easier for me to handle e.g. in "MttkModMenuChoices.rpyc" and for correction of these you need the "full MOD" installed. (mainly to prevent me from doing things twice and more...(which I manage to do anyways *sarcastic laugh*))

All error-corrections are enabled always and you cannot switch them off.
(deleting MttkModError.rpy+c will result in unpredictable errors)

(warning: on error-corrections the MODs aim to stay hidden may be lessened(esp. i.e. you may find label-overrides in rollback-information)
------------------------------------------------------------------
------------------------------------------------------------------



1.5.1 RenPy-Errors
------------------------------------------------------------------
IF the archive has NOT a file "divRenPyErrors.rpy" you can skip this chapter.

So far only 2 errors are addressed:
1)for versions 7.4.0 up to below 7.5.0 "ContrastMatrix" has a bug.
It is repaired by "divRenPyErrors.rpy".

2)for version 7.4.8(+/-?) the substitution( [aVariable] ) of textbutton has a bug.
(repair is too complicated for me(besides replacing renpy/ui.py))
Instead you'll get a warning in the Save/Load-screens...(also an option(in SGD:opts&help) to shorten the warning.
------------------------------------------------------------------
------------------------------------------------------------------



1.6. Save Game Description
------------------------------------------------------------------
IF the archive has NOT a file "MttkModSaves.rpy" you can skip this chapter.

My MOD-"frame" contained quite early a part to have more save-game-pages
(remember: save quick, save often;)
and later a way to attach some description to each SaveGame and not only to name the page.


When the Save-screen is being shown, beside the page-name-input(where you can give the save-game-page a name instead the number), there a two new buttons:
"save-game-description" and "opts (&help)"

"save-game-description":
This is an input similiar to the page-name i.e. you can use backspace and delete, also the cursor-keys to navigate; pressing enter or left-click de/activates the input; you cannot mark text. Edit the text to a description you want to have for your next save-game.
Then left-click on a save-game-slot to save the game.

As you don't want to type in always e.g. "day ??: ??? done" you can middle-click on an existing save-game to "take over" its description. The description of that save-game will replace the text in the input-field(initially "save-game-description"). Middle-clicking on a save-game that has no description will set the input-field to "SGD", so you don't need to press backspace so often(/long) to clear it.

For touch-devices, instead of a (mouse-)middle-click you can use
(the alternate-action for touch-devices usually:) longpress
to take over a description.
Most likely you want the "SaveGameSlotDeleteButton" enabled! (some android-porters used the alternate-action to delete a save-game)
For RenPy-versions from 7.4.0 on, the images for the DeleteButtons use "matrixcolor"(coz most im.* is deprecated)
1)see up(1.5.1) for "ContrastMatrix"-bug
2)for "matrixcolor" gl2(config.gl2 = True) is needed; if your machine is not able to ~do~ gl2, there's a debug-switch to disable it

Neither "save-game-description" nor "SGD" will ever be added to the save-game.


The "Save Game Description"(SGD) is now (also) a MOD completely independent of specific MODs to specific games.
(see https://f95zone.to/threads/88350/ )
Therefore it may be possible that a newer "save-game-description" is published than the one, that was shipped with the "full MOD".
Generally stick to the version shipped with the "full MOD"!
------------------------------------------------------------------
------------------------------------------------------------------
1.6.1. about compatibility
------------------------------------------------------------------
 - some words on compatibility.

I'm using windows and don't test much else...(linux (and mac?) should work too)
It should now roughly work on android or similiar! e.g.renpy.variant("touch")
But especially renpy.variant("small") and ("medium"?) aswell ("touch") most likely need the layout to be totally reworked...
Of course SGD is subject to specific games and other MODs in regard of compatibility!
You can find lists of in/compatible games in the F95Zone-thread.
Some adjustments I made, are listed in 1.6.2.

If it looks like the "standard RenPy menu":
-By default "navigation" on the left side of the screen taking the whole height and typically roughly 1/4 of the width
-The rest of the width on the right side is typically made of 3 elements:
--the editable page-name(e.g. "Page 1")
--2 rows of 3 save-game-slots - clicking a slot either saves or loads a game, depending on the screen used(i.e. "Load" or "Save" shown typically as header of the "navigation")
--the page-number-buttons, by default "< A Q 1 2 3 4 5 6 7 8 9 >"

There can be different colors, fonts, even some sizeing doesn't matter. Also the number of save-slots being shown can be changed by the developer and this MOD still can be compatible.

If the game already shows more than the date and time when the save was made in the save-slot;
or there is somewhere some input-field to give a description/name:
that game, of course, is incompatible with this MOD...

If it looks promising, you can add the SGD to a temp-copy of the game.
If there happens an exception, either on init; or when clicking "Load" or "Save"; or after you clicked on a save-game-slot: the game is incompatible with this MOD...
If you want to give feedback, please say WHEN/WHERE you got the exception and please quote or attach the "traceback.txt"
(
of course you can delete private data from the file:
-e.g. the full path to files e.g. "c:\games\nsfw-games\some-renpy-game-name\renpy\ast.py" to "some-renpy-game-name\renpy\ast.py"
-or the used OS-system at the end of the file: e.g. "Windows-11" would be enough for me, but you can delete it completely, if you don't want to tell
-please leave the Ren'Py version completely
-but you can delete game-name and date and time when the "traceback.txt" was created
)

Also, if you cannot see any difference to when the SGD-MOD was not installed: the game is incompatible with this MOD...
You can tell me about that, but generally there's not much to be done about it.

If everything still looks promising, try 1st to load and save different games give them a description and not ... look again if it all behaves like expected!
Only THEN start to "really using" the MOD(please!). thank you!
------------------------------------------------------------------
------------------------------------------------------------------
1.6.2. MttkModSavesSpecials
------------------------------------------------------------------
In earlier versions of my SGD I made a extra-file for every game that needed adjustments. (e.g. MttkModSaveRButtForWaifuAc0_9_8a.rpy in ReturnButtonForWaifuAc0_9_8a.zip )
That files also only were working for a specific version of the game.
I now have collected all adjustments into one file: MttkModSavesSpecials.rpy
I also made it that the adjustments should work with every version of the games.
Not complete list of adjustments I made:
(you'll find a more complete list in the thread(changelog))
-Unlimited Pleasure      -Waifu Academy
-Sword of Wonder
-Master Of The Earth(2) = Reborn(MOTE2)
(-SuperPowered(SP) - atm. untested with actual game-version!)
-Depraved Awakening      -Island of Lust
-DOOMINATION
-Doll: House; City; World

Some "old" games don't use the file_slot-screen but the file_picker(MOTE2 and SP).
There the screenshot-thumbnails are very small(50x66 by default), I offer an option to store the savegames with bigger screenshots. But be warned! If you use bigger(modded) screenshots and then deinstall the SGD-MOD, these bigger screenshots may cover the navigation! (see screenshots in thread for SuperPowered(SP))

If you don't play a game I made adjustments for, you can safely delete the MttkModSavesSpecials.rpy(and .rpyc).
------------------------------------------------------------------
------------------------------------------------------------------



1.7. keyboard-keys(Quick -Save, -Load; screenshot)
------------------------------------------------------------------

Also one of my very early MODding; by standard I route QuickSave to "F5" and QuickLoad to "F9"
(anybody remember Doom or any else of that age-old DOS-games? *reminiscencial grin*)
Those (the keys) (should) even work if the game has no quick_menu!
You can change the keys in game/zMttkModFolder/MttkModKeys.rpy
Be sure to preserve the indention! and delete any existing MttkModKeys.rpyc before the change!

Also the "PrintScreen-key"(if pressed with CTRL, it's BREAK!) is routed to take a screenshot.
Like pressing the "s"-key for normal RenPy.
------------------------------------------------------------------
------------------------------------------------------------------

1.7.1. gestures for touch-devices
------------------------------------------------------------------
My default gesture for QuickLoad is "s_e" i.e. south_east i.e. you swipe down and then to right on your touch-device without lifting the finger inbetween(like "L"). Default for QuickSave is "n_w"(north(up)_west(left)). (the opposite of "L")
Also the "default gestures"("n":"game_menu", "s":"hide_windows", "e":"toggle_skip", "w":"rollback") are tried to be added.
If any of the gestures already defined, the MOD will do nothing.

(the gesture: "s_e_n" is added for taking a screenshot,
 but you should only use that if you got problems with the screenshot-function of your touch-device!
->coz generally without root-access you can't ~"find"~ the screenshots! I did try some workaround...
  ~"please handle with care"~)

additionally the longpress_duration is increased to a min. of 1.5sec

==> all that is done by the file MttkModKeys.rpy
(which is now part of my Save Game Description-MOD)

(the "s_n_s_n"-gesture to bring up MttkModMenu is done there too, see also 2. and 3.9)
------------------------------------------------------------------
------------------------------------------------------------------



1.8. reactivating "_history_list" (and History-screen) if needed
------------------------------------------------------------------

If the game DID NOT deactivate "history-functionality" and/or History-screen you can skip this chapter.

My MODs ALWAYS reactivates "history-functionality".
If the screen was not available in the game, you can find it in
( 3. ) section "General Modding"
---  game-specific:
( 3.9. ) show (RenPy)History

Reactivating "history-functionality" will mean the variable "_history_list" will be a (RenPy-)RevertableList, default-lenght is 250, the MOD make it min. 111.
And "_history_list" will be stored in "SaveGame"("store")!

Warning: the HistoryEntry has a VoiceInfo that may have a line-identifier(that is similiar(same?) as used for translation), that is composed with the (RenPy-)label. That means, especially label-overrides can be found here.

( If the game(dev) deactivated the "_history_list" intently, a future version of the game could check if "history-functionality" was activated in (MODded) version and act upon it("You cheater!!!"). )
( I MAY make reactivation of the "history-functionality" optional for future games? )
------------------------------------------------------------------
------------------------------------------------------------------



1.9. using a different mouse-icon
------------------------------------------------------------------
IF the archive has NOT a file "MttkModMouse.rpyc" you can skip this chapter.

My MOD-"frame" contains a (lil) bigger mouse-icon (also coloured yellowish).
This is activated by the file "MttkModMouse.rpyc" being present in "zMttkModFolder".

See   3.8.   system_cursor (Preference) for switching

If you don't want my mouse-icon be "present" at all:
you can safely delete "MttkModMouse.rpyc".
------------------------------------------------------------------
------------------------------------------------------------------



------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------





2.   invoking MttkModMenu
------------------------------------------------------------------

Most likely you'll find a textbutton "MttkMod" in navigation i.e. main_menu and game-menu.
It could be possible to find a textbutton "MttkMod" in quick-menu.
Sometimes I route ALT-m to bring up the menu. (plus "s_n_s_n"-gesture on touch-devices see also 3.9)

In section "General Modding" you can choose to route the "x"-keyboard-key to bring up the menu. (see 3.7. "X"-key)
------------------------------------------------------------------
------------------------------------------------------------------



2.1. starting screen
------------------------------------------------------------------

While you're in main_menu(i.e. have neither started nor loaded a game):
-you will not see any spoilers (only if you open the WTish-screen(if existing))

-you have two textbuttons to set many options of the MOD in one click:
--"unmodded": all MOD-options are disabled; this is the same as playing the game without the MOD.
With following exceptions:
---quick -save and -load keyboard-keys and gestures are in place
---console and developer-mode are turned off
---the different mouse-icon is not disabled
---save-game-description is installed
---all error-corrections(if any exist) are in place

--mttkMod: this is what I would suggest you to play with

If you just installed the MOD, you could click "mttkMod" and then look into the sections "General Modding" and cheats("cheeta") to check the MOD-options and afterwards restart the game.


Once you started or loaded a game and bring up the mttkModMenu you'll (most likely) are confronted with a mass of numbers, and mebbe even some cryptic descriptions.
What you see is a SPOILER.
I'm not going into detail for every MOD here! just some general hints.
Many of what you see are hidden stats of the game. Common hidden stats could be "love" or "submissiveness" for every girl in the game. (if space on screen is sparse I tend to abbreviate such stats to e.g. "lov" or even "lv" and "sub")
Other abbreviations result from the actual names of the variables of the game.

Of course "sex" is abbreviated "6" also any form of counter("count" may not even be part of the variable-name) may be abbreviated "cnt"(or even just "C")   e.g. "gloriassexcounter" could be represented as one line "Gloria: (some-other-gloria-vars) ; 6cnt: 1" if you had sex once.

Also I may give some "milestones"   e.g. Gloria allows you to kiss her, if her love-score is 6 or higher; she will agree to sex, if love is min. 10 and you can choose ANY action with her, if her love is greater than 16  .  part of my line would look like: "Gloria: lov: 16 (>5 >9) >16 ; (more-gloria-vars)" i.e. she'll kiss you, you can have sex with her, but BDSM is still off limits.

Just observe the numbers while you play...
and if there is a WTish, I tend to reference the values given here!
------------------------------------------------------------------
------------------------------------------------------------------



2.2. WTish (WalkThrough~ish) and options
------------------------------------------------------------------
IF the archive has NOT a file "MttkModMenuWTish.rpyc" you can skip this chapter.

Content of a walkthroughish document greatly varies from game to game and mebbe even from one MOD-version to another.

Pressing "w"(again) or "x"(always) closes the WTish-screen and you're back to the starting-screen of the MOD.(or in case of "w" back to the game)
The cursor-keys should be available to scroll left and right(if needed) aswell as up and down.
The mousewheel aswell as keyboard-keys Page-Up and Page-Down should be available to scroll up and down.
Keyboard-key "HOME" shall always scroll to the start of the document, and "END" always to the end.

"bookmarks":
Number-keyboard-keys 1-9 (aswell as the same ones of the KeyPad, aswell as some single letters) may represent "bookmarks". Pressing "bookmar-key" changes view-position to that "bookmark".

The options-screen(for the WTish-screen) is not always available.
IF it is available, pressing the "o"-keyboard-key(from everywhere in the MOD) will bring it up. (Pressing "o" while the options-screen is showing will switch to the WTish-screen)
All bookmarks will be shown as button here (if you don't have a keyboard)
and the corresponding keyboard-key will be shown in brackets underlined.


Deprecated(and not available atm) options in options-screen:
If the MOD provides old version(s) of the WTish, you can switch to those here.
By default the MOD remembers the last chosen bookmark view-position on game-restart. Disabling that option will lead to always show the "HOME"-position after a game-restart.
------------------------------------------------------------------
------------------------------------------------------------------



2.3. uninstall - "u"
-!----------------------------------------------------------------
(
As pointed out in "aims" and "mechanics" of my MODs, I want to leave no trace of the MOD.
But of course I need variables too. I decided to use the persistent for my variables.
(this has disadvantages!.. but also advantages...)

One disadvantage (of pot. many) is that I need to "workaround" the fact me NOT "using" the "store".
(technical: the persistent acts DIFFERENTLY to a(/the) "store"!)

One advantage using the persistent is, that I am able to keep clear from the "store" i.e. the "SaveGame".
(AND technical: the persistent acts DIFFERENTLY to a "store"! *GRINS*)
)

So, if you have saved a "SaveGame" WITHOUT the "modder-warning-badge" being shown; that is most safe already!
(EXCEPTION(again) is the "rollback"(see 1.3.) )
(EXCEPTION(again) is the "_history_list"(see 1.8.) )
(pot. EXCEPTION: lessened traceability for specific games(see MttkMod?game-name-and/or-identifier?ReadMe.txt) )
------
Especially with MttkModError.rpy there may be traces left. You can purge rollback and create a nearly empty history from the last entries.
While "inGame" go to uninstall(press "x" then "u") and select:
"! MAXIMUM SAFETY for SaveGame: purge history and rollback; save afterwards !"
(if the option is not available and the WARNING tells you to create a new history-entry; I mean you shall play until the game said something(produced another "say"), you could be required to do that repeatedly)
After pressing the button, MttkModMenu hides with config.exit_transition and you can save the game.
------

But most likely you want to port your progress (and settings) aswell;
i.e. the persistent.

And to do that(clearing the persistent of all mttkMod-references) you must:
-go to main_menu
-open MttkMod
-press the "u"-keyboard-key
-the button: "! CAUTION ! UNINSTALL ! CAUTION !
 (and many more lines with explanations ...)"
 shows up
-CLICK it!
-(MttkMod-screen has been hidden)
-exit the game

--now you can make an archive of your SaveGames and persistent for use with future game-versions
--you can uninstall the MOD completely by deleting the "zMttkModFolder"
  (if more is needed to be done, you'll be told(e.g. in a different .txt))
--( if you did not delete the "zMttkModFolder" and start the game again my vars are written to the persistent again(like you would have freshly installed it). )
-!----------------------------------------------------------------
! on touch-devices use the "s_e_w_n"-gesture instead the "u"-keyboard-key !
-!----------------------------------------------------------------
------------------------------------------------------------------



2.4. translating this MOD
------------------------------------------------------------------
IF I had prepared this MOD to be translated, in the folder "zMttkModFolder"
you will find a folder "forTranslaters".
To test the German translation of this MOD there needs to be: "zMttkModFolder/MttkModTranslate.rpyc" and "zMttkModFolder/forTranslaters/MttkModStrings.json".

There should also be "zMttkModFolder/forTranslaters/MttkModStrings.json.txt",
in which some mechanisms of my implementation of the config.replace_text-function and its' describing "comments" in the MttkModStrings.json are explained; aswell you should be told what files of the MttkMod are covered by(and where) MttkModStrings.json.

In "zMttkModFolder/forTranslaters/" you should find:
1) "MttkModTranslatableLabels.rpy" (and "MttkModTranslatableLabels.rpyc")
-(most likely) this file will hold "labels with say" that once were in "MttkModError.rpy"...
-but even "MttkModError.rpy" I don't want to be exposed to LLM/AI !
--if the splashscreen of the game containes "say", you'll find my "override" of it there also.
--->include file "zMttkModFolder/forTranslaters/MttkModTranslatableLabels.rpy" to your "dialog"-translation!

2) "zMttkModFolder/forTranslaters/MttkModStrings.json"
-there you'll find the translation-strings for the DEFAULT(i.e. with NO content) MttkModFrame
--e.g. "enabled", "General Modding", "show tips on choices: "...
--refer to "zMttkModFolder/forTranslaters/MttkModStrings.json.txt" for hints on how to understand the entries in the JSON !

3) MttkMod~something~something~_stripped-for-translation.txt (this is a .rpy but renamed to .txt to not use extra init-time)
-let's look at a hypothetical  example..."zMttkModFolder/forTranslaters/MttkModMenuChoices_stripped-for-translation.txt":

TODO!



What will not be available to translate:
---preface time- and date- format:
--- admittably I'm not sure if your 'locale' has any impact on it
--- by default I'm using German notation dd.mm.yyyy, hh:mm:ss
--- time in 24h-format
-duration: I DID have a hard enough time to calculate a duration...
-mebbe sometime in the future, I redo it...but don't count on that!
--if my MOD does tell about a duration, it will use english abbrevations:
--"yr" for year/s; ("mo" for month/s, but generally I don't use months!, you will only get weeks)
--"wk" for week/s; "dy" for day/s; "h" for hours; "m" for miniutes; and "s" for seconds

------------------------------------------------------------------
------------------------------------------------------------------



------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------





3.   section "General Modding"
------------------------------------------------------------------

Open the MttkMod(-main-screen) and press the "g"-keyboard key
or click the textbutton. To go back to the main-MOD-screen
again press the "g"-keyboard key or click the textbutton.
------------------------------------------------------------------
------------------------------------------------------------------



3.1. confirm quitting game
------------------------------------------------------------------
Normally if you started/loaded a game and want to quit RenPy, you're required to confirm the quit.
Disable the confirmation here and you'll then quit RenPy immediately.
------------------------------------------------------------------
------------------------------------------------------------------



3.2. confirm quickloading
------------------------------------------------------------------
Normally if you press "Quickload"(or e.g. F9), you're required to confirm the (quick)load.
Disable the confirmation and you'll then load immediately.
The MOD does a fast fade to black to give some optical feedback that a game has been loaded.
------------------------------------------------------------------
------------------------------------------------------------------



3.3. console
AND
3.4. developer mode
------------------------------------------------------------------
I once required you to restart the game to change those settings to discourage you from enabling these (very powerful) settings.
The renpy.config-variable is now set by clicking the toggle. (reflected by NOW: )
I still tell you to restart the game, coz mebbe not all functions of the options are usuable without a game-restart.



3.3. console
------------------------------------------------------------------
(when enabled) by default invoked by pressing "shift o".
Well, either you know how and for what it can be used, or you need to learn that.
Please don't ask me.


3.4. developer mode
------------------------------------------------------------------
(when enabled) director by default started by pressing "d".
Well, either you know how and for what it can be used, or you need to learn that.
Please don't ask me.

As the name suggests it is meant for the game developers and has useful tools for them e.g. displayable- and style- inspectors. But also RenPy is set in a more "alert" mode, this means it is more likely to get an exception, so that the developer can adjust the code to not get that exception.
Vice versa when developer mode is disabled RenPy tolerates more (potential) errors. (e.g. the infinite loop detection will wait much longer before throwing an exception)
------------------------------------------------------------------
------------------------------------------------------------------



3.5. (functions of) mousewheel
------------------------------------------------------------------
You can use the mousewheel to scroll when the mouse-pointer is "over" a viewport-displayable(e.g.) or any other displayable that is scrollable and defined to be able to use the mousewheel.

And normally the mousewheel can be used to rollback and rollforward, when the mouse-pointer is not "over" scrollable content.

I often found myself rolling-back or -forward, when I just tried to scroll through some information, but the mouse-pointer was not exactly "over" the displayable, or the displayable looked like it may be scrollable, but wasn't defined to be scrolled by the mousewheel.

This option en-/dis-ables rolling-back or -forward with the mousewheel.
(you can always use the PageUp-keyboard key to rollback and PageDown to rollforward)

After switching this option you must restart the game to make the change effective.
------------------------------------------------------------------
------------------------------------------------------------------



3.6. RenPy-sync
------------------------------------------------------------------
With version 8.1 (and 7.6) RenPy saves games to a 3rd location, the "sync"-folder.

It is meant to sync/save your savegames to e.g. config.sync_server = "https://sync.renpy.org".
(how that shall interact with the save tokens can only RenPy tell...)
Setting config.has_sync = False seems only to disable the option to up-/down-load.
For more info read RenPySDK-doc.
The MOD checks that the sync_server is still the default; then you have the option to completely deactivate sync-functionality. Deactivating works instantly, if you want to reactivate sync-functionality, you must restart the game.

(If you disabled the sync-functionality with the MOD, no more saves are being stored to the "sync"-folder. But that also means, if you later want to use the sync-functionality
 (you can re-enable the option in the MOD and restart the game),
only those save-games are being "synced", that have been saved while the sync-functionality was enabled. (You can manually copy save-game-files to the sync-folder...))
------------------------------------------------------------------
------------------------------------------------------------------
3.6.1. RenPy-sync and Save Game Description
------------------------------------------------------------------
Also with version 8.1 (and 7.6) the file_slots-screen got 2 new buttons ("Upload/Download Sync").
By default the Save Game Description-MOD is NOT showing those buttons.
If your RenPy-version is capable of "sync" and it is not deactivated, there is a new option in "opts (&help)":
toggle: not showing "Sync"-buttons
When toggled to (toggle: showing "Sync"-buttons) another option is available.
By default(RenPy) the "Upload/Download Sync"-buttons are added under the page-select-buttons
(=option: toggle: show "Sync"-buttons at BOTTOM of screen).

You can (try to) move them to the TOP of the screen; technically this is a bit difficult, therefore the possibility exist, that you move the buttons outside of the visible screen(i.e. they are invisible)...
But when successful they are in the TOP right corner of the screen.
------------------------------------------------------------------
------------------------------------------------------------------



3.7. extra writing the persistent
------------------------------------------------------------------
(not for every game and not always all options available)

Generally the "persistent" will only written to the specific file(s) in save-folder(s) only when quitting the game.
I'm not sure when RenPy started to write the persistent on exception(+7.3.x?), but even that does not help if the game crashes "unconditionally".
The problem is, all your "progress" is saved in the persistent e.g. if you unlocked an achievement but then the game crashed and next time you start the game, even if you load a save-game you made after you unlocked the achievement, the achievement is not unlocked! (asuming default RenPy-achievement behaviour)

My first option was to write the persistent kinda periodically, but only when bringing up the MttkModMenu. I consider this deprecated and most likely you will not have that option.

Better(imho) is the idea to write the persistent when you save a game.
(You need to restart the game to change this option
 and technically the write of the persistent happens before the game is saved
 and as a little warning: this also works for quick- and auto-saves)

Generally you should leave the option(s) disabled until you encounter crashes of the game.

An extra option lets you decide if you want to be notified when the persistent is written.
And lastly you can tell the mod to "(write now)" the persistent.
------------------------------------------------------------------
------------------------------------------------------------------



3.8. ALT-cursor-keys
------------------------------------------------------------------
(If you mainly use the mouse to play RenPy-games, you can disable the option and skip this chapter)

I mainly use the keyboard to play RenPy-games and in some (seldom) occasions you cannot "reach" a choice or button with the cursor-keys (and tab does not help either). After some digging I found RenPy-functions to cycle through all "selectable" items in the window(or fullscreen). When enabled hold ALT and press e.g. cursor-right repeatedly to cycle through all "focuses".

After switching this option you must restart the game to make the change effective.
------------------------------------------------------------------
------------------------------------------------------------------



3.9. "X"-key
------------------------------------------------------------------
Shortcut keyboard key to bring up the MttkMod-main-screen.
As I use "x" or "X" for Exit/Quit nearly everywhere (and it is not used by RenPy by default), I decided to use it for showing my screen too.

For touch-devices the gesture "s_n_s_n" is registered by default to mimic the "x"-keyboard-key.
If the gesture is already used, it will only be redirected to the MOD if you ENABLE the "x"-keyboard-key-option.

As with all keyboard-assignements after switching you must restart the game to make the change effective.
------------------------------------------------------------------
------------------------------------------------------------------



3.10. system_cursor (Preference)
------------------------------------------------------------------
IF the archive has NOT a file "MttkModMouse.rpyc" you can skip this chapter.

(if the game does not provide a custom mouse-cursor,)
I provide a custom mouse-cursor. Main intent: bigger cursor (yes, I'm getting old;)
There is a (RenPy-)Preference from 7.04.04.vc(?) on to explicitly use the system_cursor.
If game-dev or modder didn't give a custom cursor, the system_cursor is being used.
Else the custom cursor is being used by default.
(if the RenPy-version is smaller than 7.04.04 there is no option in the MOD,
 to use the default (your system) cursor the MOD tells you to
 delete the file "zMttkModFolder/MttkModMouse.rpyc" )

i.e. this switch toggles between the system_cursor and (my) custom mouse cursor
------------------------------------------------------------------
------------------------------------------------------------------



3.11. show (RenPy)History
------------------------------------------------------------------
If the game DID NOT deactivate "history-functionality" and/or History-screen you can skip this chapter.

(oh wonder) clicking the button closes mttkModMenu and shows the History.
(see chaper 1.8. for potential traces in the "store")
------------------------------------------------------------------
------------------------------------------------------------------



3.12. general optical changes
------------------------------------------------------------------
This is all that cannot be called an error-correction OR a cheat.

This could involve:
-text-coloring(accent_color or outlines) and size;
-look of textbuttons(choices)
-layout/scrollability of grids/viewports
-and many other pot. things
-nowadays e.g. the look of the textbox is likely to be changed by modders

Be warned, this is respecting MY personal opinion, and you can only turn ALL changes on or off.

Most likely switching this option requires you to restart the game to make the change effective.
------------------------------------------------------------------
------------------------------------------------------------------



3.13. scene replay Gallery
------------------------------------------------------------------
IF the archive has NOT a file "MttkModGallery.rpyc" you can skip this chapter.

A most basic scene replay gallery, usuable only in main_menu-context.
Invocation should be available through 'navigation'.
In some cases can be used "standalone" i.e. only files
"MttkModGallery.rpyc", "MttkModStyles.rpy" and "6MttkModSupport.rpy" needed.
You then may access it by keyboard-key: ALT-m

Somehow RenPy prediction is not working at its best(most likely my failure).
This'll result in a little "lag" when seeing a gallery-page for the 1st time since game start.
->I added "more_image_cache.rpy", this sets a config-var and for me, it lessens the "lag"!
  of course that is supposed to use more RAM...
  i.e. if you're low on RAM(<4GB?) you may not want to use this...
  ...test it...(or not;)

Default RenPy-condition applies: you must have 'seen_ever' a specific 'label'.
------------------------------------------------------------------
------------------------------------------------------------------



3.14. detection of translations and pot. switching
------------------------------------------------------------------
Your game must have: tl/None/common.rpymc
and min. one other language installed. (e.g. translate ?x?x? strings)

This shall be detected by the MOD and while in main_menu-context you should
see text-buttons in general section to switch between languages.
These buttons tho will not reflect the state of currently selected language.
i.e. you will always be offered the button to switch (back) to language "None"(normally english)
Aswell as a button for every "detected" language.
You can only directly see an effect if the RenPy-Menu-buttons are translated.
Else you need to start/load a game, to confim the language-switch.

Most translations have their own way of changing the language, this is merely a
backup/safety option.

I have reworked my MOD-frame to be able to work with "RenPy-translations"
(in contrast to translations that e.g. directly change the script!).
But still there may be some things left.

Also you need to keep in mind: once you switch the language RenPy resets some things,
e.g. the History: that will be empty after the switch, if you switch ingame.
If you switch in main_menu and then load a game, the History may hold entries
of the old language and then continue with the new language...
My MOD-frame uses e.g. the History to determine some things; and thus these will be
broken(/not working as expected!) if you switch language after having started a new game.
Especially DO NOT switch language when the "modder-warning - mod now active" is shown!
e.g. in multiple choices! JUST DONT DO IT *** you have been warned ! ***

Generally you should decide ONCE per playthrough what language you want to use...
On the other hand: when the modder-warning-badge was not shown, switching even in
middle of the game !may! work ~fine~...just be prepared...
(i.e. have(and keep) some savegames and if somthing bad happens, just go back)

(there's a rough check-function to determine if a translation-mod translates
 my MttkMod(which is NOT SUPPORTED (by now)). If found, my MOD will refuse to work!
 (in main_menu you can switch back, and after a restart you may game on))
------------------------------------------------------------------
------------------------------------------------------------------



3.15. more details of translations and instructions on it
------------------------------------------------------------------
My MOD-frame now has a folder "forTranslaters"; THERE and in its subfolders
usage of LLM/AI is not explicitly prohibited. (tho I still hate it)
File "MttkModTranslatableLabels.rpy" holds (overridden) labels with translatable content.
refer to folder "German__example__", instructions and hints are in files
"MttkModDialogue", "MttkModStrings" and "screens" .rpy(/c)
You should "get the drift...".
Additionally there's the folder "italian_from_GioBol". GioBol's italian translation initially
made me think about translations in general, and as a reverance I have put italian(even
tho I can't speak it myself!) as an "extended example" there too. Part of the tranlation I have
copied from GioBol's files, I hope that was OK for me to do, else say so and I'll delete the folder
completely with the next release.
RenPy takes notice of the (3) new translation(s). But my option in "General Modding" to switch
to another language will only be available if there is a corresponding folder in "game/tl" !
i.e. e.g. "game/tl/italian" ! (you can still switch by other means!)
(switching (back) to "None" may be available when MOD thinks another language is active)

------

GioBol (and most likely many other translaters aswell)
use the RenPy-Callback "config.replace_text"
(which imho never was meant for translations...but be it, as it is...)
...
In itself this is not ~bad~...BUT relying on it even if one could do else IS BAD
...
OF COURSE this causes MASSIVE disruptions to "everybody else".
("everybody else" includes the dev(s) of the game but the CB-user knows about this!..
 but "everybody else" ALSO includes modders that make a MOD AFTER the "translation"
 or even BEFORE the translation...it doesn't make a differance...
 it's kinda REPLACE_ALL_TEXT! ...this callback is JUST TOO MIGHTY!..
 RenPy offers a way of distinguish~isation: {#transalte this!}
 ...but of course neither dev's nor modder's ~really~ use it (at least I haven't seen it
    being used in any game I played...and I only used it when I tried to translate my MOD
    (which was a total disaster oc!))
...
I have put in place some checks for replace_text() ...
e.g. "True", "False", "None", "save", "SAVE", #and more...
IF the translater does any of those as "String-Replacement"
we're not going to have a problem with each other!
But on replace_text() my MOD shall refuse to work!
(admittably my MOD may react on weird ways...)
...
imho replace_text() is an EASY, but LOUSY way of translation;
failures are BOUND to happen, especially with LLM/AI !
Either you're a ~real~ translater, or you're a MASSIVE waste of energy!
------------------------------------------------------------------
------------------------------------------------------------------



------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------





4.   section cheats ("cheeta")
------------------------------------------------------------------

Open the MttkMod(-main-screen) and press the "c"-keyboard key
or click the textbutton. To go back to the main-MOD-screen
again press the "c"-keyboard key or click the textbutton.

Not all options may be available in every MOD.
------------------------------------------------------------------
------------------------------------------------------------------



4.1. tips on choices
------------------------------------------------------------------
My most ancient cheat;)
The most simple implementation would preface the choices with:
"!-->" for "choose this!"
"?-->" for "I ~would~ choose this"
"not->" for "do not choose this!"

The motivation of the tips, is to see the most content possible (in one playthrough).

More complex implementations could add details about specific choices e.g. how many love-points you may gain(or loose) by taking that choice.

You can leave this option disabled(to e.g. not spoiler yourself) and only if you're in doubt go to MttkMod, enable it and have a look at my tip, then disable it again.

Disabling this option also disables:
-even more comments on choices-
-more choices-
-"full VN-mode"-
Enabling this option disables:
-ONLY "points"-
------------------------------------------------------------------
------------------------------------------------------------------



4.2. even more comments on choices
------------------------------------------------------------------
(not for every game available)
(only available if -tips on choices- is enabled!)

While
"?-->" for "I ~would~ choose this"
at -tips on choices- may e.g. show more(/and/or different) CGs

The -even more comments on choices- mainly give
"it doesn't matter, but I take this".
This is for me when replaying a game after some years, or for people that just don't like to read.

Disabling this option also disables -"full VN-mode"-
------------------------------------------------------------------
------------------------------------------------------------------



4.3. ONLY "points" on choices
------------------------------------------------------------------
(not for every game available)

My most recent cheat-option!

Well, you don't want to spoiler yourself too much?
I.e. not getting explicitly told everywhere what to do?
Of course by this you may miss scenes!
(remember you can change "tips" at ANY given moment)

It shall work with "Add(Multiple)-choices" but those were meant to work in conjunction with -tips on choices- ..!
(sometimes for max. CG's to be seen, a "negative" point is needed to take, and you will be told that by -tips on choices- ..!)

Enabling this option disables:
-tips on choices-
-even more comments on choices-
------------------------------------------------------------------
------------------------------------------------------------------



4.4. more choices : Add-Choices and Multiple-Choices
------------------------------------------------------------------
(not for every game available)
(only available if -tips on choices- is enabled!)

Add-Choices example:
it's evening; from the entrance: you can go to your room(to sleep)
or to the kitchen(to eat)
but once you're in your room, normally you cannot leave it(e.g. to go to the kitchen)
My cheat (in this example) will add a choice in your room to go to the kitchen...
(tho this example could be considered an error-correction by me;
 also cheat-repeats are Add-Choices, in this example some ingame-days ago you were able to visit a girl,
 but in the "vanilla"-game you can do that only once. An AddedChoice could be "cheat-Repeat: visit girl")

Multiple-Choices example:
my most basic example: "Kiss Girl A" OR "Kiss Girl B"
->MOD: "Kiss'em both!"
The actual implementation varies GREATLY and in the (EDIT2025-09:worst possible->)most likely scenario I must
"purge the rollback-information after reaching the last choice".
i.e. once you chose "MOD: Kiss'em both!" the "MOD now active - badge" appears!
and after you entered the route to kiss Girl B(the 2nd one) all rollback-information will be deleted by me.
(this is to ensure "to leave no trace"!)
Else of course this is the most entertaining choice.

EDIT2025-09: my default Multiple-Choices expect the game NOT to be translated!
i.e. you WILL get errors on translated games!
(I'm not sure if this can be mended ever...)
------------------------------------------------------------------
------------------------------------------------------------------



4.5. cheat randoms to your favor
------------------------------------------------------------------
(not for every game available) IF the archive has NOT a file "MttkModMenuRandom.rpyc" you can skip this chapter.

This is for all surely ~better~ options.
e.g. -an event can happen / no event will happen    -> an event can happen
-critical hit / hit / miss / fatal miss - by player -> critical hit by player
-critical hit / hit / miss / fatal miss - by NPC    -> fatal miss by NPC

When it's not ~sure~, you can hope it's being handled by "cheat more randoms".

Disabling this option also disables -cheat more randoms- and/or -"full VN-mode"-
------------------------------------------------------------------
------------------------------------------------------------------



4.6. cheat more randoms
------------------------------------------------------------------
(not for every game available) IF the archive has NOT a file "MttkModMenuRandom.rpyc" you can skip this chapter.
(only available if -cheat randoms to your favor- is enabled!)

This highly varies from game to game!
It is meant to address randoms that cannot be clearly called "good" or "bad".

e.g.
critical hit / hit / miss / fatal miss - by player
e.g. depending on opponent different randoms are better
or: best is to 1st hit then miss then critical
or: ...

Also implementation may differ from game to game...

Please see MttkMod?game-name-and/or-identifier?ReadMe.txt
(hopefully I've written something there;)
------------------------------------------------------------------
------------------------------------------------------------------



4.7. warn (&stop skipping) buttons
------------------------------------------------------------------
(not for every game available) IF the archive has NOT a file "MttkModMenuNoSkip.rpyc" you can skip this chapter.

Ever played a "VN" with "minigame" and skipped through 10 "say" that are every day the same, by pressing CRTL...
...and then ended up in a minigame that is time-relevant; i.e. YOU LOST!
I did! here's my solution: before the minigame I stop skipping! and show a "button"

This also serves as reminder to (quick)save BEFORE a random is computed by the game.
(if the random is handled by -cheat randoms to your favor- AND you have activated that, no stop skipping! no button!)
(same goes for -cheat more randoms- but also a work in conjunction is thinkable; I remind you to look at MttkMod?game-name-and/or-identifier?ReadMe.txt)

If activated can be performance-relevant. (it evaluates EVERY "say")


WARNING! clicking on the button(i.e. continue) ALL rollback-information will be deleted by me.
This is to prevent critical errors, that would happen if you would rollback beyond the button!

Even so, you SHOULD NOT rollback after this...I regularily(tho "seldom" and only by certain actions)
get the "back-to-desktop-service" after I rolled back to the "say after the 'stop-say'" and try to game on...
=TODO@me! (?)


After switching this option you must restart the game to make the change effective.
------------------------------------------------------------------
------------------------------------------------------------------



4.8. splashscreen
------------------------------------------------------------------
(not for every game available) (game-specific)

Well once I(and you) seen the splashscreen telling about 18+ and opportunity to support the dev,
I kinda get bored, if I even have to press a button I get annoyed.

This option is to SKIP the splashscreen, sometimes only partly (i.e. more than 2 options).

(well of course you only see the change effective if you restart the game;)
------------------------------------------------------------------
------------------------------------------------------------------



4.9. "gallery" (un)locker
------------------------------------------------------------------
(not for every game available) (game-specific)
(if MOD provided a scene gallery, it should be available by default)

If the game has a scene- and/or a replay-"gallery" you can change the lock-status when in main_menu.
You can only change status of ALL items! i.e. ALL UNLOCKED or ALL LOCKED!
And this can NOT be undone! except un-locking ALL (again)

What you can do is generally decided upon the status of the 1st item of the gallery.
i.e. if the 1st item is unlocked, you can LOCK ALL

There seems to be a glitch where especially re-locking is undone (by RenPy? coz Movie?)
roughly a second after switching...
If so:
-don't switch while the gallery is showing (go e.g. to "About")
-after switching immediately change the main_menu-screen (e.g. to "Preferences")
------------------------------------------------------------------
------------------------------------------------------------------



4.10. variable-cheats
------------------------------------------------------------------
(not for every game available) (game-specific)

In general this is what you could do with the console(3.3.) yourself.
But sometimes some variable-names are hard to come by, so here you go:
CHEAT!-)
------------------------------------------------------------------
------------------------------------------------------------------



DEPRECATED!
4.11. "full VN-mode"
------------------------------------------------------------------
DEPRECATED!
I done this for SOW and will tell explicitly if I do it again.
Do not expect to see it again done!

experimental
-do NOT use-
and most likely I'll never do it again!

(only available if
-tips on choices-
-even more comments on choices-
-cheat more randoms-
 are enabled!)


The idea is to guide the player through EVERY choice AND random to experience the maximum content the game has in one playthrough.
(of course this reflects MY opinion!)


I have one or two checks in place, if you did not follow the "full-VN" but of course that is MUCH TOO LESS!
And that's the main problem(besides it was one HELL of a work), coz if the player once gone off the "full-VN-path":
1) I cannot tell (surely)
2) all following "tips" may lead to bad/idiotic/senseless decisions


(IF the 3 requirements enabled: press "x"(to bring MttkModMenu UP), then "c" then "k" to see this option)
(on a touch-device bring up the MttkModMenu then use gesture "s_n_s_e_w" to see this option)
DEPRECATED!
------------------------------------------------------------------
------------------------------------------------------------------





------------------------------------------------------------------
    THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
    OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
    GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    ANY USAGE, READING, LEARNING FROM OR USE IN CONJUNCTION BY OR WITH
    MACHINE LEARNING, DEEP LEARNING, ARTIFICIAL INTELLIGENCE OR SIMILIAR
    IS STRICTLY FORBIDDEN.
------------------------------------------------------------------

END OF DOCUMENT
