Best Approach to Player Momentum?

I’d like to allow the player to retain their momentum in a way similar to games like Ultrakill or Combat Initiation. So far, I’ve tried using the Character Controllers which worked well but caused some issues when the player had a tool equipped. I also tried using HumanoidStateType.Physics together with VectorForces but I had some issues while scripting it. I’ve tried looking around the devforums and most answers related to the solutions I already tried. Is there something I’m missing or should I try something else?

Also, if there is something I can do to fix the tools+character controller problem then I’d like to try that first.

TL;DR: I want the player’s movement to keep them moving a little bit after stopping.

The best way to do this would be to use a custom character movement like the Source Engine movement someone made and posted on here a while ago