Learn how to code in C++ for Unreal Engine 4. C++ tutorials and sample project!

Save System Plugin

 

The Rama Save System plugin for Unreal Engine 4 makes saving and loading your game easy!

You can now order my plugin from the UE4 Marketplace

Whether your game is a multiplayer game, a single player action game, or a game with dynamically generated levels, my save system can help you save and load the state of your game via compressed binary files!

 

You can email me at rama (at) evernewjoy.com to order this plugin! There is no charge for UE4 engine version upgrades as new versions are released.

 

Testimonials

“Rama inspired me to create a custom level editor for my project a while back, so when I recently went to him for help on a save system for the level editor he created this customized system which has saved me so much time! He showed me how to use it, which is extremely easy by the way, and it produces the most efficient method to save out the information and levels required, and the levels that are output are a couple of KBs in size! A couple of lines of code in my project and BAM, that’s it. Thank you so much Rama for your awesome work! “

Jonathan Savery
Co-Founder & Creative Director
Toxic Games
www.qubegame.com

~~~

We needed large worlds filled with collectables, challenges and secrets saved and loaded fast and easily, and Rama Save System Plugin did everything we needed and more. It’s been tremendously useful to have during development and has saved countless sleepless nights. Thank you Rama!

Chris Jack, Prospect Games
www.unboxgame.com

~~~

“Rama, thanks so much for making this. This plugin just saved me A LOT of time. I just tested it with a bunch of enemies and other BPs and it worked flawlessly with almost no effort on my part (literally 5 minutes setup).

Cheers!”

Bruno Gruber,
Vancouver BC

~~~

Hello Rama,

I can say the plugin is great. I needed less than 5 min and the plugin was up and running…

After another 5 minutes and I was able to save/load some of the game’s content which is great.

I have followed your instructions and have watched the video. I am happy to say that the game saves everything that we need like a charm.

After I watched the video and choose the variables that I had to save, I needed less than 10 min to make everything up and running.

Thank you so much :)
Todor Tsekov

~~~

“Thank you for all your help :) Everything was so quick and easy to set up, It’s made my job so much easier, you are a real life saver!”

Chris, United Kingdom

~~~

I got this email from Mike about 10 min after he received my plugin:

“I hooked it up and already have it working in my game.

Since I had all my dynamic objects and characters only go through two blueprints, I was able to hook it up in under ten minutes and had the load/save game functionality I needed.

Great job!”

Mike Sutton, Fort Worth Texas

~~~

“I’ve been struggling with how to give game designers an easy way to modify the values and also with how I would update the game after a customer installs it. Your new static save feature is perfect for that. I’m already designing a separate “game” which my game designers can use to tweak values without having to recompile the main game. Then in my game, I’ll just load the ustructs from the save file. You’ve saved me weeks of coding! Thanks so much for everything you do!”

Morris, co-owner, Owl and Wolf Games

 

Use Cases For This Plugin

    • Saving all the data and actors for a strategy or action game, so the entire world state can be instantly reloaded from a tiny file on your hard disk.

 

    • Saving all the data for a player’s personal profile, recording their progress through a game.

 

    • Saving an entire world full of actors quickly and easily, being able to specify exactly which actor variables get saved.

 

    • Saving data that is customized per instance of a character or creature in the world, such as health, current armor value, ammo count, etc.

 

    • Saving data that is global to the entire game, as well as the entire state of the game world that all players share.
    • Full native C++ support for UE4’s Level Streaming system!
    • Saving the entire state of a game world on a server, to be reloaded in case of unexpected server shutdown or server maintainence event.
    • Save the game asynchronously, so the player can keep playing during a long save process and you can show an byte-accurate progress bar! You can control how much cpu usage you want the save process to use!

 

    • Easily add variables to my save system by setting the UE4 property flag “SaveGame”!

 

    • Save Blueprint-friendly custom File header info that you can pre-load before recreating all actors from save file!

 

Videos

 

Saving and Loading a single or multiplayer game!

In this video I show you how simple it is to save and load a multiplayer game using my plugin! All you have to do is add the component to the player character! The result is instant save and load of a single or multiplayer game!

 

Saving and Loading World Full of Physics Simulating Objects!

In this video I demonstate how easily you can save and load the physics state of objects that are bouncing around your level, instantly! 

Watch as I instantly reload physics-simulating objects that I place dynamically during game time, send them flying with a physics impulse, save their state in mid air, and then reload the game instantly.

All you have to do is add my Rama Save Component to your game object and then I save the physics state for you. It’s a lot of fun!

 

Saving and Loading World Geometry 1

In this video I show you how easily you can save and load dynamically generated or user-placed world geometry using my Rama Save System! All you have to do is add the component to your world geometry actor! Watch as user-placed geometry instantly reloads from disk, even after the UE4 editor is closed and re-opened! This world data is being loaded from a binary file saved by my plugin to hard disk!

 

Saving and Loading World Geometry 2

In this video I show you how you can save and load more complex aspects of dynamically created level geometry. Using the setup I show in this video you can perform any operations you want on level geometry before and after each actor has been loaded from hard disk!

 

Saving and Loading World Geometry 3

In this video I show you in greater depth how you can truly re-load a dynamically generated world from hard disk. I end up making a rainbow in this video, and then saving and loading it! Make sure to re-wind the video at certain parts to see how exactly the dynamic and randomly created world is being exactly reconstructed via my Rama Save System!

 

 

Rama Save System ~ AI

