I hit some unexpected behavior with custom event conditions in NodeCanvas 2.8.5.
In the attached screenshot, both top-level Conditional nodes are connected to the same Dynamic Selector parent. When the shot was captured, the “Stasis” subtree was executing. The unexpected behavior happens when “$EvtStartDaze” is emitted. Even though it shouldn’t be evaluated in this context, it still saves the variable and modifies the blackboard.
It looks to me like the CheckEvent<T> implementation is flawed. OnCustomEvent gets called regardless of whether the Conditional is actually being evaluated or not. This isn’t a problem for CheckEvent but for the generic version it produces the unintended side-effect of saving the blackboard variable.
Hello there and sorry for the late reply.
You are correct. The event is received at a task-level regardless of the node’s execution status. Unfortunately I don’t have a quick solution right now, but I understand that this can be seen as an unexpected behaviour is certain cases. Thus, I need to take a better look and find a solution to that.