Lua allows engaging combat with a non-actor

Full disclaimer: this was not fully verified, it's just the behavior I expect from looking at the relevant code.

Combat AI expects the target to be an actor. C++ logic never creates any combat packages that don't have an actor target, but the AI interface allows an arbitrary (non-nil) target to be used.

When the target is not an actor, some relevant code throws. The exception only gets caught by the frame exception catcher, so the rest of the frame is discarded and the game breaks. It's not the combat package itself as exceptions during package execution are caught. It's probably target selection as canFight expects the target to be an actor. Either way, the save will remain borked even if scripting is corrected to prevent non-actor targets from being passed or if C++ bindings throw on non-actor targets, so existing invalid packages should be purged. Some Lua mods apparently expect that they cannot exist, so that should help.

For the record, this was encountered in a situation where it was hypothetically possible for an actor and an item to have the same RefNum, so when something like Pursuit attempts to recreate a combat package, the conversion ends up being "lossy".