# CylindricalConstraint

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

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

Constrains two attachments on two parts to have a relative linear and rotational motion.

## Properties

### AngularRestitution

```luau
CylindricalConstraint.AngularRestitution: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

Restitution of the two limits, or how elastic they are.

### LowerAngle

```luau
CylindricalConstraint.LowerAngle: number = -45
```

- Tags: Read capabilities: Physics, Simulation access

Lower limit for the angle (in degrees) between the reference axis and the SecondaryAxis of [`Attachment1`](https://rapi.sleaze.dev/classes/Constraint.md) around the rotation axis.

### UpperAngle

```luau
CylindricalConstraint.UpperAngle: number = 45
```

- Tags: Read capabilities: Physics, Simulation access

Upper limit for the angle (in degrees) between the reference axis and the secondary axis of [`Attachment1`](https://rapi.sleaze.dev/classes/Constraint.md) around the rotation axis.

### AngularVelocity

```luau
CylindricalConstraint.AngularVelocity: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

The target angular velocity of the motor in radians per second around the rotation axis.

### MotorMaxAngularAcceleration

```luau
CylindricalConstraint.MotorMaxAngularAcceleration: number = 500000
```

- Tags: Read capabilities: Physics, Simulation access

The maximum angular acceleration of the motor in radians per second squared.

### MotorMaxTorque

```luau
CylindricalConstraint.MotorMaxTorque: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

The maximum torque the motor can apply to achieve the target angular velocity.

### AngularResponsiveness

```luau
CylindricalConstraint.AngularResponsiveness: number = 45
```

- Tags: Read capabilities: Physics, Simulation access

Specifies the sharpness of the angular servo motor in reaching the [`TargetAngle`](https://rapi.sleaze.dev/classes/CylindricalConstraint.md).

### AngularSpeed

```luau
CylindricalConstraint.AngularSpeed: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

Target angular speed. This value is unsigned as the servo will always move toward its target. In radians per second.

### ServoMaxTorque

```luau
CylindricalConstraint.ServoMaxTorque: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

Maximum torque the servo motor can apply.

### TargetAngle

```luau
CylindricalConstraint.TargetAngle: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

Target angle (in degrees) between the reference axis and the secondary axis of [`Attachment1`](https://rapi.sleaze.dev/classes/Constraint.md) around the rotation axis.

### SoftlockAngularServoUponReachingTarget

```luau
CylindricalConstraint.SoftlockAngularServoUponReachingTarget: boolean = false
```

- Tags: Deprecated, Read capabilities: Physics, Simulation access

**Deprecated:** This property should not be used in new work.

### RotationAxisVisible

```luau
CylindricalConstraint.RotationAxisVisible: boolean = false
```

- Tags: Read capabilities: Physics

Enable the visibility of the rotation axis.

### AngularActuatorType

```luau
CylindricalConstraint.AngularActuatorType: Enum.ActuatorType = Enum.ActuatorType.None
```

- Tags: Read capabilities: Physics, Simulation access

Type of angular actuator.

### AngularLimitsEnabled

```luau
CylindricalConstraint.AngularLimitsEnabled: boolean = false
```

- Tags: Read capabilities: Physics, Simulation access

Enables the angular limits around the rotation axis.

### InclinationAngle

```luau
CylindricalConstraint.InclinationAngle: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

Direction of the rotation axis as an angle from the **X** axis in the **XY** plane of [`Attachment0`](https://rapi.sleaze.dev/classes/Constraint.md).

### CurrentAngle

```luau
CylindricalConstraint.CurrentAngle: number = 0
```

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

Signed angle (in degrees) between the reference axis and the secondary axis of [`Attachment1`](https://rapi.sleaze.dev/classes/Constraint.md) around the rotation axis.

### WorldRotationAxis

```luau
CylindricalConstraint.WorldRotationAxis: Vector3 = Vector3.new(1, 0, 0)
```

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

The unit vector direction of the rotation axis in world coordinates.

## Inherited members

- From [SlidingBallConstraint](https://rapi.sleaze.dev/classes/SlidingBallConstraint.md): `Size`, `CurrentPosition`, `LowerLimit`, `Restitution`, `UpperLimit`, `MotorMaxAcceleration`, `MotorMaxForce`, `Velocity`, `LinearResponsiveness`, `ServoMaxForce`, `Speed`, `TargetPosition`, `SoftlockServoUponReachingTarget`, `ActuatorType`, `LimitsEnabled`
- From [Constraint](https://rapi.sleaze.dev/classes/Constraint.md): `Color`, `Visible`, `Attachment0`, `Attachment1`, `Active`, `Enabled`, `GetDebugAppliedForce`, `GetDebugAppliedTorque`
- 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`
