init python: if not hasattr(persistent, 'gallery_unlock_mode'): persistent.gallery_unlock_mode = "all" def unlock_all_gallery_scenes(): persistent.scene1_unlocked = True persistent.scene2_unlocked = True persistent.scene3_unlocked = True persistent.scene4_unlocked = True persistent.scene5_unlocked = True persistent.scene6_unlocked = True persistent.scene7_unlocked = True gallery_replay_labels = [ "gallery_replay1", "gallery_replay2", "gallery_replay3", "gallery_replay4", "gallery_replay5", "gallery_replay6", "gallery_replay7" ] if not hasattr(persistent, "_seen_replays") or persistent._seen_replays is None: persistent._seen_replays = set() for label in gallery_replay_labels: persistent._seen_replays.add(label) renpy.mark_label_seen(label) persistent.gallery_mode = "full" renpy.save_persistent() def lock_all_gallery_scenes(): persistent.scene1_unlocked = False persistent.scene2_unlocked = False persistent.scene3_unlocked = False persistent.scene4_unlocked = False persistent.scene5_unlocked = False persistent.scene6_unlocked = False persistent.scene7_unlocked = False persistent.gallery_mode = "safe" renpy.save_persistent() def toggle_gallery_mode(): if persistent.gallery_unlock_mode == "normal": persistent.gallery_unlock_mode = "all" unlock_all_gallery_scenes() else: persistent.gallery_unlock_mode = "normal" lock_all_gallery_scenes() def ensure_replay_labels_seen(): gallery_replay_labels = [ "gallery_replay1", "gallery_replay2", "gallery_replay3", "gallery_replay4", "gallery_replay5", "gallery_replay6", "gallery_replay7" ] if not hasattr(persistent, "_seen_replays") or persistent._seen_replays is None: persistent._seen_replays = set() for label in gallery_replay_labels: persistent._seen_replays.add(label) renpy.mark_label_seen(label) renpy.save_persistent() screen gallery_unlock_mode(): modal True use game_menu(_("Gallery Unlocker"), scroll="viewport"): frame: xalign 1.0 yalign 0.0 xoffset -20 yoffset 20 background "#cc0000" hover_background "#ff0000" padding (8, 8) textbutton "✕": action Hide("gallery_unlock_mode") text_size 18 text_color "#ffffff" text_hover_color "#ffffff" vbox: xfill True spacing 20 text "Toggle individual scenes on/off:" size 20 color "#cccccc" xalign 0.0 vbox: spacing 10 hbox: xfill True spacing 10 text "Scene" size 18 color "#ffffff" bold True text "Status" size 18 color "#ffffff" bold True xsize 0.1 text "Action" size 18 color "#ffffff" bold True xsize 0.1 frame: xfill True ysize 1 background "#555555" hbox: xfill True spacing 10 label "Scene 1" $ status_text = "Unlocked" if persistent.scene1_unlocked else "Locked" $ status_color = "#00ff00" if persistent.scene1_unlocked else "#ff0000" text "[status_text]" size 16 color status_color xsize 0.1 $ button_text = "Lock" if persistent.scene1_unlocked else "Unlock" textbutton "[button_text]": action ToggleField(persistent, "scene1_unlocked") style "mod_button" text_style "mod_button_text" xsize 0.1 hbox: xfill True spacing 10 label "Scene 2" $ status_text = "Unlocked" if persistent.scene2_unlocked else "Locked" $ status_color = "#00ff00" if persistent.scene2_unlocked else "#ff0000" text "[status_text]" size 16 color status_color xsize 0.1 $ button_text = "Lock" if persistent.scene2_unlocked else "Unlock" textbutton "[button_text]": action ToggleField(persistent, "scene2_unlocked") style "mod_button" text_style "mod_button_text" xsize 0.1 hbox: xfill True spacing 10 label "Scene 3" $ status_text = "Unlocked" if persistent.scene3_unlocked else "Locked" $ status_color = "#00ff00" if persistent.scene3_unlocked else "#ff0000" text "[status_text]" size 16 color status_color xsize 0.1 $ button_text = "Lock" if persistent.scene3_unlocked else "Unlock" textbutton "[button_text]": action ToggleField(persistent, "scene3_unlocked") style "mod_button" text_style "mod_button_text" xsize 0.1 hbox: xfill True spacing 10 label "Scene 4" $ status_text = "Unlocked" if persistent.scene4_unlocked else "Locked" $ status_color = "#00ff00" if persistent.scene4_unlocked else "#ff0000" text "[status_text]" size 16 color status_color xsize 0.1 $ button_text = "Lock" if persistent.scene4_unlocked else "Unlock" textbutton "[button_text]": action ToggleField(persistent, "scene4_unlocked") style "mod_button" text_style "mod_button_text" xsize 0.1 hbox: xfill True spacing 10 label "Scene 5" $ status_text = "Unlocked" if persistent.scene5_unlocked else "Locked" $ status_color = "#00ff00" if persistent.scene5_unlocked else "#ff0000" text "[status_text]" size 16 color status_color xsize 0.1 $ button_text = "Lock" if persistent.scene5_unlocked else "Unlock" textbutton "[button_text]": action ToggleField(persistent, "scene5_unlocked") style "mod_button" text_style "mod_button_text" xsize 0.1 hbox: xfill True spacing 10 label "Scene 6" $ status_text = "Unlocked" if persistent.scene6_unlocked else "Locked" $ status_color = "#00ff00" if persistent.scene6_unlocked else "#ff0000" text "[status_text]" size 16 color status_color xsize 0.1 $ button_text = "Lock" if persistent.scene6_unlocked else "Unlock" textbutton "[button_text]": action ToggleField(persistent, "scene6_unlocked") style "mod_button" text_style "mod_button_text" xsize 0.1 hbox: xfill True spacing 10 label "Scene 7" $ status_text = "Unlocked" if persistent.scene7_unlocked else "Locked" $ status_color = "#00ff00" if persistent.scene7_unlocked else "#ff0000" text "[status_text]" size 16 color status_color xsize 0.1 $ button_text = "Lock" if persistent.scene7_unlocked else "Unlock" textbutton "[button_text]": action ToggleField(persistent, "scene7_unlocked") style "mod_button" text_style "mod_button_text" xsize 0.1 null height 20 hbox: xalign 1.0 spacing 10 textbutton "Unlock All": action Function(unlock_all_gallery_scenes) style "mod_button" text_style "mod_button_text" xsize 0.1 textbutton "Lock All": action Function(lock_all_gallery_scenes) style "mod_button" text_style "mod_button_text" xsize 0.1 style mod_button: xsize 100 ysize 35 padding (10, 5) style mod_button_text: color "#ffffff" hover_color "#ffffff" size 22 text_align 0.5 screen gallery_unlocker_button(): pass screen gallery_hotkey(): key "g" action Show("gallery_unlock_mode") key "G" action Show("gallery_unlock_mode") init python: config.overlay_screens.append("gallery_hotkey") init 999 python: ensure_replay_labels_seen() if persistent.gallery_unlock_mode == "all": if not hasattr(persistent, "scene1_unlocked") or not persistent.scene1_unlocked: unlock_all_gallery_scenes()