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 .
×
May your rolls be merry + bright! 🎄
Create a free account

Unshow handouts to players?

I use Roll20 as the engine of my hybrid virtual/analog tabletop. I have a projector hooked to my laptop and project the maps and everything else down onto a table that the players sit around and get the power of Roll20 while still getting to use their own minis and have that classical experience of sitting around a table with their friends. I have also done this at a few cons now and it is a big hit with every table of mine being full. Thanks Roll20 Team! The best method of use I have found so far is to use expand the desktop within windows to my laptop screen and the projector. I then open 2 browser windows to the Roll20 game, one as GM and one as a player. I put the player one over on the projector and hit f11 to fullscreen it. Good to go. The downside is that it is a bit tricky to navigate the cursor on the second screen. I am always expanding the limits of this technique and the one I would really like to start using is handouts that splash onto the screen. I think the idea of using them for NPC portraits, a scenic drawing of a place, or anything else would really be awesome. All things we likely already do in pure VTT. I want to be able to simply use the show to players feature of a handout and have it splash in as opposed to making a separate map for every pic I want to use. Is there a way I can "Unshow" a handout to the players? Not to get it out of their journals so much, just get it closed and off the tabletop?
1476843539
The Aaron
Pro
API Scripter
There isn't a way to do this that I know of, but try taking it out of their journal and see if that closes it. If it does, I can write you a script to toggle the in journal for all of them to force close them. Might work for characters too. 
1476843592
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
You can't unshow, but you can use shift-z on an image on the vtt to blow it up to full size
No luck with either approach. I'm thinking the only way to do it might be to request the feature over in the pro forum. I am hesitant to do that as this is very niche.
1476848052
Tetsuo
Forum Champion
If you aren't using roll20 for voice and video, toggling those settings will generally force a reload and close any open handouts
An option would be to use the page toolbar to create a new page and have the desired image on that page, then when the time is right move the red players tag over to the new screen then back to the map once they have bathed in your image goodness. I realise the players will not be able to refer back to the image at will, but it's an option.
1476873777

Edited 1476873913
The Aaron
Pro
API Scripter
Another option is to setup your handouts as Characters with the "token" being the image at a useful size. You can then drag them to the map to "show" them and delete the "token" to hide it again.  Alternatively, if the images in the handout are in your User Library, I could write a script to pop them on the map and take them off again, foregoing the character route. 
The Aaron said: Another option is to setup your handouts as Characters with the "token" being the image at a useful size. You can then drag them to the map to "show" them and delete the "token" to hide it again.  Alternatively, if the images in the handout are in your User Library, I could write a script to pop them on the map and take them off again, foregoing the character route.  That would be awesome! I had an epiphany earlier tonight at PFS to use a workaround, but a pop up would be so much cooler. What I have been doing is makeing the maps a couple of squares larger than the map at hand to provide a little buffer room. What I tried and found to mostly work tonight was to make the map much "taller" than required and to put the images at the bottom. This way, my projector still shows just the map as desired, but when I want to show a cool shot or the pic of the BBEG I can shit-click on the image to force player views to center there. I then repeat back up to the map. It mostly works and my players loved having a big pic of the monster to look at rather than a pawn or the traditional GM holding up the scenario printout which has a small pic on it. Problem was trying to move back to exactly where they were before if it is in mid combat or some other situation where free moving around is not permitted.
1476952636
Andrew C
Marketplace Creator
If you wanted to have the PCs talking with an NPC,  then maybe drop the portrait of the PC down as a "map" and just swap Maps for the PCs. Ditto for temporary knowledge handouts.
1476961915
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
For your workaround, try using shift z to display instead of shift clicking their view around. Will get more of that popout feel going.
1476967239

