PC So I decided to track Sleeper volumes in Poi's and how many are ambushes.

Sure, but in that case, the stealth meter is useless.


Does the stealth meter decrease when you increment the perk? (can't check at the moment).

If yes, then you are right.

If not, then the meter only shows your general visibility and you yourself have to judge what is enough at what perk level.

 
I'm going to go poke around warehouse_06 ingame and also in the POI editor to see if I can offer any insight. I'd like to again encourage anyone interested in this topic to read stealth.txt before trying to draw any conclusions. It describes behaviors that map onto what theFlu is noticing (and what faatal said) and does not mention any 90-second timer.

I looked into the code which handles stealth and there is a single constant declared:

private const float cSleeperChaseTime = 90;

So "AHA!" you say, there's the 90-second chase time! Except it's not. That variable is not used anywhere in the code. It's declared and then abandoned. I think it's an old value from an older stealth implementation. The current code has a small function which calculates a different value - MaxChaseTime - based the attributes of the target being chased (could be you, could be a bear the Z is fighting).

One other point to emphasize - there is no "auto-aggro". Enemies have a chance to hear and see you (and some are better than others at this), that's it. They may get chances to do that at very inconvenient times - even situations where it is essentially impossible to avoid being seen! But there is no BMH-like GPS-to-player automatically upon falling from the ceiling or busting out of a closet. We really ought to trust that faatal knows WTH he's talking about. To the extent I can understand the bits of code I've read, it lines up perfectly with what he said.

Edit: again, more nuance here than I originally posted. After looking into it more, what wasn't clear from faatal's note is that the 'attack' volume sleepers get a special can-I-see-you check that is not the same as a regular zombie's hearing or vision check. It ignores line of sight, but does take into account player stealth. If they succeed in 'seeing' you, they will set you as their attack target. This is similar to BMH zombies. If you have some stealth skill, the zombies may fail the check and just wake up without targeting you. There's more details later in this thread.

 
Last edited by a moderator:
Does the stealth meter decrease when you increment the perk?
Wohoo, I'm right. As in, Yes :)

Three points into stealth did indeed change the situation, now only a very few will come after me. But the "active" state isn't exactly obvious either, I suppose I've misread faatal's description, "active" might just mean "sleeping and doing normal sleeper stealth checks." I assumed they would get up but not attack.

I can also get two sneak attacks in a row on them now.. take a shot, let them move wherever they go, wait til they stop, shoot again.
(This is just cruel. Fun, but cruel.)

One point seems to be a sweet spot where some chase and some won't. I dunno; maybe this is what we get, but I'm not surprised people are complaining, it takes couple days of testing to really understand it after 3k hours in the game... :)

So "AHA!" you say, there's the 90-second chase time! Except it's not. That variable is not used anywhere in the code.
I have a screenshot showing the timer though, so "anywhere" has to be wrong ;)

One other point to emphasize - there is no "auto-aggro". Enemies have a chance to hear and see you (and some are better than others at this), that's it.
Then why does the attack volume zed run after me for 90 seconds like it had agro automatically, and change its behaviour when I give it another source of agro?

But there is no BMH-like GPS-to-player automatically upon falling from the ceiling or busting out of a closet.
This is literally what they do though. In my testing.

EDIT: I do realize that you may be using "auto" as "always 100% guaranteed", I'm using it as "when conditions are met, the zed does automatically know where you are for X seconds." And the condition seems to be stealth meter above 0, sooo the "auto" isn't that far from reality.

 
Last edited by a moderator:
I have a screenshot showing the timer though, so "anywhere" has to be wrong ;)


We are talking past each other. Yes, there is a chase timer. No it is not the 90s constant defined in the ApproachAndAttackTarget code. 

EDIT: I do realize that you may be using "auto" as "always 100% guaranteed", I'm using it as "when conditions are met, the zed does automatically know where you are for X seconds." And the condition seems to be stealth meter above 0, sooo the "auto" isn't that far from reality.


I guess we define the word "automatically" differently. The Zs have a chance to hear and see you. That chance is based on strict mathematics of sounds, illumination, modifiers, and the Zs own senses. It's all available for any of us to review, and it matches exactly with faatal's description of course. If a zombie targets you, then you were visible to that zombie. And there is no special "sleeper vision" where sleeper zombies have extra-special sensory powers either.

In any case, I tested warehouse_06 with my previous setup - padded armor, no books, 3 levels in Hidden Strike and From the Shadows, working at night. I did not use the shoot-out-lights modlet.

