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

Nesting Abilities skips abilities

July 18 (8 years ago)

Edited July 18 (8 years ago)
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
For the game I run, I have a handy Ability Command Button menu for character's skills. It's really handy for my players as they don't have to dive into their sheets every time they need to know a bonus, and they don't have to have tons of token abilities or macro bar buttons. I'd like to tweak it though so that it doesn't pollute the chat log so much (right now I have it being whispered to the character, so it doesn't pollute chat in game). I've tried using /talktomyself on/off to accomplish this. First I tried:
/talktomyself on
--Text of the Macro--
/talktomyself off

That didn't work, so I thought maybe if I used nested macros it would work like this:
#talktomyselfon
--Text of the Macro-- OR %{Kindle|Skills}
#talktomyselfoff

But that just did an immediate cycling of talking to myself on and off, and skipped outputting the skills macro.

Anyone know if there is something screwy with nesting macros that use slash commands, or is it just talktomyself that causes this since it's affecting how the chat message (and therefore the macro) is recorded?

Scott
July 18 (8 years ago)
You'd have to make a macro to turn it on and turn it off.
July 18 (8 years ago)
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
ah well, was afraid that was the case. It's not a big enough problem (or really a problem at all) for me to tell my players they need to click a button for noarchive on, then the skills menu button, then the button to turn archiving back on; that kinda defeats the purpose of having one button for a skills menu rather than 5 for their most used skills.
July 18 (8 years ago)

Edited July 18 (8 years ago)
You should be able to just add /w Name in front to whisper the skills box to the player.

Whisper Skills: /w Kindle %{Kindle|Skills}
Skills Macro: &{template:default} {{name=Test}} {{1: One}} {{2: Two}}

That should work and keep it from spamming chat for everyone else. Alternatively, you could just put /w Kindle in front of the template to force it to always whisper.
July 18 (8 years ago)

Edited July 18 (8 years ago)
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
yep, that's how I have it now (/w Character_Name &{template:default}...). I was hoping to reduce the bloat of the out of game chat log, not so much the in game chat log as the /w takes care of that.
Would you be willing to consider a non-button'ized version that gives you a single macro button, a drop-down of Skill Categories (liek Athletics, Knowledges, Senses, etc) and outputs skillchecks for those categories, while reporting a '0' for any skill that requires training that has zero ranks in it?

The "Skill Checks(Alternate)" example towards the bottom of https://wiki.roll20.net/Macros_-_Pathfinder_Examp... details how to do that

It's specific to Pathfinder, and uses the Pathfinder Character Sheet, but the technique can be adapted to other systems.


July 18 (8 years ago)
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Yep, I've seen that (and I use a drop-down query system as a player in a game of the Strange I'm in). I've been debating switching the macro over to a drop-down system for a bit now. I'd probably actually go with outputs for each skill rather than the combined ones you've got there as we have some non-standard uses of skills (both from Iron Gods specific rules, as well as some house-rules) for interacting with technology; and I'd like there to only be one roll per output so that there's no complaints about which roll gets used when that intimidation roll is a nat 20, but the roll for the actual bluff that they are doing is a nat 1. But it would certainly be cleaner and would also prevent misclicks from occuring when OOC chat happens while people are trying to select skills.
Yup, all my characters.use it.  The knowledges are especially convenient when identifying what something is without giving away its nature (ie: If you're rolling Religion to ID  something, it's pretty much guaranteed to be undead, even if you roll a 1)

Declaring what you're rolling before you hit the macro solves the debate issue pretty succinctly. "Don't roll until I ask you to, and say what you're rolling first, please."
July 18 (8 years ago)

Scott C. said:

yep, that's how I have it now (/w Character_Name &{template:default}...). I was hoping to reduce the bloat of the out of game chat log, not so much the in game chat log as the /w takes care of that.
There is the hide whispers button at the top right of the out of game chat log.
July 18 (8 years ago)
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Yep, know that as well, was hoping for a way to just not record them as I've been noticing some load time issues that clearing the chat log solved. Thought preventing these extraneous whispers from being recorded would prolong the time between needing to clear the chat log.

