Hello! It seems that a lot of people liked the idea of teleportation, This small post teleports the “token/player” to a separate place. It can be on another scene, and the player will follow. Troubleshooting is at the bottom if you need any further help.
As that is covered, some things to go over:
Have Trigger Happy Installed.
Have Furnace Installed.
Have Dynamic effects Installed.
Have a Journal Entry named
Macro - Start here
To start off, make a macro.
Make sure it is set to:
Execute Macro As GM
Dynamic Active Effects
DAE.teleportToToken(token, args, args, args)
DynamicEffects.teleportToToken(token, args, args, args)
You don’t have to change anything here. We’ll be using it later.
Now we have to make an actor. Create a normal character. Name it anything you want. For this tutorial, we’ll call this
Now, before we put this character on the board, we need to unlink it.
For this tutorial, we’ll also change the token of this character to a transparent picture.
Tip: While we’re here, put
Display name to
Owner, this will help you recognise what token you’re trying to teleport later. Thank me later.
Note: You only need this 1
Actor from now on. No need to clutter your
Now, drag this
Actor onto the board. Then Double Right-Click on it. This should bring up
Token Configuration again.
This is going to be our
Teleportation from token, so I’ll name it
Stairs1 For this tutorial.
Now we are done with the
Teleporting From Token. Place this where you want them to teleport from as they step onto it.
Tip: After you’ve placed the Token, you can make it bigger by changing the
Width/Height values in
So now that we have a place to teleport from, we need a token to teleport to. This token can be made on a new scene, or on the same scene if wanted. Drag the previously made
Stairs Onto the board once more, make sure you place it where you want the Player/user to land.
Double Right-click this new Token, and re-name it. For this tutorial, we’ll call this one
You can make the same changes to this token as to the last one.
Now we have an endpoint.
Now we get to the Trigger Happy part of this, which should be fairly straight forward.
Now that we’ve made our tokens,
Stairs2, we’ll use them here. What I’ll input into The
Trigger Happy Journal Entry is(ctrl-shift-v to clear formatting on paste):
@Token[Stairs1] @Trigger[capture move] @ChatMessage[/TeleportToToken Stairs2 0 0] @Token[Stairs2] @Trigger[capture move] @ChatMessage[/TeleportToToken Stairs1 0 0]
To explain the above text:
@Trigger[move]means "when someone Moves ONTO this
This will happen:
@ChatMessage[/TeleportToToken Stairs2 0 0]
It sends a Chat message: /TeleportToToken Stairs2 0 0
TeleportToTokenis the Macro we created.
Stairs2is the token we’re teleporting TO.
0 0Is offset, Where the first 0 is X and the second 0 is Y
The second line is for “moving back”. As these are stairs, I want my players to move back too, therefor I switched the token names, so when someone steps onto
Stairs2they get teleported to
From here on out, you can edit names of stairs as you want, but it should teleport any token that steps onto the
Random Room Teleporter
To create a random room teleporter with the above context, it is easy.
To start off you’ll have to have the 2 characters, just like above.
Place a token they have to step onto to teleport to a
Rename it, as shown above. In this example, we’re going to call ours
Now, we need to make a Roll-table.
In this example, I’ll call this roll-table:
In this Roll-table, we’ll put in our different rooms. They all have to be text.
These are going to be our
Exit Tokens Name.
So place out the token they where you see fit, at the entrance of the random room(s).
Re-name them after 1 of the options in the Roll-table.
Now we’ll make the macro to be used as the random teleport
Make sure it is set to:
Execute Macro As GM
let table = game.tables.entities.find(t => t.name === 'Room Table'); let result = table.roll().results; DynamicEffects.teleportToToken(token, result.text, 0, 0)
Room Table Is the name of the Roll-table we made earlier.
Now for Trigger Happy, just as the previous one for the normal teleport, we need to execute this macro instead.
@Token[Wildcard Portal] @Trigger[move] @ChatMessage[/RandomMap]
@Token[Wildcard Portal] is the token we’re teleporting from, and
/RandomMap is what we named the macro.
Now, if you want these room to teleport to another random room, like let’s say a tower, you’ll have to make a
Exit Token, and a
Entrance Token for each map/floor. So the entrance tokens needs to be re-named individually, like
Floor3, and the exits also needs to be named individually:
They all also need to be put into Trigger Happy individually.
It will cause problems to just put out a token with the same name, so just trust me. It is less confusing, a bit more work, and won’t cause bugs.
Problem 1 - Token Stuck after teleportation/Copies of Token 1
Make sure, if you’re using a
folder for Trigger Happy, that the Journal you’re using is not named “Trigger Happy”. This will make the token teleport twice and make some weird bugs. Just re-name the Journal Entry.
Problem 2 - It doesn’t teleport/Doesn’t work correctly
Text Formatting might’ve followed. Go into Source code and delete the formatting.
To get to source code, press
<> while editing the text.
If you have any doubts of what should be there, here is a “normal” one:
Remove anything along the lines of:
<span style="background-color: rgba(27, 31, 35, 0.05); color: #24292e; font-family: SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace; font-size: 13.6px;">
Problem 3 - Copies of characters 2
If you’re struggling with copies of characters being spawned, you might be struggling with multiple tokens with the same name. If the teleportation tokens have copies, they will spawn copies. Each
Token Needs a different name, both
Reciever Teleportation token.
If your trigger happy specification (or indeed your macros) call DynamicEffects.teleportToToken more than once for the same actor token you will get new copies of the token for (up to) the number of times you called the function. The teloportToToken function does the following:
1. find destination token (the argument to the teleportToToken function)
2. create a copy of the actor token at the location of destination token found in step 1
3. activate scene where the destination token exists (might be the same scene)
4. delete original actor token
If you call the function more than once (and the delete has not yet happened) it will create another copy of the actor token.
The function is supposed to be executed by the player whose token is to be teleported. Usually that means you want you player to step onto/activate the teleport. If you do it as DM then the scene change will happen for YOU not the player, (the token will still be created and then the original deleted) and when the token is deleted the player will be informed they have no token with vision and the scene will go black.
The whole teleport thing works without the GM being present on the scene where the teleports activate. So you can have players on different scenes as they move over teleports. This is the way it is supposed to work. I have had the party spread out over 3 different dungeon levels as they try to go up and down stairs.