# BodyForce

Show deprecated

The BodyForce object applies (or exerts) a force on the part to which it is parented. If the magnitude of such a force is great enough, parts can begin to accelerate. See Newton’s First Law of Motion. The force is determined by the BodyForce/Force property, and is defined on the three world axes.

A BodyForce alone cannot apply a torque (it cannot cause the parent to rotate on its own). To apply a force at a specific point (e.g. to apply torque for angular acceleration) or apply forces relative to the orientation of the part, use a BodyThrust instead.

## Forces Relative to Parent

Using the CFrame:vectorToWorldSpace(Vector3) method, it is possible to translate a force vector that is relative to the part into the world vector necessary for BodyForce/Force|Force. For example, to apply a force to the left an object (no matter which way it’s facing), try:

magnitude = 100
left = Vector3.new(-1, 0, 0) * magnitude -- You could also use Vector3.FromNormalId(Enum.NormalId.Left)
bodyForce.Force = bodyForce.Parent.CFrame:vectorToWorldSpace(left)

You can also use a BodyThrust with a BodyThrust/Location|Location of (0, 0, 0), then set the BodyThrust/Force|Force for the same effect.

## Anti-gravity

BodyForce is commonly used to counteract the effects of Workspace/Gravity|Gravity on a per-part basis by simply applying a force in the +Y direction. See the code samples for more information.

## Properties

Vector3

### Force

Determines the force exerted on each axis

Vector3

### force

[NotReplicated] [Deprecated]

Determines the amount of force applied on each axis

Inherited from Instance:

bool

### Archivable

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

string

### ClassName

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

int

### DataCost

The cost of saving the instance using data persistence.

string

### Name

A non-unique identifier of the Instance

Instance

### Parent

[NotReplicated]

Determines the hierarchical parent of the Instance

bool

### RobloxLocked

[Hidden]

A deprecated property that used to protect CoreGui objects

int64

### SourceAssetId

[Hidden] [NotReplicated]
bool

### archivable

[Hidden] [NotReplicated] [Deprecated]
string

## Functions

Inherited from Instance:

void

### ClearAllChildren ( )

This function destroys all of an Instance’s children.

Instance

### Clone ( )

Create a copy of an object and all its descendants, ignoring objects that are not Instance/Archivable|Archivable

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.

Instance

### FindFirstDescendant ( string name )

Returns the first descendant found with the given Instance/Name.

Actor

### GetActor ( )

Returns the Actor associated with the Instance, usually the first Actor ancestor

Variant

### GetAttribute ( string attribute )

Returns the attribute which has been assigned to the given name

RBXScriptSignal

### GetAttributeChangedSignal ( string attribute )

Returns an event that fires when the given attribute changes

Dictionary

### GetAttributes ( )

Returns a dictionary of string → variant pairs for each of the Instance|Instance’s attributes

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.

void

### SetAttribute ( string attribute , Variant value )

Sets the attribute with the given name to the given value

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

[Deprecated]
void

[Deprecated]
Instance

[Deprecated]
Objects

[Deprecated]
bool

### isA ( string className )

[Deprecated] [CustomLuaState]
bool

[Deprecated]
void

[Deprecated]

## Events

Inherited from Instance:

RBXScriptSignal

### AncestryChanged ( Instance child , Instance parent )

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

RBXScriptSignal

### AttributeChanged ( string attribute )

Fires whenever an attribute is changed on the Instance

RBXScriptSignal

### Changed ( string property )

Fired immediately after a property of an object changes.

RBXScriptSignal

### ChildAdded ( Instance child )

Fires after an object is parented to this Instance.

RBXScriptSignal

### ChildRemoved ( Instance child )

Fires after a child is removed from this Instance.

RBXScriptSignal

### DescendantAdded ( Instance descendant )

Fires after a descendant is added to the Instance

RBXScriptSignal

### DescendantRemoving ( Instance descendant )

Fires immediately before a descendant of the Instance is removed.

RBXScriptSignal

### Destroying ( )

Fires immediately before the instance is destroyed via Instance/Destroy.

RBXScriptSignal

[Deprecated]

## Code Samples

### Lunar Gravity

This code sample demonstrates how a BodyForce can be used to counteract the force of gravity by providing a force in the opposite direction (upward).