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

[Script Update] Observer -- Visibility manager for your Streaming Camera Player, or Control management for your in person games!

1488989369

Edited 1498521588
The Aaron
Pro
API Scripter
Observer v0.1.3 Update v0.1.6 -- Fixed issue with vision modes (Thanks&nbsp; Olivier ) Update v0.1.4 &nbsp;-- Changed the use of filterObjs() to findObjs() to take advantage of indexing. Update v0.1.3 &nbsp;-- Fixed crash issue with latest version of GroupInitatiave. (Thanks&nbsp; Malkindred ) Update v0.1.2 -- Added some logic to force the vision to update when changing controlledby. Fixed a typo. I threw this together to allow GMs to designate a Player (probably an alternate account) to be an Observer. Observers are kept on the ControlledBy list for all characters that have something else on that list (PCs). In situations where those characters are on the VTT, Observers can see from all of them at once, giving your Stream or in person players a view of the whole party. Additionally, when the Turn Order is up, the view is restricted to only the current token. This can be configured several ways, including being turned off. Commands !observer -- Show help and configuration options !observer --add &lt;Player&gt; [&lt;Player&gt; ...] -- Adds the specified players as Observers. !observer --del &lt;Player&gt; [&lt;Player&gt; ...] -- Removes the specified players as Observers. Configuration Options Initiative Restriction causes the visibility of observers to be restricted to just the token whose turn it is, when the Turn Order is displayed. Initiative NPCs allows the observer to see from the perspective of NPCs when it is their turn and Initiative Restriction is on. With this setting off, vision will return to a "whole party" view during NPC turns. Initiative Tokens allows the observer to see from the perspective of Tokens with no Character when it is their turn and Initiative Restriction is on. With this setting off, vision will return to a "whole party" view during Characterless Token turns. For in person play, you like want the last 2 turned off. For streaming, you might want to have something interesting to show your viewers that the players don't get to see... This script supports GroupInitiative changes to the Initiative order and will detect when the !eot command is run in order to update the view on turn changes (TurnMarker and the like). General Notes When the turn order is on a Custom turn Marker, the view returns to a Whole Party view until it moves on. You will likely need to ping pull the view for your streamers, but players can move it themselves. In some cases, the view of the Observers doesn't update until something changes on the VTT. I was mostly able to mitigate this, but if it doesn't seem like it updates, just move something. Happy Rolling! Git: <a href="https://github.com/shdwjk/Roll20API/blob/master/Ob" rel="nofollow">https://github.com/shdwjk/Roll20API/blob/master/Ob</a>... Support my work on If you use my scripts, want to contribute, and have the spare bucks to do so , go right ahead. However, please don't feel like you must contribute just to use them! I'd much rather have happy Roll20 users armed with my scripts than people not using them out of some sense of shame. Use them and be happy, completely guilt-free! Disclaimer: This Patreon campaign is not affiliated with Roll20; as such, contributions are voluntary and Roll20 cannot provide support or refunds for contributions.
1489016122
Lithl
Pro
Sheet Author
API Scripter
Now... observe a split party! Mwahaha!
1489017456
The Aaron
Pro
API Scripter
Actually... that wouldn't be too hard. The hard part would be keeping them in screen.&nbsp;
1489090727

