Need help for create global save files

Hello everyone,

I need help creating a system that allows players to save their in-game progress in GDevelop.

My game is still in development. At the moment, the player only has a health system and a double jump ability, but I plan to add many more features in the future. Because of this, I would like to create a save system that is easy to expand later.

Currently, the double jump is controlled by variables that allow the player to perform a second jump while in the air.

The health bar is a sprite that changes its width based on the player’s current health. When the player takes damage, the width of the health bar is reduced.

I want players to be able to save their game while playing and continue exactly where they left off after closing and reopening the game.

I would like the game to save and load:

  • Player health
  • Player position (X and Y coordinates)
  • Current scene or level
  • Checkpoints
  • Lives
  • Score
  • Collectibles
  • Upgrades and abilities
  • Inventory items
  • Global variables
  • Any other important progress-related data

When the game is loaded, everything should be restored exactly as it was before the game was closed.

My pause menu is located in a separate scene, so I would also like to know the best way to save and load data between different scenes.

I also want the save system to work with future levels that I have not created yet. As I continue developing the game and adding new levels, I would like the system to be able to save and load the player’s progress across all levels without requiring major changes to the save system.

I am looking for a reliable and scalable solution that I can expand as the project grows. Examples, screenshots, tutorials, or step-by-step explanations would be very helpful.

Also, I currently use free sprite and sound assets from itch.io because I am not an artist and I am still learning game development. My main focus right now is programming and creating the game mechanics.

Thank you for your help

You can try using the “Save State” extension

Where can I find that extension? Is it on the internet or on gedevelop itself?

This is a built-in extension like a platformer extension.

Name of the extension in general???

Hey bro, I found the behavior but I don’t know how it works, other than saving this to serve as a global save file

Hello! save state allows an EXTREMELY easy way to save everything in your game. here is a 3 minutes tutorial i found on youtube: https://www.youtube.com/watch?v=7sZ9SzwX_Rc
(you can also check GDevelop documentation about it)

If you do not want everything to be saved, you can save numbers and strings inside storage and load them after. Storage works crossplatform. its the same as savestate exept every single numbers or strings must be saved one by one. more personalization, more complicated : Storage Reference - GDevelop documentation

another way is to save numbers and strings inside a text file (that one is much lower level (aka. the most complicated)). it also doesnt work while exporting your game for browser. the advantage is that external apps can easily modify the text file. File system - GDevelop documentation

Yeah since you are in the early protoype phase you just want one of the extensions that saves everything. Then as you get near completion it depends on what you want your save system to do.

multiple profiles for multiple human players, is there multiple character selection in game? then it could be humans with multiple profiles for multiple characters.

when using gdevelop you want to keep it as simple as possible. Think of old school cartridge games simple. Once you start trying to model really difficult mechanics in gdevelop if there isnt an extensionm, which there usually isnt, then you will end up generally with and insane number of events to get it done.

See sometimes and in some areas Gdevelop is that double edged sword. You want to move fast and keep it simple Gdevelop excels at that. All of a sudden you want to emulate your favorite save/oad mechanic from some AAA.Indy game and even if gdevelop makes the process easy aka no code, it will be extremely tedious.

Or you will need to be able to code javascript, or understand enough javascript to use someone’s random project on github in javascript to modify it your project, or know something of programming logic and use paid LLM like chat gpt and claude to get it done.

with some programming knowledge and knowledge on the llm’s work and how to prompt them and how to create projects and resources for the llm, the llm could spit out the most complicated save system your mind can think of in like 4 minutes.

I wouldnt relate this to that hobby of “vibe coding”. You need your project bible, all of your project docs so the llm can read it. You can even upload your gdevelop project and your projects json, even gdevelop source code and documentation can be uploaded to the project. And you need to guide the llm.

In short summary keep it simple stick to built in logic and extensions and adapt your projects to around that.

If you go with save state, to have more advance features such as list of all saves, deleting specific saves and copying save, you can use Save State Extended Extension