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

gmnote.js help

hey, i'm trying to get gmnote working and need a little help. I followed Nick's video and installed the script and altered the line of code, correctly (the api didn't crash and rebooted), but this is what happens even though i added text to the token. any ideas as to what is wrong? The only thing I can think of is "(name)" needs to be changed, but to what? I am using a custom sheet. Thanks.
1584716086
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Two possibilities: 1)  It could a corrupted Chat Archive. Unlikely if everything else is functioning correctly, though. A game's Creator is often able to fix issues with their Text Chat by  clearing the Chat Archive  (note: not  clearing your current Chat Log ). A GM might want to copy/back up the Chat Archive before the Creator clears it. 2) Script problem. There are several versions of that script floating around. If you are using  the D&D 5th Edition by Roll20 sheet, try using my Supernotes script. It's based on GMNotes, and does a few more things. There are config notes in the comments at the top if you use a different sheet.
1584716868

Edited 1584717148
Thanks. working on it. here is my code on the gitub in case it helps. The sheet is my own modified Conan 2d20 sheet.
1584717062
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
That's the code for your custom character sheet, not an API script.
correct. oh, do i need to put any code in the token?
1584718008
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
No, it goes on your API page. Where did you take your screen shot, above?
do html attribute tags for my sheet (name="attr_character_name") affect anything?
1584718771

Edited 1584718870
keithcurtis said: No, it goes on your API page. Where did you take your screen shot, above? i used the snipping tool to take some captures, then edited them all together in paint.net. the api is in the api page, where it goes, and the script engine rebooted fine. i'm wondering if there is an issue with another api script...
1584718941
Kraynic
Pro
Sheet Author
Well, if they aren't there, that input won't save any entries when the sheet is closed, and there won't be an attribute for macros to call values from. #1 in common mistakes: <a href="https://wiki.roll20.net/Building_Character_Sheets#Common_Mistakes" rel="nofollow">https://wiki.roll20.net/Building_Character_Sheets#Common_Mistakes</a>
1584721259
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
I'm beginning to get a glimmer of understanding here. Does your sheet have any built-in roll templates? If not that chat output line won't do anything. It's built to interact with a specific roll template. Nick's line was designed to work with Pathfinder, IIRC. Change that chat line to: sendChat(o.get('name'),'/w gm &amp;{template:default}{{='+ decodeURIComponent(decodeUnicode(o.get('gmnotes')))+'}}'); That uses the default template and will work with anything.
that's even worse. i don't use roll templates; my attacks look like this:
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;div class="sheet-break"&gt;&lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="sheet-header"&gt;Weapons&lt;/div&gt; &lt;b&gt;GM needs to create a rollable table called "Combat-Dice" with name values of "1","2","-","-","1 + Special Event","1 + Special Event". GM needs to create a rollable table called "hit-location" following armour layout already on sheet.&lt;/b&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="sheet-repitem"&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fieldset class="repeating_Weapons"&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table border="1" style="width:100%"&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Name&amp;nbsp;&lt;input style=width:130px type="text" name="attr_weapon_Name_rep"/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Range/Reach&amp;nbsp;&lt;input style=width:30px type="text" name="attr_weapon_Reach_rep" /&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Grip&amp;nbsp;&lt;input style=width:30px&nbsp; type="text" name="attr_weapon_Hands_rep" value='1H'/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Damage&amp;nbsp;&lt;input style=width:30px type="text" name="attr_weapon_Damage_rep" value='0'/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Bonus Damage&amp;nbsp;&lt;input style=width:30px type="text" name="attr_weapon_Damagebonus_rep" value='0'/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Loads&amp;nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class="sheet-normal sheet-zero" type="radio" name="attr_Loads" value="0" title="" checked="true"/&gt;&lt;span&gt;&lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class="sheet-normal sheet-1" type="radio" name="attr_Loads" value="1" title="1"/&gt;&lt;span&gt;&lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class="sheet-normal sheet-2" type="radio" name="attr_Loads" value="2" title="2"/&gt;&lt;span&gt;&lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class="sheet-normal sheet-3" type="radio" name="attr_Loads" value="3" title="3"/&gt;&lt;span&gt;&lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class="sheet-normal sheet-4" type="radio" name="attr_Loads" value="4" title="4"/&gt;&lt;span&gt;&lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class="sheet-normal sheet-5" type="radio" name="attr_Loads" value="5" title="5"/&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;&lt;/tr&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table border="1" style="width:100%"&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Qualities&amp;nbsp;&lt;input style=width:720px type="text" name="attr_weapon_Notes_rep" value='None'/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Roll&amp;nbsp;&lt;button type='roll' name="roll_Combat-Dice" value="/me attacks with a @{weapon_Name_rep} dealing [[(@{weapon_Damage_rep}+@{weapon_Damagebonus_rep})t[Combat-Dice]]] damage to the foe's [[t[hit-location]]] , having @{weapon_Notes_rep} Qualities."&gt;&lt;/button&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- ?{Added Damage Dice|0}+ --&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;&lt;/tr&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fieldset&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt; &nbsp;&nbsp;&nbsp; &lt;/table&gt; &lt;/div&gt;
@Kraynicafter a hard look, i don't really see any common mistakes.
1584737760
Kraynic
Pro
Sheet Author
I gave you a link direct to that section of the wiki page... Common Mistakes is the header of the section with 6 numbered listings under it.&nbsp; The very first one: 1. &nbsp; Forgetting to name attributes with the&nbsp; attr_ &nbsp;(e.g.&nbsp; &lt;input type="number" name="attr_dexterity"&gt; &nbsp;vs.&nbsp; &lt;input type="number" name="dexterity"&gt; ). This results in no data being saved in the field after the sheet is closed.
to confirm, i think you're saying the button is bad? want to be sure before i break something else in the&nbsp; sheet.
1584739006
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
This is confusing. First post said that you were trying to get GMnotes script to work. I ask for clarification You posted sheet code. which has nothing to do with GM notes. GM notes calls a roll template. If your sheet has no roll template, GMnotes will produce nothing. (as per first post). I posted a version that uses the default template (which all sheets can use). You post an attack macro using /em and more sheet code. What are you trying to do?
1584739237
Kraynic
Pro
Sheet Author
Randall S. said: do html attribute tags for my sheet (name="attr_character_name") affect anything? And this is what I have been responding to.
1584740175