Edited 1476967284
The Aaron
Pro
API Scripter
AK said: That would be awesome! I had an epiphany earlier tonight at PFS to use a workaround, but a pop up would be so much cooler. What I have been doing is makeing the maps a couple of squares larger than the map at hand to provide a little buffer room. What I tried and found to mostly work tonight was to make the map much "taller" than required and to put the images at the bottom. This way, my projector still shows just the map as desired, but when I want to show a cool shot or the pic of the BBEG I can shit-click on the image to force player views to center there. I then repeat back up to the map. It mostly works and my players loved having a big pic of the monster to look at rather than a pawn or the traditional GM holding up the scenario printout which has a small pic on it. Problem was trying to move back to exactly where they were before if it is in mid combat or some other situation where free moving around is not permitted. Try this and see how the concept works: // mapScaleAvatar.js on('ready',function(){     'use strict';     var getCleanImgsrc = function (imgsrc) {         var parts = imgsrc.match(/(.*\/images\/.*)(thumb|med|original|max)(.*)$/);         if(parts) {             return parts[1]+'thumb'+parts[3];         }         return;     };     on('chat:message',function(msg){         if('api' === msg.type && msg.content.match(/^!msa/) && playerIsGM(msg.playerid) ){             _.chain(msg.selected)             .map( s => getObj('graphic',s._id))             .reject(_.isUndefined)             .map( t => {                 return {                     token: t,                     character: getObj('character',t.get('represents'))                 };             })             .reject( o => _.isUndefined(o.character))             .reject( o => ('' === o.character.get('avatar')))             .reject( o => (' '=== getCleanImgsrc(o.character.get('avatar'))))             .each( o => {                let g= createObj('graphic',{                     subtype: 'token',                     isdrawing: true,                     imgsrc: getCleanImgsrc(o.character.get('avatar')),                     left: o.token.get('left'),                     top: o.token.get('top'),                     width: (o.token.get('width')*10),                     height: (o.token.get('height')*10),                     pageid: o.token.get('pageid'),                     layer: 'objects'                 });                 toFront(g);             });         } }); }); Select a token(s) and execute the command: !msa For each selected token, if they have an avatar and it's in a User Library, it will create a graphic on the objects layer above everything else that is the avatar of that token, scaled x10 and centered on the token: When you're done sharing, just delete it. If that works out, I'll see about making a more complicated and interesting version. =D
1476978641
Gold
Forum Champion
Scott C. said: For your workaround, try using shift z to display instead of shift clicking their view around. Will get more of that popout feel going. You mentioned that to him earlier Scott, and he replied that it didn't work. The reason is the same as Handouts. There isn't currently a command to send that will close a handout or a pop-up (Shift-Z) on the other screen. You can close it on your own screen with a single click, yes, but GM can't forcibly close it on a Player screen. AK is using a 2nd screen, 2nd browser window, which is logged in as player. I like the Shift-Z technique too, and use it often in my games, but it is a problem for 2nd-screen and streamers since the popped-up image will eternally hover on an unmanned screen if there isn't someone there to click away from it. Granted, AK could "mouse over" to his 2nd screen and unpop the Shift-Z image with a click (or could manually close the Handout with the X on the second screen). If he doesn't mind mousing over to the 2nd screen every time, that could be the solution. AK said: No luck with either approach. I'm thinking the only way to do it might be to request the feature over in the pro forum. I am hesitant to do that as this is very niche. New feature suggestions go to the Suggestions forum actually (not the Pro forum), and you can also make requests in the API forum depending on what The Aaron replied about that in this thread. I'd agree with the Suggestion if you put one for suggesting adding a Shift-X to force-close the Shift-Z pop-up pictures; or changing the button atop all Handouts from "Show To Players" change to a toggle "Show To Players / Close Handout For All".
I see a sequel is already in the works!
1476982109
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Haha, I though I was hearing Unicorn Hoofbeats ;)
1476982158
The Aaron
Pro
API Scripter
Silvyre said: I see a sequel is already in the works! Ha!  Those are just test macros for the script.. =D  After posting, I wondered if anyone would notice those...
Aaron, I got it working. Thanks for the script! I presume that if I change: width: (o.token.get('width')*10), height: (o.token.get('height')*10), to 20s it will make it twice as tall and twice as wide? 30s would be 3x? I like the script and it is easy to use, but go big or go home! :P
1476991052
The Aaron
Pro
API Scripter
You are correct.  If that works well for you, I'll see about making a fuller script.
1476991217
The Aaron
Pro
API Scripter
The biggest concern will be the way that DL cuts up the image you zoom.  Could make a version that covers the whole map in a big black rectangle, turns off DL and puts a big image in the middle of the map, or possibly centered over a token like this script does, then another command to revert.  That wouldn't be too difficult, if you'd like to try it.
1476991889
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
What might happen to an avatar image that is not square? When I pop an image onto the token layer, it auto-scales to 1x1 before I do anything with it. Does the script account for original proportions?
1477004036
The Aaron
Pro
API Scripter
Ah, good point.  It will get stretched, no way to tell the scale from the API. =/
1477007211
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
It just means you'd need to plan ahead, I guess. If you don't want to have extra whitespace , either put in a square BG, or save as a png with a transparent square footprint.
1477007765
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Yeah, it scales anamorphically. And there's a bit of a problem if the token is within 4 squares of the edge of the map/screen.
1477007904
The Aaron
Pro
API Scripter
Yeah, would definitely go off the edge in that case.. can adjust for that...
1477011241
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Hmm. Graphics dragged to the map layer come in proportionately, don't they? Could the art be placed to that layer, scaled and then moved to the token layer?
I really appreciate the work guys. I would have never thought I people would be writing scripts on my behalf. Thank you.
1477013541
The Aaron
Pro
API Scripter
It's a joy to help. =D