diff --git a/src/lua_script.c b/src/lua_script.c index 991b8fcf9..167e4a0b4 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -715,8 +715,15 @@ static void ArchiveExtVars(void *pointer, const char *ptype) for (i = 0; lua_next(gL, -2); i++) lua_pop(gL, 1); - if (i == 0 && !fastcmp(ptype,"player")) // skip anything that has an empty table and isn't a player. + // skip anything that has an empty table and isn't a player. + if (i == 0) + { + if (fastcmp(ptype,"player")) // always include players even if they have no extra variables + WRITEUINT16(save_p, 0); + lua_pop(gL, 1); return; + } + if (fastcmp(ptype,"mobj")) // mobjs must write their mobjnum as a header WRITEUINT32(save_p, ((mobj_t *)pointer)->mobjnum); WRITEUINT16(save_p, i);