I developed something like this during the Honor Bound beta test. It’s a subroutine that gets called at the end of each chapter (though I could call it whenever I like).
I’ll share in case it’s of use to you or others reading. The *if (choice_saved_checkpoint_hb_save_1)
etc on the save choices aren’t strictly needed - it could be done with multireplace - but in HB there are some slightly more complicated things going on that meant multireplace would be more fiddly.
Code below
*label checkpoints
*label checkpoints_choice
Do you wish to save or load your game?
[b]You can also load a saved game from the stats page at any time.[/b]
*choice
#Save the game.
Which slot would you like to save your game to?
*fake_choice
*if (not(choice_saved_checkpoint_hb_save_1)) #Save the game to Slot 1.
Save complete!
*set hb_save_1_chapter {hb_chapter}
*save_checkpoint hb_save_1
*if (choice_saved_checkpoint_hb_save_1) #Save the game to Slot 1 (replace save at the end of Chapter ${hb_save_1_chapter}).
Save complete!
*set hb_save_2_chapter {hb_chapter}
*save_checkpoint hb_save_1
*if (not(choice_saved_checkpoint_hb_save_2)) #Save the game to Slot 2.
Save complete!
*set hb_save_2_chapter {hb_chapter}
*save_checkpoint hb_save_2
*if (choice_saved_checkpoint_hb_save_2) #Save the game to Slot 2 (replace save at the end of Chapter ${hb_save_2_chapter}).
Save complete!
*set hb_save_2_chapter {hb_chapter}
*save_checkpoint hb_save_2
*if (not(choice_saved_checkpoint_hb_save_3)) #Save the game to Slot 3.
Save complete!
*set hb_save_3_chapter {hb_chapter}
*save_checkpoint hb_save_3
*if (choice_saved_checkpoint_hb_save_3) #Save the game to Slot 3 (replace save at the end of Chapter ${hb_save_3_chapter}).
Save complete!
*set hb_save_3_chapter {hb_chapter}
*save_checkpoint hb_save_3
*if (not(choice_saved_checkpoint_hb_save_4)) #Save the game to Slot 4.
Save complete!
*set hb_save_4_chapter {hb_chapter}
*save_checkpoint hb_save_4
*if (choice_saved_checkpoint_hb_save_4) #Save the game to Slot 4 (replace save at the end of Chapter ${hb_save_4_chapter}).
Save complete!
*set hb_save_4_chapter {hb_chapter}
*save_checkpoint hb_save_4
*if (not(choice_saved_checkpoint_hb_save_5)) #Save the game to Slot 5.
Save complete!
*set hb_save_5_chapter {hb_chapter}
*save_checkpoint hb_save_5
*if (choice_saved_checkpoint_hb_save_5) #Save the game to Slot 5 (replace save at the end of Chapter ${hb_save_5_chapter}).
Save complete!
*set hb_save_5_chapter {hb_chapter}
*save_checkpoint hb_save_5
#Go back.
*goto checkpoints_choice
*if choice_just_restored_checkpoint
Loading game…
*return
*goto checkpoints_choice
*if (not(choice_randomtest)) #Load a game.
Which game would you like to load?
*choice
*if (choice_saved_checkpoint_hb_save_1) #Load Slot 1 (end of Chapter ${hb_save_1_chapter}).
*restore_checkpoint hb_save_1
*if (choice_saved_checkpoint_hb_save_2) #Load Slot 2 (end of Chapter ${hb_save_2_chapter}).
*restore_checkpoint hb_save_2
*if (choice_saved_checkpoint_hb_save_3) #Load Slot 3 (end of Chapter ${hb_save_3_chapter}).
*restore_checkpoint hb_save_3
*if (choice_saved_checkpoint_hb_save_4) #Load Slot 4 (end of Chapter ${hb_save_4_chapter}).
*restore_checkpoint hb_save_4
*if (choice_saved_checkpoint_hb_save_5) #Load Slot 5 (end of Chapter ${hb_save_5_chapter}).
*restore_checkpoint hb_save_5
#Go back.
*goto checkpoints_choice
#Continue playing.
*return
I’m not using cogdemos for the moment, but probably will once the code is up to date. Currently I’m just using Dashingdon to link to Honor Bound on itch because of not having checkpoints available (a compiled game on itch can also use save-at-will ala Dashingdon with the ChoiceScript Saving Plugin).