Rotate Rotors on Helicopter

I would like to rotate my helicopter’s rotors to make it look realistic, but I need to keep it on the heli somehow. When I weld them to keep them on the heli as it moves, the heli rotates as well. I need to keep the heli moving as normal while the rotors are moving and keep them attached. I have tried welding them with ManualWelds and WeldConstriants and no luck. I’m using an old script on the DevForum to rotate them which uses Motor6Ds.

I’ve also tried what was mentioned here with no luck and none of the parts moving.

I’m thinking of an idea utilising Lerp, you can Lerp the rotors while still maintaining the position by creating a new destination for the CFrame every iteration; you’d need to wrap the Position in a CFrame.new constructor and then add the desired angle.

For example:

for i = 0, 1, 0.01 do
    local desiredCFrame = CFrame.new(rotors.Position) * CFrame.Angles(0, math.rad(360), 0)
    rotors.CFrame = rotors.CFrame:Lerp(desiredCFrame, i)
    wait(0.05)
end

If the rotors are a Model then you’ll need to create a PrimaryPart, weld the other parts to it and then Lerp the PrimaryPart’s CFrame.

2 Likes

Necro post but I know the solution. Set the rotor instances’ Massless property to true. Otherwise, when the rotors rotate they cause the entire helicopter to also rotate.

1 Like