Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

New Reaction Live for Subscribers: Send to Chat

This summer, following the release of the Foreground Layer, we released a new feature called Reactions  that allow GMs to set up any token to automatically trigger when a player or GM-controlled token overlaps/touches it.  The first Reaction released was Conditional Fade, and now, we're happy to announce Send to Chat ! Use it to:  share descriptions trigger environmental emotes make your NPCs or creatures talk roll dice activate macros or mod scripts ... and more! Reactions can be used on any tabletop layer, and Send to Chat can be combined with Conditional Fade. You can read more on  our latest blog .   To access/configure Send to Chat, double-click any token and use the Reactions   settings found on the Advanced tab. Let us know what you think! 
1764096515

Edited 1764097251
Very nice feature. Is there a way to make the StC announce WHO triggered it, even if it's just a whisper to the GM?  Can save a lot of arguments with players saying "I never touched that trap!" lol Also, one thing I've noticed in my quick testing is that if a larger token (in this case, a 3x3 token) passes over a single square token, it only triggers it if the center square passes over it.  Is that working as intended?
Hi Jason! I spoke with the devs who agree that whispering who triggered what would be sick. We will look into that after our turkey day holiday. Regarding your second question, yes, that behavior is intentional. What you’re noticing is the interaction with the token’s collision box. This design prevents tokens from accidentally triggering things when a corner bumps into them, ensuring that activations feel deliberate and intentional. We found corner bumping to feel quite irksome. You can view the collision box on the lighting layer for reference.
1764106215
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
This is a total and complete bona fide game changer! So many script just became easier and/or more powerful!  Can you explain what is meant by the sample ID syntax here?
1764125799

Edited 1764126641
Seb
Pro
Absolutely love this. Incredibly useful. Maybe an additional checkbox could be added to give an option to "Lock token Movement" (triggering token or all party tokens) after send to chat is triggered. It would give the GM time to describe what just happened and sort things out.
Feature Suggestion Being able to whisper the emas to players using this feature and others, so you can whisper things to a player and still have it look like the beautiful ema you can have in regular chat. 
1764142025

Edited 1764142697
Seb said: Absolutely love this. Incredibly useful. Maybe an additional checkbox could be added to give an option to "Lock token Movement" (triggering token or all party tokens) after send to chat is triggered. It would give the GM time to describe what just happened and sort things out. It seems like you should be able to do this with token mod. I have it setup and it works for me as a DM moving my player's tokens into an area with the send to chat reaction. But for some reason when I try to trigger from my test player account in a another browser (while still present as DM in the game) it doesn't trigger at all.  Here's what my send to chat looks like though to "pause" the game. Basically just tell token mod to turn on "lockMovement" for all the tokens that match the list of passed in Character IDs. Then it just says "Game Paused" in chat. !token-mod --ids some-id some-other-id final-character-id --on lockMovement Game Paused And then a macro to "unpause" that does the same thing just setting --off instead of --on
Love it! it's going to be very useful.  One thing I noticed with my quick test; I have ladders connecting the upper and lower decks of the player's starship & have a script which moves them to the corresponding ladder on the other deck when they step on the space (marked by an invisible token). With this reaction I set it to say 'you clamber down the ladder to the lower deck' and on the lower deck 'you climb the ladder to the command deck' Entering the ladder space on the command deck fires the expected message and moves them to the lower deck, which, given that it is a ladder space with a reaction on it immediately fires the lower deck reaction although the player remains on the lower deck - Hope that made sense. Not really a bug, merely an observation & a peculiarity of the way I set things up.
1764167127

Edited 1764172261
timmaugh
Forum Champion
API Scripter
First, like everybody else, I am loving this new functionality. Here are a few hacks to make it do more until we get further development from Roll20: Let the Metascript Hackery BEGIN! So, first, all of this will require the Metascript Toolbox script package to be installed. Also, since Beacon sheets don't expose their attributes and the model of HOW they will expose attributes when the DO expose attributes isn't yet settled, the Toolbox hasn't been updated to work with Beacon sheets (ie, the 2024 sheet). We can still do things with the *tokens*, but where I note pulling an attribute from a character, that won't work for Beacon-based characters. But after all of thaaaaaaaaaaaaat... Get the name of either the INSTIGATOR or the TOKEN Fetch offers ways to get the name of a token based on the ID. And since the ID is what is returned by the Reaction syntax nuggets of INSTIGATOR_ID and TOKEN_ID, we can use them to get the name: @({INSTIGATOR_ID}.token_name) @({TOKEN_ID}.token_name) Get an Attribute from the Associated Character Fetch also will track the ID up to an associated character if you need to return an attribute: @({INSTIGATOR_ID}.hp) @({TOKEN_ID}.RemainingAmmo) Send Any of This to the Chat Since the Toolbox only works in bangsy messages (those beginning with a "!" and intended for the script sandbox), we need to start our message that way, and then we need a {&simple} tag to turn it into a normal message. That means, that this will work to announce WHO triggered WHAT event: !@({INSTIGATOR_ID}.token_name) did the thing with @({TOKEN_ID}.token_name).{&simple} Want to whisper to the GM, just put the "/w GM" at the start: !/w gm @({INSTIGATOR_ID}.token_name) did the thing with @({TOKEN_ID}.token_name).{&simple} Whisper to the Owner of the Token Fetch also offers a way to get the controller of the token: @({INSTIGATOR_ID}.token_cby_name) That means that you can whisper a message to the controller of the instigating token: !/w  @({INSTIGATOR_ID}.token_cby_name) You feel the overwhelming urge to eat something. Your party-mates look tasty. {&simple} And since the Send to Chat box can send multiple commands out, you could have this on one line, and a wider/broadcast announcement on another. Combining this all, you could whisper a special message to the instigator, request a roll against a Save value that you retrieve from the character (including a button), while outputting a separate message to the wider game: !/w @({INSTIGATOR_ID}.token_cby_name) You triggered a trap. Roll a Wisdom save. @({TOKEN_ID}.token_name).[Save](!
@{@({INSTIGATOR_ID}.token_name)|wisdom_save_roll}){&simple} !@({INSTIGATOR_ID}.token_name) chose poorly. {&simple}
1764171712
timmaugh
Forum Champion
API Scripter
An Example Here is the text from a token's "Send To Chat" reaction box: !/w @({INSTIGATOR_ID}.token_cby_name) &{template:default} {{name=You Did The Thing}} {{What Happened=You did the thing, and... it doesn't look good. It... I can't even. It just... I think you'd better roll a Wisdom save.{&nl}[Save](!
@{@({INSTIGATOR_ID}.token_name)|wisdom_save_roll}) }} {&simple} !&{template:default} {{name=Oops}} {{=@({INSTIGATOR_ID}.token_name) chose poorly. Like, really poorly. "Saint @({INSTIGATOR_ID}.token_name) of Bad Choices", the children have taken to calling them. }}{&simple} There are 2 statements, each of them templated. One is whispered to the controller of the instigating token, and includes a [Save] button. The other message is sent to the table at large. Here is what the controller of the instigating token sees (the whispered message): And then everyone sees the other message: And the button works:
I would love to see this reaction allow us to use templates like Supernotes:&nbsp;<a href="https://app.roll20.net/forum/permalink/12040827/" rel="nofollow">https://app.roll20.net/forum/permalink/12040827/</a>
1764187100
timmaugh
Forum Champion
API Scripter
Novercalis said: I would love to see this reaction allow us to use templates like Supernotes:&nbsp; <a href="https://app.roll20.net/forum/permalink/12040827/" rel="nofollow">https://app.roll20.net/forum/permalink/12040827/</a> What feature, specifically, are you looking for? Are you wanting to use the Supernotes templates (the formatting and look that Keith has developed)? Or are you wanting to be able to put text in the Send-To-Chat Reaction box on the token so that Supernotes can parse it and construct the message? Because you can run a SuperNotes command from that token (or another token that you'd rather use for the source verbiage) just by dropping a {&amp;select} tag in that line and referencing that token. For instance: !pcnote --template|vault{&amp;select -Odi3QhLcYQG_11oTQY9} So you could reference (and construct your message using the SuperNotes template) from the GMNotes of the "bumped" token, or you could have the GMNotes of another token (an associate "library" token for this interaction) which you refer to with the {&amp;select} tag. Two Caveats... 1) At the time of writing, the Reaction seems to be bugged... if a controlling player moves the INSTIGATOR token, the GM has to have the same token selected in order for the bumped TOKEN reaction to fire. I've raised this with the devs; hopefully we get clarity and/or a fix soon. 2) Make sure you don't include a space trailing the --template argument. I was not getting the proper template if I left a space after the template argument (before the {&amp;select} tag). When the Metascript Toolbox removes the {&amp;select} tag, the space will be left behind. This causes Supernotes to not find the template you are wanting to use. I'll let Keith know about that, and he should be able to knock a fix out, too.
1764189371

