I had an epiphany this morning when I woke up and realized I was trying to approach this in a completely convoluted way.
I’m writing this update to help anyone else who might be having a similar problem when trying to understand how to communicate between a level blueprint and an actor. The first thing I realized is that there is a specific reason why the communication between the level BP and an actor BP is one way. The level has to know about each of the actors placed in the world, but the actor doesn’t need to know about the level. This would make the code overly complex.
If you want to create a system where one of the actors in your scene can communicate with the level in the same way I wanted to - i.e. open a door and trigger a level event - then all you need to do to accomplish this is create two booleans inside your door blueprint. Call the first one Activator?, and make it a public variable. Then when the level designer is placing the door in the world, they can check off the Activator bool if they want it to activate something.
Name the second boolean Active? and set this to true just before the animation happens and set it to false when the animation is finished.
Then inside the level blueprint, you simply get a reference to that door and use a branch to check to see if the Activator? and Active? states are true. If they are, you can run whatever code you like. DONE!
Here’s a look at my blueprints:
I don’t know why this was such a hard lesson to learn, but there you have it. Hopefully my question and answer will help someone else.