I’m currently making a custom player controler, and to make it jump, when using Humanoid.Jump = true, or humanoid change state, the character loses all speed and then does the jump. I wanted it to not lose it’s speed while jumping, and also be able to move in the middle of the jump.
If you are wondering, to move the character i’m using Player:Move()
How can you track and determine the speed the character is moving before they jump, and apply that force… which could be a lot , if they are on a moving object, or nothing ( or very little) like if they are standing still and jump?
Well, you could do a couple things… If you just want to get their velocity, you could just take their position at step X and their position at step X+1. From that you can infer their velocity. Also, Roblox gives you some data for this. Assemblies have some fields for forces, so do BaseParts. I’m pretty sure humanoids also have some form of this.
Truth be told, we will need to see at least the part in your script that is responsible for jumping. I suspect that the issue is being caused due to not updating the humanoid’s movement when jumping as I had a similar issue when I tried to make a custom character controller that doesn’t use loops. I recommend you read the default player module that is created with a Player Instance, although do be warned it does make use of some confusing metatable structures. I also suggest using Humanoid:Move instead of Player:Move as reading the document shows that it calls Humanoid:Move anyways behind the scenes, but this is up to you to decide
Edit: Actually re-reading the document shows that the last statement I made isn’t mentioned, although I do somehow remember reading it somewhere