💾 [TOOL] Softly -- A Soft Save System for ChoiceScript

That’s a good use case. Take a look in the original post for an idea of how to expose the choice of saving to the player. Just always keep in mind that it’ll only save the global variables.

Hey, just discovered this and wanted to say that it’s absolutely amazing, thank you!

I was digging around for options for save-systems when dashingdon’s built-in plugin is no longer an option, and this is by far the simplest (cause I don’t have to do anything!)

1 Like

Thank you! I’m really happy this is helpful. :grin:

1 Like

Thanks for the help so far, looks like it’s coming together.

Sorry for the constant questions, but I tested it today and at the save point, I got the following error:

off_season line 1077: savesys doesn’t contain label save_1

Idk if this is something I’m doing wrong, or a problem with Dashingdon, but would appreciate some assistance please.

It shouldn’t have that label indeed. Can you tell me how you’re calling the subroutine? Could you perhaps be calling as *gosub_scene savesys save_1 instead of *gosub_scene savesys save 1?

Was saving it as:
*gosub_scene savesys save [1]
Yeah, guess that was it. Thanks.

1 Like

Okay, I am having issues I don’t understand.

At the very start of chapter 12 (the first one in my game) I have this line to save:

*gosub_scene savesys save 1 "chapter12" "variables"

And in the stat screen I have the following choice:

  #I would like go back to the [b]last checkpoint[/b].
    *gosub_scene savesys load 1
    *redirect_scene savesys_slot_1_scene savesys_slot_1_label

But when I try to use it, it says that the file doesn’t exist, even though I have passed that point.

I am using Choicescript IDE.

Also, another question. Should I list savesys in my scene_list or not? If I do, it breaks the quicktest. if I don’t, it also breaks the quicktest,


Hi @malinryden! I’m really glad to hear to you’re considering including a save system despite the extra work. I love your game :blush:.

You have to wrap the variables with curly braces, otherwise, ChoiceScript will think you’re trying to reach a scene literally named savesys_slot_1_scene and a label literally called savesys_slot_1_label.

Try this instead:

*redirect_scene {savesys_slot_1_scene} {savesys_slot_1_label}

I realize it’s wrong in the tutorial. I’ll fix it later (I’m at work right now :face_with_hand_over_mouth:). Thanks for the question, otherwise, I wouldn’t have noticed this.

About the scene_list, there’s no right answer. Usually, you would include only mandatory scenes you want your players to reach. But it shouldn’t be a problem if you include it at the end of the list after a scene you are sure to include an *ending command. If you’re not in the habit of using *ending commands and just rely on the fact the game will hit the end of the scene list and thus automatically end, then I would counter-advise including those files.

In regards to failing the quicktest, I would have to take a deeper look. Unfortunately, quickest is known to be very quirky and doesn’t like fancy code. Even though Softly uses pure ChoiceScript only, it makes use of some exotic features and clever coding. Something might not be sitting right with quicktest.

But like I said, I’ll have to take a better look later.


That worked a wonder! I should have guessed the curly brackets, I did already switch *redirect to *redirect_scene (also an error in the tutorial)

I would not inflict Retribution on people without at least a limited checkpoint save system. It’s kinda massive. :sweat_smile:

EDIT: This is the error that I get when doing the quicktest:

ERROR: couldn’t open savesys.txt

EDIT: I put savesys last in the scene_list, removed the text instructions in it, and added this as the first line:

*if ((choice_quicktest) or (choice_randomtest))

Quicktest now gives the error

ERROR: couldn't open .txt

BUT randomtest works!



Hi, I’ll take a look at this now. I had a busy week and the next one will continue the trend. :face_exhaling:

1 Like

@malinryden I figured out the issue and uploaded a new version of the generator.

If you are curious, the problem was that quicktest did not like the file had “nothing” so now I’ve added a label followed by a *finish to the top of savesys.txt.

1 Like

Hi @cup_half_empty
It works fine with the latest version of ChoiceScript.
However, quicktest still gives an error message:

ERROR: couldn't open savesys.txt
1 Like

Did you generate with the new version? In the savesys file, it should display v0.0.4 as the version.

I’ve tested a couple of scenarios but the issue with quicktest doesn’t happen on my end.

I did one with the new version, worked perfectly! Thank you!