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:
Modules
Modules 0.8.*
Have Trigger Happy Installed.
Have Advanced Macros Installed.
Have Dynamic Active Effects Installed.
Have a Journal Entry named Trigger Happy
.
Modules 0.7.*
Have Trigger Happy Installed.
Have Furnace Installed.
Have Dynamic Active Effects Installed.
Have a Journal Entry named Trigger Happy
.
Macro - Start here
To start off, make a macro.
Name it: TeleportToToken
Make sure it is set to: Script
Disable Execute Macro As GM
Dynamic Active Effects
DAE.teleportToToken(token, args[0], args[1], args[2])
Dynamic Effects
DynamicEffects.teleportToToken(token, args[0], args[1], args[2])
Save.
Note:
You don’t have to change anything here. We’ll be using it later.
Actor
Now we have to make an actor. Create a normal character. Name it anything you want. For this tutorial, we’ll call this Stairs
.
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 Actors directory
Token
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 Image
Endpoint/Other Side
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 Actor
of 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 Stairs2
.
You can make the same changes to this token as to the last one.
Now we have an endpoint.
Trigger Happy
Now we get to the Trigger Happy part of this, which should be fairly straight forward.
Now that we’ve made our tokens, Stairs1
and 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@token[Stairs1]
This will happen:@ChatMessage[/TeleportToToken Stairs2 0 0]
It sends a Chat message: /TeleportToToken Stairs2 0 0
WhereTeleportToToken
is the Macro we created.Stairs2
is the token we’re teleporting TO.
The0 0
Is 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 ontoStairs2
they get teleported toStairs1
.
From here on out, you can edit names of stairs as you want, but it should teleport any token that steps onto the Token(s)
.
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 random
room.
Rename it, as shown above. In this example, we’re going to call ours Wildcard Portal
.
Now, we need to make a Roll-table.
In this example, I’ll call this roll-table: Room Table
In this Roll-table, we’ll put in our different rooms. They all have to be text.
Room1
Room2
Room3
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.
Macro
Now we’ll make the macro to be used as the random teleport
Name it: RandomMap
Make sure it is set to: Script
Disable Execute Macro As GM
Macro:
let table = game.tables.entities.find(t => t.name === 'Room Table');
let result = table.roll().results[0];
DynamicEffects.teleportToToken(token, result.text, 0, 0)
Room Table
Is the name of the Roll-table we made earlier.
Trigger Happy
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]
Where @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 Floor1
, Floor2
, Floor3
, and the exits also needs to be named individually:
Wildcard1
, Wildcard2
, Wildcard3
.
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.
Troubleshooting
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 Sender
and Reciever
Teleportation token.
Reason
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.
@tposney
Any other problems?
You can either leave a comment here, in Kakarotos Discord Server, or in Foundrys #Module-Discussion
. Just ping @Kevin-#0001 Or @kakaroto.