> For the complete documentation index, see [llms.txt](https://megacrush.gitbook.io/megacrush-unity-assets/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://megacrush.gitbook.io/megacrush-unity-assets/runtime-navmesh-baker/runtime-navmesh-baker-user-manual/getting-started/whats-new-upgrade-guide.md).

# 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.