In this video I show you how you can save and load a bunch of AI units as well as two human-controlled players by simply adding my Rama Save Component to your Player Character Blueprint! Watch the AI reload in their exact positions and continue to run around! Then see the whole thing again in a multiplayer game! My Rama Save System makes it easy to save both AI and multiple human players and reload the entire game state at any time!

 

Global Save Data

In this video I demonstrate how you can use a subclassed version of my Rama Save Component with a single Global Save Actor to store any data you want for the entire game!

In this video I highlight how to work with actors that are tied into the level blueprint for per-instance blueprint coding!

In this video I am saving my pressure plates game mechanic to hard disk!

I also demonstrate my instant-load feature which reloads the entire level from disk without requiring a regular ue4 level restart using only my Rama Save System Plugin!

 

Save Tags and Globally Unique Identifiers

In this video filmed using my own C++ video capture tool I explain new features including Save Tags and Globally Unique Identifiers! !

 

Full Native C++ Support for UE4’s Level Streaming System

Also features free tutorial on UE4 4.14 Editor UI system!

 

Customizeable Asynchronous Save Process With Byte-Accurate Loading Bar

In this video I show you how you can choose to enable asynchronous saving and make a BP of my Rama Save Engine so you can create a byte-accurate progress bar of the saving process! You can thus save a huge world without causing a hitch on a server or for the single player’s game!

 

Support for UE4 SaveGame Property Tag & MultiComponent Same-Var Saving

In this video I show you how you can easily add any variable that you’ve created to my save system by checking off UE4’s SaveGame property flag! For properties that you are not creating but already exist in the engine, you can still use my string list method :) In this update I also add support for saving multiple components that use the same variable name that you want to save!

 

Static File Data / File Header You Can Pre-Load

 

Rama Save Component

The Rama Save Component is a low-level data Actor Component that you can add to your game actors to easily save and load those actors!

The purpose of the Rama Save Component is to make it easy to save/load a world full of actors quickly with as much customization as you want.

The Rama Save System stores your entire world full of actors as a ZLIB compressed binary file that has a tiny file size due to my implementation choices.

The Rama Save Component can be subclassed inside of the Editor so that you can add your own BP variables and implement the Save/Load Events!

All BP variables that you create for a custom Rama Save Component are saved to disk for you automatically!

You can also use my base class Rama Save Component in blueprints via the BP Assignable Events implemented in the owning Actor.

 

Blueprint Library

The Rama Save Library is a blueprint library that allows you to initiate a save or load process from literally anywhere within your game!

You can initiate the Save / Load process from UMG, the level BP, the player controller, or even your player character blueprint!

The Rama Save Library also contains utility BP nodes that allow you to
1. Get All Actors that have Rama Save Components
2. Get All Rama Save Components currently in the world
3. Clear the world of all old actors with Rama Save Components prior to loading a file.

 

List of Actor Variables To Save

One of the primary features of my Rama Save Component is a simple String list of variable names that you can use to specify which variables of the Owning Actor you wanted saved to disk!

The advantage of being able to specify exactly which Actor variables get saved/loaded is the reduction in file size, as well as the cleanliness of your save system.

With my Rama Save System you can pick and choose which Actor variables get saved, and all you have to do is add variable names to the String list in the Rama Save Component!

It is a very simple way to save and load all the actors in your game world!

 

Summary of Plugin Features

 

1. Automatic (implemented in C++) Saving and Loading of Player Controlled and AI units! This includes saving and loading multiplayer games with connected clients!

 

2.Automatic (implemented in C++) Saving of all physics objects in the world, instantly reloading the state of a complex physics scene!

 

3. All variables you crate on custom versions of my Rama Save Component component are saved and loaded, allowing you to easily store any data you want!

 

4. You can easily pick and choose exactly which variables of the Actor Blueprint are saved by my Rama Save component! This allows you to minimize save game file sizes.

 

5. Versatile Save and Load Events

a. BP Events that can be customized via blueprinted versions of the Rama Save Component. These events let you perform custom Blueprint scripting within the Rama Save Component itself before or after saving/loading has occurred!

b. BP Assignable Events that can be customized in the owning Actor blueprint. These events tell you when the owning actor has been fully loaded from disk or is just about to be saved! You can receive these events in the actor blueprint itself in order to reload the state of an actor after the loading process as finished!

c. C++ hooks to add in C++ code before the BP events are run. These hooks allow your C++ programmers to tie my Rama Save System into your existing C++ code base!

 

6. Optional Diagnostic Logging. All BP-created variables of the Owning Actor which were not included in the component’s variable list can be printed to the log! This speeds up the debugging process!

 

7. The C++ foundation of my Rama Save System can be extended for your game’s specific needs! I wrote the plugin with both C++ and Blueprints in mind! 

 

8. A Save Tags system that enables you to only load specific actors of your choosing form a save file!

 

9. Ability to choose Globally Unique Identifiers for specific actors (you can choose a few or many!) that you want to reload data for but not destroy and recreate on load. This is ideal for actors that are referenced in the Level BP!

 

10. C++ Native Support for UE4’s Level Streaming system so you can easily save the state of various streamed in and streamed out levels, and load the altered contexts of a streaming level at will!

 

10. Asynchronous Saving where you can customize the appearance of a progress bar on a UI or make a 3D representation of the save process if you want to, accurate to the byte! Save a large world without interrupting gameplay!

 

As you can see, whatever your save system needs are, my plugin can help get you started and make things easy for you and the rest of your development team!

Enjoy!

Rama

Email: rama (at) evernewjoy.com