Okay, so on the ground floor, this stack of closets seems suspicious. So I shot out all of the fronts.

image.png


What do you know, it's 3/4 of a zombie barbershop quartet. All sleeping peacefully.

image.png


Now they're even more peaceful.

image.png


Crept around the shelving and saw these suspiciously zombie-sized containers. Already shot the top half of one, was empty, about to take out the next one.

image.png


WHAT THE HELL! This warehouse is SHIPPING ZOMBIES! (He did not hear/see me; stayed snoozing in his crate)

image.png


Now he can fit in a 1/2-size crate, saving shipping costs!

image.png


My experience in warehouse_06 is identical to the house_modern I did before. Stealth works exactly as I expect. For what it is worth, when crouching perfectly still, the stealth meter (which is an amalgamation of illumination and noise, as described in stealth.txt) was 1 or even 0 in the very darkest places, but when moving at a walk it would be 10-20 depending on illumination. Apparently not enough noise to wake up at least these zombies.

 
Last edited by a moderator:
My experience in warehouse_06 is identical to the house_modern I did before. Stealth works exactly as I expect.
Good test, I can confirm; that's what happens with 3/5 From the Shadows.

With 0/5, you'll see the auto-agros a lot more clearly.

Make them walk, Set the zombie night speed to "walk." Walk across the front door stair-trigger and observe the break room. They are way too far to see you "legit" with their "normal" senses.

Try to shake them during the 90 sec timer. You can see that with the debug info (toggle: numpad 0)

killall, killall, sleeperreset

Second test, after triggering them, let them see you (show them a torch)

Try to shake them. Easily done before the 90 secs is up.

This is a different type of agro, granted with stupidly heightened senses. Whatever you want to call it, it Feels completely different from the normal game mechanic.

 
Last edited by a moderator:
With 0/5, you'll see the auto-agros a lot more clearly.


This seems like a really important point. I will try it out, sure, but why would you expect to be very successful at stealth whatsoever with zero points spent in it? They will hear you easily! "Legit" with their "normal" senses even.

There is, actually, a "super sense" for zombies - but it's not for sleepers. Sleepers have two thresholds (entityclasses.xml):

    <property name="SleeperNoiseSenseThreshold" value="3,8"/> <!-- Indiv.Random. hearing capability - "I hear something" noise value -->
    <property name="SleeperNoiseWakeThreshold" value="9,12"/>

So each zombie is given (at spawn) a random "sense" threshold between 3 and 8, and a random "wake up" threshold between 9 and 12. If the noise you make goes above the wake threshold, they wake up. This does not correlate exactly to the stealth meter, by the way. The meter combines sound and light.

Awake zombies, though, have "super sense" for hearing:

    <property name="NoiseAlertThreshold" value="30"/> <!-- DEPRECATED; an awake zombie triggers instantly if touched by the sound range/volume -->

I guess, we sort of agree. If you have zero skill in stealth, then zombies are going to hear you easily (wake up and move towards you) and see you shortly thereafter (target and attack). If you want to call this "auto-aggro", alright. I think of it as being not-very-stealthy and paying the price. The mechanisms are working exactly as faatal (and the XML, and the code) described.

 
I will try it out, sure, but why would you expect to be very successful at stealth whatsoever with zero points spent in it? They will hear you easily! "Legit" with their "normal" senses even.
Because the UI pretends I'm just as hidden, but I apparently am not. Maybe they're simulating Dunning-Kruger for my character?

Good info about the noise/light thresholds. I was aware, they're kinda shown in the debug info, but good info. Being aware of those and seeing how poorly they correlate with Attack volume levels of attack and with the stealth meter, we can see the special type of agro implemented for the Attack volumes.

And sure, I get "why" we're here. The auto-agro is Necessary if you want any zeds to wake up *easier* than the normal stealth mechanic would allow. If you don't have a special-GPS-type-agro active, you would have to rely on the normal stealth checks for Attack volume zeds. That would of course mean the zeds just straight up lose agro at the first "normal" stealth check, which is pretty instant.

They would just wake up and stand still without auto-agro.

 
I like the idea of them not going back to their original locations to sleep. So maybe you get chased out and hide for a while, but when you come back they're not all just out in the open (which as Roland points out would not be all that interesting), but maybe the bathroom which was empty before now has a sleeper in it. And the one on the living room floor is now behind the counter in the kitchen. The sleeper volumes already allow for multiple (randomized) spawn points so that a POI won't be identical on each playthrough. Would be neat if the sleepers could just pick one of the spots and go to sleep there. Oh, and have them rebuild the closet doors too so they're hidden again. :D  


