I've watched this tutorial about 10 times since you posted it. Not only is this a great way to create a save system it also shows the best way to implement any manager class! So much good stuff in here thank you so much !
@LeafBranchGames9 ай бұрын
Thank you very much, both for the kind words and also the generous support. :)
@unstableanimates8070Күн бұрын
It took me over a week to fully comprehend all that was going on here and finally i successfully implemented it in my first game. This is the best tutorial on this topic and I am so thankful of you for explaining the system with such clarity. I wish you all the success in your life. Amazing work.
@LeafBranchGamesКүн бұрын
Thank you. Glad to hear it is useful to you!
@lolaswift1119 ай бұрын
Tutorials which accomplish a sub system like these are insanely valuable for beginners and certainly greatly appreciated!
@LeafBranchGames9 ай бұрын
Glad to hear it. :)
@davejenniferginn974016 күн бұрын
I know so little in UE5.4 but this video even made sense to my old programming ways! FINALLY someone who speaks coder and not graphics! Totally awesome
@LeafBranchGames16 күн бұрын
Glad to hear you like it!
@Louieeeee10 ай бұрын
Getting a straight up full tutorial on creating a well-designed and upgradable save system is crazy.
@LeafBranchGames10 ай бұрын
I see a lot that people have difficulty turning the basic tutorials on save system into actual working systems. So I thought this would be very useful for many game devs.
@gamedevofcoffeeandpower7 ай бұрын
@@LeafBranchGames it was a complement
@LeafBranchGames7 ай бұрын
@@gamedevofcoffeeandpower I know.
@LupusMechanicus6 ай бұрын
Seeing that cute ass Apu as top comment is crazy.
@IGiveTheBestTakes9 ай бұрын
I love this tutorial. Every other "save system" on youtube is like INCREDIBLY basic to the point that literally no game would use it at scale lol It also over relies on making a monolithic player blueprint. This is just the right amount of advanced that its useful for intermediates and modular that its something people would actually use. Its very hard finding stuff that isnt "so you just started learning game development!" or "here is how you from scratch re create unreals real time ray tracing system!" lol
@LeafBranchGames9 ай бұрын
Glad to hear you like it! These take a lot of time and care to try and get both informative, easy to use as well as being actually useful.
@IGiveTheBestTakes9 ай бұрын
@@LeafBranchGames This one definitely hit all of them! I especially always like seeing using interfaces and events. They are so powerful but almost never used in videos. I didnt even know the use cases for these for a good portion when I was a beginner xd
@LeafBranchGames9 ай бұрын
@@IGiveTheBestTakes Yes. As a beginner it is impossible to distinguish between good or bad practice and the cost of doing someing easy now that will make it harder later and the other way around.
@lbv78 ай бұрын
This was incredibly helpful. Probably the best tutorial that made 50min go incredibly fast. Thank you so so much, this is magnificent.
@LeafBranchGames8 ай бұрын
Glad to hear you liked it. :)
@RattleSnake2028Ай бұрын
It's simply the best tutorial on the subject. It's important indeed to add some structs in order to save massive amount of Data. Thank you so much
@LeafBranchGamesАй бұрын
Thank you! Glad to hear you like it!
@gabeaskew80924 ай бұрын
Thanks!
@LeafBranchGames4 ай бұрын
Thank you very much for your support. It is very appreciated!
@dwain.d10 ай бұрын
This is great and very timely, thank you. Too many tutorials only show how to save an individual variable or something which isn't wrong but not practical or scalable. I have a project in proof of concept phase still and realised the save system has to be baked in very early and to be honest started to seem quite daunting. This video is brilliant and it was great to know I was on the right track already but this way is simpler and more scalable than what I currently have. Thanks so much for this.
@LeafBranchGames10 ай бұрын
Glad to hear it could be helpful for your project!
@herbi4678 ай бұрын
Dude my saving system turned into a shitstorm. Decided to use this instead and its crazy how simple and powerful this is. Thank you so much.
@LeafBranchGames8 ай бұрын
You are welcome, glad to hear it was useful to you! Good luck with your project!
@thelostside15113 ай бұрын
I saw this video, watched it once, and saved it to watch when I got to that part and thank goodness I did. The previous tutorial I watched tried to implement a save game in the middle of an unrelated tutorial and I just skipped it, knowing I'd come back to this one and it'd work no matter what.
@LeafBranchGames3 ай бұрын
Thank you very much! Both for the compliment and the appreciation of my work. :)
@jamesstewart4105Ай бұрын
Thank you so much for this tutorial! You're an amazing teacher.
@LeafBranchGames29 күн бұрын
Thank you! Appreciate that!
@jamesstewart410514 сағат бұрын
@@LeafBranchGames Quick question: How would you go about saving the player's location and rotation? I tried it with the similar way with your gold and silver, but the player location doesn't seem to save and loading the savedata defaults the player to the player start...
@jasonwiggin64527 ай бұрын
Thanks! I too appreciate your tutorial and wanted to say it is both dense and simple and yet powerful. I do have a question though. I'm tracking time and a day count in my game instance but since it's not an object, what would be the best way to do this with your system? Should I move it to another Blueprint?
@LeafBranchGames6 ай бұрын
Thank you for both the kind words and support! :) You could have it in game instance if you want to, but you can't use the same logic as it uses now. You would have to hook on to save the time on save and load the time when load is called. Or you could like you say have some class that manages this, it kind of depends on your game. Either way is perfectly fine, use the one you find the most convenient and usuable.
@majule19 ай бұрын
Great tutorial as always! I would add my voice to a request for a part 2 with movable/destructible items and a manager for these. Say a sword which can be picked up in level 1 and dropped in level 3 or even characters which can killed or not and stay dead if you return to the level.
@LeafBranchGames9 ай бұрын
I will add it to my to do list.
@masterblastr8 ай бұрын
This please! I'm trying to wrap my head around how to go about creating an observer/manager that will keep track of items that have been picked up but in a scalable way. I'm confused as to how to allow the designer to place objects in the scene and then have them not be loaded again later upon being picked up without a huge monolithic tmap or array of every item on the Save Game Object. And then to have the items level specific as well.
@timnekk77068 ай бұрын
@@LeafBranchGames This would be awesome. I enjoy your save system so much!
@ryanjdevlin873 ай бұрын
Coming back to this months later, when looking for a solution to update my event driven UI. I basically used these same principles and changed the game instance to the HUD and save game file to just be a struct in the HUD. This struct acts as the save file data. When a widget requests ui data everything works the same way as the save system :) Its amazing really. My only concern was calling get all widgets with interface to much so I made a pool and just call that :) Again this video helped me understand how to build modular decoupled data systems and I thank you so much for it :)
@LeafBranchGames3 ай бұрын
Glad to hear the tutorial was educational for you!
@tldmbruno10 ай бұрын
Incredible video. Instant like and added to my playlist.
@LeafBranchGames10 ай бұрын
Thank you. :)
@periapsis4134 ай бұрын
I'm just gonna echo what everyone else has said. This aspect of game programming in general (managing the game state) has always been really intimidating for me but you just made it click so well with the "hey fill out this form" analogy
@LeafBranchGames4 ай бұрын
Glad to hear you found my approach something you could learn from. :)
@LimitedPerfection10 ай бұрын
LBG upgrading his production quality. Very nice synopsis at the beginning.
@LeafBranchGames10 ай бұрын
Thank you. :)
@420kushan9 ай бұрын
From the video it is easy to understand how the system works. Great job. But to be able to invent systems like this... I would feel like a genius. I wish I could be at your level, or at least half of it :D
@420kushan9 ай бұрын
I should quit smoking weed lol
@LeafBranchGames9 ай бұрын
All it takes is time and dedication, anyone can do it if they put in the work.
@musichopper36442 ай бұрын
I've been using this save system, as its probably one of the best ones out there. A tip for if your making a single player game, make sure you are calling load game on the gamemode, that way the game isn't passing along a null/empty save game to the actors on begin play.
@kattenmusen10kofficialАй бұрын
This sounds like very important advise, but I'm not sure I follow! Can you elaborate a bit more? :) In the video he calls it on gameinstance, right? I've been trying to study the framework, what inherits from what and what spawns what. I think i understand part of it but its quite overwhelming still. I would love to learn more!
@musichopper3644Ай бұрын
@ so within the game mode, get your game instance and call the load game function that you have. This will load the save data. If your confused as to what a game mode is, there’s documentation and other Reddit forms that’ll explain it better, but basically, it’s the class that will load in things like your player controller, default pawn, etc. It’s meant to keep track of high level game logic, like win conditions, scores, etc. I also personally use it to spawn in classes/actors, I know I will always need for the entire game session
@TomEagles19 күн бұрын
Awesome tutorial. Instant like and subscription. A little late to the party a quick question for you, if for example you have an inventory component which is obviously just an array of variables how would you go about looping through each entry in the array for the items and savingthe variables for each item in your save routine.
@LeafBranchGames19 күн бұрын
Thanks for the support! It would vary a bit depending on how the inventory is designed. For most inventories, what you would do is save down the important pieces of information, in an array like you say, but likely in a structure for all the field data. Or, if you have a simpler type of inventory, where you would have items that all exist in a data table for example, you would only need to save down the variable of the data table key, along with maybe the quantity.
@edgardsimon9833 ай бұрын
the mic, and the no music background even if the music was cool are such an insane improvment cause i watched 3 time ur rpg serie and this is awesome u improved on that
@andreww47513 ай бұрын
cmon man the music was fine i was singing it while blueprinting
@revraitah9 ай бұрын
Awesome tutorial, keep it up!
@LeafBranchGames9 ай бұрын
Thank you!
@wdavis81x3 ай бұрын
very good. this is a nice setup. I think I understand my issue with my save system. I used the Get Player Pawn, get component of class method to then save all the variables and load. This works fine when actively playing the game and loading with debug tools, but I suspect when loading from the menu it forgets what the player pawn is, since you are no longer in possession of a pawn...so defaults to the gamemode class when loading. If i'm correct then adding some of your interface sections will fix this. I'll try sometime this weekend.
@manuelmendoza57332 ай бұрын
Honestly one of the best tutorials on how to create a saved game, really scalable and adaptable to any project, but I have a question, casting the game instance and constantly hard referencing the Save Game object creates a lot of circular dependencies. Is there a way to keep this structure comfortable and at the same time solve the dependency problem?
@LeafBranchGames2 ай бұрын
Thank you! There really isn't an issue here. The game instance is the single only class that you will always without exception have when you run your game. Regardless of what you do, this is true. So casting to it doesn't really matter other than for separation of code. The save game itself should likely not have a very large footprint, and that it is so closely tied to the game instance should not be an issue.
@animatrocities10 ай бұрын
You are a life saver for this!!
@LeafBranchGames10 ай бұрын
Thank you. :)
@piquelchips89928 ай бұрын
Hello, this is a great tutorial, very well made and very helpful. However, I would like to expand it to be able to save a dynamic list of actors each with different properties. In my game I have an Item system where the player can create/delete/craft/... items. This means that the amount of Items and their different properties (each Item has its own properties, like a gun may have damage and ammo whereas a sword could have damage and reach) can be drastically different depending on game sessions and saves. This might also allow for a way to save multiple players in the case of a multiplayer game. Do you have any suggestions as to how to implement this in Unreal Engine 5? Apart from that this tutorial is great. Thank you very much!
@Infernal_toast7 ай бұрын
multiplayer ??? rebuild the game in a real engine ;D i wouldnt use blueprints for multiplayer. Youll end up in spaghetti hell in 6 months
@OmegaOutlaw20247 ай бұрын
@@Infernal_toast use uefn for multiplayer style game
@DarkKnightsBR7 ай бұрын
No começo do vídeo fiquei pensando será que não só mais um tutorial de como salvar o jogo, e vou te falar eu tentei algumas formas de fazer o salvamento do jogo seguindo alguns tutoriais no youtube, e realmente foi como você disse, somente esse seu vídeo funcionou no meu projeto, e não somente isso, me fez entender como funciona a lógica por trás de tla forma que sai configurando tudo que preciso salvar sem dificuldade alguma. Muito Obrigado.
@LeafBranchGames7 ай бұрын
Glad to hear it was helpful to you. :)
@nastenkaoo5 ай бұрын
your tutorials are so valuable, thanks very much. I expect to make a video about Steam Online Subsytem on future, if you want to make that. Thanks again, you are the best!
@LeafBranchGames5 ай бұрын
Thank you. :)
@zack324613 ай бұрын
Those flow charts are incredible
@LeafBranchGames3 ай бұрын
High quality triple A stuff.
@kattenmusen10kofficialАй бұрын
Fantastic tutorial, watched it more times than I can count. I would love to see a follow up on this where you expand on the system. I'm having the noob issue of not knowing where to implement the loading of a saved current level into the system you've made. The first issue I'm facing is that I can't request the load of at the same time as my character is spawning. Feels like there should be a smart way to integrate an async level loading system inside the gameinstance, but I'm not sure and just crashing my engine while attempting. I'm also assuming that for expanding on the overall savegame data structure, the clenaest thing to do is to have a few different structs with data inside them (like player character data in one, and then maybe quest progress in another one and something else in another one, or what do you recommend?
@alexanderkartashov87766 ай бұрын
great solution design.
@LeafBranchGames6 ай бұрын
Thank you. :)
@kellowattentertainmentАй бұрын
Wonderful. I'm not sure why I didn't watch this sooner. This is why I love it when you do system-building tutorials. This is perfect. I have one question though, how would you get this to work with other actors that depend on the Player character? For example, the player picks up three weapon actors, which are stored and attached to the character. What is the best step in getting those actors removed from the map and equipped to the proper slot upon loading the game after the weapon actors are picked up?
@LeafBranchGamesАй бұрын
What is best depends wholly on a lot of details how you intend your project to work. You want to get the data to load into your objects when it is relevant. This can be when a pawn is possessed, whan an actor is spawned, when a certain object reaches a certain state. You have to determine when is a good time to load (or save) data for your project based on what you are trying to achieve.
@iGameDesign7 ай бұрын
Thank you very much for the video! Now I have a cool save system!
@LeafBranchGames7 ай бұрын
Enjoy!
@dzmitryyafimau764710 ай бұрын
Simply amazing! Great job!
@LeafBranchGames10 ай бұрын
Thank you!
@dzmitryyafimau76479 ай бұрын
@@LeafBranchGames Played with that system for a while and ran into a few dead ends. Trying to resolve them myself but it would be nice to see a follow-up on this topic from you since the first iteration is very well-structured and works like a charm. The issues I'm referring to in particular are when multiple actors in a level need to save and load their respective data, how would you tell which actor gets what data? Furthermore, suppose we are talking about collectible items. How does one manage data saving if some of them were manually placed in a level but others could be spawned by dropping from the inventory and any of those could be picked up later as well? Clearly, we need to store a map with references to actors as keys, but the realization is quite complicated.
@LeafBranchGames9 ай бұрын
@@dzmitryyafimau7647I would suggest you create a manager to handle saving and loading those objects. If they are placed objects in the world, I would suggest using GUIDs to keep track of the unique objects.
@AleksanderFimreite7 ай бұрын
What you are doing at 42:00 I suggest you just move that loop to the same location that the actor list is processed. This will avoid needing to implement "system behaviour component responsibility" on individual actors. I can recommend replacing individual values of serialized data with a struct. That way, if you need to save Copper as well, you only need to add another variable to the struct. At least for larger objects with a lot of data. One major topic that was not covered, I would like to see how this system deal with multiple instance data? In that you have 4 enemies of the same type (blueprint). How can you save "one is damaged, one is dead, two are still default"? My approach would probably be to look at having each actor implement a unique key based on ActorId. (Actor->GetObjectName) To then look up a variable Map(String, Struct) from the SaveGame object which it can use to find a specific key aka. (Enemy_1, Enemy_2, etc...) On another note, if you are looking for a node formatter to help speed up placement of nodes, I really recommend "Blueprint Assist". It has saved me of countless perfectionist hours almost on a daily basis.
@LeafBranchGames7 ай бұрын
Yes, you could leverage the part of component save/load to not be the responsibility of the actor. That is not a bad idea. Concerning variable data storage - yes, naturally you will be storing information in structs/arrays/etc as the information becomes more complex. The examples were simply examples to keep things simple to understand. Multiple instance data would depend. It could be handled by a manager class or by unique actors. It all depends on how the game, levels, actors are meant to behave and spawn. I would opt for a GUID over an actor id in most cases. Thanks for the tip on the blueprint assist. I have considered getting something to keep things cleaner, but I am leaning towards electronic nodes.
@AleksanderFimreite7 ай бұрын
@@LeafBranchGames I can understand your argument about GUID, as two actors with the same ActorId from different levels would possibly intersect? To my understanding, unreal does not have a proper GUID by defualt though. And you would need some plugin for it? I recall there being some hassle there when I looked into it. My workaround was to include level name in the key. Which would make it highly unlikely that they ever have a conflict. If you have some useful info on GUID I would love to hear that.
@LeafBranchGames7 ай бұрын
@@AleksanderFimreite I suppose that depends what you mean by proper GUID. But no, you don't need a plugin. There is a "new guid" node you can use.
@AleksanderFimreite7 ай бұрын
@@LeafBranchGames What I meant by GUID is a key that stays the same from the moment the actor is placed in a level. This does not seem to be the case for a guid, as it makes a new one on the fly each time it is called. Also found this comment about it on reddit claiming that it is Editor Only, and not available in shipping builds. This property is a must have for a save system to recognize it as the same actor.
@LeafBranchGames7 ай бұрын
@@AleksanderFimreite I would not trust a random comment on reddit. I would verify that claim myself, because that sounds very dubious.
@WAR_19339 ай бұрын
Hello this has been a yet again another wonderful video.. I do have a question how would you add save slots to this system?
@LeafBranchGames9 ай бұрын
It is just a matter of replacing the name for the save slot value. So it would very much depend on what type of save slot system you were creating. Since there are very many different approaches to how you could make use of slots. Most of the save system doesn't care what slot is used, only the actual events that interact with the file on disc.
@WAR_19339 ай бұрын
if you ever do a follow up I would love to see how you would go about doing it You are such a valued part of this community thank you for all you do and I plan to show some support towards your work thank you for everything over the years.@@LeafBranchGames
@DevMaximusGames3 ай бұрын
In honor of 999 silver, I was the 999th like on this yt video. I never comment, and rarely like videos. But this was top to bottom the best tutorial on a save game system in unreal engine
@LeafBranchGames3 ай бұрын
Thank you, for the kind words and support! :)
@DevMaximusGames3 ай бұрын
@@LeafBranchGames do you know how I could add functionality to save which level the player was at? and what player start in the level we should choose to spawn at? or perhaps you could add an additional tutorial on something like this or point me in the right direction?
@GoatOfTheWoods10 ай бұрын
Excellent !
@LeafBranchGames10 ай бұрын
Thank you. :)
@2loffa210 ай бұрын
Thanks a lot man!
@LeafBranchGames10 ай бұрын
❤
@d.k.15454 ай бұрын
Amazing!! youre a genius!! TAKKKKKKKKKKKKK
@LeafBranchGames4 ай бұрын
Thank you. :)
@LuceOut10 ай бұрын
Hello, thanks for the amazing tutorials, Do you have any video on how to manage animations on different weapons in an fps? I don't know if i am searching for the right video title
@LeafBranchGames10 ай бұрын
Not on the specific topic topic like that no. But watching the "create an RPG" series shows off different animations for different classes which may be close to what you are looking for.
@TheSebledingue4 ай бұрын
Thank you very much
@LeafBranchGames4 ай бұрын
My pleasure!
@soldieroscar7 ай бұрын
Love the tutorial. Very straight and to the point. In my project my character is able to spawn a ton of different objects, each one with their own properties to save, including its location. I assume that I can just add the Interface to each spawned instance and so they will all become savable when called, and each will fill out their data as requested. Question 1: how to save the objects location Question 2: does adding the interface to the spawned object mean each spawned object will be spawned back in place?
@pHaace8 ай бұрын
I had an issue for the loading request i think but about to do this again in a new 5.1 project to hopefully have it set up right for expansion into a project
@pHaace8 ай бұрын
im pausing for the night on the second time thru this at 36:42 and the continue button doesn't wanna do anything after i try to save a game and not sure where its wrong at
@LeafBranchGames8 ай бұрын
@@pHaace You can add the "does save game exist" to check that the save game you are trying to load first. If it doesn't, then you have not created it. If it does exist, but it doesn't seem to do anything, then you either are not loading things or the values you are trying to load are not correct in the save game structure. Then you need to debug.
@Memeseco3 ай бұрын
Great tutorial It help me understand the interfaces, what would you need to change if you had multiple objects in the scene that need to be saved, when I used this on my game all the character just took the health from the first variable in the save game state, so they didnt load what their health was but just what the first object saved theirs as.
@LeafBranchGames3 ай бұрын
You would need GUIDs to use as identifying keys to find the object specific information to load/save.
@Memeseco3 ай бұрын
@@LeafBranchGames Nice I thought i would need some kind of ID system, Thanks i will look into this, I do have it working in a hacky way but its not as elegant as your system. Thanks again and best of luck!
@LeafBranchGames3 ай бұрын
@@Memeseco Good luck!
@daviderocconi_sounds5 ай бұрын
you know the vibes if you use 42 as test values
@LeafBranchGames5 ай бұрын
:)
@IoSkyBoyoI7 ай бұрын
It's clearly a great system. I've rechecked mine twice over a few hours, but mine doesn't work. No errors. Just doesn't save. I'm debugging now. Hopefully if I find anything, ill let people know in case it happens to someone else. Edit: OK if anyone else has the same issue I have, I was using a widget not an actor. So to get all actors with interface obviously won't work. That needs to be swapped for get all widgets with interface and it works fantastically.
@IoSkyBoyoI7 ай бұрын
Ive Made another project using this method and it doesnt work again xD. Urgh for future me...Write it here when you figure it out.
@samuraioniАй бұрын
I love your tutorials, have learned a lot. Still an absolute noob so please forgive me if this has been asked, how would I go about integrating this into your RPG system framework? I got totally lost when it got to the attributes portion and haveve no clue how to integrate the two systems.
@LeafBranchGamesАй бұрын
Since all games operate differently and have different needs when it comes to how data is to be handled, there is no one answer to this. As a general instruction, you want to have a translation step to allow your data to be loaded/saved in a consistent manner as well as happening at times that are relevant for the gameplay to keep track and make use of the save information.
@samuraioniАй бұрын
@@LeafBranchGames Thank you, no idea how to do that but at least I know it's possible.
@LeafBranchGamesАй бұрын
@@samuraioni Take it one step at a time and you should be fine.
@samuraioniАй бұрын
@@LeafBranchGames I think i figured out a way to do it, you mentioned using structures so I am going to give that a shot. But I don't know if you've encountered this error though: Blueprint Runtime Error: "Accessed None trying to read property SaveGameRef". Node: LoadDataForRequester Graph: EventGraph Function: Execute Ubergraph BP Game Instance Blueprint: BP_GameInstance
@LeafBranchGamesАй бұрын
@@samuraioni This explains your error: kzbin.info/www/bejne/b4HWoJh4gp1lo80
@japanse_samurai94565 ай бұрын
Can you please make a video about how I can save and load a game level?
@iGameDesign7 ай бұрын
Please tell me, do you have a video where you show how to update a player’s HUD when loading a saved game? I have a situation where everything is saved, but when loading, the progress bars are not updated.
@LeafBranchGames7 ай бұрын
These are usually two separate things, that shouldn't be in conflict. The UI should just be displaying data, so as long as that saved and loaded data is done right, it should just be a matter of showing it.
@iGameDesign7 ай бұрын
@@LeafBranchGames Thanks. I fixed progress bars
@LeafBranchGames7 ай бұрын
@@iGameDesign Glad to hear you solved it!
@sebastianavena10 ай бұрын
Thank you, I love your content! To make this fully scalable, would be great to be able to add objects that the SaveGame doesn't even know, but the ones that implement the interface do. So SaveGame will have data in the form of objects with an identifier, and then, when loading, the objects will search for that data and fill themselves. This way we don't need to add each variable to the SaveGame and it doesn't end up being a big list of variables. The way you did is easier to implement, and usable for small - medium projects, I'm just sharing possible ways to make it more scalable :)
@LeafBranchGames10 ай бұрын
I would claim this works for larger projects as well. It can handle objects it doesn't know of. Gold and silver are just simple examples. But if you want to handle more advanced types you just add structures and arrays.
@revraitah9 ай бұрын
Hey sorry to butt into your comment, @sebastianavena9919. Can you elaborate more on: "be able to add objects that the SaveGame doesn't even know, but the ones that implement the interface do." and "SaveGame will have data in the form of objects with an identifier, and then, when loading, the objects will search for that data and fill themselves. This way we don't need to add each variable to the SaveGame and it doesn't end up being a big list of variables."? From my understanding with this tutorial, say I have inherited SaveGame object that will be used for saving that will have a TMap consisting of some sort of FString or an FGameplayTag as key (identifier) that maps to an object as the value of the TMap itself. So when you actually need to put value into the inherited SaveGame object, you just have to add it to the TMap with the key value pair ,then when you'd like to 'load' the data from the SaveGame object, you'd simply pass the key to some sort of Load function and if there exist an object with the key, you assign the value retrieved from the SaveGame object. Am I correct? I feel like I might have got the logic wrong as I feel like I still have to 'assign' the retrieved value after I load the SaveGame object to the Saveable object that needs to know the already saved value. Thank you!
@TheOnlyKaas7 ай бұрын
I have an issue where I cant move when the scene switches. and lots of errors that says: Blueprint Runtime Error: "Accessed None trying to read property SaveGameRef". Node: Load Data for Requester Graph: EventGraph Function: Execute Ubergraph Game Inst Blueprint: GameInst Please Help!🙏🙏
@Chatmanstreasure7 ай бұрын
getting same error UE 5.4
@TheOnlyKaas7 ай бұрын
@@Chatmanstreasure :(
@LeafBranchGames7 ай бұрын
I just tried migrating the tutorial to 5.4, it works perfectly fine. So it is not an engine version issue. This video explains what access none is: kzbin.info/www/bejne/b4HWoJh4gp1lo80
@TheOnlyKaas7 ай бұрын
@@LeafBranchGames I fixed it and get no error now put I still can't move when I press "start new"
@LeafBranchGames7 ай бұрын
@@TheOnlyKaas Moving doesn't really have anything to do with a save game. Make sure you have basics working like proper game controller etc.
@kthxbye11328 ай бұрын
Thanks so much. How would you tackle a save system for graphic / scalability settings?
@LeafBranchGames8 ай бұрын
Probably as a separate save file, since it is not really relevant for the other save data.
@Starblendet6 ай бұрын
In my game I have alot of things, for example apples. How do I save info on each apple? (most importatnly if it´s been eaten or not) I´ve tried to figure out to do it with array but failed. You´ve also mentioned in the comments of creating a "manager actor" Is that the way to go and if so could you describe what it is and what it does a bit more? Great tutorial and for us noobs It would be awesome with a part 2 where you explain how to use this system more hands on in a game. I would watch the sh*t out of that! ;-)
@LeafBranchGames6 ай бұрын
I will probably make a followup video showing some use cases.
@Starblendet6 ай бұрын
@@LeafBranchGames That would be awesome....meantime could you point me right direction?
@LeafBranchGames6 ай бұрын
@@Starblendet It is nothing cimplicated. It is just a general concept in programming a class that manages other classes. You cna google manager class and you will likely find the idea described in detail.
@Starblendet6 ай бұрын
@@LeafBranchGames Thanks so much!
@NotSVGames9 ай бұрын
Hey mate AWESOME video !!! ❤ Could you please make a player skill unlocking system 😢
@LeafBranchGames9 ай бұрын
Thank you! You may want to watch the Create an RPG series I have then. Most parts for such a system is done there.
@needlessToo2 ай бұрын
First of all thanks for the great tutorial. Everything works as shown. But I have a problem if anyone can help me. How can I save an instanced actor? Because if an actor tries to save a variable and it has instances they all use the same save state. What should I be trying to do to prevent that?
@GVMuk8 ай бұрын
very nice. having some issues with saving the world state. like say a cargo box location i dropped
@LeafBranchGames8 ай бұрын
Try making a manager class to keep track of the actors you are interested in.
@GVMuk8 ай бұрын
But doesnt the game instance once game has ended lose all data and that save game ref you create and set is no longer valid? Im geting a savegame REF invalid as my save game ref is coming back null on the calls. If I reload my game without stopping play its fine. if I stop play in editor and try and resume the null savegame ref is happening
@GVMuk8 ай бұрын
So , start new game> create save game object> save the game and reload during play = fine. stop play in editor. start play and try to continue = SavegameobjectREF is null
@GVMuk8 ай бұрын
ok update, where you cast to bp_savegame on the load data. if I pull the pin and re-set the the game instances "SaveGameREF" from that cast. its fine strange
@LeafBranchGames8 ай бұрын
A game instance does not keep the information between different play sessions. That is why we create a save game which is a physical file on the computer.
@KillerDudeT192 ай бұрын
did yo ever fix this? im having the same issue
@TheSebledingue4 ай бұрын
Hi, I've been trying to save the inventory offered by Epic (Adventure's Inventory Kit) for days but I really can't do it. I managed to save everything except the icon does not update when you open the inventory after restarting the game. And the equipment cannot be equipped (weapon and armor). Could you take a look at it please?
@louthinator7 ай бұрын
how does this handle things like items being spawned or destroyed from the world? Like say I have a map that has a sword on it that I put there in the editor, and I pick up that sword during runtime thus destroying the actor in the world, if I save, quit, then load again UE usually tends to load the default state from editor then apply any changes from the save game over the top of it, how would this save game system handle something like that? Or an alternative example, what happens if I drop a sword into the world that I started with, so it was an actor that didn't start in the world but now has been added and then saved and loaded. I've been trying to get around it using a GUID system but it's just getting more and more complex every time I add something.
@LeafBranchGames7 ай бұрын
Should handle it fine. You can have a manager class that keeps track of items like that in the world.
@louthinator7 ай бұрын
@@LeafBranchGames could you make a tutorial on how to set up such a manager class and integrate it with this save system? because IDK how that works.
@LeafBranchGames7 ай бұрын
@@louthinator Maybe. We will see. Stay tuned.
@louthinator7 ай бұрын
@@LeafBranchGames Thanks. I really hope you do because the ability to save and load a game has been the BANE of my existence since I started my own project, In 3 days it's taken me from being excited about how far I've gotten to absolute burnout.
@Flav0rful3 ай бұрын
@@louthinator Were you ever able to find a solution for this?
@Havca_4 ай бұрын
Hello, first of all your tutorial is great, a nugget like you can find, but I followed your tutorial and during the first test I had an error, which told me this "accessed none trying to read property SaveGameRef" this came from the part with event request load in BP_GameInstance, thanks in advance😁
@LeafBranchGames4 ай бұрын
This video explains that problem kzbin.info/www/bejne/b4HWoJh4gp1lo80
@Havca_4 ай бұрын
@@LeafBranchGames thanks a lot, now it works but I still get the error, I guess it should still do it 😂
@LeafBranchGames4 ай бұрын
@@Havca_ Those errors can not be ignored. As the video explain, you are trying to interact with something that is not properly set. Which means something is not working. You may not notice it now, but you will at some point.
@Duucky_6 ай бұрын
hey, just followed the tutorial and was trying to implement it into my game but its not working. I'm trying to store an array of objects but the player can delete them and it should save and then load them next time but its not.
@karvoni90458 ай бұрын
my inputs are not working when I load the game through "Continue" (game still saved tho) how can I fix it?
@karvoni90458 ай бұрын
Okay nvm I got it I am just an idiot and your tutorial made some idiot like me even can do something, thanx alot
@TheOnlyKaas7 ай бұрын
I have that problem...
@Rusty01244 ай бұрын
I have an issue when I build my game I can save the game and load it as long as I don't close it and reopen if i do it allows me to continue so the game knows of the save game but it just loads me outside of the map at what i can only assume to be 0,0,0 with no character
@OreoCat4899 ай бұрын
i'm trying to make a trigger when you touch it you save but what block do i use for this? 17:19
@LeafBranchGames9 ай бұрын
What do you mean? At any event trigger you want, you can just call the save functionality.
@OreoCat4896 ай бұрын
@@LeafBranchGames oh
@Mohit_N.R10 ай бұрын
Great Video, Just What I was Looking for.🙏🏼✨ But how we can Save the Map Data ?! For an Example Let's say there is a Bag of Gold in Map - We Collect that Bag. Now we Save and Load The Game - The Bag of Gold will Spawn and We'll Have Infinate Gold Glitch. Same with Enemies, Collectables and Everything. How do we Save All of That !!? 🤔
@LeafBranchGames10 ай бұрын
Many different ways. If it is an object that is placed in the level to begin with, you can have it assigned a GUID and keep track in the save game in a simple structure with GUID and status (like taken). So when it loads in, it checks against its guid if it should be shown or not. Or you could have a manager object that keeps track of a bunch of these objects and it will be the one who saves/loads in which bags and other items should be taken or still available etc.
@Mohit_N.R10 ай бұрын
@@LeafBranchGames Thank you for Responding. I don't know what GUID is and I don't know how to do any of the things you just mentioned here in comment. 😅 Is this going to be in level blueprint btw ? And Are you Planning to make a video on this thing ? almost all Channels here are showing Bad Practices. It would be Extremely helpful if you make a video on this 🙏🏼
@LeafBranchGames10 ай бұрын
@@Mohit_N.R A GUID is an acronym for a GLobal Unique IDentifier. So an ID that you can use to uniquely identify something. If you have 200 identical swords in a game, you can have GUIDS to be able to pick out a specific one you need. Nothing would be in a level blueprint. A GUID would be designated by each object that should use one.
@Mohit_N.R10 ай бұрын
@@LeafBranchGames Noted, I have to do Research on this to understand more. Seems complicated - I do Hope you'll make a video on this tho. 🙏🏼✨
@vivia.6224Ай бұрын
It doesn't work - you have , from the beggining "gold" - why, where - i don't know... 19:16 I don't have that... why? Is this continuation of any film? I tried to create new variables but in 20:29 i haven't "set" ... nothing want to conect with "target".. and it doesn't work...
@LeafBranchGamesАй бұрын
You probably missed that part in the tutorial.
@vadimkrakhmal9 ай бұрын
Thanks! If i may, it's scalable, but only to a certain extent, say for your character's data. But often you have like hundreds of saveable objects on a level, such as doors you've opened, objects you've moved, triggers you've triggered. Each one of them must save their position/state/whatever else. Imagine adding all of those to the BP_SaveGeame as variables, that's a nightmare. So it'd be cool to have some unified data structure/interface and an array of that data types inside of our SaveObejct. So you dont pass in like int Gold, rather ISaveableData Data represinting the values of the concrete object you want to save.
@LeafBranchGames9 ай бұрын
You can. Let us take the doors example. Add a door manager actor, make it implement saveable interface. It will save and load all the individual door states in an array in the save game.
@gamedevofcoffeeandpower7 ай бұрын
31:13 you tried it off of the reference but it cant have an object reference
@LeafBranchGames7 ай бұрын
Yes, I know.
@ryanjdevlin8710 ай бұрын
if im using take his res screenshot for the save game thumbnail, is there away to save the image into the save game data ? Or is it best to save the image separately from the save game data as its own file ? Thank you so much for this tutorial this was amazing ! Im deft going to be overhauling my save system using these fundamentals !
@LeafBranchGames10 ай бұрын
I am not sure I am following. You want my thumbnail in your save game? Glad to hear the save system was useful to you!
@ryanjdevlin8710 ай бұрын
no im saying that in my save game function im first calling "Take High Res Screenshot node" and saving that to its own file. I havent been able to figure out how to save the image into the save game file itself not as its own file. But im not even sure thats the best route or the image should just be stored outside the save game file. For further clearance im talking about a thumbnail that the player captures at the time he makes a new save game file thats displayed in a load game widget for example.@@LeafBranchGames
@LeafBranchGames10 ай бұрын
@@ryanjdevlin87 Gotcha. I don't know since I have not tried that before. I would have to experiment.
@protophase4 ай бұрын
Jävligt bra tutorial. Trots att jag är rätt så färsk på UE så förstår jag det mesta, jag måste bara sätta mig in allt du gick igenom.
@LeafBranchGames4 ай бұрын
Thank you. :)
@ErrRationale8 күн бұрын
This is great. I'm kind of lost on the whole 'Slot Name' variable for my project. Developing something like an application where the user can name their own file and decide where they place it seems blockaded by this variable thats really not behaving like a variable. UE seems so strict about this single Slot01 bs as well as the location its saved. I'm trying to implement the EasyFileDialog plugin to achieve this. The plugin has tested working and has worked wonderfully for other tasks except this one. Any pro gamer tips for this would be appreciated, peace
@LeafBranchGames8 күн бұрын
It is simply hard coded in this tutorial, so you can easily add some logic or a system that handles it differently and you have other slots to save to. I have no tips or input on easyfiledialog, I have never used it.
@ErrRationale7 күн бұрын
@@LeafBranchGames I remedied this using the 'Get Clean Filename' function before slot name and after the Open File Dialog
@SchriztopherGaming9 ай бұрын
I build this entire system and it all makes sense but when I go to put it to use on the default UE gun, I can't get it to stay with my player through levels if picked up. As soon as I go through my Open Level door and save, then load on begin play of next level blueprint, I still have nothing. I was able to get my gun to travel with me with one method using game instance, but I could not fire or spawn the weapons projectile. I've been struggling with this for a couple weeks now. Any further help is greatly appreciated.
@SchriztopherGaming9 ай бұрын
Also have this error Blueprint Runtime Error: "Accessed None trying to read property SaveGameRef". Node: Load Data for Requester Graph: EventGraph Function: Execute Ubergraph Game Instance A2B Blueprint: GameInstanceA2B
@LeafBranchGames9 ай бұрын
@@SchriztopherGaming This video explains access none: kzbin.info/www/bejne/b4HWoJh4gp1lo80 You need to save all relevant data that you want to make use of. Before leaving the level, you need to "pack down" all the data in your save in a way that allows you to unpack it in the next level where you load it up again.
@mykelgaming9 ай бұрын
great save sys ! if u dont mind explain how can i save player location ? tnx so much
@LeafBranchGames9 ай бұрын
You create a vector variable in the save game and save/load that variable from your player on the appropriate events.
@mykelgaming9 ай бұрын
@@LeafBranchGames Tnx it worked!!! Ur a legend ❤
@Lottie-e6mАй бұрын
Anyone having an issue with the accessed none on save game ref - if this isn't the first tutorial you've tried try deleting your built up save files in saved/ save game in your project files.
@thebelowzerogamers21794 ай бұрын
Does anyone know why the Health variable isn't saving? The gold and silver saves, but not the Health float.
@LeafBranchGames4 ай бұрын
Not sure what you are talking about. It is demonstrated in the tutorial showing that it is saving health. If it is not saving for you, then you missed some part.
@dimby2230Ай бұрын
I've been tryna work this out for hours and I have no Idea what I'm doing wrong. I've been triple checking everything, my scripts and the video. First I had the "Accessed None" Error on request load, so I had a look through the comments and the video you linked but I'm still not sure what causes it. If I put Create Save and Request load into the gamemode blueprint I don't get any errors, but if I move Request Load into my player character blueprint, I think it loads, but it wont save. If Create Save is in player character blueprint at all, I get "Accessed None". Do you have any idea what the issue could be?
@Boomervision8 күн бұрын
I had this issue as well, and while I still haven't fixed my entire code (It's only saving and loading some variables for some reason) - I saw that I didn't give my "save slot name" string variable a default name. That solved the "accessed none" issue for me.
@kolbasa12348 ай бұрын
Nice tutorial, but I have a question. If in a level I have multiples items that can be picked up, and i want to save the GUID of those who have been picked up, how could I go about it?
@LeafBranchGames8 ай бұрын
Create a manager class that handles the saving and loading of those objects.
@kolbasa12348 ай бұрын
@@LeafBranchGames And this manager class where should I instantiate it, inside the GameInstance? Sorry, I'm a bit lost at this
@LeafBranchGames8 ай бұрын
@@kolbasa1234 It could be anywhere it makes sense. It could be an actor you place in the world if you only have only one level. If you have multiple levels you likely want to create it early when entering that new level so that you have it available.
@kolbasa12348 ай бұрын
@@LeafBranchGames Since there would be multiple levels i think the game instance maybe it's the best choice. Also, in the save game, I would only have to save the manager object itself right?
@LeafBranchGames8 ай бұрын
@@kolbasa1234No the manager is not there to be saved. The manager is there to keep track of the objects, in your case collectibles. So the manager saves/loads the objects.
@thecynicalsprite18478 ай бұрын
Was wondering if i could use this to save certain items as collected. I see this can save totals, my project just has a couple collectibles i want to stay gone after they're picked up.
@LeafBranchGames8 ай бұрын
Yes, it can be used for that.
@Starblendet3 ай бұрын
...it doesnt seem to work with widgets...have a menue widget in wich I set dificulty setting but it won´t save! I´ve implemented the interface and the save data in the widget but it´s never called. Seems like the save all data loop doesnt register the widget to save it? Am I missing something or is there something that isnt working here?
@ryanjdevlin873 ай бұрын
its uses get all actors with interface in the game instance so it will never find widgets. See my recent comment for how I made this work for widgets
@Starblendet3 ай бұрын
@@ryanjdevlin87 thanks alot.... actually I think I'm gonna create an actor that stores the data which the widget can get and send info to....
@LeafBranchGames3 ай бұрын
It works with widgets. Widgets should ideally just display information that is stored elsewhere. So you load and save elsewhere and just show with widgets what the information looks like.
@Starblendet3 ай бұрын
@@LeafBranchGames so a main menu where you save your settings should ideally not be stored in the menue Widget? Why is that? What you are saying seems very similar to my solution I wrote, to have another actor store/save the data that communicates with the widget. Or are you saying something else? Is ryandjins solution to use constructs better?
@makoto_shibari7 ай бұрын
Woooww awesome!! thanks for the very detail explanation. But i don't know why in my project work with simple variables (like the video) but with strucs don't save the data :( I'm trying to discover why at this moment.
@makoto_shibari7 ай бұрын
well I find that save the struc variables but the problem is for load the character world position and camera rotation. Always set in the game start values...
@LeafBranchGames7 ай бұрын
You can find others having the same issue as you in the comment section.
@makoto_shibari7 ай бұрын
@@LeafBranchGames thanks!!! I find the problem!!! I miss some step jejeje Awasome tutorials!!! Thanks a lot!!!
@LeafBranchGames7 ай бұрын
@@makoto_shibari Glad to hear you solved it!
@qasimimtiaz6975 ай бұрын
can you please guide me on how to save the level name if you have multiple levels in your game
@AlexerSalmon5 ай бұрын
I think you can save it as a string and then call it
@Starblendet6 ай бұрын
Hello again...Im having a weird issue where when I build the game it seems to remember a saved game that I can load without ever even created a savegame!? I have removed the savegame in the project folder before building...
@Starblendet6 ай бұрын
Found it, seems "shipping" build stores the savefile here: C:\Users\\AppData\Local\\Saved\SaveGames Delete it and the build will start with no saved data
@LeafBranchGames6 ай бұрын
Glad to hear you sorted out your issue!
@RV-bc9yiАй бұрын
Hello, so normally I followed the video correctly! But I'm having a few problems with the “load data for requester” which displays the following error: Blueprint Runtime Error: “Accessed None trying to read property pirateSaveGameRef”. Node: Load Data for Requester Graph: EventGraph Function: Execute Ubergraph GI Pirate Blueprint: GI_Pirate. When I click on Continue nothing happens and on Save Game it freezes the game. What did I miss?
@LeafBranchGamesАй бұрын
This explains your error: kzbin.info/www/bejne/b4HWoJh4gp1lo80
@RV-bc9yiАй бұрын
@@LeafBranchGamesHi thank you ! I don't get the error message anymore, when I click on Continue I restart from the beginning (it's like a restart level) and on Save Game it always freezes the game. Important: I have a level for the start menu with the “new game” button, then I switch to the game level.
@Lottie-e6mАй бұрын
Lmk if you fix this because I am having the same issue. I know WHAT accessed none means, I don't know WHY it's happening. Putting a validated get on "save game ref" doesn't actually help. I'm also getting the freeze when saving.
@LeafBranchGamesАй бұрын
@@Lottie-e6m You have missed the whole point then. Putting a validated get isn't a solution. It is defensive coding to prevent unexpected errors that will cause the application to crash in runtime. The actual issue, is like described in the video, that you are trying to interact with an object reference you don't actually have a valid reference to.
@GrumpyGillsFishingАй бұрын
Everything seems to work correctly, but I am getting an error saying Load data for requester accessed none trying to read savegameref. This is being fired off on begin play in the playerstate. I’m not sure why I’m getting the error. I did everything the same as you did other than I’m using playerstate instead of player character, and I don’t see you getting this error. I’m using 5.4 if that makes a difference.
@GrumpyGillsFishingАй бұрын
Other than the error it is saving and loading data as you would expect it to.
@LeafBranchGamesАй бұрын
This explains your error kzbin.info/www/bejne/b4HWoJh4gp1lo80
@BeryMeryGames10 ай бұрын
its a good system but its not so complex and not usable for most of the games here some complex things with save system: 1- we have some actors are spawnable or destroyable and we dont know how to save them because they are not exist in level 2- for example if we have one component called health and we used for enemies also we dont know how to save it and load it even if we spawned enemy 3- for example in my case i have building system in my game, i have to save all buildable actors in level and some of these buildable have their own data and components so how we can save it and load it? 4- using blueprints to save and load its really not a good system to use because if we have more than 1k actors in game and we want to save or load it will crash the game if we have a lot of data, C++ is best way to do save system
@LeafBranchGames10 ай бұрын
Thanks for the input. Unfortunately false. The system can handle all those cases and more of couse. Just to give one example, if you have a specific type of actors that you need to keep track of, maybe exploding barrels, which can be spawned and destroued. You can have a managing actor that keeps track of when and how to spawn these actors if they are destroyed. This manager is set to saveable and will create an array structure to save. Super easy.
@Рустем-ц2ц6 ай бұрын
Hello, my problem 😢 Blueprint Runtime Error: "Accessed None trying to read property SaveGameref". Node: Load Data for Requested Graph: EventGraph Function: Execute Ubergraph BP Game Instance Blueprint: BP_GameInstance
@LeafBranchGames6 ай бұрын
This video explains the issue: kzbin.info/www/bejne/b4HWoJh4gp1lo80
@zaygt404Ай бұрын
Everything is fine but It always shows me the errors: Accessed none trying to read [My Variables]. what is the problem!?
@LeafBranchGamesАй бұрын
This is the problem kzbin.info/www/bejne/b4HWoJh4gp1lo80
@Starblendet8 ай бұрын
I´m a noob...How would I go about saving and loading objects in the gameworld? for example apples in an open world?
@LeafBranchGames8 ай бұрын
Similar questions to this has been asked before, you can find the answer among the comments.
@Starblendet8 ай бұрын
@@LeafBranchGames thank you kindly sir and for a great tutorial!!!
@KeenanBrown-x9r20 күн бұрын
Help me please, I get this error. "Blueprint Runtime Error: "Accessed None trying to read property SaveGameRef". Node: Load Data for Requester Graph: EventGraph Function: Execute Ubergraph BP Game Instance Blueprint: BP_GameInstance"
@KeenanBrown-x9r20 күн бұрын
@25.30 I can't get the "loading requested" function, I can choose "request load" and "load data for requester" (My NewGame and QuitGame work perfectly.
@LeafBranchGames19 күн бұрын
Here you go kzbin.info/www/bejne/mIWqeqGbmKqCbq8
@Pierraxl8 ай бұрын
Hello i've been trying to save my player on map. It kinda work but i have something i can't load properly. I'm saving and loading player transform but when i'm loading it reset the player rotation to 0 0 0. I've been trying with a vector too and it always get back to 0... are you aware of this issue ? Also, when i make a new game, due to the saving procedure, my player start at 0 0 0 location, do you know how i can make him start at any random player start ? Thanks a lot ! Great video
@LeafBranchGames8 ай бұрын
If your characters rotation is saved as 0,0,0 it will be loaded as 0,0,0 - just make sure to save the correct rotation and then load the correct rotation. It is not realted to the system in any way. If you want the character to start at a random start, first get the location he can start and then place him there either in the loading of the level or loading of the character.
@Pierraxl8 ай бұрын
@@LeafBranchGames Well insite my character i implement save and load from the interface and in the save i just get the actor world transform and set it in the savegameref, i do the same for the loading, and it's only one variable, a transform one, and it succeed to get the position but not the rotation, and it's still the same node ! I'm not saaving 0 at any time it's a blank project where nothing is done aside. When i print from Get game instance, save game ref, get player transform after i pressed save, it correctly display the new rotation, when i load, position is correctly loaded, rotation is back to 0, despite the fact is displayed somthing else than 0
@LeafBranchGames8 ай бұрын
@@Pierraxl The project and the save game system can not do anything it is not being told. If what you are saying to describe the situation is accurate, the best thing you can do is put breakpoints in your code and follow the code execution to see where in the code the 0,0,0 appears.
@Pierraxl8 ай бұрын
@@LeafBranchGames I tryed everything and still get my rotation back to 0. I managed to make it work by updating twice after a little delay this is weird. Do you know how i can set player position BEFORE anything from the save and load system happen and only on a new game ?
@LeafBranchGames8 ай бұрын
@@Pierraxl The begin play even will happen before the load, since it is the one asking for loading info.
@B7ARTH7 ай бұрын
Will this work for multiplayer?
@LeafBranchGames7 ай бұрын
Yes.
@yoon01193 ай бұрын
25:00, 27:00, 28:35 33:30 39:40
@realemptystudio6 ай бұрын
I'm about to go trough this video as I see there is tons of positive feedback in the comments and I'm looking to upgrade my save system. Anyway, would you mind doing a video about properly storing data of actors that get spawned, picked up and dropped. For example, actors picked up inside inventory that shouldn't exist in the world after the game is relaunched or just actors that should spawn on the first begin play of that save data. I assume these are pretty complicated things that might be too hard to implement into a KZbin tutorial format, or even properly with blueprints instead of C. I think @majule1 requested something similar in the comments, also Horror Engine marketplace asset has a pretty good save load system that also handles moveable actors by saving their transform, but not destructible and spawnable ones.
@LeafBranchGames6 ай бұрын
I can add it to my to do list.
@realemptystudio6 ай бұрын
@@LeafBranchGames Thank you, would greatly appreciate it since there is no proper method done on the net.
@GhostViper699 ай бұрын
How can I make it so my continue button recognizes the last used save slot? I have set up a multiple save file system based off of this tutorial
@LeafBranchGames9 ай бұрын
It is just a name/string. So all you need to do is make a function to get that name and use that instead.
@GhostViper699 ай бұрын
@@LeafBranchGames Where should this function be? Because I have tried this
@LeafBranchGames9 ай бұрын
@@GhostViper69In the game instance is fine.
@GhostViper699 ай бұрын
@@LeafBranchGames I'll play around with it some more. Thank you for the help, and good job on the tutorial!
@LeafBranchGames9 ай бұрын
@@GhostViper69 Good luck!
@Ampe969 ай бұрын
Hey, thank you for your video. I followed your tutorial but i get an error when executing. It says "Accessed none trying to read property SaveGameRef. I don't understand why"
@LeafBranchGames9 ай бұрын
This video explains the issue: kzbin.info/www/bejne/b4HWoJh4gp1lo80
@Ampe969 ай бұрын
@@LeafBranchGames thanks, i fixed it. now i'm having a hard time understanding how to save objects located in the world, but i'll figure it out
@TheAnevi9 ай бұрын
how you fixed it?@@Ampe96
@jakespencer9177 ай бұрын
curious, what was your fix for this? I know what and how to use a get valid node, just not sure why it would work in the video without one but fail 100% of the time in my project. I am getting the same accessed none error when trying to read SaveGameRef and am truly lost on why this is occuring.@@Ampe96
@Alanto-6 ай бұрын
Will this work on 4ue?
@LeafBranchGames6 ай бұрын
Yes.
@wolfpawz3212 ай бұрын
Will this save coins and all lives no matter what the level?