How to add (Auto-)Save in Harlowe 3.2.0

I’m sorry if I’ve posted this in the wrong topic, or if this question has been answered before, I have searched for it, but I’m very new to this forum. I’ve been trying to figure out how to add auto-save to my story/game in Harlowe 3.2.0 but I just can’t seem to find how/where to do that. With auto-save I mean that the choices the player makes will be saved and they can continue from the moment they stopped playing, rather than having to start over again each time. Could someone help me out please? ^^

1 Like

you can use (save-game:“Slot A”) in either passage you would like to save the game

the "Slot A " can be any other names

But if you have any choice in one passage, and you want to save those choices after player making them, I guess the best way is to add a (save-game:) in the hook of the same link of choices:

(link:' choice one ')[
things you want to do 
(save-game:"Slot A") 


when you try to load the game, you can use (load-game:“Slot A”)

normally you use a link for that:

 (link: "saved games ")[(if: (saved-games:) contains "Slot A")[(load-game:"Slot A")](else:)[SLOT A IS EMPTY]]

you can also find more information here:

1 Like

Thanks so much! Is there also a way to automatically add it to each passage? Like automatically adding an invisible header to each passage? Or do I have to add it manually to each passage?

you can create a new passage, and add a tag as header or footer,

then whatever you do in the passage tagged header or footer, they will operate in every passage you played,

so if you want to automatically save in every passage, you can try use (save-game:) here

you can also see this here:

1 Like

Thanks so much, I think I figured it out now! The only thing I can’t seem to get right is this: is it possible to hide the footer from the first two passages so I can create a “load screen” without having the “Save game” option in the bottom?

You can’t “hide” a header or footer tagged Passage, but you can used one of the (if:) family of macros to conditionally execute code.

eg. The following uses the (passage:) macro to determine if the “current” Passage being shown has been assigned a no-save Passage Tag, and if it has it caused the “Save option code.” content not to be processed.

(unless: (passage:)'s tags contains "no-save")[
	Save option code.
1 Like