# CreateSystem

> Create and return a handle to an instance of a system of type T in this World.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Entities](/engine/7000.0/script-reference/unity/entities.md)
* **Assembly:** UnityEngine.EntitiesModule

## CreateSystem\<T>()

Create and return a handle to an instance of a system of type `T` in this World.

```csharp
public SystemHandle CreateSystem<T>() where T : ComponentSystemBase, new()
```

### Returns

| Type                                                                           | Description                                                    |
| ------------------------------------------------------------------------------ | -------------------------------------------------------------- |
| [SystemHandle](/engine/7000.0/script-reference/unity/entities/systemhandle.md) | A handle to the new instance of system type `T` in this World. |

### Remarks

This can result in multiple instances of the same system in a single World, which is generally undesirable.

**Important:** This function creates a sync point, which means that the EntityManager waits for all currently running Jobs to complete before creating the system, and no additional Jobs can start before the function is finished. A sync point can cause a drop in performance because the ECS framework may not be able to make use of the processing power of all available cores.

## CreateSystem(Type)

Create and return a handle to an instance of a system of type `type` in this World.

```csharp
public SystemHandle CreateSystem(Type type)
```

### Parameters

**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The system type

### Returns

| Type                                                                           | Description                                                       |
| ------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
| [SystemHandle](/engine/7000.0/script-reference/unity/entities/systemhandle.md) | A handle to the new instance of system type `type` in this World. |

### Remarks

This can result in multiple instances of the same system in a single World, which is generally undesirable.

**Important:** This function creates a sync point, which means that the EntityManager waits for all currently running Jobs to complete before creating the system, and no additional Jobs can start before the function is finished. A sync point can cause a drop in performance because the ECS framework may not be able to make use of the processing power of all available cores.

## CreateSystem(SystemTypeIndex)

Create and return a handle to an instance of a system of type `type` in this World.

```csharp
public SystemHandle CreateSystem(SystemTypeIndex type)
```

### Parameters

**** (\[SystemTypeIndex]\(/engine/7000.0/script-reference/unity/entities/systemtypeindex)): The system type

### Returns

| Type                                                                           | Description                                                       |
| ------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
| [SystemHandle](/engine/7000.0/script-reference/unity/entities/systemhandle.md) | A handle to the new instance of system type `type` in this World. |
