I am currently working on a psychological/storybased first person horrorgame. I want to use a layers of fear inspired effect where events get triggered based on whether the player is looking at things or not. So I set up a linetracing system that sends a message to the currently looked Actor via an interface. This might work for smaller changes like an Object moving behind the player or similar, but I really want to change whole rooms. For example the player walks through a door turns around to get back into the room where he was coming from but behind the door waits a completly new room with new events etc. I just can´t get it to work and all the things I came up with (setting up spawners or even storing whole rooms in Blueprints) just felt totally wrong or not consistent at all. I am also really worried about lighting using a spawning based method. I´d be insanely thankful if anyone has an idea on how to set this up properly.
You can have the rooms as blueprints, it really depends how complex they are. Very detailed, probably not a great idea. Also, you would have to light the whole thing dynamically. Not a problem, but just saying.
Another way is to use level streaming. You can either do it using volumes, or blueprints. Either way, you can develop a nice detailed room with static lighting, and then just drop it in when you need it. Streaming takes a while to get your head around, but it can be worth it: