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

Roll20 Tips and Tricks (Innovative Solutions to Common Problems)

1639975953

Edited 1639976781
Oosh
Sheet Author
API Scripter
Good grief Rainbow, do you write dice rollers for a living? I feel like a dog trying to read a wizard's spellbook. I'm gonna have to play around with that to even understand what's going on :) Edit - Ahhhhh, ok. So I was completely unaware that the keep/drop system went by each dice expression. I thought it only split by "+" or "," ... silly me! If anyone else thought the same as I did, to put it really, really simply: [[ { 1d1 * 12 *(1-1d1) }k1 ]] I had thought the braces contained a single sub-roll, as far as the keep/drop operation is concerned. But it's two rolls, obviously. Keeping one roll drops the second 1d1 and it's treated as a 0 in further calculations, and the result is 1 * 12 * 1, which is 12. Keeping two rolls includes the second 1d1, so the parentheses becomes 0, and 1 * 12 * 0 is 0. Rainbow did explain all of this perfectly well, I was just unaware that step 1 was possible, so the rest of the post confused me greatly!
Oosh said: Good grief Rainbow, do you write dice rollers for a living? I feel like a dog trying to read a wizard's spellbook. I'm gonna have to play around with that to even understand what's going on :) No dice rollers, but the occasional parser. Edit - Ahhhhh, ok. So I was completely unaware that the keep/drop system went by each dice expression. I thought it only split by "+" or "," ... silly me! The keep/drop system is different for single sub-roll (no commas) vs multiple sub-roll (comma separated). In Multi sub-roll keep/drop works on the entire sub-rolls, almost as if the sub-rolls were nested rolls. But in Single sub-roll keep/drop works on individual dice (not dice expressions). So {3d6 + 2d8} would have 5 separate dice to keep/drop. With your feedback I've now edited the post to explicitly state that individual dice get dropped.
1640547284

Edited 1640547393
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Wrapping Multiline Chat messages in Brackets It's fairly common knowledge that you can use shift-return in chat to create a paragraph break without sending the message*. However, this can lead to problems if you precede the message with a chat command such as /w or /em . Only the first line is affected by the command: /w gm 1 2 results in: (To GM): 1 GM (GM):2 .. with only the first line being whispered. You can wrap a chat message in double brackets to keep multiple paragraphs together and affected by the same chat command. However the brackets still display in the output: /w gm {{1 2}} Results in: (To GM): {{1 2}} But you can make the brackets disappear by using triple brackets: /w gm {{{1 2}}} Results in: (To GM): 1 2 In this last case, line breaks are preserved and the entire message is affected by the chat command. Of course, to give you more freedom, use a roll template. Specifics will vary from template to template, but most templates that have a text field will take returns and shift-returns. This tip is helpful for on-the-fly messages or macros that do not use a roll template. *Note that Shift-command is only needed to create line breaks while typing. If you paste a section of paragraphs copied from another source, it will be as if you had typed shift return for all the paragraph breaks.
Keithcurtis, that is a great tip, as something I’ve run into in the past! I wish this forum had a “kudos” functionality for posts. ;-) 
1640556420
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Joe said: Keithcurtis, that is a great tip, as something I’ve run into in the past! I wish this forum had a “kudos” functionality for posts. ;-)  I just discovered it this morning.
1640562408
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
The last few pages have been added to the top post index . I've been lazy about maintaining it but it should be up-to-date now. If anyone discovers errors or omissions, please contact me in a PM. Here's the rules for the thread, as a reminder: The users on the forums have quite often devised solutions to common problems or activities by clever or innovative use of the interface. I thought it would be nice to have a thread to share the little tricks we have come up with. Note, this is not necessarily a place to post little-known  intended  uses of the interface (such as keyboard commands), but less conventional uses, or ways to use common tools with other resources (such as emojis in macro titles). These tricks may or may not require the use of subscriber level resources. If they don't—that's great, everyone can benefit. If they do—that's great too, because free users might see even more benefits to subscription. NOTE: P lease only post a complete "stupid trick" here. If you want help working out what might become a trick, start it it in its own thread and  please  post here when complete. If you just wish to express thanks to someone who just solved a great mystery for you, that's fine—people need recognition for contributing Cool Stuff. Also, feel free to point out refinements or warnings about existing tricks.  Every little bit helps. If your post is strong enough, I'll link it to the same line as the referenced post in the index. Just don't clutter the thread with too many thanks and especially long strings of quoted text and images. Help keep this thread clean, organized, and easy to read. — Thanks!
Security note for slow typists or those with long messages to whisper:  Type your note into Notepad (or whatever) and then copy and paste it into the chat window to avoid the "so-and-so is typing" messages, revealing the whisper.
Bill (Do Not Kill) said: Security note for slow typists or those with long messages to whisper:  Type your note into Notepad (or whatever) and then copy and paste it into the chat window to avoid the "so-and-so is typing" messages, revealing the whisper. To add to this, you can create a macro with a query to paste it in to avoid touching the chat box at all, so no accidental key presses trigger the typing notification. I use this simple macro: /w ?{Whisper to} ?{Message} Alternatively, you can set the recipient with a drop-down list of players/characters or by targeting a token name for the PC you're whispering to (as long as the token name matches the start of the character name). I avoid using a target's character name because if the name has more than one word like "Bob the Slayer" then "Bob" is the only indicator needed for the whisper, and "the Slayer" gets lumped in to the start of the message. /w ?{Whisper to|Randy|Camille|Bob} ?{Message} /w @{target|token_name} ?{Message}
This macro will roll the attack, display the ac of the target, display the damage, and the crit damage if reasonable, all along with a description of the attack, complete with fx. &{template:default} {{name=@{selected|token_name} brandishes his greatsword and swings at @{target|token_name}}} {{@{selected|token_name} Attack=[[1d20+5}]]}} {{vs @{target|token_name} AC=@{target|AC} }} {{Damage= [[2d6+3}]] Slashing}} {{If Crit= [[2d6+2d6+3}]] Slashing}} /fx splatter-blood @{target|token_id} @{selected|token_id} I also have versions that work well with spells, like this: &{template:default} {{name=@{selected|token_name} points at @{target|token_name} and the sound of a dolorous bell fills the air around it for a moment.}} {{The target must succeed on a Wisdom saving throw of 13 or take:=[[1d8]] necrotic}} {{vs @{target|token_name}'s wisdom save of:=[[1d20 + @{target|npc_wis_save}]] }} {{If the target is missing any of its hit points, it instead takes:= [[1d12]] Necrotic}} /fx splatter-blood @{target|token_id} @{selected|token_id} And last, the same thing, but with 3 targets, which can be easily modified to have more targets: &{template:default} {{name=@{selected|token_name} utters a divine word, and burning radiance erupts from her.}} {{The target must succeed on a Constitution saving throw of 13 or take:=[[1d6]] radiant}} {{vs @{target|target1|token_name}'s constitution save of:=[[1d20 + @{target|target1|npc_con_save}]] }} {{vs @{target|target2|token_name}'s constitution save of:=[[1d20 + @{target|target2|npc_con_save}]] }} {{vs @{target|target3|token_name}'s constitution save of:=[[1d20 + @{target|target3|npc_con_save}]] }} /fx bomb-frost @{target|target1|token_id} @{selected|token_id} /fx bomb-frost @{target|target2|token_id} @{selected|token_id} /fx bomb-frost @{target|target3|token_id} @{selected|token_id}
hi people, I'm brand new to roll 20 (always just used our heads or drawn maps) and I'm lost on to get images that aren't from roll 20 maps or packs onto a page, as when I download them and then attempt to put them on the page they do not appear, is the a specification I'm missing (also sorry if this is the wrong forum, I don't use these at all)
1642957268
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Hi Bronson, as you guessed, this is the wrong thread. This thread is to share "solutions to common problems or activities by clever or innovative use of the interface". Your best bet is to post this in  Specific Use Questions & Macros , where you are almost certain to get helpful answers. I'd answer here, but it is best practice not to sidetrack this thread.
1642974640

Edited 1642975870
Persistent animations for streamed maps with dynamic lighting & explorable darkness Hi guys :) Running my first campaign as a GM and have been trying to make it as epic as I can for my players. I struggled quite a bit trying to get the right combination of animated maps, dynamic lighting, explorable darkness and retaining the animation detail. If no image is added to the map layer and I only relying on the animated map generated by VTTES, the dynamic lighting shadows are solid, and when moving the tokens around, the explored darkness doesn't persist, as I think this isn't tracked by the animated background. Adding images to the map layer replaces any animations that are moving in the background. After trying various solutions I found a simple fix using transparency: Run animated map using VTTES, with all the dynamic lighting options selected for the page,  Create a static image of the animated map and scale it exactly according to the page dimensions. Using an image editor (I found PowerPoint to be the most efficient as it does the entire image in a single click), convert the entire image to a high transparency and save as a PNG. All my images are 90% and look roughly like a blank page. Add this almost fully transparent image to the map layer, overlaying the image details in the animation and map layer exactly. Explorable darkness now has a base layer to track what the tokens have seen, the dynamic lighting shadows show the faded out, black images of the map details, and all animation details, like lighting changes and movement are still visible to the players, as the map layer is virtually invisible.  Apologies if I am sharing something that has already been discussed, or if there is a API script for this, but I couldn't find any so I thought I'd share in case it helps someone. In combination with the UDLWindows and UDLPasswall scripts, it's like playing a co-op version of Baldur's Gate :p
1644208938
GiGs
Pro
Sheet Author
API Scripter
Lee Gee said: Run animated map using VTTES, with all the dynamic lighting options selected for the page,  I think this thread is for native roll20 solutions, that's an extension that is frowned upon around here.
GiGs said: Lee Gee said: Run animated map using VTTES, with all the dynamic lighting options selected for the page,  I think this thread is for native roll20 solutions, that's an extension that is frowned upon around here. Just out of curiosity. Why is VTTES frowned upon? Roll20 really struggles with animated maps.
1644245110
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Because vttes allows piracy of rpg content.
1644249065
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Just to keep things clear, to my knowledge, Roll20 has never made any official announcement regarding VTTES. This is more of a community thing. And any further discussion should be done elsewhere, to keep this particular thread on-topic.
keithcurtis said: Just to keep things clear, to my knowledge, Roll20 has never made any official announcement regarding VTTES. This is more of a community thing. And any further discussion should be done elsewhere, to keep this particular thread on-topic. sure. was just curious. 
1644256162

Edited 1644256228
Hi guys, I'm trying to write a script for versatile weapons but something is wrong in the way I worte it cause it always gives me the generic damage even if the attack scores a critical. Here it is, i don't know if i'm at the right place for those question if not i will remove my post. !scriptcard  {{   --#title|Spear   --#titleCardBackground|#000000   --#oddrowbackground|#83c4f5  --#leftsub|Melee Attack   --#sourceToken|@{selected|token_id}   --#targetToken|@{target|token_id}   --#emoteText|@{selected|token_name} attacks @{target|token_name}   --=TargetAC|@{target|npc_ac}   --?[$TargetAC.Total] -gt 0|DoneWithAC   --=TargetAC|@{target|ac}   --:DoneWithAC|   --=AttackRoll|?{Advantage or Disadvantage?|Normal,1d20|Advantage,2d20kh1|Disadvantage,2d20kl1} + @{selected|strength_mod} [STR] + @{selected|pb} [PROF]   --+Attack|@{selected|token_name} rolls [$AttackRoll] vs AC [$TargetAC].      --?[$AttackRoll.Base] -eq 20|Crit   --?[$AttackRoll.Base] -eq 1|Fumble   --?[$AttackRoll.Total] -ge [$TargetAC.Total]|Hit --#evenrowbackground|#bcbcbc   --+Miss|The attack missed.   --^Final|   --:Hit|     --=Damage|?{How many hands?|One,1d6|Two,1d8} + @{selected|strength_mod} [STR] --#evenrowbackground|#6ae732    --+Hit!|The attack hit @{target|token_name} for [$Damage] piercing damage.   --@token-mod| _ignore-selected _ids @{target|token_id} _set bar1_value|-[$Damage]   --^Final|   --:Crit|   --=Damage|?{How many hands?|One,2d6|Two,2d8} + @{selected|strength_mod} [STR] --#evenrowbackground|#f44336  --+Critical Hit!|The attack hit @{target|token_name} for [$Damage] piercing damage.   --@token-mod| _ignore-selected _ids @{target|token_id} _set bar1_value|-[$Damage]   --:Final| }}
1644258784
Kraynic
Pro
Sheet Author
Frédéric D. said: Hi guys, I'm trying to write a script for versatile weapons but something is wrong in the way I worte it cause it always gives me the generic damage even if the attack scores a critical. Here it is, i don't know if i'm at the right place for those question if not i will remove my post. You should ask this question in the ScriptCards thread in the API forum.
Post
Theodoro P. said: Post Greetings, this thread is best used to navigate clever technique when interacting with Roll20, specifically these solutions technically navigate several difficult issues when attempting complex objectives. The 1st Post provides a useful map to navigate various issues; you may open multiple different topics possibly related to your issue from there. Please keep the spam to a minimum, and please attempt to keep your inquiry related to Roll20, without "3rd-party Browser Extension" references where possible (due from "questionable legality" concerns). P.S. I got Emailed and notified this message was posted, in case you wondered.
Kraynic said: Frédéric D. said: Hi guys, I'm trying to write a script for versatile weapons but something is wrong in the way I worte it cause it always gives me the generic damage even if the attack scores a critical. Here it is, i don't know if i'm at the right place for those question if not i will remove my post. You should ask this question in the ScriptCards thread in the API forum. Use the Code Block Style when posting Scripting Programming Code too. !scriptcard  {{   --#title|Spear   --#titleCardBackground|#000000   --#oddrowbackground|#83c4f5  --#leftsub|Melee Attack   --#sourceToken|@{selected|token_id}   --#targetToken|@{target|token_id}   --#emoteText|@{selected|token_name} attacks @{target|token_name}   --=TargetAC|@{target|npc_ac}   --?[$TargetAC.Total] -gt 0|DoneWithAC   --=TargetAC|@{target|ac}   --:DoneWithAC| --=AttackRoll|?{Advantage or Disadvantage?|Normal,1d20|Advantage,2d20kh1|Disadvantage,2d20kl1} + @{selected|strength_mod} [STR] + @{selected|pb} [PROF]   --+Attack|@{selected|token_name} rolls [$AttackRoll] vs AC [$TargetAC].     --?[$AttackRoll.Base] -eq 20|Crit   --?[$AttackRoll.Base] -eq 1|Fumble   --?[$AttackRoll.Total] -ge [$TargetAC.Total]|Hit --#evenrowbackground|#bcbcbc   --+Miss|The attack missed.   --^Final|   --:Hit|     --=Damage|?{How many hands?|One,1d6|Two,1d8} + @{selected|strength_mod} [STR] --#evenrowbackground|#6ae732    --+Hit!|The attack hit @{target|token_name} for [$Damage] piercing damage.   --@token-mod| _ignore-selected _ids @{target|token_id} _set bar1_value|-[$Damage]   --^Final|   --:Crit|   --=Damage|?{How many hands?|One,2d6|Two,2d8} + @{selected|strength_mod} [STR] --#evenrowbackground|#f44336  --+Critical Hit!|The attack hit @{target|token_name} for [$Damage] piercing damage.   --@token-mod| _ignore-selected _ids @{target|token_id} _set bar1_value|-[$Damage]   --:Final| }} You can see the way this changes your Post into something easily readable.
Using the Initiative Tracker to keep track of action points (APs) using the Mythras character sheet. For those who don't know how Mythras combat works, you have a set number of APs based on your stats which you use for proactive actions like moving and attacking. You also use your APs for reactive actions like parrying an attack or evading a spell. You would go through everyone's initiative where they are allowed to use one action point for a proactive action and repeat the cycle until everyone's used up all of their APs or have nothing to do. Obviously its kind of tedious to keep track of all of that, especially when you have a combat that involves a lot of characters. So I made two macros that could facilitate this and keep all of the character's APs. The first one is a Roll Initiative macro.  @{selected|token_name} rolls for Initiative [[(@{selected|initiative_bonus}+1d10)*100 + @{selected|action_points} &{tracker}]] Now, you might notice the macro has a bunch of extra stuff in it. Like how it multiplies the Initiative result by 100 and adds the character's APs to it. I originally tried to have the initiative be a normal number with the number of APs be a decimal, but 1 in 2 or 3 times where I tried to change the number of APs, the decimals would go crazy and produce results with a lot of trailing 9s. Apparently this is an issue for java. So to work around that I just use absurdly big numbers. The first two digits are the character's initiative result and the last digit is the number of APs they have left. The 0 in the middle is just a separator. There is a custom item on the top called the Actions Cycle, just set the initiative value to a high number so that its always on the top when you auto-sort. As you go through the turn and characters take proactive and reactive actions, you use this other macro to reduce the number of APs they have left in subsequent cycles.  @{selected|token_name} uses [[1 &{tracker:-}]] Action Point! Once everyone is done you re-roll the and auto-sort the initiative and start over. Its best used with APIs where you call mass roll every combatant's initiative all at once. I know this makes Mythras look like a daunting system to run (and it is), but I highly recommend it if you're interested in a fantasy RPG with more realistic combat and an intuitive skills system.
1644523780
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
That is a quintessential use of this thread. Good tip.
1644580527

