Curious: Stealth Mechanics


Pathfinder Online

151 to 187 of 187 << first < prev | 1 | 2 | 3 | 4 | next > last >>
Goblinworks Executive Founder

Buri wrote:
Decius, I do apologize if I come across as marginalizing your view but I find the concept that a set of calculations that takes 0.000002 seconds which occupies roughly 5 KB of memory for my 200 character example to be technologically unfeasible to be pretty laughable in the age of multi-gigahertz, multi-core processors and memory capacities in the dozens of gigabytes. My phone can handle that processing load easily with its 1.4 GHz processor and 16 GB flash RAM. If it takes the donation of my phone to give PFO the stealth mechanic being discussed in this thread, then so be it. I'll gladly part with it so the game can have it and everyone can enjoy it.

Ok, so there are 200 characters being handled by the same hardware partition. That means there is a significant delay when any player joins the partition, because all the following databases have to be rebuilt (this penalty can be eliminated, but at the cost of creating a maximum number of players and scaling everything to that cost) Assume that all of them are permitted to attempt to hide.

It takes a minimum of 39,800 bits to simply store the results of which characters can see each other. Calculating each bit requires, at minimum, a compare operation of perception+modifiers versus stealth. If we assume that distance is the only modifier, then we only need four reads from RAM per comparison, followed by about twelve addition or subtraction operations. (mostly for estimating distance: |x1-x2|+|y1-y2|+|z1-z2| serves as a good estimate of distance but uses nine operations. The distance element needs to be converted into a perception modifier, (which I'm being conservative and calling arithmetic rather than a table lookup) and then perception+modifier needs to be compared to stealth. Then we need a write operation to put the value back into RAM. All of this hasn't done anything but set one of the bits which is checked each time an update is sent to a player. If you want some kind of indication anywhere that stealth status has changed, that's an additional read, compare, and occasional write operation.

Each time an update is sent to a player, we need 200 additional RAM calls per player to determine which characters are visible as part of the 200 additional conditional checks to determine what is sent. If we instead send "This is every event which happened since the last update and the current location and status of all movables", we need one RAM call for all players and zero conditionals.

There is no way with current CPU architecture than any of the data which needs to be in RAM could be stored in CPU cache. The tables just get too big, even at 5k, to live in cache along with the critical parts of the program. The optimizations above require significant changes to the client and server middleware, which requires that a programmer dig in deep enough to understand it- That could take upwards of a year.

I suppose you could drop the stealth checking onto it's own process, and let it update as it needs to. That would mean that there's different behavior for stealth based on how much server load there is.


It's been stated before but I'll state it again just for your benefit: you don't store the result of each possible permutation. These are real-time numerical checks via "num1 > num2." That's all you need to determine if my character can see yours given the Pathfinder stealth mechanic. The values of perception and stealth should be part of the data that's handled each and every character anyway so doing this check is simply consuming existing data and is why there is minimal overhead.

The values of my perception skill mod and your stealth mod should already by in memory because those are skills in the standard array of skills available to each and every character and may be called into question at any time. Roll the RNG (random number generator) every few seconds or make it event-based (collide with an object and you get a new roll type deal) and store the results. This should be part of the core skill mechanic already. All it would take to implement the stealth system here is to check perception versus stealth and if my character can see you then your info is sent to my game client. If I can't, you're not sent to me. That's it.

Are you familiar with the concept of CPU pipelining? As instructions are sent to the processor and queued, a memory module grabs relevant data for the next instruction so when the CPU finally executes a single instruction it doesn't hang so as to wait for said memory. You talk as if the processor has to wait for memory before it can execute it. Normally, yes, however, with pipelining (which is ubiquitous in today's processors) this isn't the case as memory fetching has already occurred by time the CPU executes an instruction.

Think of it as a car assembly line. My perception of your understanding of how processors operate would be similar to a factory (CPU) getting a request to make a car (do stealth) and the factory has to rush to produce that car as fast as possible (do all your reads and writes). Instead, how processors actually work is there is a factory (CPU) constantly churning out cars (processing game events) by logically adding pieces as necessary (fetching memory, for example) so as to provide a smooth flow of production (execution).

This shouldn't be a separate subsystem in the game. It should work in the culling phases of each game tick by simply comparing stealth to perception.

Goblin Squad Member

I prefer event based...although I think I would also support an active "perception" mode that can only be entered when not moving and not in combat (and maybe not wearing a helmet) that gives you a bonus to perception. This can help create the distinction of an active searcher versus passive observational powers. It also allows any character, even a new one with a low perception to be useful in that role...which is important to my hope that everyone can contribute at any level.

Goblinworks Executive Founder

Buri wrote:
It's been stated before but I'll state it again just for your benefit: you don't store the result of each possible permutation. These are real-time numerical checks via "num1 > num2." That's all you need to determine if my character can see yours given the Pathfinder stealth mechanic. The values of perception and stealth should be part of the data that's handled each and every character anyway so doing this check is simply consuming existing data and is why there is minimal overhead.

If you don't store the results of your culling, why do the calculation? If you're using location to cull, you can do it in linear time- assign each actor to zero or more groups based on location, and then send all information about all actors in each location to all players in that location. If two characters don't share a location, I don't even check to see if they are close enough to see each other.

Other interactions within a location still scale with n^2, if every actor must check against every actor.

Oh, and I was asserting that the memory controller would be the bottleneck, hence why I was focusing on the rapid read-to-write commands which occur on different pages.


You don't store the results of each perception to stealth check. The reason you don't store them is due to the overhead of maintaining that data and is therefore not maintainable for the very reasons you, yourself, have shown. I have already described this before so forgive me if I come across impatient because I am.

If any event requiring a new check would come about then you would have to rebuild each permutation with the changed data which would simply be insane. These events include characters both coming and leaving, your character doing something that would necessitate reevaluating stealth, another character using an ability that reveals your presence either to themselves or to all (glitterdust, for example), etc. This would be nuts.

Doing a real-time check simply compares skill values and sends only the relevant data at any given time and stays fluid to any circumstance affecting either the perception or stealth skills thus saving development time if GW would want to either introduce different mechanics that makes characters more stealthy or more perceptive and being situation agnostic which actually makes code more performant and not less.

Goblinworks Executive Founder

Buri wrote:

You don't store the results of each perception to stealth check. The reason you don't store them is due to the overhead of maintaining that data and is therefore not maintainable for the very reasons you, yourself, have shown. I have already described this before so forgive me if I come across impatient because I am.

If any event requiring a new check would come about then you would have to rebuild each permutation with the changed data which would simply be insane. These events include characters both coming and leaving, your character doing something that would necessitate reevaluating stealth, another character using an ability that reveals your presence either to themselves or to all (glitterdust, for example), etc. This would be nuts.

Doing a real-time check simply compares skill values and sends only the relevant data at any given time and stays fluid to any circumstance affecting either the perception or stealth skills thus saving development time if GW would want to either introduce different mechanics that makes characters more stealthy or more perceptive and being situation agnostic which actually makes code more performant and not less.

Hrm... I hadn't considered not tracking who could see what. Of course, now we need to make an additional check for every targeted ability- can the attacker see the target? If not, whiff with a "[TARGET] disappears into hiding". And you can save roughly half the read operations, because you're comparing sequentially each time you send a update; you could probably even not have to page any more than you already are by checking a lot of stuff about every actor.

And we still have the absurd situation where watching somebody doesn't make it harder for them to hide.


Now that is something the client can do, thankfully. If the target disappears, and you try to fire off an ability, you either simply fail or get a message saying you can't use an ability without a target (unless it's an AoE, self casting etc) because the client honestly can't find the target information as it's stopped receiving information about the target.

