So basically, you’re getting the overlap, casting to the character to make sure it’s that character, then if true, you’re using the restart node to restart the level? What node are you using to restart the level? Restart game? The logic sounds correct, though I’d have to see your nodes to be certain you applied it correctly since restart game targets your game mode and resets the level you’re currently in directly. Also you don’t have to valid check after a cast fails, if the cast fails it executes whatever is behind cast failed instead of an error.
A simple restart level the way you’re doing without calling the game mode would be a bit like this: