Local variables in nested custom rules should not bubble to outer rule

It’s actually gotten worse for me. I didn’t have this issue before, but now when the original object sets a local variable in a custom rule it applies to all clones, but when a clone sets it everything works fine


Will demo when I get a chance

4 Likes

I think one issue is that the local variable seems to be bubbling to the outer-most custom rule instead of staying within itself. I’ve made a demo project here, where variables should stay in “frame counter delay(x)” instead of bubbling up to “Frame group”:

it should behave like this (same code, but all frame counter custom rules are at object level):

From what I saw in my calculator project as well, I think this only applies to original object running the code, not clones, but I can’t confirm that yet.

2 Likes

Thanks for making those projects — I had a look at them. I wasn’t sure if I understood the example correctly — is this also the same issue?

3 Likes

Not sure if it’s exactly the same, but yeah the delay and value variables seem to override previous ones in the left Gorilla object. So, I would consider that to be the same issue

2 Likes

Ok I have a simpler project:

I’ll move these recent into a new topic, since they’re for nested custom rules.
I’ll write up a summary of the issue here and also put it on our list internally.

  1. Create a custom rule with a parameter. Add this code inside the custom rule, and use the custom rule a few times in an object, with different parameter values.

  2. Create another object. Create another custom rule, which will contain the same code as the previous object, but all nested in the new custom rule.

  3. Play the project.

Expected:
Custom rules that are nested simultaneously use independent values of the parameter/local variable.

Both objects should run the code the same — they should wait the amount of seconds specified in the parameter for each custom rule instance, and then display that number.

Actual:
Custom rules that are nested use the most-recently set value of the parameter/local variable.

The object which does not have the custom rules nested does wait the amount of seconds specified in the parameter for each instance of the custom rule, and then display that number.

The object which has the nested custom rules uses only the 1 value which is most recently set. (The value of the parameter in the last block can be changed to test this e.g. 5, etc.)

4 Likes

Any update on this? It still seems like a pretty major bug with custom rules, and it’s particularly annoying because it occurs on 2.0.x only.

2 Likes