> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor.server/ks.reactor.server.kscollider.md).

# Class ksCollider

Namespace: [KS.Reactor.Server](/reactor/api-reference/ks.reactor.server.md)\
Assembly: KSReactor.dll

The base class of all colliders.

```csharp
public abstract class ksCollider : ksServerEntityScript, ksScript<ksIServerEntity, ksServerEntityScript>.IInternals, ksICollider
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† ksScript\<ksIServerEntity, ksServerEntityScript> â† [ksServerEntityScript](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md) â† [ksCollider](/reactor/api-reference/ks.reactor.server/ks.reactor.server.kscollider.md)

#### Derived

[ksCharacterController](/reactor/api-reference/ks.reactor.server/ks.reactor.server.kscharactercontroller.md), [ksShapeCollider](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksshapecollider.md)

#### Implements

ksScript\<ksIServerEntity, ksServerEntityScript>.IInternals, ksICollider

#### Inherited Members

[ksServerEntityScript.Entity](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md#KS_Reactor_Server_ksServerEntityScript_Entity), [ksServerEntityScript.Room](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md#KS_Reactor_Server_ksServerEntityScript_Room), [ksServerEntityScript.Time](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md#KS_Reactor_Server_ksServerEntityScript_Time), [ksServerEntityScript.Physics](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md#KS_Reactor_Server_ksServerEntityScript_Physics), [ksServerEntityScript.Properties](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md#KS_Reactor_Server_ksServerEntityScript_Properties), [ksServerEntityScript.Transform](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md#KS_Reactor_Server_ksServerEntityScript_Transform), [ksServerEntityScript.Transform2D](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md#KS_Reactor_Server_ksServerEntityScript_Transform2D), ksScript\<ksIServerEntity, ksServerEntityScript>.InstanceType, ksScript\<ksIServerEntity, ksServerEntityScript>.IsAttached, ksScript\<ksIServerEntity, ksServerEntityScript>.Scripts, ksScript\<ksIServerEntity, ksServerEntityScript>.Assets, ksScript\<ksIServerEntity, ksServerEntityScript>.Attached(), ksScript\<ksIServerEntity, ksServerEntityScript>.Initialize(), ksScript\<ksIServerEntity, ksServerEntityScript>.Detached(), ksScript\<ksIServerEntity, ksServerEntityScript>.Clone(), [object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Fields

### m\_enabled <a href="#ks_reactor_server_kscollider_m_enabled" id="ks_reactor_server_kscollider_m_enabled"></a>

```csharp
protected bool m_enabled
```

#### Field Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### m\_position <a href="#ks_reactor_server_kscollider_m_position" id="ks_reactor_server_kscollider_m_position"></a>

```csharp
protected ksVector3 m_position
```

#### Field Value

ksVector3

### m\_rotation <a href="#ks_reactor_server_kscollider_m_rotation" id="ks_reactor_server_kscollider_m_rotation"></a>

```csharp
protected ksQuaternion m_rotation
```

#### Field Value

ksQuaternion

### m\_scale <a href="#ks_reactor_server_kscollider_m_scale" id="ks_reactor_server_kscollider_m_scale"></a>

```csharp
protected ksVector3 m_scale
```

#### Field Value

ksVector3

### m\_useEntityCollisionFilter <a href="#ks_reactor_server_kscollider_m_useentitycollisionfilter" id="ks_reactor_server_kscollider_m_useentitycollisionfilter"></a>

```csharp
protected bool m_useEntityCollisionFilter
```

#### Field Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Properties

### Bounds <a href="#ks_reactor_server_kscollider_bounds" id="ks_reactor_server_kscollider_bounds"></a>

Get the bounds of a collider at the position of its attached entity or at the origin if the collider is not attached to an entity.

```csharp
public abstract ksBounds Bounds { get; }
```

#### Property Value

ksBounds

### CollisionFilter <a href="#ks_reactor_server_kscollider_collisionfilter" id="ks_reactor_server_kscollider_collisionfilter"></a>

Determines which entities to collide with and notify of collision/overlap events.

```csharp
public abstract ksCollisionFilter CollisionFilter { get; set; }
```

#### Property Value

ksCollisionFilter

### ContactOffset <a href="#ks_reactor_server_kscollider_contactoffset" id="ks_reactor_server_kscollider_contactoffset"></a>

Gets/Sets the contact offset of the collider. Colliders whose distance is less than the sum of their contact offset values will generate contacts.

```csharp
public abstract float ContactOffset { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### IsEnabled <a href="#ks_reactor_server_kscollider_isenabled" id="ks_reactor_server_kscollider_isenabled"></a>

Gets/Sets the enabled state of the collider. If false, the collider won't collide with other colliders.

```csharp
public abstract bool IsEnabled { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### IsQueryCollider <a href="#ks_reactor_server_kscollider_isquerycollider" id="ks_reactor_server_kscollider_isquerycollider"></a>

If true, the collider will partake in scene queries.

```csharp
public abstract bool IsQueryCollider { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### IsSimulationCollider <a href="#ks_reactor_server_kscollider_issimulationcollider" id="ks_reactor_server_kscollider_issimulationcollider"></a>

If true, the collider will partake in collision in the physical simulation.

```csharp
public abstract bool IsSimulationCollider { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### IsTrigger <a href="#ks_reactor_server_kscollider_istrigger" id="ks_reactor_server_kscollider_istrigger"></a>

If true, the collider will not partake in collisions in the physical simulation. Instead, it raises [OnOverlapStart](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksiserverentity.md#KS_Reactor_Server_ksIServerEntity_OnOverlapStart) and [OnOverlapEnd](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksiserverentity.md#KS_Reactor_Server_ksIServerEntity_OnOverlapEnd) events. The [CollisionFilter](#KS_Reactor_Server_ksCollider_CollisionFilter)'s Collide flag will be ignored if this is true.

```csharp
public abstract bool IsTrigger { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### Offset <a href="#ks_reactor_server_kscollider_offset" id="ks_reactor_server_kscollider_offset"></a>

Gets/Sets the offset from the entity position.

```csharp
public abstract ksVector3 Offset { get; set; }
```

#### Property Value

ksVector3

### UseEntityCollisionFilter <a href="#ks_reactor_server_kscollider_useentitycollisionfilter" id="ks_reactor_server_kscollider_useentitycollisionfilter"></a>

```csharp
public bool UseEntityCollisionFilter { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Methods

### Clone() <a href="#ks_reactor_server_kscollider_clone" id="ks_reactor_server_kscollider_clone"></a>

Creates a copy of the collider.

```csharp
public override ksServerEntityScript Clone()
```

#### Returns

[ksServerEntityScript](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksserverentityscript.md)

Cloned collider.

### ConstructClone() <a href="#ks_reactor_server_kscollider_constructclone" id="ks_reactor_server_kscollider_constructclone"></a>

Constructs a new instance of this type. Used for cloning. Derived classes must override this if they do not have a parameterless constructor.

```csharp
protected virtual ksCollider ConstructClone()
```

#### Returns

[ksCollider](/reactor/api-reference/ks.reactor.server/ks.reactor.server.kscollider.md)

Constructed instance

### ScaleGeometry() <a href="#ks_reactor_server_kscollider_scalegeometry" id="ks_reactor_server_kscollider_scalegeometry"></a>

Creates new geometry for the shape with entity scaling applied.

```csharp
protected abstract void ScaleGeometry()
```
