Here's a simpler method of saving and loading data:
griffpatch recently uploaded a video (Feb. 25) on how to write save data in an extremely simple way.
This uses 3 custom blocks (to make sure it doesn't take up as many blocks) with all set to "Run without screen refresh" so it takes as little time as possible (to simply put it, 1/60th of a second): Read Value and Write Value (text). I used this in my Cookie Clicker game (which I am still currently in the process of making, I sadly haven't made the code to check for illegal values but that is obviously not the question) so I could make a way to copy save data. I made the load save data function myself.
Here is a screenshot of the "Read Value" definition (sorry about not being able to add images yet I just joined so I could answer the question more clearly. Also remember that any variable seen is set to one sprite only.:
Read Value func.
Here is a screenshot of the "Write Value (text)" function (parenthesis because it is defined as an input):
Write Value (text) func.
You also need to make sure that you write the value for all of the functions that need to be saved when something is clicked. (to broadcast a message to write the value of all of the functions, saved to a list from which you can copy from, and then you need to ask a question to make sure you have all of the code) For example:
Part 1 of the load save data function (You don't need to add anything to the bottom)
Part 2 of the load save data function (You need to add a function that adds this to a list at the end
Part 3 of the load save data function (The bottom of it)
Then, you need to make sure that you have a way to upload your save progress. Here's the code for the 3rd custom block you will need:
Code for Read Val2
This sets "c (character)" to the answer (the input for the save data) because the game needs to know what to input for each variable that you need saved.
You will only need this for the entire part of the code that reads and inputs values just make sure not to put the "Read Val2" custom block at the very end and same thing goes for the "Read Value" custom block
Hope this helps!
Edit: Forgot to mention that you don't need to set the list to "for this sprite only." You will only need that for the variables
that any variable seen is set to one sprite only.
Edit 2: Sorry if my formatting confused you a bit, you have to set all three custom blocks to "Run without screen refresh"
This uses 2 custom blocks (to make sure it doesn't take up as many blocks) with both set to "Run without screen refresh" so it takes as little time as possible