How to create a curved attack with Collision?

I wanted to create an electric attack that follows a curve:

I want to make the attack’s length variable, so that the player can move the line trace and the attack will follow. It will be a constant attack, meaning that the whole length of the attack will be electrified and should collide with anything in between.

Alternatively to a line trace, I could use something like a scene component, and let the player move it around with input from WASD + Mouse.

The electric arc should update it’s end position to be the line trace (or scene component), and modify the curvature accordingly.

I thought of using CPU particles with Niagara and aim them at the location of the line trace (or scene component), then export the collision data to Blueprints, spawn a collision box at each of these collision locations and check overlaps. But it would be too resource heavy.

I also though of using a spline that updates at runtime, but it’s hard to control tangents. Also, how would I make the niagara particles follow it? And how would I check for collision along the spline? I would have to send a constant stream of instanced static meshes that detect if anything has collided with them.

What’s the best way to do this?