This video is a bit old, in fact, I'm pretty sure it's from Unreal 4.1, and was my first foray into the world of visual scripting. The concepts however will remain the same, and I've been asked to explain my systems, so here goes!
So I started by building a test level with a third person blueprint style game in UE4. I made it simple with places where the player could easily hide from the camera. The camera has a light cone that shines in a very specific and visible section so the player knows where they are visible.
Inside the camera blueprint I started with and event tick that simply checks if a player is in range and is visible from the camera. Of course the way this is setup is problematic, because it doesn't currently check to see if the camera is looking at the player, just if it's visible and in range, but that's an easy fix.
If the player is in range and visible, the spotlight runs a timeline to look at the player.
This simply goes through the math of getting the player location from the camera and using it to rotate the two moving components of the camera to look at the player.
This takes the values previously determined and pushes them to the static mesh components to rotate appropriately.
This simply uses a timeline to change the color of the light as it detects the player.
And finally this checks to see how long the player has remained in range and visible, and then calls a function to spawn a drone from an artist chosen spawn point. I'm not going to show the logic behind my drone because it's probably the worst piece of artificial intelligence work that exists! But it's alright I've gotten much better since then.
So that's that! Not a perfect system, there are things I would change if I were to make it again, but the logic is there, and hopefully that can help someone out! If I wasn't clear on something or you have a question feel free to comment below or email me and I'll get back to you!