> For the complete documentation index, see [llms.txt](https://infinitypbr.gitbook.io/magic-pig-games/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://infinitypbr.gitbook.io/magic-pig-games/projectile-factory/projectile-factory-documentation/factory-manager.md).

# Factory Manager

The **Factory Manager** is a `static ScriptableObject` which means it will be active in your game without needing to be placed in your scenes.

Each `ProjectileSpawner` and each `Projectile` will register with the `FactoryManager` `OnEnable()` and unregister `OnDisable()`.

The **Factory Manager** will maintain a List<> of each of these objects, which you can access from other scripts.

{% hint style="warning" %}
Individual objects have the option to not register, so the `List<>` available is not guaranteed to be all objects.
{% endhint %}

```csharp
public static List<ProjectileSpawner> ProjectileSpawners { get; } = new List<ProjectileSpawner>();
public static List<Projectile> Projectiles { get; } = new List<Projectile>();
```

## Global Observers

[**Global Observers**](/magic-pig-games/projectile-factory/projectile-factory-documentation/observers-global-observers-and-observer-objects.md) automatically subscribe to the **Factory Manager** events. Each time a `Projectile` event is fired, the `FactoryManager` will repeat this event to all subscribed **Global Observers**.