Maybe them breaking the closets is not a good idea, but change the closets into a cheap style door? the added benefit is it won't be destroyed by bolts or arrorws so now you HAVE to sneak up on it, or send the drone to open it. Now that would be a good drone use: opening doors

Because the UI pretends I'm just as hidden, but I apparently am not. Maybe they're simulating Dunning-Kruger for my character?

Good info about the noise/light thresholds. I was aware, they're kinda shown in the debug info, but good info. Being aware of those and seeing how poorly they correlate with Attack volume levels of attack and with the stealth meter, we can see the special type of agro implemented for the Attack volumes.

And sure, I get "why" we're here. The auto-agro is Necessary if you want any zeds to wake up *easier* than the normal stealth mechanic would allow. If you don't have a special-GPS-type-agro active, you would have to rely on the normal stealth checks for Attack volume zeds. That would of course mean the zeds just straight up lose agro at the first "normal" stealth check, which is pretty instant.

They would just wake up and stand still without auto-agro.
you know, in the older alphas you had this eye around the crosshairs and it would say "hunted", maybe they should bring that back but as an unlock in the perception tree? Under the tracker book? I understand why they got rid of it, but at the same time i do not understand how i can track rabbits but not zombies.... 

 
in the older alphas you had this eye around the crosshairs and it would say "hunted", maybe they should bring that back but as an unlock
I'm not against the idea, but it wouldn't solve any of my dislikes here .. :)

The current Attack volumes are implemented 'outside' the stealth mechanics, which causes all kinds of sillyness.

Current Attack volume:

1) Check upon entering if we can "detect" the player at 3-10 times more accurate senses

2) If spotted, give the zeds a specific attack mode until they reach the player

3) Once seeing the player, revert to normal behaviour

The issue caused directly by this; for an aggressive Attack volume, your only chance of Stealthing is to .. stop stealthing. Once the zeds have seen you, you can stealth again.

What I'd suggest to be similar but more consistent with the rest of the game:

1) Whatever zed is spawned in an "Attack volume", give it 2-5 times better senses. Or 20. Just numbers.

2) Behave as normal.

Now the zeds will feel impossible to lose, because they practically are. But at least they would have normal and self-consistent behaviour.

 
I'm not against the idea, but it wouldn't solve any of my dislikes here .. :)

The current Attack volumes are implemented 'outside' the stealth mechanics, which causes all kinds of sillyness.

Current Attack volume:

1) Check upon entering if we can "detect" the player at 3-10 times more accurate senses

2) If spotted, give the zeds a specific attack mode until they reach the player

3) Once seeing the player, revert to normal behaviour

The issue caused directly by this; for an aggressive Attack volume, your only chance of Stealthing is to .. stop stealthing. Once the zeds have seen you, you can stealth again.

What I'd suggest to be similar but more consistent with the rest of the game:

1) Whatever zed is spawned in an "Attack volume", give it 2-5 times better senses. Or 20. Just numbers.

2) Behave as normal.

Now the zeds will feel impossible to lose, because they practically are. But at least they would have normal and self-consistent behaviour.
Normal stealth checks would not be desirable in the attack volume case as the zeds are often around corners, enclosed or facing the wrong direction and the player may be making little noise which means default unskilled stealth would mostly work, yet the designers want the zeds to attack.

The one time check is to allow stealth to be useful as a skill you can put points into and allowing for variation in the way you entered the volume compared to zed locations.

The attack uses SetAttackTarget, which is a standard way of the tracking you and used in cases like when you hit them or they see you. I am reducing the trigger's call of SetAttackTarget from 60 to 20 seconds, which seems more reasonable for the attack to time out, since it refreshes anyway if they see you.

 
The attack uses SetAttackTarget, which is a standard way of the tracking you and used in cases like when you hit them or they see you. I am reducing the trigger's call of SetAttackTarget from 60 to 20 seconds, which seems more reasonable for the attack to time out, since it refreshes anyway if they see you.
Hmm. A lot of that feels weird in light of my testing; I take your word that's how it is implemented, but I don't see how to explain:

