Jump to content

GetCombatVisualDetection and PlayerVisualDetection


Recommended Posts

These 2 can be set as conditions on magic effects, but they don't have a wiki entry at all

GetCombatAudioDetection as well

Ran some initial tests but they didn't appear to do anything

Anyone know how these work?

Link to comment
Share on other sites

Never used them myself but I would hazard a guess and say they are related to the detection-based mechanics.  Are these used in any vanilla scripts?  I took a quick look and it appears GetCombatVisualDetection and PlayerVisualDetection are not in any of the Papyrus scripts. 

If they are valid condition functions in the Creation Kit (i.e., you can use them in the Conditions tab of a magic effect, spell, perk, etc.), but are not callable in scripts (i.e., you can’t log or display the exact float values in-game via script), not sure how one goes about setting up debugging to test its functionality.

Link to comment
Share on other sites

GetCombatVisualDetection/GetCombatAudioDetection return the visibility/sound level of the combat target of the console subject ref (i.e. how much the subject ref sees/hears their target).

PlayerVisualDetection does the same as GetCombatVisualDetection but instead of combat target, it always takes the PlayerRef as target so you can use it outside of combat.

GetCombatVisualDetection < 0.00 means the target is not detected as far as I remember.

I added Condition runner and logger to Garden of Eden SE a few versions ago: you can evaluate condition items and condition fields from Papyrus scripts and if needed, log the float return values and measure the runtimes in milliseconds.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  On 5/2/2025 at 11:59 PM, LarannKiar said:

Condition runner and logger

Expand  

Curious. Probably you're very familiar with internals already, could maybe clarify some things how records' Conditions processing is designed in game? It's said that all conditions in a block are evaluated no matter the intermediate results, is that really true? For example, when topmost AND evaluates to False there is no reason to continue.

Another case in regard to automated alias fill by search, not exactly same. If one of conditions naturally blocks alias fill regarldess of subject properties, e.g. Global != Global etc., would it be recognized and prevent farther alias processing or still would iterate on every object? Mainly just pointless, though ground, theoretical matters.

Link to comment
Share on other sites

  On 5/14/2025 at 8:43 PM, hereami said:

Curious. Probably you're very familiar with internals already, could maybe clarify some things how records' Conditions processing is designed in game? It's said that all conditions in a block are evaluated no matter the intermediate results, is that really true?

Expand  

As far as I remember no, the vanilla function returns after the first False condition item unless its operator is OR:

So WornHasKeyword would only be processed if the GetGlobalValue's operator is OR.

Run on: PiperRef   IsActor == 1   AND

Run on: Subject    GetGlobalValue "TrueGlobal" == 0   AND

Run on: PlayerRef   WornHasKeyword "ActorTypePower" == 1   AND

  On 5/14/2025 at 8:43 PM, hereami said:

Another case in regard to automated alias fill by search, not exactly same. If one of conditions naturally blocks alias fill regarldess of subject properties, e.g. Global != Global etc., would it be recognized and prevent farther alias processing or still would iterate on every object? Mainly just pointless, though ground, theoretical matters.

Expand  

Even though one can specify a Subject ref for all conditions in the editor, for certain condition functions (e.g. GetGlobalValue) it doesn't matter because the function that the condition item invokes may not process it. It's similar to some of the console commands which don't require a reference to be called on.

I don't know right now but I highly doubt that after a non Optional Quest Alias couldn't be filled the Aliases with a greater Alias Index are processed. You can enable EnableConditionRunnerLogging(True) for Garden of Eden and call GetConditionResults() to see which conditions are actually evaluated.

  • Like 1
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...