Stephen S. said: The roll20 user id can't be tricked out.... Brian suggested this a long time ago. What would be nice is if the roll20 user id was an avilabe part of the campaign object (which it has to be.) I think you're implying that my isGM script can be tricked, but I'd challenge you to try. :). You can't just check for (GM) on the end of a name because players could just set their name to include that (which is what I believe you were thinking of when you wrote that). However, you can check for (GM) on a name AND make sure it isn't on the name of the player object, which assures you it was added by Roll20 and not the player. You also must check that they aren't speaking as something else as well. My script does all of those things and caches the result by player ID, allowing fast lookups. :)