# FluidForceSensor

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

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

A [`SensorBase`](https://rapi.sleaze.dev/classes/SensorBase.md) that outputs [`Force`](https://rapi.sleaze.dev/classes/FluidForceSensor.md), [`Torque`](https://rapi.sleaze.dev/classes/Torque.md) and [`CenterOfPressure`](https://rapi.sleaze.dev/classes/FluidForceSensor.md).

## Properties

### CenterOfPressure

```luau
FluidForceSensor.CenterOfPressure: Vector3 = Vector3.zero
```

- Tags: Read only, Read capabilities: Basic, Save only, Simulation access

Assembly center of pressure offset from its center of mass in world coordinates.

### Force

```luau
FluidForceSensor.Force: Vector3 = Vector3.zero
```

- Tags: Read only, Read capabilities: Basic, Save only, Simulation access

Assembly fluid force in world coordinates.

### Torque

```luau
FluidForceSensor.Torque: Vector3 = Vector3.zero
```

- Tags: Read only, Read capabilities: Basic, Save only, Simulation access

Assembly fluid torque in world coordinates.

## Methods

### EvaluateAsync

```luau
FluidForceSensor:EvaluateAsync(linearVelocity: Vector3, angularVelocity: Vector3, cframe: CFrame): ...any
```

- Tags: Yields, Capabilities: Basic, Simulation access

Asynchronously computes force, torque, and center of pressure for the parent part of a sensor given provided inputs.

Parameters:

- `linearVelocity`: Linear velocity in world coordinates.
- `angularVelocity`: Angular velocity in world coordinates.
- `cframe`: [`CFrame`](https://rapi.sleaze.dev/index/types/CFrame.md) to be used for evaluation.

Returns: Tuple of [`Force`](https://rapi.sleaze.dev/classes/FluidForceSensor.md), [`Torque`](https://rapi.sleaze.dev/classes/Torque.md) and [`CenterOfPressure`](https://rapi.sleaze.dev/classes/FluidForceSensor.md) calculated given the input parameters.

## Inherited members

- From [SensorBase](https://rapi.sleaze.dev/classes/SensorBase.md): `UpdateType`, `Sense`, `OnSensorOutputChanged`
- 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`
