bn880

Hunting the big savegame bug progress

51 posts in this topic

Okay, I think everyone now knows how missions with a large Gamestate Variable space can cause a savegame to fail with a message like "error no entry at 'continue.bin/GameState/Variables/Item11/data.value'"

Along with Dinger I think I have isolated one of the issues with the save/load game Variable state:

Attempting to load this GameState from a continue.fps will cause the error <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">savepath Error no entry at 'continue.bin/GameState/Variables/Item11/data.value'.

or

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">savepath Error no entry at 'continue.bin/GameState/Variables/Item12/data.value'.

depending on the names of the Variables

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class GameState

{

class Variables

{

items=30;

class Item0

{

name="a";

class data

{

type=2;

class value

{

items=1;

class Item0

{

class data

{

type=1;

value=1.0;

};

};

};

};

readOnly=0;

};

class Item1

{

name="b";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item2

{

name="c";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item3

{

name="d";

class data

{

type=1;

value=30.0;

};

readOnly=0;

};

class Item4

{

name="e";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item5

{

name="f";

class data

{

type=1;

value=42.0;

};

readOnly=0;

};

class Item6

{

name="g";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item7

{

name="h";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item8

{

name="i";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item9

{

name="j";

class data

{

type=1;

value=945.247131;

};

readOnly=0;

};

class Item10

{

name="k";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item11

{

name="l";

class data

{

type=1;

value=36.0;

};

readOnly=0;

};

class Item12

{

name="m";

class data

{

type=1;

value=3.0;

};

readOnly=0;

};

class Item13

{

name="n";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item14

{

name="o";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item15

{

name="p";

class data

{

type=1;

value=0.3;

};

readOnly=0;

};

class Item16

{

name="q";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item17

{

name="r";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item18

{

name="s";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item19

{

name="t";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item20

{

name="u";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item21

{

name="v";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item22

{

name="w";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item23

{

name="x";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item24

{

name="this";

class data

{

type=256;

class value

{

id=0;

};

};

readOnly=1;

};

class Item25

{

name="y";

class data

{

type=4;

value=1;

};

readOnly=0;

};

class Item26

{

name="z";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item27

{

name="aa";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item28

{

name="bb";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item29

{

name="cc";

class data

{

type=1;

value=30.0;

};

readOnly=0;

};

};

};

However, renaming the array at entry Item0 to 'za' makes the problem go away. Similarly swaping the array at Item0 with Item11 or Item12 fixes the problem. It depends on the naming of the variables.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class GameState

{

class Variables

{

items=30;

class Item0

{

name="za";

class data

{

type=2;

class value

{

items=1;

class Item0

{

class data

{

type=1;

value=1.0;

};

};

};

};

readOnly=0;

};

class Item1

{

name="b";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item2

{

name="c";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item3

{

name="d";

class data

{

type=1;

value=30.0;

};

readOnly=0;

};

class Item4

{

name="e";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item5

{

name="f";

class data

{

type=1;

value=42.0;

};

readOnly=0;

};

class Item6

{

name="g";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item7

{

name="h";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item8

{

name="i";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item9

{

name="j";

class data

{

type=1;

value=945.247131;

};

readOnly=0;

};

class Item10

{

name="k";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item11

{

name="l";

class data

{

type=1;

value=36.0;

};

readOnly=0;

};

class Item12

{

name="m";

class data

{

type=1;

value=3.0;

};

readOnly=0;

};

class Item13

{

name="n";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item14

{

name="o";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item15

{

name="p";

class data

{

type=1;

value=0.3;

};

readOnly=0;

};

class Item16

{

name="q";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item17

{

name="r";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item18

{

name="s";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item19

{

name="t";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item20

{

name="u";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item21

{

name="v";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item22

{

name="w";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item23

{

name="x";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item24

{

name="this";

class data

{

type=256;

class value

{

id=0;

};

};

readOnly=1;

};

class Item25

{

name="y";

class data

{

type=4;

value=1;

};

readOnly=0;

};

class Item26

{

name="z";

class data

{

type=1;

value=1.0;

};

readOnly=0;

};

class Item27

{

name="aa";

class data

{

type=1;

value=-1.0;

};

readOnly=0;

};

class Item28

{

name="bb";

class data

{

type=1;

value=0.0;

};

readOnly=0;

};

class Item29

{

name="cc";

class data

{

type=1;

value=30.0;

};

readOnly=0;

};

};

};

Obviously in a small mission such as this you will not get this improper GameState ordering, but I extracted the first 30 entries from a huge savegame what was failing. And this is one of the causes, it appears that saving and loading must have a specific order of arrays or variable names which is not adhered to during save of huge missions GameState.

Share this post


Link to post
Share on other sites

What does this mean/why is it important?

First, Bn880 did the work. I just sat there chasing my own problems (speaking of which, don't _EVER_ name a magazine with a class that begins wtih a CfgModels entry class name).

Second, yes, this continues the "Chasing the big CTD" problem, by a different approach. Bn880 spent a lot of time with huge (3 meg) savegame files, monkeying with parameters until he isolated the problem to variables and 6 k.

Third, yeah, bn880 think's he's isolated this bug. The isolation isn't good enough yet to prepare a "Savegame corrector", but hopefully BIS will take notice, it will now be a minor matter and they'll be able to slip this one in. That's the most optimistic reading possible; frankly I'm amazed they continue to support this product so far after release. So we hope bn880's work here gives them at least goods to prevent this in future products.

Okay, fourth, for those of you wondering: this is from a "CoC internal" program written by Confucius. No we're not trying to hide anything; We at CoC don't believe in secrecy. Confucius went "off the reservation", and as soon as we can get ahold of him, we'll release the product.

Share this post


Link to post
Share on other sites

Good job guys! smile_o.gif I really hope BIS can slip this one in. The savegame bug is a real modkiller.

Share this post


Link to post
Share on other sites

Small bump in case BIS has not spotted this... smile_o.gif

EDIT: stupid spelling mistake

Share this post


Link to post
Share on other sites
Good job guys! smile_o.gif I really hope BIS can slip this one in. The savegame bug is a real modkiller.

Yes and it is a real CE+UA killer as well, it also pretty much killed my personal enhusiasm in The Working Mission. sad_o.gif

I consider a bug like this kind of a core problem, when a savegame can not be loaded...

Share this post


Link to post
Share on other sites

Hopefully they can fix this soon (I'm ready for another beta patch wink_o.gif ).

Share this post


Link to post
Share on other sites

no offensive, but i would like to say some1 "go to hell!!" mad_o.gif

I have never expirenced this problem. But after i read this topic - it follows me everywhere. Now i cant save nor load! crazy_o.gif now i must play missions without loading at all. even loading autosaves cause CTD. I don't know what to do. and even worst thing that i dont know the reason what caused this?

Share this post


Link to post
Share on other sites

bn880 You reported this to BIS directly too?

Share this post


Link to post
Share on other sites

I got the savegame CTD since playing the final missions of the resistance campaign and it hasn't gone ever since sad_o.gif

I even bought GOTY to replace my original accumulated CWC+Resistance setup to see if the bug would go away

I have extended the size of my windows swap file (as suggested by BIS in another posting) to 1Gig min and 1.512 Mb max, cleaned up my savegames directory (under users\xx\Saved, it was about 600 Mb wow_o.gif --> don't forget the editor makes savegames as well)

I play without ECP (it helps in some cases, especially with smaller missions)

what makes a mission too complex for reloading? eventhandlers? or is it just RAM or harddisk-freespace related?

Cannot load 'Users\coldfrites\Saved\missions\OFPEC\valley_breeze.noe\save.fps'. Error 'No entry' at

'gamestate/variables/Item422/data.value'

interestingly enough, I have no problem with reloading a savegame that is obtained by a savegame command in a radio trigger (which gives you the "updating retry status ..." notice) and that can be activated by using the retry function. I would therefore advise mission makers to add such a radio trigger until the prob is solved. Or you can add it yourself ...

Share this post


Link to post
Share on other sites

Damn! why does BIS didn't tell a single word about this problem!?!?!? mad_o.gifghostface.gifcrazy_o.gif

Share this post


Link to post
Share on other sites

My guess would be OFP2 it will be fixed, not likely OFP1.X

Share this post


Link to post
Share on other sites

You cannot play any missions or campaigns?

Share this post


Link to post
Share on other sites

yes! we cant play 'cause we cant save! then comes autoseve and crashes the game! crazy_o.gif

Share this post


Link to post
Share on other sites

Forgive me if I'm asking dumb questions.....

You can't even play an original mission such as Steal the car?

Share this post


Link to post
Share on other sites

sorry placebo, i'm a bit nervous after playing Teh crap cammagin smile_o.gif

As described above, we cannot play big and complex missions. Small ones, like steal the car, are running perfectly.

Share this post


Link to post
Share on other sites

Are there threads other than this one dealing with the problem? I should do a bit of background reading instead of asking dumb questions that have been asked before smile_o.gif

Share this post


Link to post
Share on other sites

i think this is the only thread. it is only 2 pages long, so you won't spend much time to read it from the beginning smile_o.gif

Share this post


Link to post
Share on other sites
Are there threads other than this one dealing with the problem? I should do a bit of background reading instead of asking dumb questions that have been asked before smile_o.gif

This bug is mentioned in the ECP thread, but thats a bit long to go through. The bug basically pops up anytime you try and load a savegame from a mission with a huge amount of variables. It usually pops up when using the ECP mod (which in itself creates hundreds of variables), in combination with complex missions that contain many variables. The two examples I have off-hand are my mission Operation LoJack 2 and Sui's mission Facile Ground, which both contain mountains of scripting. PLaying the two afforementioned missions without ECP will not produce the error, but add ECP to the equation and what you get is a mission in which you can't load a savegame without a CTD.

Originally, I thought ECP was to blame for this bug, but as one of the CoC members (I think Bn880) pointed out, ECP is not required to trigger this bug - you only need to create enough variables. The CoC team, being the king of uber-scripting, has experienced this bug with their work without ECP.

Edit: Unfortuantely, as ECP continues to grow - I'm afraid that simple missions like 'steal the car' may start to be affected to, rendering the ECP mod completely useless.

Share this post


Link to post
Share on other sites

I haven't tried ECP yet, will do so when I get the chance, what's the best mission/campaign to spark the savegame bug?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now