Ok, just did a quick video tutorial on this for you but I’ll explain it here as well. This is the end result in the video. Can’t upload it from work though.
First, Open up your character blueprint. Create a new variable and call it isTeleporting. In the event graph add a new custom event and call it TeleportDelay. Drag off of the pin can create a retriggerable delay. Set it to .5. After the delay, set isTeleporting to false.
Next, create a new function in your character called teleportCharacter. Add two inputs to the function, a vector named location and a rotator named rotation. The first thing this function will do is to see if you just teleported, so create a branch and plug isTeleporting into it. If it is false, set is teleporting to true. Then, teleport your character using the teleport node and plug in the location and rotation from the inputs into the destinations on the teleport node. Finally, call your custom event TeleportDelay.
Now you can teleport whener you want. But you need a teleporter to tell you to teleport.
Ok, so create a new actor blueprint and call it Teleporter3000! In the viewport add a collision box. Move it up so the bottom is above 0. Next, in the details panel for the box set the extent to 64 in the x and y. Also, uncheck hidden in game.
Create a variable called teleportTo and set the variable type to Teleporter3000. Check the little eye next to it as well so it is editable/public. Next, right click on the box in the components panel and add an onBeginOverlapEvent for the box. On overlap, cast to to your character blueprint and call TeleportCharacter. For the location and rotation, use the teleportTo variable actor location and rotation.
Place 2 to 2 million of these teleporters in you world. Set the teleportTo variable for each one you place. Hit play and start teleporting. NOTE: if you are colliding at your destination with an object you will not teleport.