Player Speed Control FPS/3rd Person

How do you add variable speed control to a player. By default in the 2 templates (FPS/3PS) the player runs. I haven’t actually tried to just reduce the max speed because it does not solve my problem. I want to know how I could add controls to choose between 3 speeds. Think of Call of Duty or Battlefield or even GTA5. You press a button and the player sprints. I want to add that feature for sprinting and for walking REALLY slow.

My best guess is maybe a bool? If button is pressed set (bool). What I am unsure of is how to get that information to the movement of the player and adjust the speed.

Any thoughts?

P.S. In regards to why I do not want to use analog speed for the control stick, it is because some players will have to use a keyboard to play.

Thank you!

I hate to be the guy that says this, but my search returned no results regarding the specific question I asked. I read both of the responses you linked and neither of them worked.

I know it is an easy assumption that I didn’t search first…but i did. Thanks for the suggestions though.

There’s a lot of answered questions on this subject, for both blueprints and C++, use search before asking, please.

Thank you that was what I was looking for and it works perfectly. Thank you.


There’s an example how to do that, it simply changes speed on Left Shift press. That’s “toggle” sprint, to make it “hold-to-sprint” you have to set speed back on Left Shift being released. That should be a starting point for you, if you have any other questions ask, would like to assist.

To add a third speed option you have to make an enum like “Walking, Running, Sprinting”, then in tick event check current state and set speed accordingly. Or you could avoid tick event in this case by simple assigning every every state to some key, depends on what you want actually.

Regards.