Edited 1584740508
i am trying to get gmnote.js to work with my html that does not use templates. if that's impossibler than its impossible. as a non-programmer, i didn't know if there was some simple code edit that could get gmnote.js to work without the default template.
I think the bottom line i gather from your responses is that the sheet i am using, based off the official roll20 Conan 2d20 char sheet, needs to be rewritten with default templates to use some overall beneficial .js people on roll20 have created. Is that accurate?
1584741013
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
The gmnotes script has nothing to do with your html. It belongs on your API page in its own script. Here is a game with no sheet at all, the GMNotes script on the API page, and a token with a gmnote. The readout in chat uses the default roll template and was called by entering "!gmnote" in chat.
1584741145
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Randall S. said: I think the bottom line i gather from your responses is that the sheet i am using, based off the official roll20 Conan 2d20 char sheet, needs to be rewritten with default templates to use some overall beneficial .js people on roll20 have created. Is that accurate? No. the default template is available in all games, regardless of sheet. Many sheets have one or more custom roll templates, some of which are better suited for generic output, but the default template works anywhere.
1584741278
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Put this code on your API page. It has been tweaked to use the default template, as outlined above. on('ready',function(){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'use strict'; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; const decodeUnicode = (str) =&gt; str.replace(/%u[0-9a-fA-F]{2,4}/g,(m)=&gt;String.fromCharCode(parseInt(m.slice(2),16))); &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; on('chat:message',function(msg){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if('api' === msg.type &amp;&amp; msg.content.match(/^!gmnote/) &amp;&amp; playerIsGM(msg.playerid) ){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; let match=msg.content.match(/^!gmnote-(.*)$/), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; regex; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(match &amp;&amp; match[1]){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; regex = new RegExp(`^${match[1]}`,'i'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _.chain(msg.selected) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .map( s =&gt; getObj('graphic',s._id)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .reject(_.isUndefined) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .reject((o)=&gt;o.get('gmnotes').length===0) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .each( o =&gt; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(regex){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; let lines=_.filter(decodeURIComponent(decodeUnicode(o.get('gmnotes'))).split(/(?:[\n\r]+|&lt;br\/?&gt;)/),(l)=&gt;regex.test(l)).join('\r'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat(o.get('name'),`/w gm ` + lines); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else { sendChat(o.get('name'),'/w gm &amp;{template:default}{{='+ decodeURIComponent(decodeUnicode(o.get('gmnotes')))+'}}'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; });
then, why doesn't&nbsp; your sendChat(o.get('name'),'/w gm &amp;{template:default}{{='+ decodeURIComponent(decodeUnicode(o.get('gmnotes')))+'}}'); code work if it doesn't have anything to do with the char sheet? I am not trying to be argumentative; i just want to understand.
1584741465
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
One further note: unless a sheet title ends with "by Roll20" it is not an official sheet. Most of the sheets available for users are fan creations. Some of them are quite good, but they are not created or maintained by Roll20. The Conan 2d20 sheet is not an official sheet.
1584741598
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Because it utilizes the default template. The default template is independent of all sheets. It provides a roll template that anyone can use anywhere, irrespective of sheet or even the existence of a sheet at all. <a href="https://wiki.roll20.net/Roll_Templates#Built-In_Roll_Templates" rel="nofollow">https://wiki.roll20.net/Roll_Templates#Built-In_Roll_Templates</a>
Thank-you @mrkiethcurtis!
1584742021

Edited 1584742036
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
No worries about sounding argumentative. I can tell that there is a fundamental confusion here that were are trying to work past. All that script does is wait for a user to type "!gmnote", get the text from the token's gmnotes and send a formatted version to chat. It doesn't live on the sheet code. As written above, it will work with any game. If your sheet does happen to have a roll template with formatting you prefer to the default template, you can tweak the script to use the chat commands that produce that roll template. Nick O's version from the video showed how to tweak the script so it will work nicely in any game that happens to have the Pathfinder sheet installed.
1584762229

Edited 1584762315
I wanted to see what the script could do and see if I could change it to utilize it in my Conan game.&nbsp; It's very useful as a means of enacting other scripts, which is the point... The .js you rewrote works, however following Nick's video, i noticed that can be seen in the macro bar, but not as a token image. Do you know why?
1584766924
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Randall S. said: The .js you rewrote works, however following Nick's video, i noticed that can be seen in the macro bar, but not as a token image . Do you know why? Did you mean to say token action? When you write macro code, you can save it as a macro in the collections tab, or as an ability in the attributes and abilities tab. In either case, you can click the option to display it as a token action button (appears only when a token is selected), or a macro button on the macro quick bar (always available. In the case of GMNotes, you will always need a token selected, so you might as well save the screen real estate and have it be a token action. A macro saved on the collections tab that is told to be a token action button will appear whenever any token you control is selected. One saved on a sheet as an ability will only appear when that specific token is selected.
1584813794

Edited 1584813832
it doesn't show as a token Action.
1584824334

Edited 1584825105
Kraynic
Pro
Sheet Author
Is the token saved as the default on the sheet, or only in the token settings?&nbsp; That looks like you never went into the edit mode of the sheet to save the default token. Edit:&nbsp; Actually, there may be some sort of glitch currently with token actions from sheet abilities.&nbsp; At least a new character created in a test game of mine didn't show a new ability I put in as a test. Ok, I had that backwards, and the glitch was an incorrect spelling on my part.&nbsp; If you don't go into the token settings and associate it with the character sheet, it won't get the macro abilities, because it isn't watching a sheet.&nbsp; It will do that whether saved as the sheet default or not.&nbsp; So, make sure your token (in the token settings) is pointed at the correct character sheet (not the incorrect one like I did in testing...).&nbsp; If it is just a generic token, it won't pick up anything from the sheet even if saved as the default token on the sheet.
1584825172
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
That is weird. My first suspicion would be that the token is not set up properly, since the settings you are showing look correct. If you would like to temporarily invite me to the game and give me GM powers, I'd be happy to look around, although this is game prep day for me and I might not be able to get to it immediately. In the meantime, the first thing I would do is double click on that token and make sure it is indeed assigned to that character sheet.
1584828202

Edited 1584828985
happily invited. please PM me your email so i canthen do so. thank-you kindly. 3dit: id doesn't appear you are in the player list. i tried to pm you. or if you pm me, i can then reply. edited: i'm an idiot. fixed.
1584836945
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
You got it working how you want, then?
1584845002

Edited 1584845241
yes, for the moment.I am on to working on current game for monday niht. thank-you for your help and time.
ok, one more thing... i am trying to show/hide token via: [Reveal Champion](!token-mod --ids - M3-3eTwR0KQbB24eSqF --ignore-selected --set layer|map) - send specified token to map layer This doesn't work however, and i think I know why, but i don't know how to fix it. I think it has to do with the extra token in the id.
1584857942
Kraynic
Pro
Sheet Author
I guess you have to decide exactly how many buttons you want to have scattered around.&nbsp; I generally leave everything generic, so it will work on any token I have selected.&nbsp; Then I create a chat menu of the options I am likely to use and set that as a token action, so that I have access to it on any token I select.&nbsp; I actually don't have anything set to move to the map layer, because I don't generally have any tokens there.&nbsp; For things that I have hidden on the gm layer, the menu item that moves them to the token layer simply looks like this: !token-mod --set layer|objects It does require you to select the token(s) you wish to move, so if that is a deal breaker for you, good luck getting the effect you are after.
1584858980
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Randall S. said: ok, one more thing... i am trying to show/hide token via: [Reveal Champion](!token-mod --ids - M3-3eTwR0KQbB24eSqF --ignore-selected --set layer|map) - send specified token to map layer This doesn't work however, and i think I know why, but i don't know how to fix it. I think it has to do with the extra token in the id. That should work assuming you have the right token id. That token ID looks a little odd. I don't think I've ever seen one with an internal hyphen, though I could be imagining it.
1584884797

Edited 1584884872
I am still having trouble with show/hide. It looks like everything is right, and i grabbed a new token without a hyphen in its id. Also, if you look at the buttons, they are showing code when they should show what's in the brackets. Music via roll20am works fine; you can see that those buttons show proper name in brackets. If anyone has any ideas as to how to fix this.,.. @keithcurtis, Please pm me so i can then send you an invite to game and i will make you gm. Thanks for the help everyone.
@Kraynic, I got the effect I am after. If you want to see how it works, watch Nick's video here .
1584916019
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
For anyone following along, the last issue was just some minor syntax issues: a missing space, and the wrong token ID.
keithcurtis said: Two possibilities: 1)&nbsp; It could a corrupted Chat Archive. Unlikely if everything else is functioning correctly, though. A game's Creator is often able to fix issues with their Text Chat by&nbsp; clearing the Chat Archive &nbsp;(note: not&nbsp; clearing your current Chat Log ). A GM might want to copy/back up the Chat Archive before the Creator clears it. 2) Script problem. There are several versions of that script floating around. If you are using&nbsp; the D&amp;D 5th Edition by Roll20 sheet, try using my Supernotes script. It's based on GMNotes, and does a few more things. There are config notes in the comments at the top if you use a different sheet. Hi Keith. Do you have a read me for your Supernotes script? I couldn’t find one on your github site. I’d very much like to start using this script for efficiency, but I’m a macro dummy and need some kind of instruction to get things going. :) Thanks.
1584975018
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Good point. I'll set one up today.
1584993933
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Mostly done, but there's a slight delay. The Aaron is helping me squash a small bug in it. Which is to say, I have presented him with what isn't working, what I've tried and asking, "Why! Why isn't this working?" When it is posted, though, it will have a lot of configuration settings for various sheets.
1585010522
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Supernotes how has a readme, half a dozen presets for different sheets, and its own thread .