How is Mercy's Heal Beam made [UE5]


Hi there! Very much a beginner using blueprints (VFX Artist) just trying to emulate Mercy’s bendy beam. Please help in identifying how it was done, not the visuals but, rather the blueprints/logic behind it. If you’re able please also provide visual examples as I’m a noob with blueprints.

I’ve read about splines and such but I don’t know how to bring it altogether to make what you see above… it’s been tricky! Here’s longer video example

Hey there @Mkhize47! Welcome back to the community! Generally for the VFX portion you’d just use a beam (ribbon) particle with tangents enabled and passing tangent information through scratch (Niagara scripting) if needed.

For just the blueprints portion, breaking it down into separate elements helps here.

  • Target acquisition: Lots of ways to go about this, but personally I’d check if a possible target is visible then check how close it is to the center of the screen and check distance.
  • Validity: Line of sight check with a Line Trace towards your target and using position info to determine tether validity.
  • Positions: Position of the beam start and end target can be tracked to send to the VFX if needed.
  • Gameplay: The actual healing portion sending heal calls to the target.

VFX portion: Ribbon tutorial:

VFX portion: Thread to help attaching a spline to Niagara (alternative to just using tangents if you want more control):

1 Like

Hey there @SupportiveEntity thanks for the reply! Some great info here thank you! The most important part that I’m looking for how to get it to bend the way Mercy’s does. I see you said I can pass tangents through scratch can you please explain further on that, it’d really help!

No worries! I put together a quick demo before I had to leave office. Apologies if it’s a bit messy, I put it together rather quickly. Since I’m no expert on scratch to be able to quickly and effectively show it off, I’ll show off the direct setting method.

Using the tangents means you don’t have too much control of the actual curve for true precision, but you can emulate the effect decently without using the spline method. Here’s the outcome (tweakable start tangent power)

So to start, create a new Niagara system from some emitters, just grab the dynamic beam:

From there add 2 new Vector 3 variables, then connect them to the BeamEnd and BeamStartTangent, then copy all the variables in red. You can Tweak your Beam Start Tangent force float a bit higher or lower depending on need later.

Then go into your character/gun/etc. that will hold the beam and it’s logic and add a new Niagara component and set it to the beam.


After that you’ll need a way of targeting, I’ll glaze over the simple trace I did (extended BP available below) and move to the part where you set the beam tangents and end location. I’m not a fan of tick behavior like this personally but unless you have a ton of them it’s not a serious performance concern.

And the end result:

Full targeting bp (It’s just a trace but if it helps you follow what I did it’s here):

Please let me know if you have any questions!


Just wow, thank you so much, @SupportiveEntity have an amazing day!!!

That’s a neat trick with the tangent/beam end, I didn’t know about that, very useful.

But I am extremely curious, how did you create this node?

I want it!

1 Like

Right click a regular reference node to convert it to the validated variant.



1 Like

No problem. I’m not a tech artist and work mostly in gameplay systems so when it comes down to it, this is not the best way to go If you need a high level of control, you may need to opt for using a spline/scratchpad and the resources I referenced before. Hope you have a great day as well!

Hey there @Cestarian! That’s a Validated Get, it comes from right clicking any Get variable and select Convert to Validated Get. This basically just rolls a IsValid node into the variable check. As for setting the tangent, it’s a useful trick when working with Niagara to pass variables from BP, but learning Scratch Pad is useful for being able to manipulate how data is used when working with Niagara particles.