# What's new? (Upgrade Guide)

## Upgrade Guide: Runtime Navmesh Baker 1.4.0

Version **1.4.0** adds important new features and quality-of-life improvements to make runtime baking more flexible, especially for procedural maps and complex spawning workflows.

***

### What Changed

* **NavMesh Placement Policies** on `SpawnEntry`
  * **Require** — spawn only when a valid NavMesh position exists (otherwise defer and retry)
  * **Prefer** — spawn immediately; agent enables once NavMesh becomes available
  * **Ignore** — place without NavMesh restrictions
* **Deferred Placement Queue** in `RuntimeSpawner`
  * Handles *Require* policy automatically with exponential backoff
  * Prevents “Failed to create agent” errors when baking is still in progress
* **Spawn Hints System**
  * New `EnemySpawnHintPoint` components act as authored anchors
  * Each hint can define its own rules (weights, categories, faction, etc.)
  * The spawner resolves around hints for more controlled encounters
* **Improved Grid Bake Visualizer**
  * Clearer gizmos for debug visualization of active/queued grid tiles
* **Performance / Stability Updates**
  * Reduced allocations when scheduling bake jobs
  * More robust handling of agent enabling during bake transitions

***

### Migration Steps

No breaking changes from **1.3.0** — if you’re already using the `BakerCoordinator`, your setup continues to work.

To take advantage of new features:

1. **Review your Spawners**
   * Update `SpawnEntry` assets to set a **NavMesh Placement Policy**
   * Use *Require* if you want guaranteed safe placement
   * Use *Prefer* for more immediate spawns in dynamic maps
2. **Leverage Spawn Hints**
   * Place `EnemySpawnHintPoint` components in your scene
   * Configure per-hint rules to bias or restrict where AI appears
3. **Debug Your Grid**
   * Enable the **Grid Bake Visualizer** on your `BakerCoordinator` for clearer feedback on what’s being baked

***

### Notes

* **Procedural Maps** — These improvements are especially useful in streaming/tiled environments, where spawn timing and navmesh readiness can vary.
* **Backwards Compatibility** — All 1.3.0 migration steps remain valid. No removals or renames in 1.4.0.
* **Inspector Feedback** — The Coordinator inspector now gives better visibility into spawner placement and bake queues.

***

### Before & After

**Before (1.3.0):**

* Agents spawned immediately, risked errors if NavMesh wasn’t ready
* No authoring control over spawn bias/weighting

**Now (1.4.0):**

* Agents can wait safely for valid NavMesh
* Authoring Spawn Hints gives you fine-grained control
* Debugging grid bakes is more visual and less guesswork

## Upgrade Guide: Runtime Navmesh Baker 1.3.0

Version **1.3.0** introduces a major workflow update.

The old **NavMeshBaker** component and direct use of **NavMeshBakerService** have been removed.

The new **BakerCoordinator** is now the single entry point for runtime baking.

***

### What Changed

* **Removed**: `NavMeshBaker` (legacy component)
* **Removed**: Direct creation of `NavMeshBakerService` from the menu
* **Added**: `BakerCoordinator` — manages the service, schedules jobs, and integrates with profiles

This simplifies setup and makes the system more robust.

***

### Migration Steps

1. **Remove old components & Remove Samples**
   * Delete any GameObjects with the `NavMeshBaker` component
   * Delete or disable any manually created `NavMeshBakerService` GameObjects
   * Delete the 'Samples/Runtime Navmesh Baker' folder
2. **Add a Coordinator**
   * Unity menu: **GameObject → Runtime Navmesh Baker → Add Navmesh Baker**
   * A new GameObject called **NavmeshBaker** will be created
3. **Assign a Profile**
   * Create a profile: **Assets → Create → Runtime Navmesh Baker → Bake Profile**
   * Configure bake settings (mode, resolution, agent type, etc.)
   * Assign this profile to your `BakerCoordinator`
4. **Set the Center Target**
   * Assign your **Player** or **Main Camera** to the **Center Target** field
   * The navmesh will now generate around this target at runtime
5. **Test**
   * Enter Play Mode
   * Navmesh tiles will stream and update according to your profile

***

### Notes

* **Procedural Worlds**: If you were using `ProceduralTileManager` before, no changes are required — it works with the `BakerCoordinator` automatically
* **Debugging**: Use the `BakerCoordinator` inspector to view active jobs, dirty queues, and navmesh gizmos
* **Profiles**: Profiles can be reused across scenes or swapped at runtime

***

### Before & After

**Before (pre-1.3.0):**

* Add `NavMeshBaker` to a GameObject
* Configure rebake rate, thresholds, and size
* (Optional) Manually create a `NavMeshBakerService`

**Now (1.3.0+):**

* Add a `BakerCoordinator`
* Assign a `NavMeshBakeProfile`
* Set your **Center Target**

That’s it — everything else is handled automatically.

***

### Questions?

Check the [**User Manual**](https://www.megacrush.app/docs/runtime-navmesh-baker/) or the [**API Reference**](https://www.megacrush.app/api/runtime-navmesh-baker/) for full documentation.


---

# 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-navmesh-baker/runtime-navmesh-baker-user-manual/getting-started/whats-new-upgrade-guide.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.
