One thing I’d like to point out is that, although it would be annoying to implement, it is perfectly possible to emulate Roblox’s Animation system in Lua via the Transform property: Documentation - Roblox Creator Hub
Basic rundown of what would need to be done:
- Get the Pose Descendants of each Keyframe
- Find the Motor6D descendant in the character whose Part1 shares the same name as the Pose.
- Generate some Tweens that apply the Transform of the Motor6D based on the Pose’s CFrame, EasingDirection, and EasingStyle.
- Create some sort of complicated playback system that can pass instructions to the clients for replication and playback on any character in the scene.
That last part would be the tricky thing, considering factors like how multiple animations stack on each other, how priority comes into play, animation weights, etc.