Invisible Tokens - The Notes Token
Edit: User Nick O. has made a video of this tip that you can find here.
All right, you have created an
invisible token attached to an NPC sheet as outlined above. The first and most common use is the Notes token. There are two ways to use this, the Free Subscriber method, and the API method (requires the
GM-Notes script by The Aaron). I'm only going to describe the first method in this post, as it's probably going to be quite long enough as it is.)
The Free Subscriber method
This way requires no API scripts, and can be used by any user at any level. This trick uses the ability of macros to query token attributes. Because each token is going to be used for a unique note, we are going to reference
token attributes, rather than the
character attributes on the sheet, which would be shared by all instances of the token.
Each of the bubbles on the token can contain text, as well as numbers. This text can be quite complex. Not only can it contain simple text, it can contain macros and even whole roll templates! We'll start off simple.
In the first value of bar one, write a note for the GM. Example:
"This room contains a trap with a DC 15 Dexterity save or take [[4d6]] bludgeoning damage from a fall"
Save your token. Now in chat, paste the following short macro:
/w gm @{selected|bar1}
This will whisper the contents of bar1 into the chat, for GM eyes only. If you are cutting and pasting text into the bar 1 field, be aware that it will post as one solid paragraph. But it will all be whispered.
If you don't want to type in the command every time you want to retrieve the note, open up the Info
character sheet (not the token editing box), and click over to the Abilities and Attributes tab. Create a new ability and call it "Note". Paste your code in there and save the ability. Make sure to click the button that says "Show as Token Action":

Now, whenever you click the Info token that only you can see, a button will appear on your token actions called "Note"
Click it and you should see the following in chat:

You can even spruce up the output a bit by editing your Note ability (not the info in bar 1) to use a roll template. The default template is a little bare bones for formatting, but your sheet may contain better options. Here is an example:
/w gm &{template:default} {{name=Note}} {{@{selected|bar1}}}

Now notice that you have 6 fields to play with, the current and max values for each of the three bars. You could create a separate macro ability and button for each one:
/w gm @{selected|bar1}
/w gm @{selected|bar1|max}
/w gm @{selected|bar2}
/w gm @{selected|bar2|max}
/w gm @{selected|bar3}
/w gm @{selected|bar3|max}
Each one could contain a different kind of info: Description, Damage, Picture (more on this in a moment) and so forth.

But that's an awful lot of buttons to put on your interface. You might prefer that, or you might prefer using a
Chat Menu. Go ahead and make the buttons as outlined above, but do not save them as token actions. Instead you only want one button that can call any of the notes. Change your existing notes ability macro to:
/w gm &{template:default} {{name=Note}} {{[Bar One](~Note1)=[Bar One Max](~Note2)}} {{[Bar Two](~Note3)=[Bar Two Max](~Note4)}} {{[Bar Three](~Note5)=[Bar Three Max](~Note6)}}
This will create a roll template with Ability Command Buttons (similar to API Command Buttons):

The syntax for an ability command button is
[button_name](~ability_name), where "ability_name" is a character ability on the same sheet. Thus
[Bar One](~Note1), displays a button called "Bar One", which calls the character ability called "Note1".
Pressing any one of these will return a whispered roll template from the appropriate field. Note that whenever you enter info into one of the "max" fields, your token will display status bars. If this bugs you, don't use those fields. In any case, they will still be invisible to the players. Also, remember that the default roll template is really sparse on display options. Become familiar with any roll templates provided by your sheet, you should be able to edit this into something prettier.
But what if I want to send stuff the players CAN see?
Simply reserve one or more of your notes fields as player-friendly by removing the "/w gm" from the front of the ability macro. For instance, if you wanted Bar One Max to show info for the players to read, the code would be:
&{template:default} {{name=Note Two}} {{@{selected|bar1|max}}}
Whew, this is turning out to be a much longer post than I had envisioned. I'll tackle an API method later, as well as other uses for invisible tokens (here are two from earlier in the thread -
Mood Lighting Token and
Quick and Dirty Invisible Token Tracking Using Basic Fog of War). I'll leave you with two more tricks to use with the Info token.
Emotes and descriptions
You can use a dedicated field to be an emote or a description. For example Bar 2 (referenced by the Note3 character ability above) could contain:
This dark chamber measures 10 feet by 10 feet and contains a treasure chest and an orc
Change your roll template on the Note ability to read:
/w gm &{template:default} {{name=Note}} {{[Bar One](~Note1)=[Bar One Max](~Note2)}} {{[Description](~Note3)=[Bar Two Max](~Note4)}} {{[Bar Three](~Note5)=[Bar Three Max](~Note6)}}
and the Note3 ability to read:
/desc @{selected|bar2}
which would produce:

And lastly Images
Often lost in the wealth of features of roll20 macros is the ability to display an image in chat, using the format
[image](URL)
You can place the URL for any image on the internet and call it up in chat Simply put the URL in Bar 2 Max (character ability Note4). I'm using a character I painted about a dozen year ago, Kurtak the Barbarian.
https://i.imgur.com/mvttQWt.jpg
Change your Note Chat macro to:
/w gm &{template:default} {{name=Note}} {{[Bar One](~Note1)=[Bar One Max](~Note2)}} {{[Description](~Note3)=[Image](~Note4)}} {{[Bar Three](~Note5)=[Bar Three Max](~Note6)}}
Your note4 macro to
[image](@{selected|bar2|max})
This will give you:

There are many, many more ways to use this info. Just remember that whatever is in those bar fields will come out in chat exactly as if you had typed them.