Edited 1644581222
Andreas J.
Forum Champion
Sheet Author
Translator
Forum Post Formatting - Display Roll20 symbols &amp; buttons If you want to create a really good forum post and want to display some of the Roll20 UI icons in your text. You can go to <a href="https://wiki.roll20.net/Roll20_UI_Icons" rel="nofollow">https://wiki.roll20.net/Roll20_UI_Icons</a> and copy-paste the buttons you need to your post. Examples: Press the y to open Turn Order Settings . Press the Apply Changes to continue. On the N Journal -tab, press the + Add -button to add new character, handout or folder Delete is permanent, and can only be recovered with a rollback. Press c Upload to upload more content to your P Art Library , or o Add to add new folder GM Tips: move dead NPC tokens to @ Map layer ,so you won't accidentally select them for the rest of combat grab the ≡ to move a character to a different spot in your journal. ⋮ to edit player permissions for the token When you're on the D&amp;D 5E sheet, on the tab you can start the Charactermancer from the &nbsp;button
1644601152
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
That's pretty clever! I need to put those on a Text Blaze button...
1644742972

Edited 1649740582
Here are a couple of macros that I created for use with the Pathfinder by Roll 20 Sheet: The first one will prompt you for which type of save you are making (Fortitude, Reflex, Willpower) and make the selected save for the character you have selected. The second one prompts you for a skill to use, and will roll the selected skill for the selected character.&nbsp; As a DM, I added them to my collection tab as a token action, so I can quickly and easily make any skill check or save for any token on the board.&nbsp; Saves Macro: ?{Which Save?| Fortitude, &amp;{template:pc&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{Selected|character_name}&amp;#125;&amp;#125; {{name=Fortitude&amp;#125;&amp;#125;{{type=save&amp;#125;&amp;#125;{{roll=[[1d20+@{Selected|fortitude}[MOD]+(@{Selected|saves_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125;{{notes=@{Selected|fortitude_notes}&amp;#125;&amp;#125;{{conditionsflag=[[@{Selected|saves_condition}]]&amp;#125;&amp;#125;{{conditions=@{Selected|conditions_display}&amp;#125;&amp;#125; | Reflex, &amp;{template:pc&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{Selected|character_name}&amp;#125;&amp;#125; {{name=Reflex&amp;#125;&amp;#125;{{type=save&amp;#125;&amp;#125;{{roll=[[1d20+@{Selected|reflex}[MOD]+(@{Selected|saves_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125;{{notes=@{Selected|reflex_notes}&amp;#125;&amp;#125;{{conditionsflag=[[@{Selected|saves_condition}]]&amp;#125;&amp;#125;{{conditions=@{Selected|conditions_display}&amp;#125;&amp;#125; | Will, &amp;{template:pc&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{Selected|character_name}&amp;#125;&amp;#125; {{name=Will&amp;#125;&amp;#125;{{type=save&amp;#125;&amp;#125;{{roll=[[1d20+@{Selected|will}[MOD]+(@{Selected|saves_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125;{{notes=@{Selected|will_notes}&amp;#125;&amp;#125;{{conditionsflag=[[@{Selected|saves_condition}]]&amp;#125;&amp;#125;{{conditions=@{Selected|conditions_display}&amp;#125;&amp;#125; } Skills Macro: ?{Which Skill?| Acrobatics, &amp;{template:pc&amp;#125;{{name=Acrobatics&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|acrobatics}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Appraise, &amp;{template:pc&amp;#125;{{name=Appraise&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Appraise}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Bluff, &amp;{template:pc&amp;#125;{{name=Bluff&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Bluff}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Climb, &amp;{template:pc&amp;#125;{{name=Climb&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Climb}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Craft, &amp;{template:pc&amp;#125;{{name=Craft&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Craft}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Diplomacy, &amp;{template:pc&amp;#125;{{name=Diplomacy&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Diplomacy}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Disable Device, &amp;{template:pc&amp;#125;{{name=Disable_Device&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Disable_Device}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Disguise, &amp;{template:pc&amp;#125;{{name=Disguise&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Disguise}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Escape Artist, &amp;{template:pc&amp;#125;{{name=Escape_Artist&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Escape_Artist}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Fly, &amp;{template:pc&amp;#125;{{name=Fly&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Fly}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Handle Animal, &amp;{template:pc&amp;#125;{{name=Handle_Animal&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125; {{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Handle_Animal}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Heal, &amp;{template:pc&amp;#125;{{name=Heal&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Heal}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Intimidate, &amp;{template:pc&amp;#125;{{name=Intimidate&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Intimidate}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Knowledge - Arcana, &amp;{template:pc&amp;#125;{{name=Knowledge_arcana&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_arcana}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Knowledge - Dungeoneering, &amp;{template:pc&amp;#125;{{name=Knowledge_Dungeoneering&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Dungeoneering}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Knowledge - Engineering, &amp;{template:pc&amp;#125;{{name=Knowledge_Engineering&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Engineering}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Knowledge - Geography, &amp;{template:pc&amp;#125;{{name=Knowledge_Geography&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Geography}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Knowledge - History, &amp;{template:pc&amp;#125;{{name=Knowledge_History&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_History}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Knowledge - Local, &amp;{template:pc&amp;#125;{{name=Knowledge_Local&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Local}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Knowledge - Nature, &amp;{template:pc&amp;#125;{{name=Knowledge_Nature&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Nature}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Knowledge - Nobility, &amp;{template:pc&amp;#125;{{name=Knowledge_Nobility&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Nobility}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Knowledge - Planes, &amp;{template:pc&amp;#125;{{name=Knowledge_Planes&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Planes}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Knowledge - Religion, &amp;{template:pc&amp;#125;{{name=Knowledge_Religion&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Knowledge_Religion}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Linguistics, &amp;{template:pc&amp;#125;{{name=Linguistics&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Linguistics}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Perception, &amp;{template:pc&amp;#125;{{name=Perception&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Perception}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Perform, &amp;{template:pc&amp;#125;{{name=Perform&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Perform}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Profession, &amp;{template:pc&amp;#125;{{name=Profession&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Profession}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Ride, &amp;{template:pc&amp;#125;{{name=Ride&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Ride}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Sense Motive, &amp;{template:pc&amp;#125;{{name=Sense_Motive&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Sense_Motive}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Sleight of Hand, &amp;{template:pc&amp;#125;{{name=Sleight_of_Hand&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Sleight_of_Hand}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Spellcraft, &amp;{template:pc&amp;#125;{{name=Spellcraft&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|spellcraft}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Stealth, &amp;{template:pc&amp;#125;{{name=Stealth&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Stealth}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | Survival, &amp;{template:pc&amp;#125;{{name=Survival&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Survival}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Swim, &amp;{template:pc&amp;#125;{{name=Swim&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125; {{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|Swim}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; | &nbsp;Use Magic Device, &amp;{template:pc&amp;#125;{{name=Use_magic_device&amp;#125;&amp;#125; {{type=skill&amp;#125;&amp;#125;{{showchar=[[1]]&amp;#125;&amp;#125;{{charname=@{selected|character_name}&amp;#125;&amp;#125;{{roll=[[1d20+@{selected|use_magic_device}[MOD]+(@{selected|skill_condition})[CONDITION]+?{Modifier&amp;#124;0&amp;#125;[QUERY]]]&amp;#125;&amp;#125; }
Code Style: Exists.
Hi, Keith and others! Long time stalker, zero time poster. I have a question about the token actions API. It's working pretty great, it certainly beats adding abilities manually via duplicated template... But I have a question. When clicking 'spells' it obviously brings up the menu of available spells, but when clicking ones with a saving throw - lightning bolt in this example, it doesn't roll any dice? Is there a way to make this work? I can obviously just roll the dice to myself but I'm wondering if that's normal??? I only ask because when I cast 'fireball' - that too has a saving throw, but it rolls the damage for that!! but not for some other spells that are similar. Also as a bit of an off-topic question... I've just got into using API's and scripts and I'm super new to it, but extremely impressed with how helpful and useful they are. Does anyone have recommendations for absolute 'musts'? I'd love to get some more awesome ones. We use Beyond20 so other things aren't really needed, but are there some DM tools that are incredible that I am missing out on? :D
1645014092
David M.
Pro
API Scripter
Hi Scuffed, since both of those questions are actually a bit off-topic to this thread (this is for presenting completed tips/tricks and not really for troubleshooting), I will PM you a solution to your spellcard output problem and a link to another thread discussing api scripts.
1645124952

Edited 1645125155
What am i doing wrong here? This one is not working: !me &amp;{template:default}{{name=Traps }}{{[Bear Trap](#trapbear) }} and then this one is exactly the same thing but it works! !me &amp;{template:default}{{name=Conditions }}{{ Dungeon Master = [Advantage](#Condition-Advantage ) [Disadvantage](#Condition-Disadvantage ) [Inspired](#Condition-Inspired ) }}
1645125334
Kraynic
Pro
Sheet Author
Dario M. said: What am i doing wrong here? This one is not working: !me &amp;{template:default}{{name=Traps }}{{[Bear Trap](#trapbear) }} and then this one is exactly the same thing but it works! !me &amp;{template:default}{{name=Conditions }}{{ Dungeon Master = [Advantage](#Condition-Advantage ) [Disadvantage](#Condition-Disadvantage ) [Inspired](#Condition-Inspired ) }} I would recommend that you create a thread for your issue.&nbsp; This thread is meant for finished tricks.
Thank you for your help! Kraynic said: Dario M. said: What am i doing wrong here? This one is not working: !me &amp;{template:default}{{name=Traps }}{{[Bear Trap](#trapbear) }} and then this one is exactly the same thing but it works! !me &amp;{template:default}{{name=Conditions }}{{ Dungeon Master = [Advantage](#Condition-Advantage ) [Disadvantage](#Condition-Disadvantage ) [Inspired](#Condition-Inspired ) }} I would recommend that you create a thread for your issue.&nbsp; This thread is meant for finished tricks.
I'm using a lot of useful tips here on the forum and I came across this: In my RPG game, the enemy's defense can be higher than the attack, and when this happens the damage dealt is equal to 1. However, I don't know how to show this in a roll. Is it possible? round a number using this function $[[0]]? Anyone who can help with this issue will solve all my problems. LOL
1645714730
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Hi&nbsp;Raitakamichi, It would be better to create your own thread for this question. This thread isn't for problem solving, but for sharing a finished trick that uses the Roll20 tools in a novel way.
keithcurtis said: Hi&nbsp;Raitakamichi, It would be better to create your own thread for this question. This thread isn't for problem solving, but for sharing a finished trick that uses the Roll20 tools in a novel way. My Bad, I created this topic in several different places because I didn't know where I could find help, thanks
1645848494

Edited 1645859473
Raitakamichi said: ...In my RPG game, the enemy's defense can be higher than the attack, and when this happens the damage dealt is equal to 1. However, I don't know how to show this in a roll. Is it possible? Roll20's "kh#" function could help; referencing "Keep Highest #", example: Keep Highest 1: kh1. Additionally, you might want to edit your original message to direct anyone who can help you to where this topic was moved to. /roll 2d20kh1 Edit: I wasn't inviting off-topic discussion; I was telling them to edit their original post here to show they had made a new thread like they had been asked; in addition to answering their question; complete with Roll20's possibly most frequently rolled dice roll in a quick example they can actually use.
1645850052
GiGs
Pro
Sheet Author
API Scripter
Blue64 said: Raitakamichi said: ...In my RPG game, the enemy's defense can be higher than the attack, and when this happens the damage dealt is equal to 1. However, I don't know how to show this in a roll. Is it possible? Roll20's "kh#" function could help; referencing "Keep Highest #", example: Keep Highest 1: kh1. Additionally, you might want to edit your original message to direct anyone who can help you to where this topic was moved to. /roll 2d20kh1 Blue, you should know better than to answer questions in this thread. Simply tell people this is not a thread for questions and invite them to open a new thread - anything else invites off-topic discussion.
1647138935

Edited 1647138995
Sam
Pro
Sheet Author
Hey, Scott C. I love your macro encoding sheet! I noticed that the ability check macros used the ability saves instead of the ability mods as they should. I fixed that in my sheet and you are welcome to incorporate it into yours. The only other variation I made is that instead of asking the user to roll advantage, I changed the macros to just always roll both die. Macro Encoding Sheet
1647180976
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Thanks Sam! I built that mostly as an example of how the macro sheet works, but I've corrected those errors in the master sheet.
1647636650
G.M. Joe
Pro
Sheet Author
Oosh said: That's probably about a long enough post. Oh! One more thing. You can actually use this trick to recreate the NPC Chat Menu with Keith's inline link fix, *and* hiding invalid actions, all without installing Stylus. I don't think you can hide the line-breaks using this method , so the Stylus one is probably still better. But at least this works out of the box and doesn't require anything to be installed, I guess: /w gm &amp;{template:npcaction} &amp;{noerror} {{rname=@{selected|character_name}}} {{name=@{selected|npc_type}}} {{description=[@{selected|repeating_npcaction_$0_name}&amp;nbsp;](~@{selected|character_name}|repeating_npcaction_$0_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$0_name|max}inline) [@{selected|repeating_npcaction_$1_name}&amp;nbsp;](~@{selected|character_name}|repeating_npcaction_$1_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$1_name|max}inline) [@{selected|repeating_npcaction_$2_name}&amp;nbsp;](~@{selected|character_name}|repeating_npcaction_$2_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$2_name|max}inline) [@{selected|repeating_npcaction_$3_name}&amp;nbsp;](~@{selected|character_name}|repeating_npcaction_$3_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$3_name|max}inline) [@{selected|repeating_npcaction_$4_name}&amp;nbsp;](~@{selected|character_name}|repeating_npcaction_$4_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$4_name|max}inline) [@{selected|repeating_npcaction_$5_name}&amp;nbsp;](~@{selected|character_name}|repeating_npcaction_$5_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$5_name|max}inline)}} I was real happy to find Oosh's trick for making chat menus without stylus or API, but the line break annoyed me too. I was able to get rid of it by changing where the break is. I don't know anything about coding, but if my guess is correct, the break gets lumped in with the name display, so if nothing gets displayed, the line break won't occur. I've tested this with a rather long version I use in my PF2E game, so double check this version if you try to use it:&nbsp; /w gm &amp;{template:npcaction} &amp;{noerror} {{rname=@{selected|character_name}}} {{name=@{selected|npc_type}}} {{description=[@{selected|repeating_npcaction_$0_name}&amp;nbsp; ](~@{selected|character_name}|repeating_npcaction_$0_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$0_name|max}inline)[@{selected|repeating_npcaction_$1_name}&amp;nbsp; ](~@{selected|character_name}|repeating_npcaction_$1_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$1_name|max}inline)[@{selected|repeating_npcaction_$2_name}&amp;nbsp; ](~@{selected|character_name}|repeating_npcaction_$2_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$2_name|max}inline)[@{selected|repeating_npcaction_$3_name}&amp;nbsp; ](~@{selected|character_name}|repeating_npcaction_$3_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$3_name|max}inline)[@{selected|repeating_npcaction_$4_name}&amp;nbsp; ](~@{selected|character_name}|repeating_npcaction_$4_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$4_name|max}inline)[@{selected|repeating_npcaction_$5_name}&amp;nbsp; ](~@{selected|character_name}|repeating_npcaction_$5_npc_action" style="border:none;background-color:rgba(0,0,0,0&amp;rpar;;color:blue;font-weight:bold;display:none;display:@{selected|repeating_npcaction_$5_name|max}inline)}}
I'm using a module with many macros supplied and wanted a way to easily find the macros I created. I get all of my created macros to sort to the top of the list by starting all of my macro names with period (.) immediately before the first letter of the macro name I want to use.&nbsp; It is so small that it doesn't interfere with the readability of the macro name in the list or in buttons. For example: .Select-Party-Member
1648181448
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Good addition. That's much less obtrusive than the method of using numbers at the beginning. (Token Action Maker uses a similar trick. To keep an Action safe from accidental deletion or overwriting by the script, it ignores any Action that ends in a period.)
1648253006

Edited 1648253031
This is how I set up my monsters. First find a threatening picture on the interwebs, right click and "Copy Image Address". I don't use bar3 for anything else, so paste the address into bar3. Highlight and copy the character sheet data, all of it, paste it into bar3_max. When your players encounter the monster, select it and use this macro: [Image](@{selected|bar3}#.png) /w GM @{selected|token_name} /w GM "@{selected|bar3|max}" The players see: The setup view: The GM view: You get a quick overview of the capabilities, strengths &amp; weaknesses, without opening the sheet. Assuming you have set up macros for the monster, you have no need to open the sheet.