Probe functions are functions that can be enabled (via Object.Enable() function), disabled (via Object.Disable() function) or ignored in states.
By default all these functions are enabled. When disabled or when the object is in a state that ignores a probe function, that particular function will not be called by the engine when its corresponding event occurs. Ignored or disabled probe functions can still be called from UnrealScript code.
Contents
Probe Functions
Object subclasses (all classes)
- BeginState
- EndState
Actor subclasses
- AnimEnd
- Attach
- BaseChange
- Bump
- Destroyed
- Detach
- EncroachedBy
- EncroachingOn
- EndedRotation
- Expired
- Falling
- GainedChild
- HitWall
- InterpolateEnd
- KillCredit
- Landed
- LostChild
- Spawned
- SpecialHandling
- Tick
- Timer
- Touch
- Trigger
- UnTouch
- UnTrigger
- ZoneChange
Additional Probe Functions in UnrealEngine1
ZoneInfo subclasses
- ActorEntered
- ActorLeaving
Pawn (UT) subclasses
- FootZoneChange
- HeadZoneChange
- PainTimer
- SpeechTimer
- MayFall
- Die
- SeePlayer
- EnemyNotVisible
- HearNoise
- UpdateEyeHeight
- SeeMonster
- SeeFriend
PlayerPawn subclasses
- PlayerTick
Inventory (UT) subclasses
- BotDesireability
Additional Probe Functions in UnrealEngine2
TODO These are probably similar to the functions in UT, but may be in different classes (e.g. PlayerTick is in PlayerController)
Related Topics
Discussion
StarWeaver: Is this all the information anyone has on this? I tried looking up what enable() does while looking at weapon code and this is pretty much what's given for that function. I take it that there is a short list of functions that this feature is used for in the native code somewhere, and enable/disable only works on those?
Xian: Well, that's correct. Some events can't be disabled though, such as Render calls (Pre/Post and possibly RenderOverlays or RenderTexture). I am not sure if there is a full list in the UE headers.
pd: To me, it looks a lot like probe functions are equal to events. If you throw Core.dll into a disassembler and look at UObject::execEnable, you can see how it spits out "X is not a probe function" if the function's name's index in the global name array is not between 300 and 364. I can provide a list of names 300 to 364 if desired, they are hardcoded in FName::StaticInit. All those names are also known as events.
RenderOverlays is not an event, so you cannot enable / disable them. It seems that whomever coded the Inventory class was confused about events and named these so falsely. That mistake then spread throughout all Inventory subclasses. In Actor, you see how it's merely declared as a function, not an event.
No idea about RenderTexture, I'd guess this is a mistake as well. It's a damn shame they didn't make the compiler check for event-correctness.
Category:Legacy To Do – find out additional probe functions for UT200x