This is really hard to debug remotely
For the save/load mechanism to function, these places need to be altered:
github.com/tbamud/tbamud/blob/master/src/players.c#L269
Code:
GET_GOLD(ch) = PFDEF_GOLD;
set a default before loading, so you have something reasonable if nothing is found.
github.com/tbamud/tbamud/blob/master/src/players.c#L363
Code:
case 'G':
if (!strcmp(tag, "Gold")) GET_GOLD(ch) = atoi(line);
break;
In the correct case (this must match the tag - 'G' for 'G'old), see if you find the tag you saved with the value. If so, set the value.
github.com/tbamud/tbamud/blob/master/src/players.c#L646
Code:
if (GET_GOLD(ch) != PFDEF_GOLD) fprintf(fl, "Gold: %d\n", GET_GOLD(ch));
When saving, check if the value equals the predefined. Otherwise, write a tag and the value. Note that this tag must start with an uppercase character and match the loading mechanism above.
To debug whether the save code works, look in the actual save file for your tag. If it's not there and should be, you're not saving correctly. If it's there, it's the loading code that's the problem.