Grapling hook set actor location - z-axis and event hit not working

Hi,

I recently started using the and set up a first person game. Currently I am trying to implement some kind of grapling hook device in Blueprint, with which the player shall be pulled to any object clicked with the left mouse button.

I am using the set actor location method from my player and found 2 things, which are not perfectly clear to me:

First: Set actor location does not correctly change the z-axis unless the player is currently in the air (e.g. jumping). My initial guess was the deactivate gravity, however overriding the global gravity z from the world settings with 0 leads to the same behaviour. My grapling hook does only work correctly in the z axis, if my character is in the air.

Second: I want the grapling hook to be deactivated if the player hits anything while being pulled. This however works most of the time only if I am in front of the aimed object and move my character manually (which is not at all what I want). To recognize a collision I am using the Event Hit inside my player Blueprint, which seems to trigger only if I am actively moving the player. Another explanation could be, since I am using set actor location, that an actual hit does not occur, because the players movement is “discrete” and just “jumping into the other object” (over the border of detection).

I found a tutorial online although they are using launch character, which is setting a velocity, instead of set actor location, which sets the location directly. In my opinion set actor location should be the “better” way of implementing this behaviour in that case, although I do have the problems explained above. Or shouldn’t I use set actor location in that case/at all? I would be thankful for any suggestions.

Greetings