Box Trigger in seperate BP

Hello,

I have hit another wall with this… I’m sure its got a simple solution, but I can’t seem to find it! Alright here it goes.

I have a light system, 1 light, repeated multiple times (6) with 1 BP calling a function that gives them random colored lighting effects.BP is called “RaveLights” I have another BP called “ClubTrigger” it is a Box collider on the ground before the lights.

What I want to happen: When player walks over the Club Trigger, lights turn on. Essentially in RaveLights I want to say “IF box collider activated, THAN turn on, ELSE do nothing.” and of course once the person is off the trigger. “TURN OFF Lights.”

What is happening:
I am running into logical fallacies that UE4 to crash. Its seems very particular…

I have gotten rid of everything I had before, due to a crash, so it’s a clean slate, but here is what I have on the lights, the box collider is currently empty.

Hey Kengi9,

Just for clarification, do you have a single BP with multiple light components within it? Or a BP with a single light component and multiple instances of that BP in the level?

I believe it is multiple instances of the same BP. I took the original light, held down alt+Movement and created copies that way. The random lights part works well on all lights, giving them different shades while still being the same code/object.

Hey Kengi9,

My recommendation for this would be to create an array of RaveLight BP references in your ClubTrigger BP. How I would do this would be to create a new array variable in your ClubTrigger of type RaveLight. In the blueprint leave the array empty, but make it public by clicking the eye next to the variable.

In the level editor find the instance of the ClubTrigger you placed in the level. In the details panel find the array variable and click the + icon until you have a spot for each light you want to control. Drag the instances of the light you would like to control into these spots.

Back in the ClubTrigger BP, use the triggers OnBeginOverlap to cycle through each object in the array using a foreach loop and change the visibility of the point light to true. In the OnEndOverlap event, do the same to hide the lights. This should provide the effect your looking for with the trigger box.

Side note: The RaveLight BP’s point light should start with its visibility set to 0.

Hope this helps!

~K

I have created a new array, set to type “RaveLight” I have made 6 arrays, each having “NONE” as the default value. When I click on the drop down arrow I see the option for each of the six lights, however it won’t let me select them.

Are these variables RaveLight References?

It says that it is a variable inherited and can’t be changed? Should I change the parent? Currently it is Parent Class “Static Mesh Actor”

200663-snip+4.png

Ahh, I see. You are attempting to add these objects to the blueprint itself. It wont allow you to add them because they can be destroyed and the references to them corrupted.

Instead find your instance of the bp in the level. On this object in the world, you can add the references to that individual object, not to the blueprint itself. Like this:

One step closer they disappeared! Thank you for showing me where to add them. Now I will no for the future there are two spots like that. Let me see if I can fiddle around a bit more and get these lights to do what I want. :slight_smile:

I did it! Thank you!!!