- the actual 90 second timer I saw, if it should be set to 60 (maybe the 60 is something else in the code..? And make sure you won't break the Stealth perks while in there, those effect the timer as well. The max rank reducing it down to 20 currently - based only on description of the perk).

- the test where I reveal myself with a torch to restealth almost instantly after. The timer with a standard vision agro has to be different, at least (zero?) and as such reset upon 'normal' agro?

Normal stealth checks would not be desirable in the attack volume case as the zeds are often around corners, enclosed or facing the wrong direction and the player may be making little noise which means default unskilled stealth would mostly work, yet the designers want the zeds to attack.
Which is why I suggested increased senses; if line-of-sight would be an issue, making the player have a baseline heartbeat-sound for the sensitive zeds to catch wouldn't bother me. They would attack just as relentlessly until you get outta dodge, the ones with a clear way to run could still get to you before you can react.

Love the responses, thanks :)

EDIT: seems the stealth perks aren't affecting That timer anyway.

 
Last edited by a moderator:
I glossed over something in an earlier comment and I'll go back and correct it. There IS an auto-agro mechanism in "attack" volumes, if you are not crouched. That is, the CanSleeperAttackDetect() function always returns 'true' (meaning the Z can attack you) if you aren't crouched. So for players who aren't trying to sneak, every zombie in the volume absolutely will set you as their target and chase you for 60s, soon to be 20s. No matter where they are hiding, line-of-sight or not, etc. If you go in all "come at me bro", they will come at you.

1) Check upon entering if we can "detect" the player at 3-10 times more accurate senses


Where did 3-10 more accurate senses come from? Not disagreeing, just interested how you calculated that. I can see that it's hard-coded, but I dunno how to get from there to 3-10 times more accurate. I'm looking at CanSleeperAttackDetect (used for sleeper volumes) and CanSeeStealth (used I think for normal day-to-day stealth). Should I look elsewhere?

 
Where did 3-10 more accurate senses come from?
From testing with the debug info on. The zeds in that warehouse break room have a "Sight" about something like 30-40 (from memory). If I step on the trigger-line with a "Light" value of 3, they agro. That is 10x, the "3-10x" is just off the cuff.

There IS an auto-agro mechanism in "attack" volumes, if you are not crouched. That is, the CanSleeperAttackDetect() function always returns 'true' (meaning the Z can attack you) if you aren't crouched.
I suppose it could also be doing a stealth test in the crouched-branch of said if()? I mean, that's how it behaves... ;)

 
Hmm. A lot of that feels weird in light of my testing; I take your word that's how it is implemented


I think he's talking about this (edited for clarity, obviously):

SleeperVolume.Touch()

{

if ([this is an attack volume] and CanSleeperAttackDetect())
  {
    ConditionalTriggerSleeperWakeUp();  -- wake up
    SetAttackTarget([player], 1200);  -- set player as attack target for 1200 ticks
  }
else
  entity.SetSleeperActive(); -- either not an attack volume or player is stealthy enough to not be 'seen' so just go active

}

Gonna change that 1200 to 400 is my guess.

I suppose it could also be doing a stealth test in the crouched-branch of said if()? I mean, that's how it behaves... ;)


Absolutely. If you are crouched, the Z's get that 'freebie' check on you like I described a page or two ago. This is seriously edited for clarity:

  public bool CanSleeperAttackDetect()
  {
    if (player.IsCrouching)
    {
      [do some math using player's stealth-adjusted light level]
      if ([distance from Z to player ignoring line of sight] > [the math result above])
        return false; -- nope, sleeper can't detect you (but it's gonna go active anyhow)
    }
    return true; -- either player is not crouching, or the math above didn't work out in player's favor: ATTACK!
  }

The thing about the [math] above is that it does use some hard-coded values for the zombies alongside the player's stealth numbers, meaning it's a kinda attack-sleeper-specific calculation. And, I guess, idential 'senses' for any type of attack sleeper zombie? So your 3-10x more accurate senses might be right.

The standard day-to-day stealth checks for vision use variables from the zombie's stats (in XML) and the player's stealth to calc. Not hard-coded.

 
Last edited by a moderator:
Couple corrections for my part;
The "Sight" I was referring to is called "wake" while they sleep, and the value was about 200 compared to the 3 to trigger, so that's .. 60 times higher?

The timer related to the auto-agro-chase doesn't seem to change with the skills spent in From the Shadows, it's still 90 at 3/5. /shrug

EDIT: Upon a little further testing of said timer; we had a lovely little walk with the handsome janitor, but after the 90 seconds, he just figured he needs to go home. So he walked to the nearest wall and kept walking at it and walking at it. Me standing there, with my torch, in plain sight didn't seem to be of interest to him anymore.