Goblin Squad Member

I would agree actively targeting an individual would give them a huge perception bonus were the target try to hide.

Goblinworks Executive Founder

Buri wrote:
Now that is something the client can do, thankfully. If the target disappears, and you try to fire off an ability, you either simply fail or get a message saying you can't use an ability without a target (unless it's an AoE, self casting etc) because the client honestly can't find the target information as it's stopped receiving information about the target.

No, I mean when the client says "Shoot an arrow at actor #534, when actor #534 is hidden from the player." It's a cheat detection/prevention thing, to cover cases where clients share information out-of-band, or where an edited client simply allows random attacks.

Of course, it also occurs when the client attacks someone just as they go into hiding, such that the attack was legal when the player made it but illegal when the server received it. Since there is no way to know how long the target has been hidden from the attacker, you have to assume the legal edge case, and you have to reject the attack as invalid.

Even if the client does communicate every change in target to the server, there's no way for the server to know if the target is hidden or not when you target it.


As I've said elsewhere, I don't think that should be disallowed since stealth is not a damage prevention mechanic. All it does, is let you go unnoticed. At best you get that 20% miss chance, according to Pathfinder.

Goblinworks Executive Founder

Buri wrote:
As I've said elsewhere, I don't think that should be disallowed since stealth is not a damage prevention mechanic. All it does, is let you go unnoticed. At best you get that 20% miss chance, according to Pathfinder.

