I think I found out what was making the difference!
- Select the Workspace
- Go to the Properties window
- Update the
SignalBehavior
property toDeferred
- Observe that it now works as intended.
In newly created places since late November of 2023, that property is automatically set to “Deferred”, but since your game was created before that, it remained on “Default” (which currently uses the behavior of the “Immediate” setting).
-
*There was an announcement for this change around that time, but the original announcement thread explains more about the feature itself.
I don’t have the technical know-how to confidently explain how that works and why that enables it to work, but I assume it’s because of the order that the code runs in when in Deferred mode. The loop probably runs every so slightly later on, which seems like it was just enough time to allow it to override whatever the engine was internally doing at that moment for the Character model. However, that’s just my understanding of it, so take that with a grain of salt.