So I shot him.

 
Last edited by a moderator:
The timer related to the auto-agro-chase doesn't seem to change with the skills spent in From the Shadows, it's still 90 at 3/5. /shrug


What about the behavior you mentioned earlier where you got their attention and then crouched and they immediately forgot about you? That wasn't even 90 seconds. It is sounding to me like there is a bug that is causing zombies to not behave as expected. 

Expected: If a zombie sees you it will chase you with a memory of you of 90 seconds after which it forgets you if it no longer can see you. But whenever it can see you it starts the 90 seconds again.

Reality: Some zombies forget the player immediately if they crouch in shadow without a 90 second timer and others chase for 90 seconds and then lose interest even if they can still see the player.

Expected: The 90 second timer reduces in time with ranks in From the Shadows

Reality: The perk isn't working

 
Last edited by a moderator:
The "Sight" I was referring to is called "wake" while they sleep, and the value was about 200 compared to the 3 to trigger, so that's .. 60 times higher?


So, lot going on I think. First off, I don't think the ground-floor zombies of warehouse_06 are in an 'attack' volume, even though they seem really intent on attacking you. I say that because Faatal and the code both say that if it's an attack volume, as soon as you touch the volume (the SleeperVolumeTouch() function I posted just above) then every zombie is going to wake up and at least be in Active mode. If they can 'see' you (using that hard-coded, line-of-sight-be-damned math) then you get targeted.

I'm going to open it up in the POI editor and snoop around the volume to see what I find.

Anywho, if it is not an attack volume, then I think the "wake" numbers you're seeing relate to this (from the zombie template):

    <property name="SleeperWakeupSightDetectionMin" value="-40,5"/> <!-- Indiv.Random. sight capability - "I see you" light value at point blank -->
    <property name="SleeperWakeupSightDetectionMax" value="340,480"/> <!-- Indiv.Random. "I see you" light value at "SightRange" -->
    <property name="SleeperSenseSightDetectionMin" value="-10,0"/> <!-- same for groaning, not waking -->
    <property name="SleeperSenseSightDetectionMax" value="200,300"/>




That 200 may very well be the wake detection threshold at <distance to you>. Does it change when you move closer? The XML above sets a range from <point blank> to <limit of Z's sight> for visual detection. (Sound is a bit different, because it emanates from you and does not attenuate by distance - max volume is 'heard' to the item/action's sound range.)

So maybe your janitor had these values:

Illumination of theFlu Required To Wake Up

Point-blank range: 1

Max sight distance: 380

They use linear interpolation to compute the "light required to wake up" at various distances in-between. It's in the [math] stuff that I left out before. So if you were, say, 50% of the way between point-blank and max-range, I'd expect the "light required to wake up" to be (380-1)/2 = 189.5. Move closer, it gets smaller = less light on you is required for the zombie to see you & wake up.

Is that how the "wake" number behaves? Or is it just stuck at 200 regardless of how you move?

Expected: If a zombie sees you it will chase you with a memory of you of 90 seconds after which it forgets you if it no longer can see you. But whenever it can see you it starts the 90 seconds again.


I'm going to chase this expectation and perk benefits down if I can. Faatal gave us the standard function which is called when the player is set as the target (same for sleepers as it is for normal Zs). It's pretty easy to see what is calling that function, and what timeout parameter is being sent in.

 
Last edited by a moderator:
What about the behavior you mentioned earlier where you got their attention and then crouched and they immediately forgot about you? That wasn't even 90 seconds. It is sounding to me like there is a bug that is causing zombies to not behave as expected. 
I didn't test it with skills, but I can't squeeze it into a less time when it seemed instantaneous already. Given some delays with how the stealth decisions are made and some noise-chasing and whatnot. If the intent is relentless pursuit for 90/60/20 seconds, then yes, it seems buggy. I'm going to abuse the bug to its full extents, but buggy nonetheless.

That walk with the janitor and a quick interview with the local wilderness-types suggests the timer I've been staring at is a homing-timer for sleepers (with a home). Probably nothing to do with anything else, at least the non-sleeper locals didn't even have one. So the 90 might just be me being confused. Hey, the '90s were at least.

Expected: If a zombie sees you it will chase you with a memory of you of 90 seconds after which it forgets you if it no longer can see you. But whenever it can see you it starts the 90 seconds again.
That may be the design intent, but I'm definitely not the person to make the claim.

Your statement of reality.. hmm.

Reality: Some zombies forget the player immediately if they crouch in shadow without a 90 second timer and others chase for 90 seconds and then lose interest even if they can still see the player.
As far as I tested:

