# How does a reader save?

**URL:** <https://forum.choiceofgames.com/t/how-does-a-reader-save/153486>\
**Category:** ChoiceScript Help\
**Created:** [May 10, 2024, 8:38am UTC](https://forum.choiceofgames.com/t/how-does-a-reader-save/153486 "2024-05-10T08:38:26Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![NothingandEye](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/nothingandeye/32/241737_2.png) [@NothingandEye](https://forum.choiceofgames.com/u/NothingandEye)\
**Post date:** [May 10, 2024, 9:07am UTC](https://forum.choiceofgames.com/t/how-does-a-reader-save/153486/2 "2024-05-10T09:07:05Z")

</div>

There are two options.

> **Either the official way**
>
> > [@New in ChoiceScript: HTML Exports, Checkpoints, and Achievements](https://forum.choiceofgames.com/t/new-in-choicescript-html-exports-checkpoints-and-achievements/144880/1):
> >
> > # Checkpoints
> > 
> > You probably saw the [thread about this](https://forum.choiceofgames.com/t/upcoming-choicescript-feature-checkpoints/143790) back in October, and, now, it’s finally here.
> > 
> > > To save a checkpoint, you’d use:
> > > 
> > > ```choicescript
> > > *save_checkpoint
> > > 
> > > ```
> > > 
> > > Then, later, you’d give players the option to restore to a previous checkpoint, like this:
> > > 
> > > ```choicescript
> > > *choice
> > > 
> > > ```
> > 
> > ```
> > #Continue to the next chapter.
> > *finish
> > #Restore to the previous checkpoint.
> > *restore_checkpoint
> > 
> > ```
> > 
> > > ```choicescript
> > > 
> > > When you `*restore_checkpoint`, the player will “travel back through time” to the moment that `*save_checkpoint` was called. This includes re-enabling any `*disable_reuse` options that the player may have used after saving the checkpoint.
> > > 
> > > (Previously, if you wanted to implement checkpoints yourself, you’d have to use a `*gosub_scene` to individually copy all of your stats to separate “backup” variables, and then use another subroutine to individually copy all of your stats from the backup to the main variables. This was tedious and error prone.)
> > > 
> > > ```
> > 
> > We’ve also added a “Tricks with Checkpoints” section to the [“Advanced ChoiceScript” guide](https://www.choiceofgames.com/make-your-own-games/choicescript-advanced/), with these tips and tricks:
> > 
> > - Check whether \*save\_checkpoint has happened yet
> > - Run some code after restoring from a checkpoint
> > - Exclude some stats/temps from being restored
> > - Multiple checkpoint “slots”
> > - Restore to the last checkpoint at any time from the stats screen
> > - Player-named save slots
> > 
> > Note that if you’re testing your game in the ChoiceScript server, when you refresh your browser tab, the entire game will reset from the beginning, losing all progress, including checkpoints and achievements, but when you export to HTML, all of that stuff will be saved.

> **Or**
>
> > [@ChoiceScript Saving Plugin (Update: April 2023)](https://forum.choiceofgames.com/t/choicescript-saving-plugin-update-april-2023/983/1):
> >
> > ## ChoiceScript Save Plugin 2019
> > 
> > Hi all, I spent this weekend completely revamping the current state of the save plugins.  
> > For those new to this, or simply eager to get saves up and running, you can jump straight in by following the link below:
> > 
> > [GitHub - ChoicescriptIDE/ChoiceScriptSavePlugin: A small addon script for ChoiceScript to allow control over persistent (hard) saves.](https://github.com/ChoicescriptIDE/ChoiceScriptSavePlugin)
> > 
> > For those who’ve been around a while, or are interested in some history (and/or technical details), please read on. As many people have been saying for a while now, the save plugin situation had become something of a nightmare. With multiple scripts, broken links and scattered (and lacking) documentation all playing a big part. It was proving very difficult for old and new members alike to trundle through this thread finding out which links worked, which files they needed, and how to then use the various features of each script.
> > 
> > I’ve spent the weekend completely tearing apart the two “current” scripts: smPlugin.js and smPluginMenuAddon.js, and combining the majority of their behaviour into one script: ChoiceScriptSavePlugin.js.
> > 
> > I also rewrote the vast majority of the code, making it more reliant on CoG’s own save system (which amusingly Dan also [flagged up this weekend](https://forum.choiceofgames.com/t/saving-between-sessions/65588/6)). The benefits are still the same though. Unlike just simply enabling the above persistent storage, the plugin allows for you (or the player) to manage a number of save “slots” and provides both new commands and a “quick save menu” through which to do it.
> > 
> > But to cut a long story short: The end result should be something a lot more stable, intuitive and easier to maintain. I’ve also completely re-wrote a detailed configuration and usage guide (with pictures!), which you can view at the link above.
> > 
> > This is now the ‘default’ recommendation, and I won’t actively support save.js, smPlugin.js or smPluginMenuAddon.js (even just typing that out makes me realize how bloated and confusing that must have been!) from here on out.
> > 
> > I hope these changes prove helpful and for the better, but please let me know if you can think of any further improvements.
> > 
> > Many thanks,
> > 
> > CJW
> > 
> > Old Post (pre:sept 2019)

---

_[View the full topic](https://forum.choiceofgames.com/t/how-does-a-reader-save/153486)._
