> 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.kssimulationfilter.md).

# Class ksSimulationFilter

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

A query filter that uses the query collider's collision filter rules. Use this with entity queries to use the entity's colliders' collision filters as the filter. Colliders that collide with the query collider will [BLOCK](/reactor/api-reference/ks.reactor/ks.reactor.ksqueryhittypes.md#KS_Reactor_ksQueryHitTypes_BLOCK), and colliders that do not collide but do belong to one of the query collider's notify groups will [TOUCH](/reactor/api-reference/ks.reactor/ks.reactor.ksqueryhittypes.md#KS_Reactor_ksQueryHitTypes_TOUCH). Excludes non-trigger non-simulation colliders from results. Cannot be used for shape queries or raycasts.

This also implements [ksIEntityQueryColliderFilter](/reactor/api-reference/ks.reactor/ks.reactor.ksientityquerycolliderfilter.md). Set this as the [EntityColliderFilter](/reactor/api-reference/ks.reactor/ks.reactor.ksoverlapparams.md#KS_Reactor_ksOverlapParams_EntityColliderFilter) for entity queries to exclude the entity's non-trigger non-simulation colliders from being queried.

```csharp
public class ksSimulationFilter : ksIQueryFilter, ksIEntityQueryColliderFilter
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† [ksSimulationFilter](/reactor/api-reference/ks.reactor/ks.reactor.kssimulationfilter.md)

#### Implements

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

#### Inherited Members

[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)

## Methods

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

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

```csharp
public virtual 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

### Filter(ksICollider, ksOverlapParams) <a href="#ks_reactor_kssimulationfilter_filter_ks_reactor_ksicollider_ks_reactor_ksoverlapparams" id="ks_reactor_kssimulationfilter_filter_ks_reactor_ksicollider_ks_reactor_ksoverlapparams"></a>

Determines if `queryCollider` should be used to run a query. If the collider is a trigger, returns false if touches are excluded. Returns false for non-trigger non-simulation colliders.

```csharp
public bool Filter(ksICollider queryCollider, ksOverlapParams args)
```

#### Parameters

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

The collider we are checking if we should run a query for.

`args` [ksOverlapParams](/reactor/api-reference/ks.reactor/ks.reactor.ksoverlapparams.md)

Query parameters

#### Returns

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

True if the query should run.