The problem I noted was that it provides no advantage versus cheaters.


Sure it does. They still can't see you and any attacks against you get a 20% miss chance. For being otherwise unobstructed from them, that's a nifty perk. Even if you weren't pointed out by someone else, someone randomly swinging a sword could still hit you.

Goblin Squad Member

DeciusBrutus wrote:
Buri wrote:
Now that is something the client can do, thankfully. If the target disappears, and you try to fire off an ability, you either simply fail or get a message saying you can't use an ability without a target (unless it's an AoE, self casting etc) because the client honestly can't find the target information as it's stopped receiving information about the target.

No, I mean when the client says "Shoot an arrow at actor #534, when actor #534 is hidden from the player." It's a cheat detection/prevention thing, to cover cases where clients share information out-of-band, or where an edited client simply allows random attacks.

Of course, it also occurs when the client attacks someone just as they go into hiding, such that the attack was legal when the player made it but illegal when the server received it. Since there is no way to know how long the target has been hidden from the attacker, you have to assume the legal edge case, and you have to reject the attack as invalid.

Even if the client does communicate every change in target to the server, there's no way for the server to know if the target is hidden or not when you target it.

You are correct, but the server would have to do a varity of checks anyway to process such actions. Not just to prevent obvious exploitation but actualy process the attack.... and it already has to pull a variety of data elements from both the attacker and target objects. At it's most basic level, asking it to perform a stealth check is a minimal imposition of additional processing cost.

Lets look at some of the things the server already would have to do in order to resolve an attack.....

- Check to Determine whether the target is within effective range of the attackers weapon...."Target is 500 ft distant, therefore out of melee range of your dagger"

- Check to Determine whether the target is "legal" in terms of hostility and initiate some action if not. Remember with the Justice/Bounty/PvP systems that Ryan was talking about the game already needs to do some tracking of the relationship between any 2 players to determine what to do about the justice system/flagging etc during attacks.... "Warning your Guild is not at War with Target, you will be flagged for assault if you attack them."

- Process the results of the attack. "You hit target for 20 HP".

At it's most basic implimentation....ALL you are adding to this is a simple arithmatic check comparing the Attackers Current Stealth Value when compared to the Targets Current Perception Value to see if the attacker can "detect" the target...... "Attackers Perception = 6, Targets Stealth = 5, is 6 > 5 ? If yes, then target is valid."

Note you are ALREADY pulling data elements from both target and attacker objects....your just pulling 1 additional value in the data set from those objects and doing 1 addition logical comparison.

Under a very basic implimentation....no need to maintain some sort of complicated data matrix of the stealth relationship between 2 characters that you constantly update...

You maintain Current Stealth and Current Perception values additional data element associated with character objects and just update those values as neccesary whenever conditions justifiy. For example you could do a "skill check" every minute or two and update the Stealth/Perception values with a RNG offset based on that.....and you could adjust the values as conditions which would modify them occur (i.e. Character has moved into the "Shadowy Forest of Doom" area, modify Stealth by +5. Night falls, modify stealth by +5 ). Then you just do a logical check of stealth vs perception as part of any function which logicaly involves stealth.

You can play with the frequency of checks, modifiers and updates to those values to get a resource utilization that is supportable for your achetecture/hardware.

Goblin Squad Member

Just use a honeypot. Occasionally, when someone stealths, spawn a 'twin' with *infinite* stealth. Anyone whose client is rendering/interacting with that 'twin' is a cheater.
Point is, it takes less computing to catch cheaters than to preclude them.

Goblin Squad Member

How about we just have camouflage attached to the player using stealth instead of invisablity?

Liberty's Edge Goblin Squad Member

Having a crouch thing would work, and sneak attack could be like a critical hit.

Goblin Squad Member

