I had the same problem recently in an editor I was working on. I tried to save one part of an array by putting that particular slot into a temporary array and saving it that way, like so (PEFE_T is a user defined type):
Function PEFE_WriteParticleEmitterToDatafile(file,slot)
DIM PEFETEMP(0) as PEFE_T
PEFETEMP(0)=PEFE(slot)
Save Array to datafile PEFETEMP(0),file
UNDIM PEFETEMP(0)
Endfunction
and load it like this:
Function PEFE_ReadParticleEmitterFromDatafile(file,slot)
DIM PEFETEMP(0) as PEFE_T
Load Array From Datafile PEFETEMP(0),file
PEFE(slot)=PEFETEMP(0)
UNDIM PEFETEMP(0)
Endfunction
That didn't work. But when I changed all of the PEFETEMP(0)'s to PEFETEMP(1) it worked. So maybe it has something to do with the size of your array.
Are you using the ARRAY INSERT AT BOTTOM command? Maybe it's trying to load an array of one size into an array of another. You could write a byte or integer with the array's count before saving it. Then, when you load it up again, you could read that integer, DIM the array properly, and then load it.
By DIM properly, I mean something like this:
count=[the integer you loaded]
DIM MyArray(count)
Load Array From Datafile MyArray(),[the datafile id]
I have no idea if this will work, but it might be worth a try :S
Guns, cinematics, stealth, items and more!