Reality: All zombies forget the player immediately after losing Sight in the stealth sense(, including ones that were triggered with Auto-attack volumes). They will carry on to the spot where the player was last seen and then follow audio ques and such.

As in, I didn't test that many normal zeds, but the auto-agros behaved like the rest once they had actually seen me once.

The "perk isn't working"-part; I don't think I can say, I've been staring at a timer that doesn't seem to be about that after all. Then again, restealthing in front of their face made them get entirely lost, so; might be the timer-tied-to-the-perk doesn't do anything atm. :)

First off, I don't think the ground-floor zombies of warehouse_06 are in an 'attack' volume, even though they seem really intent on attacking you.


grep SleeperVolumeFlags.*2 *.xml is the reason I chose that POI, it was full of two's and existed in my navezgane test world. Most if not all of the volumes there are attack volumes (unless that xml part doesn't apply anymore?)

So, "Active mode" = sleeping and doing normal stealth checks.

Is that how the "wake" number behaves? Or is it just stuck at 200 regardless of how you move?
Yes, the wake number changes based on my distance. Light changes based on stealth and illumination state, don't even need to crouch to have a comparison number there. If Light > wake, and the zed has LoS to you, it wakes.

So when I said about 200, it was about 200 (218 or so) the moment I stepped on the trigger volume. And my Light was ~3.

EDIT: @Boidster , btw, I'm not reacting much to the code snippets; not because I don't appreciate you digging in there, but because I pretty much know one can't figure out the entire system too easily by code-reading. There's always some details lost in the reading - unless it is your own code, and very recently written even then. But, keep it up, I assume you're doing it mostly for educational purposes anyway .. :)

 
Last edited by a moderator:
I'm going to chase this expectation and perk benefits down if I can.


Aaand I'm back. So the Entity object has a function, CalcInvestigativeTicks(), which uses the EnemySearchDuration modifier from the From the Shadows perk.  The perk looks like this:

<passive_effect name="EnemySearchDuration" operation="perc_add" level="0,1,2,3,4,5" value="0,-.17,-.33,-.5,-.58,-.67"/>




Since this is a percentage adjustment, the perk descriptive text is very dependent on a base search time of 60 seconds. And luckily there are only two "attacking the player" places where search time is given, and they both work out to 60 seconds. They get there a bit differently.

The CalcInvestigativeTicks() function works like this:

Actual Ticks = [Base Value Ticks] * (1 + [EnemySearchDuration %])

So if you are at perk level 2 (adjustment -33%) and the event sends in a base value of 400 ticks (20 seconds), then the actual search duration would be:

400 * (1 - 0.33) = 400 * .67 = 268 ticks = about 13 seconds.

Okay, makes sense. So now where does the 60 seconds base come from? The CalcInvestigativeTicks() function is only called in three places:

image.png

In each case a different value is passed in as the "base value", but the two attacking-the-player ones both work out to 60 seconds, which means the perk will work:

SetAsTargetIfHurt: this.theEntity.CalcInvestigateTicks(1200, revengeTarget); -- 60 seconds

SetNearestEntityAsTarget(Continue): CalcInvestigateTicks(Constants.cEnemySenseMemory * 20, this.targetEntity) -- that constant is 60, so this is also 1200 ticks or 60 seconds

SetNearestEntityAsTarget(Seek Noise): this.theEntity.CalcInvestigateTicks((30.0 + this.RandomFloat * 30.0) * 20, player)); -- random 30-60 seconds, but this is "I heard something" searching (following breadcrumbs), not actively targeting

Final point - none of these functions seem to be used when a sleeper wakes up and targets you, that I can see. So the perk will have nothing to do with how long a grumpy sleeper will chase you. Maybe if you hit it, you trigger the "SetAsTargetIfHurt" AI function, though, and then the perk applies?

 
 Final point - none of these functions seem to be used when a sleeper wakes up and targets you, that I can see. So the perk will have nothing to do with how long a grumpy sleeper will chase you. Maybe if you hit it, you trigger the "SetAsTargetIfHurt" AI function, though, and then the perk applies?


So it occurs to me that if none of those three are called when a sleeper wakes up that might explain why its possible to modify the sleeper behavior by showing yourself via un-sneaking and holding a light source and then re-sneaking. If you can pre-empt whatever method triggers for the sleeper wake up by triggering one of those methods instead and they contain different AI behaviors that would potentially explain some things. Not sure if it is intentional for you to be able to manipulate the AI like that though.

 
Back
Top