> 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/ks.reactor.kscollisionfilter.md).

# Class ksCollisionFilter

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

The collsion filter uses 3 mask properties (Group, Notify, Collide) to determine interaction and notifications during the physics simulation. This class is immutable.

```csharp
public sealed class ksCollisionFilter : ksScriptAsset, ksIQueryFilter
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† [ksScriptAsset](/reactor/api-reference/ks.reactor/ks.reactor.ksscriptasset.md) â† [ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

#### Implements

[ksIQueryFilter](/reactor/api-reference/ks.reactor/ks.reactor.ksiqueryfilter.md)

#### Inherited Members

[ksScriptAsset.Assets](/reactor/api-reference/ks.reactor/ks.reactor.ksscriptasset.md#KS_Reactor_ksScriptAsset_Assets), [ksScriptAsset.AssetId](/reactor/api-reference/ks.reactor/ks.reactor.ksscriptasset.md#KS_Reactor_ksScriptAsset_AssetId), [ksScriptAsset.AssetPath](/reactor/api-reference/ks.reactor/ks.reactor.ksscriptasset.md#KS_Reactor_ksScriptAsset_AssetPath), [ksScriptAsset.IsPrefab](/reactor/api-reference/ks.reactor/ks.reactor.ksscriptasset.md#KS_Reactor_ksScriptAsset_IsPrefab), [ksScriptAsset.AssetName](/reactor/api-reference/ks.reactor/ks.reactor.ksscriptasset.md#KS_Reactor_ksScriptAsset_AssetName), [ksScriptAsset.Clone()](/reactor/api-reference/ks.reactor/ks.reactor.ksscriptasset.md#KS_Reactor_ksScriptAsset_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.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Constructors

### ksCollisionFilter() <a href="#ks_reactor_kscollisionfilter__ctor" id="ks_reactor_kscollisionfilter__ctor"></a>

Constructor. Belongs to all groups, collides with all groups, and notifies with none.

```csharp
public ksCollisionFilter()
```

### ksCollisionFilter(uint, uint, uint) <a href="#ks_reactor_kscollisionfilter__ctor_system_uint32_system_uint32_system_uint32" id="ks_reactor_kscollisionfilter__ctor_system_uint32_system_uint32_system_uint32"></a>

Constructor

```csharp
public ksCollisionFilter(uint group, uint notify, uint collide)
```

#### Parameters

`group` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

Groups that this filter belongs to.

`notify` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

Groups that this filter reports collision and overlap events with.

`collide` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

Groups that this filter will simulate collisions with.

## Properties

### Collide <a href="#ks_reactor_kscollisionfilter_collide" id="ks_reactor_kscollisionfilter_collide"></a>

Groups that this filter will simulate collisions with.

```csharp
public uint Collide { get; }
```

#### Property Value

[uint](https://learn.microsoft.com/dotnet/api/system.uint32)

### Default <a href="#ks_reactor_kscollisionfilter_default" id="ks_reactor_kscollisionfilter_default"></a>

The default collision filter. Setting this to a new instance will not affect any existing colliders using the old default filter, but will change the filter used by new colliders that don't have a filter assigned.

```csharp
public static ksCollisionFilter Default { get; set; }
```

#### Property Value

[ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

### Group <a href="#ks_reactor_kscollisionfilter_group" id="ks_reactor_kscollisionfilter_group"></a>

Groups that this filter belongs to.

```csharp
public uint Group { get; }
```

#### Property Value

[uint](https://learn.microsoft.com/dotnet/api/system.uint32)

### Notify <a href="#ks_reactor_kscollisionfilter_notify" id="ks_reactor_kscollisionfilter_notify"></a>

Groups that this filter reports collision and overlap events with.

```csharp
public uint Notify { get; }
```

#### Property Value

[uint](https://learn.microsoft.com/dotnet/api/system.uint32)

## Methods

### Equals(object) <a href="#ks_reactor_kscollisionfilter_equals_system_object" id="ks_reactor_kscollisionfilter_equals_system_object"></a>

Checks if this collision filter is equal to an object.

```csharp
public override bool Equals(object obj)
```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)

#### Returns

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

True if this collision filter is equal to the object.

### Filter(ksICollider, ksICollider, ksQueryResultTypes, ksBaseQueryParams) <a href="#ks_reactor_kscollisionfilter_filter_ks_reactor_ksicollider_ks_reactor_ksicollider_ks_reactor_ksquery" id="ks_reactor_kscollisionfilter_filter_ks_reactor_ksicollider_ks_reactor_ksicollider_ks_reactor_ksquery"></a>

Determines if a potential collider hit should be included in query results and whether it is a blocking or touching hit.

```csharp
public ksQueryHitTypes Filter(ksICollider queryCollider, ksICollider hitCollider, ksQueryResultTypes resultType, ksBaseQueryParams args)
```

#### Parameters

`queryCollider` [ksICollider](/reactor/api-reference/ks.reactor/ks.reactor.ksicollider.md)

The collider used in the query. Null for shape queries.

`hitCollider` [ksICollider](/reactor/api-reference/ks.reactor/ks.reactor.ksicollider.md)

The collider being evaluated for a hit.

`resultType` [ksQueryResultTypes](/reactor/api-reference/ks.reactor/ks.reactor.ksqueryresulttypes.md)

What kind of results the query returns

`args` [ksBaseQueryParams](/reactor/api-reference/ks.reactor/ks.reactor.ksbasequeryparams.md)

Query parameters

#### Returns

[ksQueryHitTypes](/reactor/api-reference/ks.reactor/ks.reactor.ksqueryhittypes.md)

Hit type

### GetHashCode() <a href="#ks_reactor_kscollisionfilter_gethashcode" id="ks_reactor_kscollisionfilter_gethashcode"></a>

Gets a hash code from this collision filter.

```csharp
public override int GetHashCode()
```

#### Returns

[int](https://learn.microsoft.com/dotnet/api/system.int32)

Hash code

### ToString() <a href="#ks_reactor_kscollisionfilter_tostring" id="ks_reactor_kscollisionfilter_tostring"></a>

Converts the collision filter to a string.

```csharp
public override string ToString()
```

#### Returns

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

The filter converted to a string.

### WithCollide(uint) <a href="#ks_reactor_kscollisionfilter_withcollide_system_uint32" id="ks_reactor_kscollisionfilter_withcollide_system_uint32"></a>

Creates a copy of this filter with [Collide](#KS_Reactor_ksCollisionFilter_Collide) set to `collide`.

```csharp
public ksCollisionFilter WithCollide(uint collide)
```

#### Parameters

`collide` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

Collide to set on the copy.

#### Returns

[ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

Copied filter with a different [Collide](#KS_Reactor_ksCollisionFilter_Collide).

### WithGroup(uint) <a href="#ks_reactor_kscollisionfilter_withgroup_system_uint32" id="ks_reactor_kscollisionfilter_withgroup_system_uint32"></a>

Creates a copy of this filter with [Group](#KS_Reactor_ksCollisionFilter_Group) set to `group`.

```csharp
public ksCollisionFilter WithGroup(uint group)
```

#### Parameters

`group` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

Group to set on the copy.

#### Returns

[ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

Copied filter with a different [Group](#KS_Reactor_ksCollisionFilter_Group).

### WithNotify(uint) <a href="#ks_reactor_kscollisionfilter_withnotify_system_uint32" id="ks_reactor_kscollisionfilter_withnotify_system_uint32"></a>

Creates a copy of this filter with [Notify](#KS_Reactor_ksCollisionFilter_Notify) set to `notify`.

```csharp
public ksCollisionFilter WithNotify(uint notify)
```

#### Parameters

`notify` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

Notify to set on the copy.

#### Returns

[ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

Copied filter with a different [Notify](#KS_Reactor_ksCollisionFilter_Notify).

## Operators

### operator ==(ksCollisionFilter, ksCollisionFilter) <a href="#ks_reactor_kscollisionfilter_op_equality_ks_reactor_kscollisionfilter_ks_reactor_kscollisionfilter" id="ks_reactor_kscollisionfilter_op_equality_ks_reactor_kscollisionfilter_ks_reactor_kscollisionfilter"></a>

Checks if two collision filters are equal.

```csharp
public static bool operator ==(ksCollisionFilter lhs, ksCollisionFilter rhs)
```

#### Parameters

`lhs` [ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

`rhs` [ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

#### Returns

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

True if the collision filters are equal.

### operator !=(ksCollisionFilter, ksCollisionFilter) <a href="#ks_reactor_kscollisionfilter_op_inequality_ks_reactor_kscollisionfilter_ks_reactor_kscollisionfilter" id="ks_reactor_kscollisionfilter_op_inequality_ks_reactor_kscollisionfilter_ks_reactor_kscollisionfilter"></a>

Checks if two collision filters are not equal.

```csharp
public static bool operator !=(ksCollisionFilter lhs, ksCollisionFilter rhs)
```

#### Parameters

`lhs` [ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

`rhs` [ksCollisionFilter](/reactor/api-reference/ks.reactor/ks.reactor.kscollisionfilter.md)

#### Returns

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

True if the collision filters are not equal.
