I do like the idea, and have wanted to do something like it because I hate the way MCA did it.
I don't think placing spawn points with a script is a good idea for what you want to do though, because as far as I know you can't delete them. I just took a look at Creatures, and I see that it places spawn points using this method. Over time more and more spawn points will be created, and this will eventually cause problems. I just checked it in-game with the bandit bosses as a test subject, and sure enough, the bandits spawned by the boss are always there. Spawning more bosses further adds to the other bandits spawned. This seems like a very bad way to do it, in my opinion.
Now this was something I wasn't aware off, short term testing doesn't highlight this problem. Surprised that it's not been reported in Creatures before. I'll have to adjust the scripts in Creatures to actually place the NPCs instead of relying on levelled lists (big shame, makes the scripts bigger, not complex, just annoyingly bigger
)
There is also a bug with spawn points that causes them to respawn every time you change cells after clearing the corpse, independent of fCorpseClearDelay. So once something spawns, the cave will never be vacant again unless you actively modify the leveled list/spawned actors with scripts, or leave the corpse and visit frequently enough. It becomes exactly like MCA, in other words.
I'm aware of this bug, in my play style, I make a point of NOT clearing corpses outside of entrances to interiors
I vote against scripting the actors directly if you don't need to. I don't know why you would want to place the activator at the corpse, as I think that would only lead to problems if the actor were to die in an unexpected place, like underwater, in lava, or places where they get stuck. There is also the possibility of luring the actor away from their initial cell to worry about. Though if you insist on doing it that way you still don't need to place a script on the actors, instead checking for the actors death and using "actor_id"->PlaceAtMe, "spawn_activator" in a script attached to a persistent activator. It seems inefficient to me though.
Placing some some activators at appropriate places that would only spawn a new actor once the original actors are dead really seems like the ideal way to do it. You could randomize what points spawn and keep bandits from repopulating the dungeon too often as well. While you would have to specify what actors to spawn in the script (who can be scripted for randomness, as you know), it seems overall safer than using spawn points. And, while you could modify the leveled lists at run-time, it seems rather redundant in comparison to the activator method.
Placing at the corpse was the easiest and simpliest way I could think of doing it. The only test required is if the NPC the script is on is dead, and if so, place an activator. This activator then does it's time delay stuff, and then when everything calculates as True, place a new NPC at the activators location, and then delete the activator (to stop it spawning new stuff and taking memory resources). The new "generic" bandits that then spawn have the same script on, so then you get constant time delayed renewal. I understand the problem of spawns being in bad places due to where corpses are. Something else to think about. I'm also thinking about normal MW, where you can't drag enemies into different cells.
By having an activator in each interior that checks the health status of the NPCs, and placing/dealing with activtors does lead to other issues. The script first time round has to deal with specific NPCs, then after that, it has to check for every possible random NPC that could be spawned by the script, turning in a monster script.
Hmm, everything has pro's and con's. Just what I love about MW modding
But definately, I need to avoid using levelled lists to place random stuff, since it's actually placing a spawn marker and not the actual NPC/creature from the list. Something else to add to the Creatures update.