# Suggestion: Persistent save data (with persistent game links)

**URL:** <https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989>\
**Category:** Help\
**Created:** [August 21, 2023, 5:03pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989 "2023-08-21T17:03:03Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [August 21, 2023, 5:03pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/1 "2023-08-21T17:03:03Z")

</div>

With the introduction of persistent links (quite a while back, actually) I’ve wondered if saving a setting in one game version, then updating it and republishing it with the `Update existing share link for this project` option checked would make the setting’s value remain.

Unfortuantely, this is not the case. It works in the editor, but trying it in the actual game by accessing the link doesn’t. The reason this feature would be VERY useful, would be gaining the ability to update the game (whether it’s adding new features or just bug fixes) while letting the player keep their progress between versions. If you want to erase the data, you can just simply tick the update to disable it and drop a new link for the new version. Would it be possible to implement this @richard?

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [August 21, 2023, 5:33pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/2 "2023-08-21T17:33:32Z")

</div>

Hmmm… That’s an interesting idea, but it worries me a bit. For example, what if someone makes a game that stores a value and then releases a new version that makes that previous value invalid and crashes the game; the person playing the game could accidentally be locked out of that game permanently.

Of course, it’s definitely possible to cause a similar bug with the current implementation… I just think that people would have a harder time anticipating such bugs if we changed the behavior. I agree though that it’s nice for the experienced dev.

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [August 21, 2023, 9:19pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/3 "2023-08-21T21:19:35Z")

</div>

Perhaps an option to enable it for advanced devs? And of course a killswitch for the user that allows them to clear all saved settings for a specific game in the sim (since this is easy to do on real hardware already)  
Just a suggestion on how to approach it, idrk how you’d specifically go about it in the best way.

Just wanted to bring attention to it, so think about it since it’s a cool feature I think many people would really appreciate

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [October 23, 2023, 4:44pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/4 "2023-10-23T16:44:36Z")

</div>

@richard any updates on this? It’s a feature I think a lot of people would really appreciate; it’s no use making any sort of progression/level system right now because as soon as there’s an update it’s all gone.

I can’t pull off a lot of game ideas because of the lack of this feature 🙁

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [October 23, 2023, 9:18pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/5 "2023-10-23T21:18:47Z")

</div>

Does it work for GitHub pages? (I don’t remember if it does)

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [October 23, 2023, 9:19pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/6 "2023-10-23T21:19:28Z")

</div>

hmm @UnsignedArduino that might be a nice compromise…

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [October 23, 2023, 9:27pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/7 "2023-10-23T21:27:16Z")

</div>

So, are we getting it or what 😏

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [October 23, 2023, 9:29pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/8 "2023-10-23T21:29:56Z")

</div>

i would say this is a low priority feature right now, not because it’s a bad idea but because we have a big backlog of issues to work on.

that being said, getting it to work on the github pages embed shouldn’t be too much trouble. i’ll take a look at it when i have a sec.

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [October 23, 2023, 9:34pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/9 "2023-10-23T21:34:31Z")

</div>

Thanks, 'preciate it

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 6, 2023, 7:29pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/10 "2023-11-06T19:29:55Z")

</div>

I believe there is also a need for something like this for educational use. My experience with using MakeCode in a classroom setting, is the unfortunate, but expected and indeed creative, occurrence of 2 particular forms of “cheating”, either:

1. To go into JavaScript in the teacher’s solution file and just copy the text code and then paste the text code into your own assignment and share and hand in, or
2. To get a copy the solution from one of the classes’ brightest or most industrious students and just share this with your own new share link and hand in as-is.

The first one is pretty easy to control by either postponing the publishing of the teacher’s solution, or bake into the students’ hand-outs subtle differences in the code, so that copying and pasting text code from the teacher’s solution either does not run correctly and/or has watermarked differences that are easily noticeable.

The second “cheat”, however, I have so far found to be more difficult to both discover and hinder.

With settings persistent across shares, like @Sarge here suggests, wouldn’t it then be possible to run a unique hash routine only once on opening the program, which would then be carried on with the new share which is handed in to the teacher, watermarking it as unique for the first student who handed it in, regardless of the various share link URLs?

Maybe one could also use an ask-for-name-routine on only the first run/open of the assignment, [like this one](https://forum.makecode.com/t/quick-tutorial-on-the-settings-namespace/1013/8) from @AlexK, where the name is carried on as setting in the new share link that is handed in?

Lastly, perhaps there already exists a technique to guard against “cheat” no. 2, using GitHub, file save, or some other mechanisms, that @KIKIvsIT and others in the @MakeCode team who are focused on the educational side of MakeCode already know about and could please share?

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [November 6, 2023, 7:48pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/11 "2023-11-06T19:48:40Z")

</div>

Speaking of which, any updates on this issue?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 8, 2023, 5:51pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/12 "2023-11-08T17:51:49Z")

</div>

Yeah, any updates on this issue?

I am mostly interested in any measure in @KIKIvsIT bag of educational anti-cheating tricks, but believe that persistent save data could be used with great success also for such purposes. 😉

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [November 8, 2023, 6:08pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/13 "2023-11-08T18:08:52Z")

</div>

To be honest I just want it since it would greatly improve game experience, but I can see it being used for educational purposes as well!

---

<div class="post-metadata">

**Author:** ![Brohann](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/brohann/32/17380_2.png) [@Brohann](https://forum.makecode.com/u/Brohann)\
**Post date:** [November 8, 2023, 6:59pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/14 "2023-11-08T18:59:44Z")

</div>

we talked about this on monday’s stream. Go check it out!  
(spoiler: it will probably not happen)

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 8, 2023, 7:00pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/15 "2023-11-08T19:00:24Z")

</div>

Of course, @Sarge! Both use cases would benefit greatly from this! Maybe other use cases as well. I am just trying to keep your thread hot and unforgotten, so that we might get some responses eventually.

«Bump» is just so boring and unoriginal… 😉

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 9, 2023, 5:50pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/16 "2023-11-09T17:50:03Z")

</div>

Did you file this as a pxt-arcade issues feature request, @Sarge?

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [November 9, 2023, 9:53pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/17 "2023-11-09T21:53:08Z")

</div>

Didn’t do it yet. Feel free to if you want to

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 9, 2023, 10:12pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/18 "2023-11-09T22:12:59Z")

</div>

Thanks! But there’s been an inflation of issues and feature requests in my name lately, so it might here be more effective coming from someone else… 😉

And after all, this is your baby and brainchild!

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [November 10, 2023, 5:07pm UTC](https://forum.makecode.com/t/suggestion-persistent-save-data-with-persistent-game-links/21989/19 "2023-11-10T17:07:06Z")

</div>

Okay, so I went and checked out the stream and richard stated (@ [32:00](https://youtu.be/SxG8Yn4x7CI?t=1920)) that the feature should be functional when deploying your projects on github pages (data is not wiped on update) and that we should just tell him if it does not so he can fix it. I’ll be sure to test this out and post the results!
