I am impressed with the use of node canvas. we are thinking to adopt it in our studio.
We have found although a very interesting bug in the inspector of behaviour tree owner and prefab overrides
The following steps to repro.
Create a tree with two variables and make them public. VarA int and VarB bool
create a prefab with the treeOwner and assign the asset graph to it in prefab mode
use the triangle button to override the values of the variables still in prefab mode.
exit prefabmode. Right click on the varA to remove the variable override
varB gets marked in blue as having prefab override.
The serialisation in scene is added for varB instead of var A
The wanted behaviour should be that varB should not be marked dirty.
This happen on multiple variables if you have more than 2.
This is a fundamental bug for our workflow.
Pls let us know what can be done.
Wanted to add that property overrides on blackboards are (and probably still are) a major pain point. We’ve already had awkward situations where one deletes a variable from a base prefab and it causes funny shifts of value assignment in derived prefabs or scenes. I know there was work done on this topic to improve the behaviour (maybe check discord or dig a bit deeper in the forum), but from experience I can only tell that one should be cautious when using blackboards and overrides.
Thank you for letting me know. Prefab overrides are admittedly a pain for variables and overrides because these are serialized in a list and therefore when a variable/override is remove at the start of the list, the rest of the variables/overrides change their index in that list. This is why when you remove one, the others after that one are marked overriden, while the others before that are not. With that said, this is something I will have to fix/handle anyway. The simple solution will be to disallow removals and only allow value changes for overrides, but I will try to handle both. I will look at this again within the coming week.
Thanks a lot for your reply. I have been investigating the issue as well and reached the same solution. Changing the array in prefabs instances or variance will cause issue. It would be great also to handle the case when in the root prefab the graph changes changing also the exposed parameter making any override invalid. A way to mark them as invalid or clean them up would be great.