UDK - Volume Based Streaming/ Kismet Events

I have been working on project and I’m just now implementing streaming using volumes. I’m noticing something weird but maybe I’m just not understanding. Here is the example: When touching a trigger enemies are spawned in the level. Max trigger set to 1. Player exits the volume and moves to another level. That level is unloaded from memory. Player walks back into the volume and level streams back in but the same trigger can be re-activated and will fire once again. Is this normal behavior? Kismet events reset to 0 as far as the triggered status.

I was able to create a bool in persistent level to check if level was loaded yet and do a compare bool on the trigger then set it to true so the event wont fire again on level re-loads. Before I implement this for all events fired in the level I wanted to find out am I doing something wrong…


creating the bool is the correct way.or you could leave the trigger in the persistent level.when it is streamed out it will reset.

Thanks for the feedback. Yea I believe it works with moving the trigger to persist level although in one case I had to move all components referenced by Kismet since it wont allow them to be in another level. I’ll see what works best for my setup.

Bool like Gaz said or use a one-time Switch / Gate inside Trigger code to lessen the need for ‘states’…
Or place the ‘real’ Trigger handling code inside the persistent level and use Activate-Remote-Event etc.
That way Triggers themselves all reside inside local levels, but the ‘master handling code’ is persistent…

Thanks. I will try to implement/test this later in my levels.

Ok so I’ve been working on moving one time triggers into persistent level and sending a remove event to the level to fire off the events. This has been working perfectly except I noticed a issue which doesn’t make sense to me. Here is the example.

Persistent Level

-Trigger(Max Trigger count=1)-Activate remote event in level

level that was loaded

-Remote Event(Sent from persistent level)-destroy a interp actor then play a matinee

When I leave the level unloads and I return the triggers of course don’t work which is perfect but the actor that was destroyed has returned and the matinee that was played has reset. I don’t understand why the destroyed actors and matinees have reset. Any idea?

Unloaded levels reset & don’t keep saved state??? Like the triggers its expected.
You can keep and store a persistent Pos variable for the Matinee’s last position.
Plus keep a bool to hide / show the interp actor and store both in persistent level.
Or keep the Matinee in the persistent level & maybe even teleport the interpactor?

After going through several tests it seems that it just going to be easier to have any actor who’s state can change to reside in persistent level. I have several actors located among the different levels which can be moved either by matinee or using the physics gun. I would need to do alot to keep track of their states/positions so upon level reload they are where the player left them.