# BodyPosition

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [BodyMover](https://rapi.sleaze.dev/classes/BodyMover.md), [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Tags: Deprecated
- Memory category: Instances
- HTML page: https://rapi.sleaze.dev/classes/BodyPosition/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/BodyPosition

**Deprecated:** This object is deprecated and should not be used for new work. Use [`AlignPosition`](https://rapi.sleaze.dev/classes/AlignPosition.md) instead, and see the [legacy conversion notes](https://create.roblox.com/docs/physics/mover-constraints#legacy-mover-conversion).

Applies a force to maintain a constant position.

## Properties

### D

```luau
BodyPosition.D: number = 1250
```

- Tags: Read capabilities: Physics

Determines the amount of dampening to use in reaching the goal [`Position`](https://rapi.sleaze.dev/classes/BodyPosition.md).

### MaxForce

```luau
BodyPosition.MaxForce: Vector3 = Vector3.new(4000, 4000, 4000)
```

- Tags: Read capabilities: Physics

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

### P

```luau
BodyPosition.P: number = 10000
```

- Tags: Read capabilities: Physics

Determines how aggressive of a force is applied in reaching the goal position.

### Position

```luau
BodyPosition.Position: Vector3 = Vector3.new(0, 50, 0)
```

- Tags: Read capabilities: Physics

Determines the goal position towards which force will be applied.

### maxForce

```luau
BodyPosition.maxForce: Vector3 = Vector3.new(4000, 4000, 4000)
```

- Tags: Deprecated, Not replicated, Read capabilities: Physics, Load only
- Use instead: [`BodyPosition.MaxForce`](https://rapi.sleaze.dev/classes/BodyPosition.md)

**Deprecated:** This property is a deprecated variant of [`BodyPosition.MaxForce`](https://rapi.sleaze.dev/classes/BodyPosition.md) which should be used instead.

### position

```luau
BodyPosition.position: Vector3 = Vector3.new(0, 50, 0)
```

- Tags: Deprecated, Not replicated, Read capabilities: Physics, Load only
- Use instead: [`BodyPosition.Position`](https://rapi.sleaze.dev/classes/BodyPosition.md)

**Deprecated:** This is a deprecated variant of [`BodyPosition.Position`](https://rapi.sleaze.dev/classes/BodyPosition.md) which should be used instead.

## Methods

### GetLastForce

```luau
BodyPosition:GetLastForce(): Vector3
```

- Tags: Capabilities: Physics

Returns the last force in the object.

### lastForce

```luau
BodyPosition:lastForce(): Vector3
```

- Tags: Deprecated, Capabilities: Physics
- Use instead: [`BodyPosition.GetLastForce`](https://rapi.sleaze.dev/classes/BodyPosition.md)

**Deprecated:** This property has been superseded by [`BodyPosition:GetLastForce()`](https://rapi.sleaze.dev/classes/BodyPosition.md) which should be used in new work instead,

Returns the last force in the object.

## Events

### ReachedTarget

```luau
BodyPosition.ReachedTarget: RBXScriptSignal<()>
```

- Tags: Capabilities: Physics

Fired when the Parent of the BodyPosition reaches the desired [`BodyPosition.Position`](https://rapi.sleaze.dev/classes/BodyPosition.md) (within .1 studs). Once this event fires it will not fire again until [`BodyPosition.Position`](https://rapi.sleaze.dev/classes/BodyPosition.md) is updated.

## Inherited members

- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
