The best method of creating a jetpack!

I wish to create a jetpack that allows the player to hover in the air while also being able to move in different directions by using the WASD keys. I am familiar with using Enum codes to detect key down but I would like guidance on what to do before carrying out the scripting as I do not know which proper body force method to use to create this model. Any help or suggestions would be greatly appreciated.

1 Like

I would recommend welding the model to the player and using body gyros and BodyPositions. With them turning on when the player presses a key.

Thank you for your insight, could it also suspend the character in air?

Yes if you give it enough force to cancel out your gravity level in the game.

Perfect thank you a lot. This will become very helpful.

Hi. Changing BodyGyro’s CFrame just lets you rotate the character. To sustain it, you will need an additional object; I recommend BodyPosition in this case, although BodyForce can give good results too.

As a suggestion, you could modify BodyPosition.MaxForce.Y or BodyForce.Force.Y in response to another input (e.g. Q and E keys) to shift the altitude of the character.

How would I set the body position to the players local position though instead of the workspaces, when activated it drags you to the middle of the workspace for some reason.

It happens because BodyPosition’s Position is (0, 0, 0) by default. Just change it to a position of your interest,

local BodyPosition = --...
BodyPosition.Position = BodyPosition.Parent.Position