UE5.7 – How do you prevent a flashlight hotspot from blowing out at very close range?

Hi everyone,

I’m working on a third-person survival horror project in Unreal Engine 5.7 and I’m trying to solve a flashlight issue that I’ve seen discussed in several older threads, but I still haven’t found a solution that gives me the result I’m after.

The problem is this:

When the player gets very close to a wall or another object, the center of the flashlight becomes heavily blown out / almost completely white, and surface detail is lost.

At medium distance the flashlight looks acceptable, but at very close range the hotspot becomes too strong.

My current setup is:

  • SpotLightComponent
  • Intensity Units: Candela
  • Current test intensity: around 125 cd
  • Use Inverse Squared Falloff = True
  • Inverse Exposure Blend = 0
  • Inner Cone Angle =
  • Outer Cone Angle = 35°
  • Light Function Material for the flashlight mask / gobo
  • Dynamic close-wall intensity attenuation based on hit distance
  • Bounce light disabled during these tests
  • Test room intentionally very dark to isolate the flashlight

I have already tested several of the common suggestions from older forum threads:

  • lowering the flashlight intensity
  • reducing Specular Scale down to 0.1
  • disabling the Light Function completely
  • disabling Use Inverse Squared Falloff
  • manual exposure / exposure compensation tests
  • very aggressive close-wall intensity reduction
  • moving the actual optical origin of the Spot Light backward

The optical-origin offset was useful: moving the Spot Light origin about 20 cm backward solved the problem of the beam shrinking/collapsing when very close to a wall.

However, it did not solve the blown-out center.

I also tested the flashlight on actual objects and materials rather than only on a wall. Reducing the main intensity from around 350 cd to 125 cd improved the result a lot, but very bright or close surfaces can still lose too much detail.

What I’m trying to achieve is closer to the flashlight behavior in games such as The Last of Us or Resident Evil 4:

  • nearby surfaces can be strongly illuminated
  • the beam remains readable
  • material/texture detail is preserved
  • the hotspot does not turn into a flat white disk
  • the flashlight works as a visibility enhancer inside an already lit / low-light environment, rather than being the only light source in complete darkness

I found older threads suggesting mainly:

  • Eye Adaptation / Exposure
  • disabling Inverse Squared Falloff
  • custom falloff
  • lowering intensity

but I have already tested those approaches without fully solving the issue.

Has anyone solved this in a more modern UE5 setup, especially with Lumen?

I would be particularly interested in solutions involving:

  • custom attenuation/falloff

  • local exposure or tonemapping

  • material response

  • physically plausible intensity ranges

  • Spot Light placement / optic

    al origin tricks

  • IES profiles

  • Light Function shaping

  • any other third-person flashlight technique used in production

Any Blueprint, lighting, or material examples would be greatly appreciated.

Thanks!

Hello @mindshell_games ,

If I’m not mistaken, the effect you’re trying to achieve could be accomplished by using a Light Function material together with an IES Texture in the Light Profiles section.

According to Unreal’s documentation, IES Profiles use real-world photometric data to define how light is distributed and attenuated. This makes it possible to achieve a more realistic lighting pattern than a uniform spotlight, taking into account factors such as the shape of the light source and how the light intensity is distributed. In the case of a flashlight, this could help create a more natural light distribution and reduce the appearance of an overly concentrated hotspot in the center.

You can also find several free IES profiles on Fab by searching for “IES Light Profile Pack”, which makes it easy to experiment with different light distributions and see which one works best for your setup.


On the other hand, Light Functions are materials that can be applied to a light to filter or modify its projected intensity. Since they are material-based, they allow you to control how the light is distributed and even create custom variations. This could help soften the hotspot, create a smoother transition between lit and unlit areas, or break up the uniformity of the light so it doesn’t look as flat.

This video also shows how to create a basic flashlight material using a Light Function. Essentially, you just need to import a texture and assign it to a new material with its Material Domain set to Light Function.

Combining both techniques could help you achieve a result closer to a real flashlight while maintaining more detail on nearby surfaces.

As a recommendation, once you have both set up, it may be useful to test them while running your level. This way, you can adjust the IES Profile, Light Function, and the various Spot Light parameters in real time, immediately seeing how each change affects the flashlight’s behavior. This makes it much easier to compare different profiles and configurations until you find the combination that produces the desired result.

Hope it helps!

Hi @BRGEzedeRocco,

I wanted to come back to this thread to thank you for taking the time to read through my problem and try to help me.

In the meantime, I managed to solve it very well and have now completed the entire flashlight system.

In the end, the solution wasn’t a single setting, but a combination of several changes.

I kept a Spot Light as the primary light source and developed a dedicated Light Function with a new mask. I also made the gobo detail distance-dependent and added a small manual blur, which keeps the flashlight footprint much more controlled when approaching surfaces.

What made a particularly large difference at extremely close range, however, was separating the optical origin of the flashlight from its physical position. I created a slightly offset Optical Origin behind the Spot Light. This prevents the cone from collapsing into a very small and extremely bright hotspot when the character is almost touching a wall.

On top of that, I implemented a Close-Wall Intensity system:

  • a trace measures the distance to the surface;

  • Hit Result.Distance is normalized using Map Range Clamped;

  • an easing curve provides a smooth transition;

  • the result dynamically multiplies the Spot Light intensity;

  • when no nearby surface is detected, the light automatically returns to its normal intensity.

I also significantly reduced the base intensity compared with my original tests. My current baseline is around 55 cd, which turned out to be much more appropriate for the kind of flashlight I was trying to achieve.

I also added a Center/Left/Right near-wall tracing system to improve the flashlight’s behavior around walls, corners, and nearby geometry.

So, in my case, the final solution to the close-range hotspot problem was essentially:

Light Function + better optical mask + offset Optical Origin + distance-based intensity compensation.

Your suggestion to explore the light profile through Light Functions / IES profiles definitely helped point me in a useful direction. In the final setup I didn’t end up needing an IES profile, but the Light Function became an important part of the finished system.

The flashlight system is now complete, and the result is very close to what I was originally trying to achieve.

Thank you again for taking the time to reply and for trying to help me. I really appreciate it!