It looks like the problem is that you’re trying to use the main persistent level (Lvl) to communicate with something in your sublevel. You can’t do this directly in blueprints yet, but we’re working on it! The issue you’re having is that even though you set the variable, since it’s loaded in with the Load Streaming Sublevel call. It doesn’t exist when the map is loaded, so it gets set to none. Any reference to objects in a level need to be made in the level script that owns the actor. So, in your case, the script would need to be in Lvl_1. Here’s how you’d hook this up:
- Open up Lvl_1’s level blueprint.
- Select the Escape Pod in the level viewport
- Right click in the level blueprint, and select “Add reference to EscapePod”. That will plop down a reference to the escape pod.
- Drag off the escape pod, and call your function, or set your variable directly (there should be no difference if the variable is exposed). Hook this up to a custom event in the event graph (e.g. “SetCrashDetected”).
- Open up Lvl’s level blueprint, and add a “Remote Event” node where you currently try to call “Change Bool” in your screenshots above. Tell it to call “SetCrashDetected”. What this does is search any loaded levels (Lvl_1 in your case), and look for any functions called “SetCrashDetected,” and calls them
That should do what you need. Again, we’re working on making this better using cross-level references, and being able to access other level scripts for streamed levels more directly. But for now, that should get you through!