In my script (pixels), I have an undocumented “drawing” mode that works by not calling screen.clear() in the redraw loop, essentially allowing the user to draw their own landscape like an etch-a-sketch. Instead of redrawing the whole screen every frame (running at 12fps), the user is just painting new areas pixel by pixel.
The biggest problem is that because switching to the menu clears the screen, it essentially erases the screen when the user exits the script. Their work is still saved (as a 2d table) but the screen is wiped.
I might solve this by running another 12fps loop that just looks at the _menu.mode and does a quick redraw when the user pops back into the script.
EDIT:
I just tested this method and it works.