KillZ behavior change?

Is there a way to make the KillZ do something other than destroy an actor? i.e. instead make it teleport the actor back to a specific location rather than destroy it?

I’m aware that I could just put a trigger volume where (well, just above where) the killZ would be to achieve this, but the advantage of the killZ functionality is how well it handles edge cases; no matter what sort of wacky gibberish happens to an actor to send it flying out of the level, if its Z value is below the KillZ, it dies. An actor cannot miss a trigger volume if it somehow winds up inordinately far from the edge of the level or gets launched downward at an extreme speed or anything else that might make it possible for it to miss a trigger volume placed below the level; no matter what happens, that failsafe is there.

Which is fine for games where dying and respawning is something actors do, which is admittedly most of them. Problem is, in my game, a player cannot DIE; if he succumbs to a hazard of some sort, it costs him points, but he should respawn as he exists (with all of the variables associated with him as they were before his “death”, rather than reset to whatever the game-start defaults are). So either I have to pass all of my player-relevant variables to the game BP and then pass them back to the new actor, or else I need the “kill” behavior to instead be to simply teleport the actor back into the playable level without actually destroying it. Is there a way to do this?

EDIT: or, rather than pass them to the game BP, simply pass them along to the newly-spawned actor with Casts fired off EventEndPlay. Still, it’s a lot of variables and it seems like changing KillZ behavior would be more elegant.

Hi RhythmScript,

I don’t think you can alter the killz instructions without going into C++. However, you can increase the size of it then place a trigger volume where the killZ would have been, and when objects hit that trigger volume you can do something such as teleport, etc.

Hi Adam, yes, but then that defeats the purpose of KillZ, which is to act as the final failsafe on any sort of bizarre physics glitch that might place the actor in an unexpected place. No matter how big that trigger volume, I can’t guarantee the player hits it if, for instance, a bug launches him out of the level at an insane speed.

For the time being I’ll just pass variables along via casting to the replacement actor I spawn on EventEndPlay, while it’s less elegant it provides a better guarantee that unexpected behaviors don’t ruin a playthrough should they arise.