How do I spawn particle emitter at specific Z-axis?

Hello all, decided to get back into UE4 and am having trouble spawning an emitter once the player enters water.

As the title says, I’d like to spawn a particle system for splashing. It works when I move, and it stops when the body of water is too deep. However, it always spawns at a fixed Z-value (I.e, 10 units or so above the player - at all times).

I’d like it to spawn at ‘water’ level, I’ve looked into other threads, and an image I found here:

https://forums.unrealengine.com/filedata/fetch?id=1079196&d=1433106428

Has what I want, but, I’m using 4.18 and am assuming this method has been deprecated. Attached is my current particle Blueprint system:

For reference, this Splash Blueprint is being referenced from the water plane Blueprint itself (It has the spawn actor reference while the splash blueprint itself has spawn emitter - Perhaps I have them mixed around?).

Does anyone have a suggestion on making the spawn emitter transform Z-location spawn only at water level?

Thank you

You can do a line trace for object, set colision for water, set start at player location + capsule component half height (it shuld be his head) and end at player location - capsule comp. half height (should be the feet of character) make a branch if it hitted something and then another brach from initial overlap from breaked hit reault so that it doesnt spawn if your head is under water. If the initial overlap doeant seem to work if u are under water check trace complex, it shoild work without ir but I’m not sure) and if overlap is flase spawn particle emmiter at the hit location. I dont know how your water effect looks like and how you want it to look like, but if u want to update its(particle) location you can do a line trace again and update its location every tick, but it will be expensive for cpu so you can just save the line trace z value into variable and then every tick check if player location z + caps half height is smaller than saved z value so that the particle doesn’t spawn/update if you are under water. If the z location is lower you can delete particle and just stop doing anything else and if its not lees than variable you should check if player lozation z - capsule half height is grater then saved z(so that the particle doesnt update if the fest of player are above water), if its grater go back to destroy particle and if its not greater you should get player location, break it and plug x and y to set actor location(of your particle)and get the z from your variable after this do a delay with 0s and plug it back to the first branch unless u plugged it into tick and mase variavle to enable or disable checking it or you made it as a function and made set timer for function(or something like that cuz I dont remember its name) and then just started and stopped it by handle.

Sry 4 bad english and not clear explanation.

Just updating, but I managed to split the pin structure of both spawn emitter and actor spawn location, however the z-axis is stuck at 0 (fixed water level).

Is there any way to have it dynamic in that the z-axis spawns no matter how high the water is?

I think I get it… The particle logic is done in the water blueprint rather than the Character. The particle despawns after a second, and respawns if the player is physically moving (Which you can see in the image I linked).

As for checking to see if player is under water, I’m still not sure I understand what you mean.

As for linetrace, should I do it in the particle BP or is it going to be more effective if I use player BP

So far I have a potential solution, the only problem is that it doesn’t consider whether the player is UNDER the water.

Attached is a possible solution, but it could be better.

I’ll probably use linetrace to detect if the player is underwater, but not sure how it would look in blueprint with capsule half height + capsule component (Still not that good).