Because the game logic/scene structure and coding is a horrifying mess. Instead of structuring scenes as one-off repeatable events they rely on previous data and variables.
So, if you want to have a gallery, you basically need to rewrite the game for half the fucking scenes.
Edit: see
Limezero's post earlier for an example of retarded shit in the coding:
https://f95zone.to/threads/four-elements-trainer-v0-8-4b-mity.730/post-2819003
What's weirder still is that the game actually HAS a gallery system for Book 4, and it's implemented exactly how you'd think - by literally rewriting every single scene line by line into a new label that doesn't try to check variables (yes, really). You don't need to be a 300 IQ galaxy brain coder to see why that's a bad idea, so you'd probably want to refactor the game instead by making each major scene a standalone component from start to finish like you should've done in the first place.
Which to be frank isn't as big a deal as it sounds. The horrifying screenshot I posted is from the card minigame, which once again has fuck all to do with the rest of the game. Most of what you'd be doing involves copying scene declarations and "show character at left" statements around so everything is set up at the start of a segment, adding
or _in_replay == True
to every if condition, then slapping
$ renpy.end_replay()
at the end. IIRC there was even a guy who made an unofficial mod with a gallery mode at some point by doing exactly that. Not to mention that FET, being a trainer game at its core, is already structured in an artificial and "game-y" fashion with a clear map laid out for things (a character has a training menu with 7 scenes in it, each scene has 2-3 variants that are progressively more "corrupted", etc.)
But even failing that, you could do some truly disgusting shit like declaring new labels in the middle of scenes to use as jumping points, setting up all the missing backgrounds/characters from "outside" the scene before starting the replay, and having a "pass every check" mode which sets all of your variables to 999 temporarily.
Python:
screen Gallery:
add g.button(title="Toph Anal 2", icon="gal26-tanal2.png", label="toph_anal_replay_start" xalign=0.5, yalign=0.5)
label toph_anal_replay_start:
$ set_up_the_usual_variables()
$ replay = True
$ bk3_variable = 3
$ bk3_toph_stage = 12
$ bk3_did_something = True
scene bk3_house_night
show toph at right
play music "RoyaltyFree.ogg"
jump toph_anal_replay
label bk3_village_night_menu:
"A bunch of shit happens here"
menu:
"Pound Toph's ass":
$ toph_ass_pounded = True
"You go to your room and start the scene with Toph"
label toph_anal_replay:
"The scene happens here"
"The scene happens here"
"The scene happens here"
"The scene happens here"
"The scene happens here"
"The scene happens here"
"The scene happens here"
if replay:
return
"The game keeps going here"
Which WOULD technically work and accomplish the same thing with minimal coding, at the cost of some of your sanity.