Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Body Objects question?

bg = Instance.new("BodyGyro", c1:findFirstChild("Torso"))
bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
bg.cframe = CFrame.new(char:findFirstChild("Torso").CFrame.lookVector)

So what I want the object to do is point in the direction my torso is facing, and everything is tagged properly, so what is the problem?

1 answer

CFrame.new(Vector3) creates a CFrame at the position of Vector3 but in the default orientation. This is what you are using, so it just makes the part have the default orientation (front in -Z and top in +Y).

Instead, just use the CFrame of the Torso directly:

bg.cframe = char.Torso.CFrame;

You could also have constructed your own CFrame, but using the 2 argument CFrame.new constructor:

bg.cframe = CFrame.new( Vector3.new(), char.Torso.CFrame.lookVector );

(although this is not quite the same since this will not match the tipping of Torso, though will match the front direction)


Note that using FindFirstChild like this is just extra, unnecessary typing.

This is because this snippet will error if there isn't a Torso:(attempt to index a nil value for using .CFrame)

Use .Torso instead except in the actual condition that verifies there is a Torso.

This discussion is preserved as it was. New answers, comments, and votes are closed.