Edited 1764189530
2 features 1) the format and look of it 2) the output - Be it whispered to the player who walked into it and open to everyone ------------------------------- For #1, based on your instruction, feels a bit convuluted because I have to make 2 tokens. One for the Verbiage that I have to put off screen, and the other is the trigger/insitgator token with that code. if that is the case, I can continue using supernotes as is, since I had to create a token anyways and I can use that same token. Only difference, i have to tell my players, you can only interact with the token when your next to it, instead of stepping on it.&nbsp; ------------------------- my point is though, is having these features already built into it, making one less API to use.&nbsp; Ideally, it would be: Double Click Token &gt; Advance Tab &gt; Check mark "Send to Chat" when that gets checked off, a drop-down menu appears with different template style to choose from. Also another 3 check box appears: Public Chat, Whisper to Player (and GM) who triggered it, whisper to GM only ----------------- If possible - merging "Send to Chat" with "Pin" or should I say, Pin should have 3 modes: 1) Visible to GM only (currently as is) 2) Visible to Players (Currently as is) 3) Visible to Players but no tooltip appears until token touch (what this thread is about)
1764190694
timmaugh
Forum Champion
API Scripter
Novercalis said: 1) the format and look of it For #1, based on your instruction, feels a bit convuluted because I have to make 2 tokens. One for the Verbiage that I have to put off screen, and the other is the trigger/insitgator token with that code. if that is the case, I can continue using supernotes as is, since I had to create a token anyways and I can use that same token. Only difference, i have to tell my players, you can only interact with the token when your next to it, instead of stepping on it.&nbsp; I'm sorry. I should have been clearer. You can have Supernotes reference the same source (the gmnotes) as is the triggering token. That is, you can fill the gnnotes of the "bumped" token with whatever verbiage you want. You can have that sent to the gm (who can share with the whole table), or you can send it to everyone directly. (Whispering to an individual player would require either a change to the Supernote command line or a new Metascript construction.) Alternatively, you *could* use a secondary token as the source of the verbiage, if, for whatever reason, you needed to. I was just trying to make the solution flexible, not trying to indicate that that was required. Oh, and looking closer at the Supernotes command line, you don't even need the {&amp;select} tag, since Supernotes offers an --id argument. (But the {&amp;select} tag could come in handy for *other* script commands!) Novercalis said: my point is though, is having these features already built into it, making one less API to use.&nbsp; Ideally, it would be: Double Click Token &gt; Advance Tab &gt; Check mark "Send to Chat" when that gets checked off, a drop-down menu appears with different template style to choose from. Also another 3 check box appears: Public Chat, Whisper to Player (and GM) who triggered it, whisper to GM only I think what you're likely to get, just from a development perspective, is the last request: 3 boxes with a "public", "player", or "gm" portion. That feels do-able. I doubt whether there will be much "templating" developed, since currently templates are handled by the character sheet or a script. And I don't foresee them integrating even a great script like Supernotes. I have no inside knowledge. I'm just relaying what my sense is of what is possible given the lay of the land.
Love this.&nbsp; I had set up pit traps in a game that automatically rolled damage and saves and applied to the PC, but&nbsp; it took some very clever stuff by Gravitas3k to have it as a trigger.&nbsp; This is even easier, drop that same script onto the token, move it to another layer (in this instance, map layer "under" some flooring, sent to back) and when the PC walks over it BOOM! and the trap is revealed on the objects layer. SWEEEET, ty Roll20 I second locking the triggering token in place - it would really make sense for traps, but also gives the DM chance to expand on the event.&nbsp; I try to be minimal with my use of APIs and can do most things with those I have, as awesome as TokenMod is, I don't want to install it just to facilitate this :)