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

Tokens can't see external light sources when "Line of Sight" isn't enabled.

Exactly as the post title says. I want to create a map that's illuminated for the players by various light sources scattered around, and I *don't* want Line of Sight enforced. But when I uncheck that option in the map settings, and I check "Has sight" for a player token, that token becomes unable to see any light beyond its own. Which is to say, if I set that token to emit light, and then I click on it and press Cmd+L to see what it sees, it sees within the radius of light that it's emitting, but sees no other light source. If I set that token to *not* emit light, that token sees nothing at all. The same applies to every token I place on the map, and on every map where I use these settings. And yes, I did check the "All players see light" box for all the light sources, and of course Global Illumination is turned off. In other words, I'm not seeing the behavior described in the wiki page on Dynamic Lighting: <a href="https://wiki.roll20.net/Dynamic_Lighting#Line_of_S" rel="nofollow">https://wiki.roll20.net/Dynamic_Lighting#Line_of_S</a>... The problem seems to be with the Line of Sight function. When I enforce Line of Sight in the map settings, I get exactly the behavior I'm expecting - tokens see areas illuminated by external light sources within their line of sight. But&nbsp;when I uncheck the Line of Sight option, Line of Sight is *still* being enforced in the map. That is, if I have a token that "Has sight" and emits light, and there are obstructions in the dynamic lighting layer within its field of vision, that token can't see what's on the other side of those obstructions, exactly as if those objects are obstructing the token's, well, line of sight. So turning off Line of Sight really isn't behaving the way it's supposed to at all, (except when Global Illumination is also turned on, in which case the token can see the entire map without obstruction, as expected.) I've followed the instructions on Solving Technical Issues. I'm using an updated version of Chrome, I disabled all extensions, and I cleared my cache. I also reproduced the error on two different computer systems: System 1 OS:&nbsp;Macintosh OS X 10.10.5 Web Browser:&nbsp;Chrome 48.0.2564.97 Javascript: Enabled Cookies: Enabled Screen Resolution:&nbsp;1440 x 900 Brower Size:&nbsp;1440 x 734 Color Depth:&nbsp;24 bit Flash Version:&nbsp;20.0.-1 System 2 OS: Windows Windows 7 Web Browser:&nbsp;Chrome 48.0.2564.97 Javascript: Enabled Cookies: Enabled Screen Resolution: 1366 x 768 Brower Size: 1366 x 643 Color Depth: 24 bit Flash Version: 20.0.-1 Here's the log, starting with when I log into the game, and ending with me playing around with the dynamic lighting settings and moving the token around: Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net https://*.googlesyndication.com <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> https://*.googlesyndication.com <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> https://*.googlesyndication.com <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> https://*.googlesyndication.com https://*.firebaseio.com https://*.googlesyndication.com https://*.opentok.com https://*.googlesyndication.com <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a>". Either the 'unsafe-inline' keyword, a hash ('sha256-EVWgYo3AKvfCQsC325T/XU8OqXDn5bzz9kkytfCqReY='), or a nonce ('nonce-...') is required to enable inline execution. /editor/:13 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net https://*.googlesyndication.com <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> https://*.googlesyndication.com <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> https://*.googlesyndication.com <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> https://*.googlesyndication.com https://*.firebaseio.com https://*.googlesyndication.com https://*.opentok.com https://*.googlesyndication.com <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a>". Either the 'unsafe-inline' keyword, a hash ('sha256-Tbd6rJvOw8vdjztA7tHGa3QeYN3L4e+0VDdY+tOnru0='), or a nonce ('nonce-...') is required to enable inline execution. app.js?1454428476:29 70 app.js?1454428476:30 TOUCH SUPPORTED: false app.js?1454428476:30 USING WEBGL ACCELERATION... app.js?1454428476:30 WEBGL STARTUP SUCCESS app.js?1454428476:25 select app.js?1454428476:25 Switch mode to select app.js?1454428476:40 Initializing new dice engine with randomness... app.js?1454428476:40 Using random entropy app.js?1454428476:43 Compiling sheet... app.js?1454428476:43 Found rolltemplate: pf_spell app.js?1454428476:43 Found rolltemplate: pf_attack app.js?1454428476:43 Found rolltemplate: pf_defense app.js?1454428476:43 Found rolltemplate: pf_generic app.js?1454428476:43 Found rolltemplate: pf_block app.js?1454428476:43 Found webworker script app.js?1454428476:43 Finding sheet rolls... app.js?1454428476:45 window resize app.js?1454428476:30 Final set zoom! app.js?1454428476:30 UPDATE GL SIZE! app.js?1454428476:30 Final set zoom! tutorial_tips.js:7 tuts loaded app.roll20.net/:1 Mixed Content: The page at '<a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a>' was loaded over HTTPS, but requested an insecure image '<a href="http://imgsrv.roll20.net/?src=paizo.com/image/content/Logos/PathfinderRPGLogo_500.jpeg" rel="nofollow">http://imgsrv.roll20.net/?src=paizo.com/image/content/Logos/PathfinderRPGLogo_500.jpeg</a>'. This content should also be served over HTTPS. sheetsandboxworker.js?20150125:182Starting up WEB WORKER app.js?1454428476:36 Final page load. app.js?1454428476:45 Refresh jukebox List! app.js?1454428476:36 Scan for new plays! app.js?1454428476:35 Auth'ed. app.js?1454428476:35 Go post auth! app.js?1454428476:35 initial setup app.js?1454428476:45 Refresh jukebox List! app.js?1454428476:35 Got players value... app.js?1454428476:35 joining game... app.js?1454428476:36 Scan for new plays! app.js?1454428476:43 Refresh Journal List! app.js?1454428476:43 Search took 12ms app.js?1454428476:38 refershing page listings! app.js?1454428476:34 Player -K3ATYSJiF_7eij9MsX2 is offline... app.js?1454428476:34 Global Volume: 100=1 app.js?1454428476:34 Player -K4SxLQ9kBhCLgdwUW1R is offline... app.js?1454428476:34 Player -K4T9pLVI1AWxD-d31BO is offline... app.js?1454428476:34 Player -K4VkhUonlsm68WP4f1V is offline... app.js?1454428476:34 Player -K6U4Iw9JgCNtHKfpEl- is offline... app.js?1454428476:34 Player -K7U5R-bk0aetHB0-59o is offline... app.js?1454428476:34 Player -K7ayxUWytjyyk9Tk49U is offline... app.js?1454428476:34 Player -K7dm0EZLQaTPXv-ol5T is offline... app.js?1454428476:35 Deferred finish joining... app.js?1454428476:29 Firebase Online 13app.js?1454428476:33 Full load page! app.js?1454428476:35 We have 18 pages app.js?1454428476:45 Refresh jukebox List! app.js?1454428476:36 Scan for new plays! app.js?1454428476:35 handle page changes app.js?1454428476:35 false app.js?1454428476:42 initiatlizing video chat app.js?1454428476:42 Connecting to WebRTC app.js?1454428476:45 Refresh jukebox List! app.js?1454428476:38 refershing page listings! app.js?1454428476:35 init active page! app.js?1454428476:33 activate page! app.js?1454428476:33 FULLY ACTIVATE VIEWS FOR PAGE. app.js?1454428476:43 Refresh Journal List! app.js?1454428476:43 Search took 86ms app.js?1454428476:32 Do refresh link cache! app.js?1454428476:33 Graphics: 7 app.js?1454428476:33 Paths: 0 app.js?1454428476:38 refershing page listings! app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1513" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1513</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1513" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1513</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1377" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1377</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1377" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1377</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1513" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1513</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1513" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1513</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1507" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1507</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1507" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1507</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1532" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1532</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1532" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1532</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1554" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1554</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1554" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1554</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1579" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1579</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1579" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1579</a>... 7app.js?1454428476:32 setting src app.js?1454428476:28 Cols: 2 Rows: 3 app.js?1454428476:28 Took 1ms to generate cache. app.js?1454428476:33 Reorder by ZORDER app.js?1454428476:33 Reorder by ZORDER app.js?1454428476:42 Connected to session app.js?1454428476:42 Someone just connected. app.js?1454428476:42 It's us? app.js?1454428476:45 window resize app.js?1454428476:30 Final set zoom! app.js?1454428476:30 UPDATE GL SIZE! app.js?1454428476:30 Final set zoom! app.js?1454428476:35 init active page! app.js?1454428476:33 activate page! app.js?1454428476:33 FULLY ACTIVATE VIEWS FOR PAGE. app.js?1454428476:33 Graphics: 39 app.js?1454428476:33 Paths: 87 87app.js?1454428476:29 new caster! app.js?1454428476:33 Reorder by ZORDER app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1554" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1554</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1554" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1554</a>... 23app.js?1454428476:29 new lamp app.js?1454428476:32 setting src app.js?1454428476:38 refershing page listings! 2app.js?1454428476:32 setting src app.js?1454428476:33 Reorder by ZORDER app.js?1454428476:32 setting src app.js?1454428476:28 Cols: 3 Rows: 4 app.js?1454428476:28 Took 1ms to generate cache. 11app.js?1454428476:29 new lamp app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! 2app.js?1454428476:29 new lamp app.js?1454428476:30 Final set zoom! app.js?1454428476:30 [464.5, 1760] app.js?1454428476:30 UPDATE GL SIZE! app.js?1454428476:30 Debounced init page! app.js?1454428476:35 init active page! app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... 3app.js?1454428476:32 setting src app.js?1454428476:38 refershing page listings! app.js?1454428476:30 Final set zoom! app.js?1454428476:30 [3845.8333333333335, 2933.3333333333335] app.js?1454428476:30 UPDATE GL SIZE! app.js?1454428476:30 Debounced init page! app.js?1454428476:35 init active page! app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... app.js?1454428476:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1578" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1578</a>... 3app.js?1454428476:32 setting src app.js?1454428476:28 Cols: 2 Rows: 2 app.js?1454428476:28 Took 1ms to generate cache. app.js?1454428476:38 refershing page listings! app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! app.js?1454428476:29 new lamp app.js?1454428476:32 Object {left: 529, top: 1469, width: 70, height: 70, z_index: 0…} app.js?1454428476:32 Object {left: 385, top: 1365, width: 70, height: 70, z_index: 0…} 2app.js?1454428476:29 new lamp app.js?1454428476:35 init active page! app.js?1454428476:38 refershing page listings! app.js?1454428476:29 new lamp Any help would be appreciated, thanks.
I just want to add that I reproduced the problem on a third system (also Windows 7), as well as on the latest version of Firefox on my Mac. The bug persisted in each case, so I don't think the problem is on my end, at least as far as operating systems and browser versions go.
1454581850
Gen Kitty
Forum Champion
Thank you for the bug report, a Dev will be by to poke at this :)
1454694285
Phil B.
Forum Champion
Sheet Author
Hey Carlo, this is happening because the CMD+L shows you, specifically "Line of sight" for that token. So, even if you have LoS disabled, if you are using CMD+L you will still only be able to see light within the token's LoS. A way to test this specific case is to use the "Re-Join as Player" button at the bottom of the Settings menu, this way you will be able to see what all of your players see. If you want to test this with a specific token be sure to assign that token to "All Players" or to you before you switch to player mode. I hope this helps!
&gt;&nbsp;So, even if you have LoS disabled, if you are using CMD+L you will still only be able to see light within the token's LoS. Right, but what I'm saying is that this isn't what's happening. If I use CMD+L and LoS is disabled, I can't see any light within that token's LoS, except for whatever light that that token itself is emitting. Even a lit torch just 5 feet away (or in the same square) can't be seen. I do take your point though about obstructions still blocking light from that token when I use Cmd+L; I understand now that this is the expected behavior. And you're right that using "Re-Join as Player" shows me what the players can see, and it does look like the expected behavior, which I suppose is the most important thing. So your response helps a lot, thank you. The only problem is the Cmd+L function; this bug makes it essentially useless when LoS is disabled. I thought that the point of that keyboard command is for the GM to easily see what the players are seeing, but if their tokens aren't emitting light (which is usually the case in my game), I don't see anything at all. It forces me to keep switching back and forth between "Re-Join as Player" and "Re-join as GM" just to see how the map looks to my players, and if I want to see what it looks like for just one player, I have to de-assign myself from the tokens of all the other players, and then re-assign myself when I'm done checking. It's possible, but it gets old pretty fast.
1455147397
Phil B.
Forum Champion
Sheet Author
Sorry for the late response, I missed the reply somehow. I see what you're saying now and can confirm that this is happening, and probably shouldn't be. I'm thinking it might not be an easy fix to turn on LoS for just that token for just that one action, though I'm not really sure. I'll add it to our bug list, and I'll talk to the other devs tomorrow morning. Thanks for your help in finding this, and explaining it....several times. :P I hope the "as Player" view will tide you over in the mean time.
Thanks, I appreciate it! I will reiterate that, contrary to what I first thought when I posted this, players are actually still seeing the expected and desired behavior when LoS is turned off. So this really just amounts to an inconvenience for the GM, rather than something that breaks the map I was trying to make, as I originally thought.