# Getting Started

Runtime Spawner is a flexible, modular system for spawning enemies, NPCs, and objects at runtime - with support for pooling, progression, and multiplayer.

Version 2.0 introduces a **package-based architecture** and a new **sample-driven onboarding flow** to help you get up and running quickly.

***

### 1. Install the Package

1. Open **Window → Package Manager**
2. In **My Assets**, locate **Runtime Spawner**
3. Click **Install**

Once installed, the core package and any included modules will be available in your project.

{% hint style="info" %}
Note: Runtime Spawner 2.x is designed around a modular architecture. Each addon is a separate Unity package (UPM) that creates clear boundaries for functionality and dependencies.&#x20;
{% endhint %}

### 2. Open the Setup Window

After installation, open the Runtime Spawner setup tool:

* **Tools → Runtime Spawner → Setup**

The Setup Window is your main entry point for:

* Installing samples
* Browsing available modules
* Opening documentation for each setup

{% hint style="info" %}
Note: you can install all of the samples via the Unity Package Manager window the same as normal, this window simply provides a shortcut / unified interface for installing them.
{% endhint %}

### 3. Install the Base Samples (Recommended)

We strongly recommend starting with the **Core samples**.

From the Setup Window:

* Locate the **Core / Base Samples**
* Click **Install**
* Open the included scene(s)

Each sample includes a **readme file** with:

* Setup instructions
* Explanation of the components used
* Suggested ways to experiment with the system

### 4. Explore Additional Samples

Depending on your needs, you can install additional samples:

#### Addon Samples

* Global Spawner
* Local Area Spawner
* Waves
* Spawnpoints (authored placement)

#### Networking Samples

* Photon PUN
* Photon Fusion

Each sample demonstrates a focused use case and builds on the core concepts.

### 5. Open the Sample Readmes

Every sample includes a **readme** file in the root folder of the installed sample.

From the Setup Window, you can:

* Select a sample
* Click **Open Readme**

These readmes explain:

* What the sample demonstrates
* How it is configured
* How to adapt it to your own project

### 6. TextMesh Pro Essentials

Some sample scenes use a simple TextMesh Pro UI.

If prompted when opening a sample:

* Click **Import TMP Essentials**

### 7. Understanding the System

Runtime Spawner 2.0 is built from:

* **Core Runtime Spawner** (execution engine)
* **Spawn Director** (pacing & intensity)
* **Addons** (Global, Local Area, Waves, Spawnpoints)
* **Factories** (pooling and networking)

You don’t need to understand everything upfront - the samples are designed to introduce these systems incrementally.

For a deeper overview, see:\
→ [Core Concepts](https://megacrush.gitbook.io/megacrush-unity-assets/runtime-spawner/runtime-spawner-user-manual/introduction/core-concepts)\
→ [Designing Scenarios](https://megacrush.gitbook.io/megacrush-unity-assets/runtime-spawner/runtime-spawner-user-manual/introduction/designing-scenarios-with-runtime-spawner)

### 8. Object Pooling

All spawning uses the integrated Object Pool system:

* Objects are reused instead of instantiated/destroyed
* Pools are created automatically
* Fully compatible with networking

This ensures:

* Better performance
* Stable runtime behavior
* Scalable spawning systems

### 9. Next Steps

Once you’ve run the base samples:

* Explore addon samples (Waves, Local Area, Spawnpoints)
* Review the [**Designing Scenarios**](https://megacrush.gitbook.io/megacrush-unity-assets/runtime-spawner/runtime-spawner-user-manual/introduction/designing-scenarios-with-runtime-spawner) guide
* Set up your own spawner using a sample as a starting point

If you’re using multiplayer:

* Install the PUN or Fusion samples
* Follow their readme guides for setup

### Recommended Approach

Start simple:

1. Run the **Core sample**
2. Add a single addon (e.g., Waves or Local Area)
3. Layer in additional systems as needed

This flow will help you understand how the pieces fit together without getting overwhelmed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://megacrush.gitbook.io/megacrush-unity-assets/runtime-spawner/runtime-spawner-user-manual/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
