# Create Custom World in Unity ECS
:::info
This article assumes you Unity ECS knowledge mentioned in the article (:door:[link](https://gametorrahod.com/world-system-groups-update-order-and-the-player-loop/)) (some part of it is deprecated).
:::
```CSharp
using Unity.Entities;
using UnityEngine;
using UnityEngine.LowLevel;
public class Bootstrap
{
// It's just i want to create the world so early, it's up to you when to create the world
[RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.BeforeSceneLoad)]
static void CreateWorld ()
{
World w = new World("BootWorld");
ScriptBehaviourUpdateOrder.UpdatePlayerLoop(w, PlayerLoop.GetCurrentPlayerLoop()); // You have to hook the world into player loop
w.GetOrCreateSystem<InitializationSystemGroup>(); // Player loop only update these group
w.GetOrCreateSystem<SimulationSystemGroup>(); // Player loop only update these group
w.GetOrCreateSystem<PresentationSystemGroup>(); // Player loop only update these group
w.GetOrCreateSystem<YourSystem>(); // Create the sytem in the world
// We have to add the system to any of the 3 group.
// Otherwise the system idly exist in the world, but won't do anything and won't show up in the debugger
w.GetExistingSystem<InitializationSystemGroup>().AddSystemToUpdateList(w.GetExistingSystem<YourSystem>());
// Now the system should be working and can query for interesting entites
}
}
```