Confusing state transition behavior show in Rewind Debugger on event trigger.

I am running into a certain state tree behavior and I don’t know if it’s intentional. Let’s say I have a basic state tree like this:

[Root]
→ [Combat]
–→ [Move To Target]
–→ [Attack Target]
→ [Roaming]
–→ [Move To New Location]
–→ [Idle]

[Roaming] has On Event transition to [Combat], which is triggered by an Combat.Entered event.
[Move To New Location] has On State Completed transition to [Idle].
[Idle] has On State Completed transition to [Move To New Location].

When Combat.Entered event is triggered and we’re in [Move To New Location] state, I expect to transition directly to [Combat]. However, what happens, the Rewind Debugger, is that [Move To New Location] transitions to [Idle] and then immediately that transitions to [Combat]. So, [Move To New Location]’s completion in this scenario triggers its On State Completed transition, but then the On Event transition finally transitions to [Combat].

So, is is this an expected behavior? I just happened to notice that this is happening in the Rewind Debugger. And what’s more weird is that it’s not even showing me many details in the debugger, besides “Send Event ”:

And then immediately after that:

I set a state entry breakpoint in [Idle] state, but it’s not triggered when combat event occurs. Additionally, if I disable the On State Completed transition from [Move To New Location] to [Idle], I don’t see this behavior (obviously).

So, the debugger shows that we’re in [Idle] momentarily, but doesn’t provide any details, besides that the event was called, and entry breakpoint is not triggered.

I’m not sure if its expected, but the order of operations with parents and children is finicky and unintuitive for sure. I’ve seen the same behavior in the old debugger and it makes it very hard to figure out when a parent kills the child. There is absolutely a bug in the debugger where it thinks its in the wrong state sometimes as well (had to comment a line out when you scroll)

BTW how did you get the state trees to actually record in the rewind debugger. We just get “Start a recording to debug” and when you record it doesn’t update.

BTW how did you get the state trees to actually record in the rewind debugger. We just get “Start a recording to debug” and when you record it doesn’t update.

@TheDogtoy I use both “Automatically start recording when PIE is started” option (when I want to immediately start recording) and also just manual recording with “Start recording Animation Insights data” (when I want to record only at a specific time).

One very annoying thing that I noticed is that after recording, it won’t show all of the states correctly in the timeline, so I have to scroll through it for it to get populated correctly. It’s a minor inconvenience, but still annoying, especially if it’s a long recording. I think that’s what you’re referring to as well?

Ah something is broken for us. After clicking record (and with start recording on) it still won’t record. :frowning: At least when playing in listen server. It does record when playing as client but that doesn’t help us for AI as our AI isn’t on the client. Herm.

Unreal Engine Issues and Bug Tracker (UE-208850)

@TheDogtoy Ah, I see. I’m only doing Standalone at the moment.