Skip to content

Scenes Macro for Theatre of the Mind style play

Anton Palikhov edited this page Jan 19, 2018 · 2 revisions

https://youtu.be/-Gbe5gC9RdQ

Even if your group uses tokens and maps for evey last battle, in most role-playing games, there are going to be long stretches where tokens and maps are unnecessary. You are haggling with a merchant, having an audience with a noble, or carousing in a tavern. Some DMs just keep the screen on the last map, others devote a whole page for a large picture. This can lead to player distraction in the former case (look at those toys), or page bloat in the latter (where among my 25 scene pages is the next encounter map?)

This is a method I use to solve those problems. I am posting it on the Pro forum since it requires several API scripts in order to function, notably Token-mod, and Roll20 Audio Master. The first is essential, the second is the seasoning.

Steps

  1. Collect your scenes into a table To begin with, select the scenes you are going to need. Don't worry, you can add more later. Bring them into your library and set up a rollable table with one scene per entry. Save your table and generate a rollable table token with it.

  2. Create one dedicated Scenes page Make it about 30 by 20 units, turn off the grid and make the background black. This will give you a theater look.

  3. Create a dummy character Call this character "Scenes". Assign the rollable token to it. Place the token on the Map layer, in the approximate center of the Scenes page.

  4. Create the ability macro This is the most complex step. I usually make a google sheet to parse long macros, but the code is very repetitive and straightforward. This code will create a Roll Template menu in your chat tab, which you will use to control your scene. For this example, I use the Roll template for the D&D 5e Shaped Sheet, but the guts of the macro is just a series of repeating API buttons, one for each scene. When you have your macro, place a controlling button on your macro bar for easy access.

Now, to the macro. The opening code is just a bog standard Roll Template:

/w gm &{template:5e-shaped} {{title=Scenes}}

The next bit (on the same line, but separated for clarity, is the button that stops whatever music is playing. You might need this if the music is too loud, wrong for the encounter or giving your trouble understanding a player with a poor connection:

{{text=[STOP ALL MUSIC](!roll20AM --stop,ignore|)

Now comes the repeating part. You will need one of these buttons for each scene. Only four bits need to be changed for each scene.

[High Harbor](!roll20AM --stop,ignore|
!roll20AM --play,loop|Medieval City Sounds 1 hour - City by Bhaal91
!token-mod --ignore-selected --set currentside|1 --ids @{Scenes|character_id}
!token-mod --ignore-selected --set width|[[70*22]] height|[[70*14]] --ids @{Scenes|character_id})

Line 1 has the name of the button (likely also the name of the scene), and then tells Roll20AM to stop playing any other sounds. This is important, because you want to stop the previous scene's sound when you begin the next. The button name is the part in square brackets, all the rest of the block is contained by parenthese.

Line 2 tells Roll20AM to start playing the track from your jukebox that is associated with the upcoming scene. This must be letter-for-letter, and I would advise removing any problematic characters from a track title: quotes, colons, slashes, etc. Stick with A-Z, 1-0 and spaces and you should be fine. If you do not plan on including music with your scene changes, this line can be completely deleted.

Line 3 tells Token-mod to set the side to display. Remember that the first side of a rollable table token is 1 (Edit: I mistakenly reported this as 0, earlier). This --ids part tells Token-mod to change the face for the token associated with the character "Scenes" regardless of whether it is selected. This is why we placed it on the map layer, so we wouldn't accidentally move the token around with an accidental click. You don't need to have the token selected to use the macro.

Line 4 sets the dimensions of the scene. This is usually much smaller than your page size in units. I've found that it's better for players to see a small scene to zoom in on, rather than a large one to zoom out of. You can't control their zoom level. You can however shift-click to ping pull all players to the center of the scene. This part may take a little trial-and-error to get what looks and feels right to you. It's necessary to change the size of the token, because some scene images will be rectangular, while others may be square. You will note that I set the height and weight as formulas: 70*22 instead of just telling it 1540px. This is purely for ease of programming. I can remember 22 inches or squares or units, more easily than a 3 or 4 digit string of pixels. The scene will always resize on center, so once a player is centered, they should stay there.

So from this repeating code, all you have to change in each block is four values: the name of the scene button, the track to play, height, and width. Create as many of these as you need.

At the very end of the macro, close the whole thing off with the double curly brackets that close the roll template:

}}

Here is an example of the full macro with three buttons in place:

/w gm &{template:5e-shaped} {{title=Scenes}} {{text=[STOP ALL MUSIC](!roll20AM --stop,ignore|)
[High Harbor](!roll20AM --stop,ignore|
!roll20AM --play,loop|Medieval City Sounds 1 hour - City by Bhaal91
!token-mod --ignore-selected --set currentside|1 --ids @{Scenes|character_id}
!token-mod --ignore-selected --set width|[[70*22]] height|[[70*14]] --ids @{Scenes|character_id})
[Deadwood](!roll20AM --stop,ignore|
!roll20AM --play,loop|Deadwood Inon Zur - The Fellwood
!token-mod --ignore-selected --set currentside|2 --ids @{Scenes|character_id}
!token-mod --ignore-selected --set width|[[70*22]] height|[[70*14]] --ids @{Scenes|character_id})
[Sage Order](!roll20AM --stop,ignore|
!roll20AM --play,loop|Ritual by Kevin MacLeod
!token-mod --ignore-selected --set currentside|3 --ids @{Scenes|character_id}
!token-mod --ignore-selected --set width|[[70*22]] height|[[70*14]] --ids @{Scenes|character_id})}}

Some notes:

  1. If your players need to have token macros available during Theatre of the Mind, simply place their tokens somewhere on the token layer, preferably off-cneter of the scene somewhere. They can move them where they feel comfortable. Remember, your scene is actually a huge token on the map layer. It can't be accidentally moved or disturbed.

  2. If you need to add more scenes, simply add them to your scenes table. You will need to generate a fresh token and place it on the map layer like step 3 above. Make sure you assign it to the Scenes character, and the macro will automatically be there. Edit your macro to add lines of code for each new scene. This is an ability macro, so you do not need to worry about any HTML replacements.

  3. Remember, the example uses the Shaped Roll template, but the buttons can be used in any roll template. You will simply need to change the header and assign the buttons to a tag that will display them. The template I used has one called" Text" which is used for free text. Look up the roll template for your chosen sheet if you are unfamiliar with it.

Thanks to The Aaron, for Token-mod, and to Scott C. for Roll20 Audio Master. These folks have added a huge amount of value to my Roll20 subscription. All images shown are found with Google Image search and used for demonstration purposes only. No copyright infringement is intended.

Source: https://app.roll20.net/forum/post/5974262/scenes-macro-for-theatre-of-the-mind-style-play

ПЕРЕЕХАЛИ

Clone this wiki locally