My personal preference for stealth (and it has nothing to do with any ruleset, it's just my preference) is that hiding is a case of not being invisible, but easy to miss because you're wearing shadowy colours in a shadowy corner, or are moving without sound so you are not noticed.

I prefer things not to see things behind them (but can hear them) so something walking away from you or past you while you stand still in shadow doesn't notice you, if you're dancing and hopping, they might see you, if you're walking along, they might see you. If you're crouched behind a pillar, they might not.

I dislike the disappear and pop out of nowhere style stealth/hiding... Except where it is magic like melding with shadow or invisibility. But it's not an issue I have a particularly strong stake in.

Goblin Squad Member

Kusuriurite wrote:
How about we just have camouflage attached to the player using stealth instead of invisablity?

Is the character's name displayed above their head? Can you tab target things the player at the keyboard hasn't noticed yet?

Goblin Squad Member

Stealthed character should look like a shadow and not be targetable, no name over head, nothing obtrusive. If night, unlit interior, or underground pseudodarkness the rest of the floor is shadowed too.

Or so I think.

Silver Crusade Goblin Squad Member

Being wrote:

Stealthed character should look like a shadow and not be targetable, no name over head, nothing obtrusive. If night, unlit interior, or underground pseudodarkness the rest of the floor is shadowed too.

Or so I think.

Nice idea, but what if a character has sufficient Perception to detect the invisible creature (relatively recent rule change the stealth rules IRRC) he might not clearly see who or what it is, but he knows where it is and can attack/target it.

What if, a character can detect the location of an effectively invisible creature, by detecting the magic items/auras on him/her/it (in pen and paper a simple detect magic cantrip can show you the location)?

Goblin Squad Member

1 person marked this as a favorite.

Plenty of mmo's have stealth so I think this is weak excuse from GW. SWtoR, Rift, doesn't EVE even have a version of stealth?

I play those 3 examples and there is no rampant stealth hacking. I'm sure its happening but not so much that its ruining fair play and certainly not enough to justify leaving stealth out of the game.

Goblin Squad Member

Yea, I hope the devs revisit this topic. I cant help but think stealth can exist in some form, maybe even only PvE.

Also I asked this question in another post, but w/o stealth why should I be rogue artifact, especially if I can just be a rogue-like ranger with UMD for trapfinding/disarming?

Goblin Squad Member

personally, I;d like it to be similar to Darkfall in that respect, but with more skills that rather than making you invisible, lower your chances of detection and actuallymake it more difficult to see you when you're in cover/shadow etc (which takes it further than darkfall) I think someone popping out in the middle of the road to attack you is a bit silly.

Goblin Squad Member

A couple of posters have proposed that implementing a deeper stealth system would not cause a significant stress on the client (I'm a non techie so I hope I used the correct word) if done/programmed/set up properly. As some one that has no idea the arguments were convincing, but that may be hopeful bias on my part.

Is this point still in contention with those that would know, or has this point been reasonably satisfied?

If at least reasonably satisfied by working professionals in the field what would cause GW to not use such an approach?

For the purpose of the last question I'm not taking in to account the over worked, underpaid and possibly off shored coders, or what not. I mean what would cause them to not at least take this approach; regardless of whether or not they did a good job of it. (Perhaps due to over worked, underpaid, etc. etc., but that would affect the whole project, not just this one thing)

Would it actually, really cost significantly more money to have the proper gear and program's to handle this? The proposed argument seems to say no unless they are working with pretty sub par stuff.

Is it because those in charge of the decisions of such things don't know it's possible? (Even at the risk at sounding rude I'm just wondering if it's possible)

Maybe they just "don't want to do things that way, because that's not the way they are done".

I dunno.

I am very happy to see that stealth will definitely be in the game (confirmed on another thread). I certainly hope it will have at least reasonable impact on pvp game play as well as pve.

If not then this will be the first fantasy mmo rpg I've encountered that does not to the best of memory and knowledge. That would be sad serious weak sauce.

Stealth is the primary defining ability for a rogue/thief/assassin type character. With out stealth it's like saying fighters are great, but they can't take a hit very well. Wizards? Yeah they can cast a lot of spells but lighting, or fireballs? Nah.

I like GW2 stealth. It's not very traditional, but it's fun. WoW had the most broken stealth in some ways. It was eternal and a whole battle could go on around you and no one would notice you. I think Rift was the same way if I remember right. I was fine with Warhammer Online's stealth even though it was more limiting. I didn't play a sneak in Age of Conan very often, but it seemed standard. Blah, blah, blah.

Stealth is doable. Every one else has done it. From this thread it seems like it could be done better for pvp though.

Goblin Squad Member

1 person marked this as a favorite.
Spyritwind wrote:
Is this point still in contention with those that would know, or has this point been reasonably satisfied?

From No Useless Class Archetypes:

Stephen Cheney wrote:

There will absolutely be Stealth.

As Ryan pointed out, we just can't put any of the calculations on the client, it'll all have to be server-based. We'd like to do some more granular things with it than is normal for MMOs, but we need to get deeper into our server tech to work out what's possible.

Note the "Goblinworks Game Designer" title next to Stephen's name :)

Yes, this has been completely resolved, and very satisfactorily.

Goblin Squad Member

I guess calculated on the server would be like DM rolling the dice hehe

Goblin Squad Member

Sunwader wrote:
I guess calculated on the server would be like DM rolling the dice hehe

That's actually a fair analogy. If you tell your players "Hey, roll a spot check. Nope, you didn't see anything.", unless you're in the habit of doing it randomly, they'll know there's something around to spot even though they failed.

Same way, if you put the calculations on the client, it can be hacked to tell the players what they're not supposed to know.

Goblin Squad Member

Nihimon wrote:
Spyritwind wrote:
Is this point still in contention with those that would know, or has this point been reasonably satisfied?

From No Useless Class Archetypes:

Stephen Cheney wrote:

There will absolutely be Stealth.

As Ryan pointed out, we just can't put any of the calculations on the client, it'll all have to be server-based. We'd like to do some more granular things with it than is normal for MMOs, but we need to get deeper into our server tech to work out what's possible.

Note the "Goblinworks Game Designer" title next to Stephen's name :)

Yes, this has been completely resolved, and very satisfactorily.

Thanks for catching that post, Nihimon. I'm very happy to read that.


Jameow wrote:
personally, I;d like it to be similar to Darkfall in that respect, but with more skills that rather than making you invisible, lower your chances of detection and actuallymake it more difficult to see you when you're in cover/shadow etc (which takes it further than darkfall) I think someone popping out in the middle of the road to attack you is a bit silly.

I would love to see a blend of standard MMO stealth, and say Thief (the game) type stealth. Where a thief stealthed in a shadowy area, or behind an object is considerably harder to detect then when sneaking around an area with no cover, a well lit area etc..

Grand Lodge Goblin Squad Member

A few things I've noticed that some people may have missed or otherwise aren’t aware of.

If Client A knows where an PC/NPC is then a 3rd party utility can extract the location information from memory, transmit it to some one else and have that information given to a hacked client to display regardless of if they should know where that PC/NPC is.

You CAN'T stop this. There is no way to prevent it short of all calculations, including graphical calculations, being performed Server Side and all you receive is a Video Stream from the server. All encryption can be broken or circumvented.

Telling a Client that the PC/NPC is stealthed and should use a Camo'd Model is useless because a Hacked Client can substitute a Glowing Purple Dinosaur for the Camo'd Model if they want to. Again, the only way to prevent this is for the Graphics to be processed Server Side and the Client receives a Video Stream.

Oh, and for those that say, Ok, just go with the Video Stream then. Video Streams are Bandwidth Intensive. Bandwidth gets expensive when you need enough for thousands of simultaneous outgoing Video Feeds.

That said, instead of Stopping the Hacks, perhaps more effort should be put forth to Detect the Hacks and Ban accounts that use them. This would require more processing power on the Server Side (You can't Trust ANYTHING the Client tells you so don't bother putting checks in place there.) but processing power is cheap compared to Bandwidth.

Ideas Include

Send False information to Clients that a Non-Hacked Client would ignore. If a character responds to what should be an Invisible Intangible Object, their client is hacked, Ban Them.

Keep track of how long Stealthed Players have been hidden from other Players. If a the Stealthed Player is targeted with a spell/ability that requires actual Targeting (not AOE) by some one who isn't supposed to be able to see them, check how long they couldn't see them. If it's too long (more then a couple seconds at most) they are using a hack that gives them location information they aren’t supposed to have, Ban Them.

With the above, has only one person been able to detect him within a "reasonable" time? He's using a hack to send the other guy the information, Ban Him too.

You think Banning is too harsh? I don't, actually, because of some of the stupid stuff some big businesses managed to get into the DMCA, don't just Ban Them, Sue them into the ground for illegally accessing the licensed code.

Continued "bad" behavior tends to be the result of a lack of meaningful consequences, so you have to put in consequences that are severe enough to keep people from being tempted to do it.

Goblin Squad Member

Drake Brimstone wrote:
Send False information to Clients that a Non-Hacked Client would ignore.

The hacked and the non-hacked Client receive the same information. If the non-hacked Client is able to determine that something should be ignored, then the hacked Client has enough information to make the same determination.

With respect to detecting whether or not the player is aware of the hidden object, if the players are being banned for directly acting on that information, then they will simply act on it indirectly, by positioning themselves appropriately (or a host of other things that they'll think of).

I fully support brainstorming ideas to try to solve this problem, so please don't let these critiques stifle the discussion.

Goblin Squad Member

Nihimon wrote:
Drake Brimstone wrote:
Send False information to Clients that a Non-Hacked Client would ignore.
With respect to detecting whether or not the player is aware of the hidden object, if the players are being banned for directly acting on that information, then they will simply act on it indirectly, by positioning themselves appropriately (or a host of other things that they'll think of).

I have no problems with this...it simulates party communication when some members of the party can see a target and others can't. Even those who cannot can see/read other body language and perhaps even basic handsigns...you know like /point.

As far as the unhacked client and the 3rd party software which sends the information to a hacked client...make the information the server sends to the client egocentric to the client...as opposed to the more traditional allocentric. Hacking the client to get that data will give you false information...not worth the hack.

Goblin Squad Member

Nihimon wrote:
Yes, this has been completely resolved, and very satisfactorily.

If that's the case, I guess that could rescue meaningful darkness to some extent. People could still hack their client to make everything look like daylight, but if there's a 25%, 50%, or 75% miss chance for any attack at a sufficiently stealthed character when mad by an insufficiently perceptive one, that could go a long way. Characters in stealth could also be given temporary evasion or improved evasion to cut down on AoE attacks being used to hit them without an attack roll.

Goblin Squad Member

KitNyx wrote:
As far as the unhacked client and the 3rd party software which sends the information to a hacked client...make the information the server sends to the client egocentric to the client...as opposed to the more traditional allocentric. Hacking the client to get that data will give you false information...not worth the hack.

If the "non-hacked" client is getting enough information to show the player an accurate picture of the world, and the "hacked" client receives all the same information that the "non-hacked" client receives, then how do you stop the "hacked" client from also showing the player an accurate picture of the world?

Liberty's Edge Goblin Squad Member

Shadow thing should work, but only at a distance. In, say, Dishonored, cover was a large part of it. And maybe you could throw a rock to distract monsters?

Goblin Squad Member

Nihimon wrote:
KitNyx wrote:
As far as the unhacked client and the 3rd party software which sends the information to a hacked client...make the information the server sends to the client egocentric to the client...as opposed to the more traditional allocentric. Hacking the client to get that data will give you false information...not worth the hack.
If the "non-hacked" client is getting enough information to show the player an accurate picture of the world, and the "hacked" client receives all the same information that the "non-hacked" client receives, then how do you stop the "hacked" client from also showing the player an accurate picture of the world?

True, my suggestion would have just made it much more computationally intensive to get that accurate picture...not impossible. But, I guess my lack of understanding stems from my inability to comprehend how an "image" displayed by the client that is not verified by the server is 1) non-detectable (for hack ban) and 2) able to be interacted with, and if it is not interactive, who cares?

Goblinworks Executive Founder

Imagine that you are at the table with a large (100+) group of anonymous strangers. Everyone has a screen, such that only they can see their dice rolls.

The DM says "Only people who make a perception DC 20 check see this rogue sneaking up behind you." All of the players of wizards have their character cast a fireball including the rogue, despite most of them not having a good perception check.

The typical alternative is for the DM (Server) to do all of the 'rolls' and evaluate everything that happens, and only communicate to the player (client) information that the character has. This means not putting the mini on the table unless somebody sees the character, rather than telling the players that they can't see it.

151 to 187 of 187 << first < prev | 1 | 2 | 3 | 4 | next > last >>
Community / Forums / Paizo / Licensed Products / Digital Games / Pathfinder Online / Curious: Stealth Mechanics All Messageboards

Want to post a reply? Sign in.
Recent threads in Pathfinder Online