GSmGpE6CwX2y9JjB25B8
We use cookies on this site to enhance your user experience
Collapse Sidebar

BodyGyro

Show Show deprecated

BodyGyro

Show deprecated

The BodyGyro object applies a torque (rotational force) on a BasePart such that it maintains a constant angular displacement, or orientation. This allows for the creation of parts that point in a certain direction, as if a real gyroscope were acting upon it. Essentially, it’s the rotational counterpart to a BodyPosition.

If you would like to maintain a constant angular velocity, use a BodyAngularVelocity instead.

The BodyGyro/CFrame|CFrame property controls the goal orientation. Only the angular components of the DataType/CFrame are used; position will make no difference. BodyGyro/MaxTorque|MaxTorque limits the amount of angular force that may be applied, BodyGyro/P|P controls the power used in achieving the goal orientation, and BodyGyro/D|D controls dampening behavior.

Setting the Orientation

Like all DataType/CFrame properties, the BodyGyro/CFrame property isn’t editable in the Properties window of Studio. Since there’s no physical component to a BodyGyro, you should use scripting to set the BodyGyro/CFrame.

A common technique for setting the goal orientation is to set the BodyGyro/CFrame to a part’s BasePart/CFrame|CFrame. For example:

workspace.Part.BodyGyro.CFrame = workspace.Part.CFrame

You can also use a DataType/CFrame constructor which initializes rotation such as CFrame.fromAxisAngle, CFrame.fromEulerAnglesXYZ, or CFrame.fromEulerAnglesYXZ. Alternatively, you can use the following structure to make the body gyro “look at” a targetPosition.

CFrame.new(BodyGyro.Parent.Position, targetPosition)

Troubleshooting

  • If the assembly isn’t moving at all, it most likely has mass larger than what the BodyGyro can move. Try raising the BodyGyro/MaxTorque|MaxTorque and/or BodyGyro/P|P (power) properties. You should also check that no BasePart/Anchored|Anchored parts are within the assembly or in the way of the assembly.
  • If the assembly isn’t moving on all axes, double check the axis in question has sufficient BodyGyro/MaxTorque|MaxTorque. Alternatively, if the part allows movement on an axis and shouldn’t, be sure the BodyGyro/MaxTorque|MaxTorque is non-zero on that axis and refine the manner in which you are setting the BodyGyro BodyGyro/CFrame|CFrame.
  • If the assembly is moving too quickly, consider raising the BodyGyro/D|D (dampening) property.
  • If the assembly is moving too slowly, consider lowering the BodyGyro/D|D (dampening) property. Also consider raising the BodyGyro/MaxTorque|MaxTorque and/or BodyGyro/P|P (power) properties.
  • Any assembly containing a part that contains a BodyGyro or BodyPosition will not be simulated when interacting with a player unless that player is the /articles/Network Ownership|network owner of the assembly.

Properties

CFrame

CFrame

Determines the target orientation (translational component ignored)

float

D

Determines the amount of dampening to use in reaching the goal BodyGyro/CFrame|CFrame

Vector3

MaxTorque

Determines the limit on how much torque that may be applied to each axis

float

P

Determines how aggressive of a torque is applied in reaching the goal orientation

CFrame

cframe

[NotReplicated] [Deprecated]
Vector3

maxTorque

[NotReplicated] [Deprecated]

Inherited from Instance: Show Hide

bool

Archivable

Determines if an Instance can be cloned using /Instance/Clone or saved to file.

string

ClassName

[ReadOnly] [NotReplicated]

A read-only string representing the class this Instance belongs to

int

DataCost

[ReadOnly] [NotReplicated] [Deprecated]

The cost of saving the instance using data persistence.

string

Name

A non-unique identifier of the Instance

Instance

Parent

Determines the hierarchical parent of the Instance

bool

RobloxLocked

If true, the Instance and its descendants cannot be indexed or edited by a Script or LocalScript and will throw an error if it is attempted

bool

archivable

[Hidden] [NotReplicated] [Deprecated]
string

className

[ReadOnly] [NotReplicated] [Deprecated]

Functions

Inherited from Instance: Show Hide

void

ClearAllChildren ( )

This function destroys all of an Instance's children.

Instance

Clone ( )

Create a deep copy of a Roblox instance and descendants where Archivable = true.

void

Destroy ( )

Sets the Instance/Parent property to nil, locks the Instance/Parent property, disconnects all connections and calls Destroy on all children.

Instance

FindFirstAncestor ( string name )

Returns the first ancestor of the Instance whose Instance/Name is equal to the given name.

Instance

FindFirstAncestorOfClass ( string className )

Returns the first ancestor of the Instance whose Instance/ClassName is equal to the given className.

Instance

FindFirstAncestorWhichIsA ( string className )

Returns the first ancestor of the Instance for whom Instance/IsA returns true for the given className.

Instance

FindFirstChild ( string name , bool recursive )

Returns the first child of the Instance found with the given name.

Instance

FindFirstChildOfClass ( string className )

Returns the first child of the Instance whose Instance/ClassName|ClassName is equal to the given className.

Instance

FindFirstChildWhichIsA ( string className , bool recursive )

Returns the first child of the Instance for whom Instance/IsA returns true for the given className.

Objects

GetChildren ( )

Returns an array containing all of the Instance's children.

string

GetDebugId ( int scopeLength )

[NotBrowsable]

Returns a coded string of the Instances DebugId used internally by Roblox.

Array

GetDescendants ( )

[CustomLuaState]

Returns an array containing all of the descendants of the instance

string

GetFullName ( )

Returns a string describing the Instance's ancestry.

RBXScriptSignal

GetPropertyChangedSignal ( string property )

Get an event that fires when a given property of an object changes.

bool

IsA ( string className )

[CustomLuaState]

Returns true if an Instance's class matches or inherits from a given class

bool

IsAncestorOf ( Instance descendant )

Returns true if an Instance is an ancestor of the given descendant.

bool

IsDescendantOf ( Instance ancestor )

Returns true if an Instance is a descendant of the given ancestor.

void

Remove ( )

[Deprecated]

Sets the object’s Parent to nil, and does the same for all its descendants.

Instance

WaitForChild ( string childName , double timeOut )

[CustomLuaState] [CanYield]

Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.

Objects

children ( )

[Deprecated]

Returns an array of the object’s children.

Instance

clone ( )

[Deprecated]
void

destroy ( )

[Deprecated]
Instance

findFirstChild ( string name , bool recursive )

[Deprecated]
Objects

getChildren ( )

[Deprecated]
bool

isA ( string className )

[Deprecated] [CustomLuaState]
bool

isDescendantOf ( Instance ancestor )

[Deprecated]
void

remove ( )

[Deprecated]

Events

Inherited from Instance: Show Hide

RBXScriptSignal

AncestryChanged ( Instance child , Instance parent )

Fires when the Instance/Parent property of the object or one of its ancestors is changed.

RBXScriptSignal

Changed ( string property )

Fired immediately after a property of an object changes.

RBXScriptSignal

ChildAdded ( Instance child )

Fires when an object is parented to this Instance.

RBXScriptSignal

ChildRemoved ( Instance child )

Fires when a child is removed from this Instance.

RBXScriptSignal

DescendantAdded ( Instance descendant )

Fires when a descendant is added to the Instance

RBXScriptSignal

DescendantRemoving ( Instance descendant )

Fires immediately before a descendant of the Instance is removed.

RBXScriptSignal

childAdded ( Instance child )

[Deprecated]