Download

creating a basic save system with a kismet variable

Hi, I am really really not good at programming, but I am working to finish a project(Witch I wrote program only 10% of the thing) And it miss a save system. Since I dont know where to start and the tutorial I find seem a bit complicated(and I feel the’re would be some link to scaleform wich I am not familiar with)

I had an Idea. I want to start the gamje In some kind of Hub , the main scene and some door will open to the different level depending on a int variable.

That where s the tricky part wich is probably not that tricky for someone comfortable with the engine. I want an Int variable that I can modify and use in kismet and keep always in The game and One that will be store when the game will be reload.

Like I say sorry if I am not writing any code, I just dont know where to start. For INfo I use UDK of january 2012

**Got you covered, **it’s a ballache for me to understand any code, i do not know how to get a crosshair working. But if i can get a whole savegame kismet working then anyone can.

UDN - SaveGameState Gem

  • All you need to know is it works. Touch nothing
  • no kismet required
  • This Image Below shows An Integer.
    ** When the Player picks up the weapon, it changes the integer from 0 to 1.
    ***It will save because the SaveGame Gem saves Kismet, the same is true for matinee sequences. (Bools don’t seem to work well, but Int’s and matinee sequences work 100%)

    ** When the Game is loaded, compare the int we saved earlier and manually give the items back.

**Crusha’s **- Ultimate Save System (USS)](User:Crusha/UltimateSaveSystem - Unreal Wiki)

  • As above, touch no code, it just works
  • Kismet required
  • also easy to add code to

**WorldOFDasm **Staff- Save Game Tutorial (USS - Strongly recommended for you)](Save_game_Tutorial_Menu)

**Mavrik’s **- Basic savegame tutorial (for reading - it is not basic, it is just the savegamestate gem explained)](UDK Basic Save Game Tutorial - Mavrik Games)

TKBS/ FreeTimeCoder - Adventure-Shoot’n’Save-Kit [OLD]](- YouTube)

TKBS- My brand new super easy to use gamedevkit](- YouTube)

Your End result should be simple like this:

If you wish to save Integers and stuff using the SaveGame GEM then you will do something like this:



//this Object contains our game vairables and pickup items. 
//When "savegame" is called all this saves ??
// no config file is created ??

class ItemSaveObject extends Object config(MazeGame) perobjectconfig;

var string SaveName;

var config int item1;
var config int Item2;
var config int Item3;

var config int Weapon1;
var config int Weapon2;
var config int Weapon3;

function LoadObject(String Path)
{
	//LOAD
	class'Engine'.Static.BasicLoadObject(Self, Path, True, 1);
}

// when this file is called from in our savegamestate.uc it should automatically save itself?
//save itself as basicsaveobject with all values visible in the UDKMazeGame.ini
function SaveObject(String Path)
{
	SaveConfig();
	class'Engine'.Static.BasicSaveObject(Self, Path, True, 1);
}


DefaultProperties
{
SaveName="MazeSaveItemList.sav"
}


…But personally i am just rocking everything as a 0 or 1 integer value and doing everything in kismet sequences.

USS:
You can download the USS linked on the WorldOfDASM and copy/paste the attached text file into a map
The checkpoints shown in the image are simply triggers with custom textures, easier from an LD perspective.



class MazeLocation_Trigger extends Trigger
	ClassGroup(MazeContent)
	placeable;
	
defaultproperties
{
  Begin Object Name=Sprite
    Sprite=Texture2D'Maze_EditorResources.Textures.PlayerLocation'
   HiddenGame=False
   AlwaysLoadOnClient=False
   AlwaysLoadOnServer=False
  End Object
  Components.Add(Sprite)
}


Kismet Notes Stuff that might help:



- Attach to event - 
- On Death - 
// remember who is dead and alive etc




- Player Spawned - 
// usually after death




Level Loaded and Beginning of level
// be careful not to confuse or overload 




SaveGameStateLoaded
// important with the USS


It is 2017 and i do not feel that people should still struggle with this stuff, It should be made easy for people to understand and readily available. Once i solve a few issues with the Kit (shown in the video) the whole thing will be available to D/L
For me this was the Golden Code i wanted for 7 years. Enjoy it.

my god thanks for the tips I think it will help me greatly

Did this stuff help?

  • I feel i should add 3 more things for you:

a) To keep clean code variables with stuff declared at the start, if they are similar, they can be listed like this in 1 line, unlike i have shown in my first post (poor technical explanation but whatever)



var config int item1, Item2, Item3;


b) you need to create a Config file for your game, specifically a default ini



[MazeGame UTUIDataProvider_GameModeInfo]
GameMode=MazeGame.MazeGameInfo
DefaultMap=MainMenuMap
Description=DevKit and fast-paced Mini-Game
PreviewImageMarkup=
Prefixes=
IconImage=
bIsCampaign=False
IconU=0.000000
IconV=0.000000
IconUL=0.000000
IconVL=0.000000
ModGameSettingsScene=
ModClientSettingsScene=
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[MazeGame.MazeSaveGameState]
Health=100
PlayerLocation=(X=0,Y=0,Z=0)
PlayerRotation=(X=0,Y=0,Z=0)

/*
i should add a [MazeGame.MazeGameInfo] section
- ???????????????????????????????????????????
issues:
- this doesn't actually work lol, none of my values are being updated in the config file so *** it
*/


It is the same as the DefaultGame.ini producing a UDKGame.ini on boot, mine is not working so u you get yours working let me know pls

  1. use a 32bit shortcut not a 64bit if you are using the USS
    and use