Download

Teleporter not working, needs to be editable BP

Hi all,

So I want to make a system of teleporters that go to one another. (1 connects to 2) 1-2, 3-4, 5-6, etc. so the best way it seems to create a teleporter BP with an editable reference to another pawn in the level of the same BP. I dont want to use the level editor as seen elsewhere, just the teleporter BP.

For some reason though, my code isn’t working:
098f5a262aaee5a1a3f7cc5cfaaef75448198cd0.jpeg
So this is in the teleporter BP. When another object (another player for example) collides with the triggerbox i created, its supposed to check if already teleporting, and if not, then teleport to the linked teleporter. “Is Teleporting” is default 0. What’s happening is it’s looping infinitely when it teleports to the next teleporter. I tried to set a check beforehand but it doesn’t work. Any suggestions?

Check out this tutorial i did a while ago, it might help you.

Thanks for the video. I tried your method but I still end up with an infinite loop. The problem they both have is that its set to teleport you to the next object but in my case, that next object is another teleporter - so i instantly am teleporting to one, overlaping it and teleporting back, and then for an infinite loop.
I figured I could create a delay to deactivate the teleportation on overlap when arriving at #2 teleporter before reactivating it. Doesn’t work.
Any suggestions? Thank you for the help

Hey Koppenhaver, take a look at my sig. I have a teleporter asset on the marketplace!

Hey Koppenhaver, your branch here is useless as you set the condition tu true befor the branch on same execution path, so it will always execute the true path.
i thought of 2 options there :

  1. you can add a sub component to your teleporter blueprint, like sphere, that should be outside the collision component and use it s world coordinate as destination
  2. you can make your destination teleporter inactive until the player left the overlap zone (using the on actor end overlap function tu re active it)
    hope it helps !

I think mistake is in teleport node location and rotation values… You are teleporting pawn on that teleporter which you overlap… You need to create variable manually(vector, lets say 500 / 2500 / 1000) and set desired values where you want to teleport pawn…

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.

Here is the video. Real quick…UE4 QUestions Ansered: Teleporter Blueprint - YouTube