This tree shows how my blueprints are made. Class1 has a function which returns a bool value. The problem is that when an instance of Class3_1 or Class3_2 (edit: actually it doesn’t work on every instance including Class1) uses inherited function from Class1 (the function call is in the Class1 blueprint) returned value is always true even though inside the the function everything works fine. Because of that bug loop is not stoping on the second branch node after the function is called. There is no difference if I use Executed local variable or connect value directly.
Shot in the dark here, but is “Clip Ammo” a local variable? If so, it needs not to be.
It’s not local, only Executed is local in this blueprint
Make your function execute the return node following “False” on your branch, otherwise it will just return a default value (it’s better to specify the value than rely on UE4 defaults).
Just tested this and if you don’t use a return node it seems to use the last return value.
I.e. call the a function that returns an int (3), and then call it again without a return node, that return will be (3). Same is happening here with your bool, it is saving “true” from the previous return.
Thanks, you are right, works now.