Anyways, I swapped the macro to this:
?{Skills|Acrobatics +@{Acrobatics} &amp#124; @{Acrobatics-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Acrobatics &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Acrobatics} ]] ]] &amp#125;&amp#125;|Appraise +@{Appraise} &amp#124; @{Appraise-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Appraise &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Appraise} ]] ]] &amp#125;&amp#125;|Bluff +@{Bluff} &amp#124; @{Bluff-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Bluff &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Bluff} ]] ]] &amp#125;&amp#125;|Climb +@{Climb} &amp#124; @{Climb-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Climb &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Climb} ]] ]] &amp#125;&amp#125;|Craft +@{Craft} &amp#124; @{Craft-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Craft &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Craft} ]] ]] &amp#125;&amp#125;|Diplomacy +@{Diplomacy} &amp#124; @{Diplomacy-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Diplomacy &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Diplomacy} ]] ]] &amp#125;&amp#125;|Disable Device +@{Disable-Device} &amp#124; @{Disable-Device-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Disable Device &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Disable-Device} ]] ]] &amp#125;&amp#125;|Disguise +@{Disguise} &amp#124; @{Disguise-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Disguise &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Disguise} ]] ]] &amp#125;&amp#125;|Escape Artist +@{Escape-Artist} &amp#124; @{Escape-Artist-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Escape Artist &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Escape-Artist} ]] ]] &amp#125;&amp#125;|Fly +@{Fly} &amp#124; @{Fly-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Fly &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Fly} ]] ]] &amp#125;&amp#125;|Handle Animal +@{Handle-Animal} &amp#124; @{Handle-Animal-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Handle Animal &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Handle-Animal} ]] ]] &amp#125;&amp#125;|Heal +@{Heal} &amp#124; @{Heal-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Heal &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Heal} ]] ]] &amp#125;&amp#125;|Intimidate +@{Intimidate} &amp#124; @{Intimidate-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Intimidate &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Intimidate} ]] ]] &amp#125;&amp#125;|Knowledge(Arcana) +@{Knowledge-Arcana} &amp#124; @{Knowledge-Arcana-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Arcana) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Arcana} ]] ]] &amp#125;&amp#125;|Knowledge(Dungeoneering) +@{Knowledge-Dungeoneering} &amp#124; @{Knowledge-Dungeoneering-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Dungeoneering) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Dungeoneering} ]] ]] &amp#125;&amp#125;|Knowledge(Engineering) +@{Knowledge-Engineering} &amp#124; @{Knowledge-Engineering-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Engineering) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Engineering} ]] ]] &amp#125;&amp#125;|Knowledge(Geography) +@{Knowledge-Geography} &amp#124; @{Knowledge-Geography-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Geography) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Geography} ]] ]] &amp#125;&amp#125;|Knowledge(History) +@{Knowledge-History} &amp#124; @{Knowledge-History-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(History) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-History} ]] ]] &amp#125;&amp#125;|Knowledge(Local) +@{Knowledge-Local} &amp#124; @{Knowledge-Local-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Local) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Local} ]] ]] &amp#125;&amp#125;|Knowledge(Nature) +@{Knowledge-Nature} &amp#124; @{Knowledge-Nature-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Nature) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Nature} ]] ]] &amp#125;&amp#125;|Knowledge(Nobility) +@{Knowledge-Nobility} &amp#124; @{Knowledge-Nobility-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Nobility) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Nobility} ]] ]] &amp#125;&amp#125;|Knowledge(Planes) +@{Knowledge-Planes} &amp#124; @{Knowledge-Planes-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Planes) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Planes} ]] ]] &amp#125;&amp#125;|Knowledge(Religion) +@{Knowledge-Religion} &amp#124; @{Knowledge-Religion-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Knowledge(Religion) &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Knowledge-Religion} ]] ]] &amp#125;&amp#125;|Linguistics +@{Linguistics} &amp#124; @{Linguistics-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Linguistics &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Linguistics} ]] ]] &amp#125;&amp#125;|Perception +@{Perception} &amp#124; @{Perception-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Perception &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Perception} ]] ]] &amp#125;&amp#125;|Perform +@{Perform} &amp#124; @{Perform-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Perform &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Perform} ]] ]] &amp#125;&amp#125;|Profession +@{Profession} &amp#124; @{Profession-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Profession &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Profession} ]] ]] &amp#125;&amp#125;|Ride +@{Ride} &amp#124; @{Ride-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Ride &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Ride} ]] ]] &amp#125;&amp#125;|Sense Motive +@{Sense-Motive} &amp#124; @{Sense-Motive-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Sense Motive &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Sense-Motive} ]] ]] &amp#125;&amp#125;|Sleight of Hand +@{Sleight-of-Hand} &amp#124; @{Sleight-of-Hand-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Sleight of Hand &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Sleight-of-Hand} ]] ]] &amp#125;&amp#125;|Spellcraft +@{Spellcraft} &amp#124; @{Spellcraft-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Spellcraft &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Spellcraft} ]] ]] &amp#125;&amp#125;|Stealth +@{Stealth} &amp#124; @{Stealth-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Stealth &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Stealth} ]] ]] &amp#125;&amp#125;|Survival +@{Survival} &amp#124; @{Survival-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Survival &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Survival} ]] ]] &amp#125;&amp#125;|Swim +@{Swim} &amp#124; @{Swim-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Swim &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Swim} ]] ]] &amp#125;&amp#125;|Use Magic Device +@{Use-Magic-Device} &amp#124; @{Use-Magic-Device-ranks} Ranks,@{PC-whisper} &amp{template:pf_generic&amp#125; @{toggle_accessible_flag} @{toggle_rounded_flag}{{color=@{rolltemplate_color} &amp#125;&amp#125; {{header_image=@{header_image-pf_generic} &amp#125;&amp#125; {{character_name=@{character_name} &amp#125;&amp#125; {{character_id=@{character_id} &amp#125;&amp#125; {{name=Use Magic Device &amp#125;&amp#125; {{Check=[[ @{skill-query} + [[ @{Use-Magic-Device} ]] ]] &amp#125;&amp#125;}
It is a beast of a macro, but it does what I want, and I finally had the epiphany to use google sheets/excel to easily replace problem characters with this function:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3,"}}","||")," }"," |")," | "," | "),",",",")
July 18 (8 years ago)

Edited July 18 (8 years ago)
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
As long as you format your non-escaped version with spaces before the single brackets or the pipe, you're golden. Gah, didn't escape that enough, the excel function should be this:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3,"}}","& #125;& #125;")," }","& #125;")," | "," & #124; "),",","& #44;")

Minus the spaces in the entity codes of course.
July 18 (8 years ago)
You could always archive the chat log after each session. Just open it up in chrome or whatever and then hit CTRL + S to save it as an html file you can open later. Then you can clear the chat log before next session.