Do me a favor: replace whatever child nodes of your selector you have with a simple “wait” node set for a brief interval (say 0.2) and see what happens… then do the same thing with the “wait” node set to a longer interval (say 5).
I’ve been trying to debug this and it SEEMS, at least on my end, that the problem is the way Blackboard values are set.
When a Service is running on a selector node, it performs the desired tasks at correct intervals, which manifests itself in correctly-printing strings. i.e. the tick fires off the “true” or “false” string exactly as it should.
BUT, the Service itself refuses to update blackboard values until it is between tasks. With a wait time of 0.2, the blackboard value is correctly written on my end; with a wait time of 5, the blackboard value only updates every 5 seconds.
The problem here is that if the service is trying to update a blackboard value that is relevant to child leaves/nodes/whatever, it cannot do this, since it must wait for those nodes to complete before it can change the value in question. It seems like a Service should be able to do what it does all the time while a selector/sequence is active (otherwise what’s the point?) but in fact it can’t change blackboard values except between tasks.