I need Ideas for Plane system

So i was trying to make a plane and everything i do becomes a failure,i tried using legacy body movers such as body force,body thrust and body velocity.then i tried using no legacy body movers like vector force and such but none of them worked and felt like a proper airplane.What i mean by a proper airplane feel is planes in Jailbreak has a good way of a plane system the movement of planes in jailbreak is smooth and turns easily but all i tried had many problems and it didnt feel like a plane.

So the reason i made this post is for me to get one answer which is what is the best way to make a plane and make it seem and feel like a plane and not a floating thing in sky…

1 Like

Hey Creeper, I think you should watch Noobie’s video, he made an “glitchy” Cargo Plane, but it works
Part 1: ROBLOX STUDIO | How to make a Cargo Plane Robbery System [Part 1/2] (GLITCHY) - YouTube
Part 2 : ROBLOX STUDIO | How to make a Cargo Plane Robbery System [Part 2/2] (GLITCHY) - YouTube


thats not what i want as he made a pre-scripted plane but i wanna make a movable plane controlled by player using wasd or smth

1 Like

Use RunService to detect whether the player is sitting on the plane and if a certain key is down.
Cause movements according to your desired keys if they are held.
-Change CFrame according to that.
Use different keycodes for rotation and position.
If a simple plane system I would not use legacy body movers but rather change the CFrame every Frame depending on U.i as I would need to take gravity, total mass on the plane , and the plane may tilt in that case if correct calculations are not done.

If advanced system like in realistic games I expect a similar method of movement but except through body movers.

1 Like

These are two planekits usually used. Though the skytech one is getting an update soon. It takes mouse input.

1 Like

using runservice to detect a player sitting is the worst idea i’ve ever heard in my life

use :GetPropertyChangedSignal() of the occupant property on the seat instead

Thank you for pointing that out. That was really a poorly phrased answer.
What I meant in the first place was to run a function every frame through Run Service and if the seat is occupied, through conditional, and the player who is occupying the seat is the local player. After that add another “if statement” to check if the Key is down through UserInputService.
According to the desired keys, cause movement of the vehicle.

-I have edited my answer this time so that it seems proper.

and using runservice instead of UIS.InputStarted is still a very poor idea

Not here to argue or anything but can you give an alternative to keep checking if key is down?
When playing do u press W once for the character to move forward or keep holding it?
If you really can please provide an alternative to Uis:IsKeyDown()
Roblox might be pleased.
And lastly before picking on someone please be sure to state properly the points or understand what is being said.

InputEnded connection inside InputStarted connection. I would appreciate if you were not passive aggresive when im pointing out problems in your idea.