sfuqua / fvtt-token-visibility

Foundry VTT module for revealing tokens to players through the fog of war
MIT License
2 stars 1 forks source link

[Feature] More granular sharing #3

Open sfuqua opened 3 years ago

sfuqua commented 3 years ago

At the moment, sharing is all or nothing. If a token is visible to one player, it's visible to all players.

It may be desirable to opt players out of sharing. Need to think about scenarios here.

gitmon1234 commented 3 years ago

Compatibility with the Conditional Visibility module would be once scenario. That module lets you set tokens to be hidden based on the passive perception scores of other actors. So an enemy that takes the Hide action and rolls Stealth might be hidden from one player token, but seen by another with a higher perception score, even though it's in the same line-of-sight.

sfuqua commented 3 years ago

Compatibility with the Conditional Visibility module would be once scenario. That module lets you set tokens to be hidden based on the passive perception scores of other actors. So an enemy that takes the Hide action and rolls Stealth might be hidden from one player token, but seen by another.

I was actually talking to a user on Discord about this specific module a couple months ago and at the moment it's sort of a feature that it shares the visibility.

I view this the same as one player rounding a corner in a dark cave and seeing a goblin, which flags the goblin to all players. At the table this goblin would be represented with a mini and all players would be able to see where it is - even if "in-character" some of the PCs can't see the goblin yet.

Similarly if one player can spot the stealthed spy, all players obtain that information even if only one PC can see through the stealth.

How would you like the module to handle this case, since it's desirable for some player groups but not others? I'm interested in maybe adding it as an option but can't think of how I would expose this in settings.

gitmon1234 commented 3 years ago

For non-hidden tokens, I think the existing behavior of obeying the settings in the configuration menu (to either show or hide NPC tokens) work well. I currently have my world set so that when players select their (owned) token, they only see what's in their character's direct line of sight. But if they deselect their token, the view goes to shared party (observer) vision. That way, someone isn't staring at a black screen for four hours because they're on the other side of a wall.

But for hidden tokens, I think it would be nice if they were only displayed for the specific characters that can see them.

Being able to faithfully implement the D&D vision rules seems like a major advantage of VTTs over physical minis. RAW in D&D, even if a creature is behind total cover -- like a goblin around the corner in a cave -- you still know its position if you could reasonably detect it with your other senses (e.g. the sound of its footsteps, the direction of its horrible stench, etc.). The shared NPC visibility does a good job of emulating this. Similarly, RAW -- if a creature successfully makes a stealth check that beats your passive perception it is effectively "taken off the board" and you have no idea where it is.

I think it makes stealth feel a little less meta-gamey when you don't have to "pretend not to see" an enemy that successfully hid from you. When I used Polyglot to show different versions of the same prop to characters who spoke different languages, it was a massive hit -- and it gave the characters who spoke the relevant language a moment to shine and actually translate for the group, rather than me as the DM narrating, "Player A finds a note, which he translates and reads to you all. It says..." If I could do the same with stealth checks, I think I'd get a similar response.

Rather than the entire party having a collective passive perception equal to the highest player, the player that invested in perception would get some narrative spotlight time when they see things other players can't. The detecting player could say, "Watch out! There's a hidden spy ten feet to my left!", or they could use the drawing tool to circle the bush the spy is hiding in, but other players wouldn't be able to immediately see that token directly. This would also obscure its health bar and any related mouseover information, and prevent other players from selecting it with the targeting tool. Mechanically, this reinforces the verisimilitude of "you know there's a dude somewhere around there, but you can't actually see him."

There might also be situations (e.g. if the detecting player is also hidden), where communicating the hidden enemy's exact location would give the player away. If that information is automatically broadcast by the VTT, it's one less tactical choice for players.

Perhaps this could be implemented as another checkbox in the settings menu:

Either way, it's a moot point because Conditional Visibility is currently broken, so it may not be worth fussing with until Foundry 0.8 reworks token placement.

I also get weird interactions with hidden tokens, shared vision, and fog of war. I haven't tracked down exactly what's causing the issue (whether it's this mod or another one), but sometimes when I move a hidden token that is behind total cover (outside line of sight) for some or all players, it will "bleed through" the fog of war and show up on top of the black. Sometimes it will move on the players' screens in real time, and sometimes it will leave behind a "ghost token" in its original position. For now I've reverted to the default vision sharing using Observer permissions.