Hey, I’m looking to create a flying system like Plane Crazy.
If I must be honest though, I’m really just looking to figure out the movement, so for example,
It’ll head in the mouse’s direction. The plane tilting to the direction isn’t exactly needed.
I know how the camera would work, you can just use a third-person camera lock that controls direction. then for the speeds like turn off motor just do it as Input “M” pressed then speed tweens to 0, then if “else” it will tween back to say “50”, and you can add a
M.UIS:Connect(function(player)
M.Triggered:Connect(function()
if active == 0 then
active = 1
--speed stuff
elseif active == 1 then
active = 0
--speed stuff
end
end)
end)
Here’s the third person script you can customize
local uis = game:GetService("UserInputService")
local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
humanoid.AutoRotate = false
local hrp = char:WaitForChild("HumanoidRootPart")
local x = 0
local y = 0
local offset = Vector3.new(3, 3, 10)
uis.InputChanged:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.MouseMovement then
x = x - input.Delta.X
y = math.clamp(y - input.Delta.Y*0.4, -75, 75)
hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(-input.Delta.X), 0)
end
end)
game:GetService("RunService").RenderStepped:Connect(function()
uis.MouseBehavior = Enum.MouseBehavior.LockCenter
local startCFrame = CFrame.new((hrp.CFrame.Position)) * CFrame.Angles(0, math.rad(x), 0) * CFrame.Angles(math.rad(y), 0, 0)
local cameraCFrame = startCFrame:ToWorldSpace(CFrame.new(offset.X, offset.Y, offset.Z))
local cameraDirection = startCFrame:ToWorldSpace(CFrame.new(offset.X, offset.Y, -10000))
camera.CFrame = CFrame.new(cameraCFrame.Position, cameraDirection.Position)
end)
Put it in a LocalScript in StartCharacterScripts
Hope this somewhat helps you.