# SpringConstraint

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

- Inherits from, nearest first: [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/SpringConstraint/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/SpringConstraint

Simulates spring and damper behavior between two attachments.

## Properties

### Coils

```luau
SpringConstraint.Coils: number = 3
```

- Tags: Read capabilities: Physics, Simulation access

The number of coils visualized on the [`SpringConstraint`](https://rapi.sleaze.dev/classes/SpringConstraint.md).

### Radius

```luau
SpringConstraint.Radius: number = 0.400000006
```

- Tags: Read capabilities: Physics, Simulation access

The visualized radius of the spring's coils.

### Thickness

```luau
SpringConstraint.Thickness: number = 0.100000001
```

- Tags: Read capabilities: Physics, Simulation access

The visualized thickness of the spring's coils.

### CurrentLength

```luau
SpringConstraint.CurrentLength: number = 0
```

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

The current distance between the constraint's `Attachments`.

### MaxLength

```luau
SpringConstraint.MaxLength: number = 5
```

- Tags: Read capabilities: Physics, Simulation access

The maximum separation the SpringConstraint will allow if [`LimitsEnabled`](https://rapi.sleaze.dev/classes/SpringConstraint.md) is true.

### MinLength

```luau
SpringConstraint.MinLength: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

The minimum separation the SpringConstraint will allow if [`LimitsEnabled`](https://rapi.sleaze.dev/classes/SpringConstraint.md) is true.

### Damping

```luau
SpringConstraint.Damping: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

Damping constant for the [`SpringConstraint`](https://rapi.sleaze.dev/classes/SpringConstraint.md). Multiplied to the velocity of the constraint's `Attachments` to reduce the spring force applied.

### FreeLength

```luau
SpringConstraint.FreeLength: number = 1
```

- Tags: Read capabilities: Physics, Simulation access

Natural resting length of the spring.

### LimitsEnabled

```luau
SpringConstraint.LimitsEnabled: boolean = false
```

- Tags: Read capabilities: Physics, Simulation access

Sets whether the [`SpringConstraint`](https://rapi.sleaze.dev/classes/SpringConstraint.md) enforces a minimum and maximum length.

### MaxForce

```luau
SpringConstraint.MaxForce: number = INF
```

- Tags: Read capabilities: Physics, Simulation access

The maximum force the [`SpringConstraint`](https://rapi.sleaze.dev/classes/SpringConstraint.md) can apply on its `Attachments`.

### Stiffness

```luau
SpringConstraint.Stiffness: number = 0
```

- Tags: Read capabilities: Physics, Simulation access

The strength of the spring. The higher this value the more force will be applied when the attachments are separated a different length than the [`FreeLength`](https://rapi.sleaze.dev/classes/SpringConstraint.md).

## Inherited members

- 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`