Edited 1489096600
Nice. I've been looking for this script for weeks (I had forgot the name). How long until this new version shows up in my drop down list? (Thanks for all that you do, BTW) [Edit 2] After trying it, it doesn't seem to work for me :( I'm using Group Initiative, TurnMarker, and Observer 013. I was hoping that by selecting all the player tokens and using Group Init, all the party shows up in the turn order (They do) and the marker is placed on the token with the highest init(This all works). I can then move from token to token i the turn order and the marker moves. No problem (anymore :] ). What I was hoping would happen now is that instead of clicking on each token and hitting CTRL-L to show just that token's see-able area, this script would do that as the turn order moves from character to character. I added a player as an Observer and I see the player in the help as an observer. That player is logged into a separate browser window but same PC. I have a DM screen on my main monitor and the player's view on a secondary TV screen. Thanks!
1489101819
The Aaron
Pro
API Scripter
Sorry, slightly frazzled from daily life right now, can you spell out the precise problem you're having? My brain is melting today.... =/
I hate it when my brain melts. Have you tried an ice pack? No rush on this.&nbsp; When I click on the turn order to move to the next token, what I would like/expect to happen is that its the same as me clicking on CTRL-L on the now active token. That doesn't happen. There's no change in [lighting] perspective as I move from token to token via the Turn Order.
1489110090
The Aaron
Pro
API Scripter
Ok. &nbsp;Do you have a second account logged in (not your GM account) and setup as the Observer? &nbsp;If you use your GM account for the observer, it won't have any effect as your GM account can always see everything unless you explicitly hit CTRL-L. There isn't a way to make it work with the GM account, unfortunately.
1489110145
The Aaron
Pro
API Scripter
I suppose, technically it might work with the GM account logged in as a Player, but that might cause issues with you both logged in at the same time. &nbsp;Best to have an account explicitly for Observer.
1489165950

Edited 1489204113
Yes. I have two windows open (Firefox since Chrome is giving me graphical issues, regardless of the Use Acceleration option). One firefox has GM logged in, the other is inCognito so I can log in as one of the players. The player name shows up in the Observer chat as an observer and has control of all 4 tokens in the game. When I switch between tokens the view doesnt change. Instead it appears that player1 has view of the entire party all the time regardless of whose turn it is.
1489166241
The Aaron
Pro
API Scripter
Ah. &nbsp;Try taking the Observer account explicitly off of each character. If you have TokenMod installed, you can select all the tokens that have characters and do this: !token-mod --set controlledby|-observer (assuming your observer player is named "observer" ) Observer will add observer characters to the character whose turn it is, but if they are already on all of them, it wont' remove them.
1489166381
The Aaron
Pro
API Scripter
Actually, I may have just lied to you...&nbsp; Can you show me the output of: !observer --help
Observer v0.1.3 Manages observer players, who are given the visiblilty (and control) of all player characters. This is useful for both podcasting views and local play on a single player screen. Note that observers will lose their former character associations when they are nolonger observers. Commands !observe [--help|--add|--del] --help - Shows the Help screen --add &lt;Player Name Fragment&gt; [&lt;Player Name Fragment&gt; ...] - Adds the matching players as observers. Partial names should work fine. --del &lt;Player Name Fragment&gt; [&lt;Player Name Fragment&gt; ...] - Removes the matching players as observers. Partial names should work fine. Observer Players Drake X Configuration Initiative Restriction causes the visibility of observers to be restricted to just the Token whose turn it is. On Initiative NPCs allows the observer to see from the perspective of NPCs when it is their turn and Initiative Restriction is on. With this setting off, vision will return to a "whole party" view during NPC turns. On Initiative Tokens allows the observer to see from the perspective of Tokens with no Character when it is their turn and Initiative Restriction is on. With this setting off, vision will return to a "whole party" view during Characterless Token turns. On
I have 4 characters, each with their own token. I have two players: me (GM) [Via Browser1 on the main laptop screen) and one other player [Drake] that I use to view the player's perspective on the 2nd monitor (which is a TV). Drake can view and edit and control all 4 characters. I need this since I have 2 browser windows: GM logged into Roll20 as me (GM) and Drake logged in as Player whose browser window is what I show on the 2nd screen / TV.&nbsp;
1489245720
The Aaron
Pro
API Scripter
hmm.. I've setup the same configuration on my end, but I'm not seeing the problem. &nbsp;Can you PM me a join link and GM me and I can try and work out the issue?
Yes, when I get a chance :) .. busy weekend and week. Thanks so much for your time and expertise!
1489428858
The Aaron
Pro
API Scripter
no worries, just drop it whenever and I'll join. =D
Aaron, I am using your script &nbsp;(or trying to) but when I assign an observer the game slows to a crawl. We are playing in a face to face game with two players connecting remotely. I made the "table" &nbsp;and the two remote players observers and gave control of the PCs and NPCs to the DM, table and the two remote players. Am I doing something wrong or is it normal for this API to cause a lot of lag?
1489518197
The Aaron
Pro
API Scripter
Hmm. &nbsp;You shouldn't ever need to add the DM to the controlled by list except if the DM is going to rejoin as a player and play a specific set of characters. &nbsp;That shouldn't cause any slowdown, but it is different than I would set things up and it would affect the logic used to determine if a character is an NPC (not controlled by entries) or a PC (1 or more controlled by entries). &nbsp;Still, I'd not expect that to slow things down. If you only have it set to Observer for the Table, is there a difference in performance?
No, as soon as I add an observer it slows down. Now I do have a ton of stuff in the journal that the players have control over (control set to all players) like spell templates, a lot of spell templates.
1489520479
The Aaron
Pro
API Scripter
hmm.. shouldn't be an issue... &nbsp;Would you be interested in letting me provide you a copy of Observer that has some instrumenting to determine timing to try and track it down?
Sure that would be great.
1489521987
The Aaron
Pro
API Scripter
Update v0.1.4 -- Changed the use of filterObjs() to findObjs() to take advantage of indexing.
1489522088
The Aaron
Pro
API Scripter
Actually, try the 1.4 version I just pushed. &nbsp;There were 3 places it was calling filterObjs(), which has to look at all objects to find the things to operate on. &nbsp;1 of those places was only looking for player objects, but the other two were part of adding and removing the observer on tokens. &nbsp;This might speed things up, so it's a good first pass test.
Ok, I'll try it tonight after work.
1489522717
The Aaron
Pro
API Scripter
Cool. &nbsp;Let me know if that fixes it, if not, I'll get you an instrumented copy. &nbsp;You probably know this already, but just to be sure: If you're using the 1-click version currently, you'll need to grab the version linked in the first post.