Not that it can be of much interest to the coders here(I consider my self to be on the bottom of the food chain when it comes to code) , but yesterday while doing my regular dumpster diving in the archived forums
ive found this nice kismet script that lets you save most stuff without the need of a dll. And I tested that the save works on 64bit and 32bit.And even the save from the 32 bit one works on the 64 bit and viceversa.
Here is a simple example of touching a trigger>hiding a cube>save and after that load the level with the cube now hidden.

It also works on ¨¨play from here¨¨ and it creates a folder SavedKismetVariables with the .bin saves in your udk game installation folder automatically.
So I might be leaving Krushas Ultimate save system as its a 32bit dll only and go full 64bit build with this thing.Hope someone finds it to be useful in the future

Code:
class SaveLoad_Object extends Object;var int iValue;var float fValue;var int bValue;var vector vValue;var string sValue;defaultproperties{iValue = 0fValue = 0.0bValue = 0vValue = (X=0,Y=0,Z=0)sValue = ""}
Code:
class SeqAct_SaveLoadString extends SequenceAction; event Activated() { local SaveLoad_Object savedObject; local SeqVar_Int IntVar; local SeqVar_Float FloatVar; local SeqVar_Bool BoolVar; local SeqVar_Vector VectorVar; local SeqVar_String StringVar; if (InputLinks[0].bHasImpulse) { OutputLinks[0].bHasImpulse = TRUE; foreach LinkedVariables( class'SeqVar_Int', IntVar, "Ints" ) { savedObject = new class'SaveLoad_Object'; savedObject.iValue = IntVar.IntValue; class'Engine'.static.BasicSaveObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(IntVar.VarName) $ ".bin", true, 0); } foreach LinkedVariables( class'SeqVar_Float', FloatVar, "Floats" ) { savedObject = new class'SaveLoad_Object'; savedObject.fValue = FloatVar.FloatValue; class'Engine'.static.BasicSaveObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(FloatVar.VarName) $ ".bin", true, 0); } foreach LinkedVariables( class'SeqVar_Bool', BoolVar, "Bools" ) { savedObject = new class'SaveLoad_Object'; savedObject.bValue = BoolVar.bValue; class'Engine'.static.BasicSaveObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(BoolVar.VarName) $ ".bin", true, 0); } foreach LinkedVariables( class'SeqVar_Vector', VectorVar, "Vectors" ) { savedObject = new class'SaveLoad_Object'; savedObject.vValue = VectorVar.VectValue; class'Engine'.static.BasicSaveObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(VectorVar.VarName) $ ".bin", true, 0); } foreach LinkedVariables( class'SeqVar_String', StringVar, "Strings" ) { savedObject = new class'SaveLoad_Object'; savedObject.sValue = StringVar.strValue; class'Engine'.static.BasicSaveObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(StringVar.VarName) $ ".bin", true, 0); } } if (InputLinks[1].bHasImpulse) // Load { OutputLinks[1].bHasImpulse = TRUE; foreach LinkedVariables( class'SeqVar_Int', IntVar, "Ints" ) { savedObject = new class'SaveLoad_Object'; if(class'Engine'.static.BasicLoadObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(IntVar.VarName) $ ".bin", true, 0)) IntVar.IntValue = savedObject.iValue; } foreach LinkedVariables( class'SeqVar_Float', FloatVar, "Floats" ) { savedObject = new class'SaveLoad_Object'; if(class'Engine'.static.BasicLoadObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(FloatVar.VarName) $ ".bin", true, 0)) FloatVar.FloatValue = savedObject.fValue; } foreach LinkedVariables( class'SeqVar_Bool', BoolVar, "Bools" ) { savedObject = new class'SaveLoad_Object'; if(class'Engine'.static.BasicLoadObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(BoolVar.VarName) $ ".bin", true, 0)) BoolVar.bValue = savedObject.bValue; } foreach LinkedVariables( class'SeqVar_Vector', VectorVar, "Vectors" ) { savedObject = new class'SaveLoad_Object'; if(class'Engine'.static.BasicLoadObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(VectorVar.VarName) $ ".bin", true, 0)) VectorVar.VectValue = savedObject.vValue; } foreach LinkedVariables( class'SeqVar_String', StringVar, "Strings" ) { savedObject = new class'SaveLoad_Object'; if(class'Engine'.static.BasicLoadObject(savedObject, "..\\..\\SavedKismetVariables\\" $ string(StringVar.VarName) $ ".bin", true, 0)) StringVar.strValue = savedObject.sValue; } } } defaultproperties { ObjName="Save/Load String Variables" ObjCategory="Sim" bAutoActivateOutputLinks=FALSE InputLinks.Empty InputLinks(0)=(LinkDesc="Save") InputLinks(1)=(LinkDesc="Load") OutputLinks.Empty OutputLinks(0)=(LinkDesc="Saved") OutputLinks(1)=(LinkDesc="Loaded") VariableLinks.Empty VariableLinks(0)=(ExpectedType=class'SeqVar_Int',LinkDesc="Ints",bWriteable=TRUE) VariableLinks(1)=(ExpectedType=class'SeqVar_Float' ,LinkDesc="Floats",bWriteable=TRUE) VariableLinks(2)=(ExpectedType=class'SeqVar_Bool', LinkDesc="Bools",bWriteable=TRUE) VariableLinks(3)=(ExpectedType=class'SeqVar_Vector',LinkDesc="Vectors",bWriteable=TRUE) VariableLinks(4)=(ExpectedType=class'SeqVar_String',LinkDesc="Strings",bWriteable=TRUE) }
Here is a simple example of touching a trigger>hiding a cube>save and after that load the level with the cube now hidden.

It also works on ¨¨play from here¨¨ and it creates a folder SavedKismetVariables with the .bin saves in your udk game installation folder automatically.
So I might be leaving Krushas Ultimate save system as its a 32bit dll only and go full 64bit build with this thing.Hope someone finds it to be useful in the future
Comment