Best Method to Track Player Actions?

I’m currently working on a Roblox project and could use some advice on efficiently tracking player actions like sprinting, parrying, rolling, and crouching. But not to be confused with data store values like money, powers, level etc.

I want to know what would be the most maintainable method of doing this.

I attempted to make value instances in the player when they joined using PlayerAdded . However, I find this approach insecure and difficult to maintain.

Any help will be appreciated.

Honestly, I could try and write 20 million words on what a State Manager is, but here is a video:

It may seem lazy, but he does a great job explaining it. For the most part You need to track what the player does through remote events. Updating the information sent back and forth. Now you can find a lot of State Managers on this forum as well this is just a visual example of someone making one. He uses profile service and if you really want to understand more of what he is doing, make the project from the start with him.