Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

Blueprint - Set Attenuation Radius on Spotlight does nothing

I'm Spawning SpotLight actors into my map. Setting intensity works fine; setting attenuation radius (and outer cone angle) does nothing. Observing the Spotlight objects in the editor while playing reveals the radius is at the default 1000.

Here is how I am spawning and setting the spotlight variables:

Light Blueprint

And here is an example (they are all the same) of a spawned in SpotLight instance:

Light Example

Any help is appreciated.

Product Version: UE 4.9
more ▼

asked Mar 24 '16 at 05:25 PM in Bug Reports

avatar image

6 1 3 4

avatar image Night Watcher Mar 12 '17 at 05:42 PM

Same issue here on 4.15

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

3 answers: sort voted first

Hey everyone,

You'll need to ensure that the Spot Light component is set to Movable in order to change its attenuation radius.

Hope that helps

more ▼

answered Mar 15 '17 at 03:12 PM

avatar image

Sean L ♦♦ STAFF
43.6k 485 152 442

avatar image Night Watcher Mar 16 '17 at 08:24 AM

I'm not sure of the exact issue of the person who posted this thread, and I can understand why the light needs to be set to movable because blueprints are dynamic, but in my case I'm using a blutility to spawn point lights into the scene, therefor they can be static since they are added to the scene before run-time, plus I can't change the mobility in the settings of the light since it's not an exposed variable.

avatar image Sean L ♦♦ STAFF Mar 16 '17 at 11:56 AM

Hey Night Watcher,

If you are spawning the Point Lights in a blutility, when are you attempting to set their attenuation radius? Would you mind providing a screenshot of your setup so I can take a closer look?

avatar image Night Watcher Mar 17 '17 at 12:10 PM

Set Intensity and Color works fine, the attenuation radius does not alt text

1.jpg (49.1 kB)
avatar image Sean L ♦♦ STAFF Mar 17 '17 at 02:31 PM

So after spending some time looking into it and discussing with some other members of the team, it looks like this just isn't intended workflow. What I'd recommend doing if you need Point Lights is to have them already in the level or attached to an actor, and then have them turned off by default. That way when you need them you can turn them on and adjust the parameters as needed.

Would that solution work in your specific case?

avatar image Night Watcher Mar 17 '17 at 02:38 PM

Not really, I'm building a script that generates a level using blutility, then it will place lights in the level which can easily reach hundreds of static lights. Placing them manually is not an option. Turning the lights into dynamic components is not a needed cost.

avatar image Sean L ♦♦ STAFF Mar 17 '17 at 02:42 PM

Unfortunately, the only way to edit the attenuation radius at runtime like you're trying is to have those lights set as movable. Otherwise, you will not be able to edit it. I discussed this with other members of the team and we've come to the conclusion that this is currently working as intended.

avatar image Night Watcher Mar 17 '17 at 02:46 PM

I don't want to edit the attenuation radius at runtime. The whole point of Bluetilities is to run in editor before run-time (with out hitting the play button). Therefor it's working as intended if it was a blueprint, but not as intended since it's a bluetility.

avatar image Sean L ♦♦ STAFF Mar 17 '17 at 02:53 PM

It is the same behavior in a blutility because you're still attempting to access the value dynamically. The point light spawns with a default Attenuation Radius of 1000. Then, in your editor-callable event, if you try to set that Attenuation Radius it won't work because the light is not set to movable. You're still accessing that property and attempting to edit it without having the light set to movable, which by current design isn't intended to work.

Let me know if I'm misunderstanding something, but from what you're saying and from the screenshot you've shown I would not expect this behavior to work, whether at runtime or in-editor using a blutility, as the base functionality is the same in both cases if the light is not set to movable.

avatar image Night Watcher Mar 17 '17 at 03:08 PM

You're not misunderstanding it. The thing is I'm guessing it was implemented this way on purpose because when it was made Bluetilities were not a thing, and therefor it would not make sense to change the light parameters unless it's a dynamic light, since the engine cannot bake the light a run-time. But now with the introduction of blutilities the lights can be spawned before run time, and therefor they can be baked. A workaround would be to spawn the light to the scene as movable, change the values, then select all and change to static. Though there is no way to change the mobility setting of a light in blueprint (unless I spawn it as a component), so doesn't work :/

avatar image Night Watcher Mar 17 '17 at 05:13 PM

Anyway, Thank you for your time and the clarification :)

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

I have the same issue.

It seems that Set Attenuation Radius node only works on Point Light Component.

Does anyone confirm this?


more ▼

answered Sep 26 '16 at 01:52 PM

avatar image

6 1 1

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

I'm also hitting this issue. I'm doing some arch-viz stuff, and I need to be able to generate a couple hundred lights that I can tune from a master object. My blutility does a good job on just about everything I need, but for the ability to set cone size and attenuation radius.

I've tried a couple of different paths. For example, I know that I can modify these values regardless of object mobility from the light's Constructor script, but I can't seem to trigger the constructor on the lights to execute without moving the light directly, which doesn't scale well over hundreds of lights. I can't set the mobility of the light in script (which I guess makes sense), even in a Constructor (notably, the tool tip on "Get Mobility" says it's only safe to set Mobility in a Constructor, but I still can't figure out how to get blueprint access to it). And when I created a new Blueprint class based on the Spot Light Actor, the mobility of the inherited spotlight component cannot be edited within the blueprint editor. It can only be changed per instance, once the it has been placed in a map, which, again, doesn't scale well over hundreds of lights.

What I'd really need, given the restrictions on changing these properties on non-Movable objects is the ability to either temporarily set mobility to Movable, make my changes, and then restore the Stationary state, or the ability to request a Constructor script run, even if only from another Constructor. Or just some other way to "promise" that this call isn't happening at run time.

more ▼

answered Mar 27 '17 at 05:32 PM

avatar image

12 1 2 4

avatar image GameDesignerBen Mar 27 '17 at 05:48 PM

Here's a Constructor of a child blueprint of Spot Light Actor that correctly updates these variables, regardless of the mobility of the light, at edit-time. BP_LightActor is my control object that holds tuning values for every light it knows about. I can get these tuning updates to happen if I open the spot light blueprint and manually hit the compile button, but it feels like this should be something that can be fully automated. Certainly, it's not a workflow that the lighting designers I'm working with would feel confident about using. alt text

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question