I have figured this out, more or less. I would love it if someone points out a better way for me.
First I create a variable that contains the initial bone transform array on construction event, the primary purpose here is to have a populated transform array with a correct number of entries.
I then modify it like this, I’m using a vector array that gets updated from the animbp and applying it’s values to the transform variable based on index:
Then to ensure it is only updated when actually needed I apply the final solution like this:
Where the update bone scale function is the same as in the 2nd picture.
I originally wanted to use the transform array to SRT node in the OP and compare that to my scalebyindex variable but for some reason even if it should be an exact match, it for some reason is not which is why i created that buffer variable instead.
This way the modifiedtransforms variable is only updated when it is required, and when it doesn’t have to be only the set transform array node is run to keep the last transform active.
The biggest downside is that when using global space it behaves different than expected, when using local space it behaves as expected though, I’m not sure why this is.