A while back I wrote an API script that took the contents of the GMNotes field of a token and output that to the chat window. If the 'all players see light' option is ticked, then it also displays the graphic along with the text. Then create a macro like this: !room @{selected|token_id} I used it for room descriptions (there's a bit of code which strips off anything before a colon on the token name, which I used to hide the room number). I mostly used it as the GM, but it should work for players as well. A minor change to the sendChat call could be made so that the output is whispered directly to the player, so they don't fill up everybody's chat. A later script I wrote which did something similar for character tokens, either whispered it if a player ran the script, or broadcast it to everybody if the GM did. // API COMMAND HANDLER
on("chat:message", function(msg) {
if (msg.type !== "api") return;
if (msg.content.split(" ", 1)[0] === "!room") {
var player_obj = getObj("player", msg.playerid);
Room.Process(msg, player_obj);
}
});
var Room = Room || {};
Room.Process = function(msg, player_obj) {
var BOX_STYLE="background-color: #EEEE55; color: #000000; padding:0px; border:1px solid black; border-radius:5px;"
var TITLE_STYLE="background-color: #000000; color: #FFFFFF; padding: 1px; text-align: center";
var TEXT_STYLE="padding: 5px;"
var n = msg.content.split(" ");
var target = getObj("graphic", n[1]);
if (target != undefined) {
var title = target.get("name");
if (title != undefined ) {
if (title.split(":").length > 1) {
title = title.split(":")[1];
}
}
var image = target.get("imgsrc");
if (!target.get("light_otherplayers")) {
image = null;
}
var notes = target.get("gmnotes");
if (notes == undefined || notes.length == 0) {
sendChat("GM", "/w gm No notes found");
} else {
var html = "<div style='" + BOX_STYLE + "'>";
if (title != undefined) {
html += "<div style='" + TITLE_STYLE + "'>" + title + "</div>";
}
html += "<div style='" + TEXT_STYLE + "'>";
if (image != null) {
html += "<img src='" + image +"' width='100%'/>";
}
html += unescape(notes);
html += "</div>";
sendChat("", "/direct " + html);
}
} else {
sendChat("GM", "/w gm Nothing selected.");
}
};