# CreateSystem<T>(World)

> Create and return a handle for 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

```csharp
public static SystemHandle CreateSystem<T>(this World self) where T : unmanaged, ISystem
```

### Parameters

**** (\[World]\(/engine/7000.0/script-reference/unity/entities/world)): The World

### Returns

| Type                                                                           | Description                                                        |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| [SystemHandle](/engine/7000.0/script-reference/unity/entities/systemhandle.md) | The new system instance's handle 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.
