None of those things are my issue, it’s simply that in my experience of decades of professional game development, expecting a bunch of variables to stay in sync across multiple systems is a guarantee of regressions. I much prefer picking systems which are robust and don’t require extra setup or maintenance.
Also, montages won’t work for the system I am building, as there are portions of it which need direct player control, which would require the montage itself to be manipulated while it was running. It is possible I am missing something about how to use montages, but they seemed to generally be unfriendly to branching logic.
I did find a general workaround which is that from a thread safe statemachine update call, I could set the current state name, and from the ABP’s tick check for changes against the last statemachine name, and then from there I can direct functions outward.
It’s just an awkward pattern when really all I need is a callback.