Projectile stay at ground level

I think just setting the world location Z value should work.

If you need it to stay in relation to the ground then it would be more complicated - you’d need to line trace to the ground and work in relation to that. So you’d need to add your desired offset to the ground hit location.

It may be easier if you break it up into smaller chunks. Like for this part you could make a new character, give it a static mesh component, set that to a sphere primitive.

Give it a constant movement input, and then practice setting the world location of the static mesh to be offset with the landscape (or whatever is underneath).

The character movement component has a Get Floor node which does the line trace already for you if you want to cheat a bit just to get the basic idea. However if you end up doing this on a non-character based actor, you’ll have to do a downward linetrace yourself.