View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.0.1
- Last updated
- First released
- Unity version
- 6000.3.10 or later
- Package size
- 73.4 MB
- Files
- 80
- Favorites
- 14
- Views in the past week
- 9
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $15.00 on
Keywords
Procedural Dungeon Architect
Procedural Dungeon Architect is a runtime dungeon generation system for Unity. It generate interconnected rooms using door-based placement, while enforcing advanced constraints
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 14
Procedural Dungeon Architect screenshot 1
About this asset
Procedural Dungeon Architect is a runtime dungeon generation system for Unity.
It allows you to dynamically generate interconnected rooms using door-based placement, while enforcing advanced constraints such as:
- Room count limits
- Distance constraints from reference objects
- Neighbor compatibility rules
- Controlled object spawning per room and per spawn point
- Runtime NavMesh generation (fully compatible with builds)
The asset is designed to be:
- Deterministic enough to control gameplay structure
- Flexible enough to support roguelikes, dungeons, modular levels
- Safe for runtime usage (timeouts, safeguards, no editor-only APIs)
It works entirely at runtime and does not require baked geometry or precomputed NavMeshes.
From the publisher's Asset Store listing.
Technical details
1. DungeonGenerator Setup
Add DungeonGenerator to an empty GameObject in your scene.
Main parameters:
- Min Rooms / Max Rooms
Target range for total room count. - Max Generation Time
Safety limit (in seconds) to prevent infinite loops.
The generator will abort and log a warning if exceeded. - Max Candidate Tries Per Door
Limits how many attempts are made per door before it is closed. - Max Rescan Passes
Secondary passes to try reaching the target room count. - Room prefab List
List of the rooms that will be procedurally placed.
2. Room Prefabs
Each room prefab must:
- Contain at least one Closded Door child object with the name tag “Door”.
- Optionally contain ObjectSpawner child objects with the name tag “ObjectSpawner”.
- Have a RoomConfig script component
- Have one or more box colliders (Not marked as Trigger) to define the volume occupied by the room. Those colliders will be used by the script during generation to avoid overlapping and then be deleted. However, you must leave the closed doors outside of those box colliders to allow rooms to be linked. (Allows Physics.ComputePenetration to detect invalid placements)
3. RoomConfig
RoomConfig defines the behavior of a room prefab.
Key options:
Room Placement Rules
- Allowed Neighbors
Restrict which room prefabs can be attached to this room. It should help to keep a coherent room organization and a believable dungeon. - Max Instances
This set the number of times this room will appear in the dungeon.
Distance Constraints
- Use Distance Constraint
- Reference Object
- Min Distance / Max Distance
Allow to set a distance min and max for the spawning of a room in a level. It asks for a reference object where you have to feed a prefab object. It can be useful for special rooms such as:
- Boss rooms
- Treasure rooms
- Exit rooms
Distance is measured from the room pivot to the reference object pivot. So, you can force distances between the start and the end of the dungeon for example.
4. Doors – Critical Setup
Doors are central to correct generation.
Door Requirements
- Must be tagged Door
- Must be a child of the room prefab
- Must be a closed door that the generator will try to open.
- Pivot must be perfectly centered
- Forward direction must point outward
⚠️ Important
Room alignment is computed using door forward vectors.
If the pivot is offset or rotated incorrectly:
- Rooms will misalign
- Doors will not connect correctly
5. Object Spawning System (RoomSpawnPoint)
Each spawn location uses the RoomSpawnPoint component.
This allows:
- Per-spawn-point object selection
- Weighted probabilities
- Full control over what can spawn where
Workflow
- Add a child object to the room prefab
- Tag it ObjectSpawner
- Add RoomSpawnPoint component
- Define spawnable objects and weights
This replaces global spawn lists and enables for example:
- Furniture-only spawns in corners
- Enemies only in combat zones
- Props only near walls, etc.
6. NavMesh Generation (Runtime & Build-Safe)
The generator can rebuild a NavMesh at runtime, including in builds.
Features:
- Uses Physics Colliders (not meshes)
- Works with procedurally spawned cubes and geometry
- No Read/Write mesh requirement
Key options:
- NavMesh Bounds Size (Create a square area with world (0;0;0) at its center where the NavMesh will be initialized)
- Layer Mask selection
- Runtime Gizmo visualization
A debug NavMesh mesh can be displayed during play mode.
Compatibility
| Unity version | Built-in | URP | HDRP |
|---|---|---|---|
| 6000.3.10f1 | Compatible | Compatible | Compatible |
To use the demo scene, you will have to import the free Cinemachine asset version 2.10.5 (not higher).
And I built the scene in URP so for HDRP and Built-in version, you will have to update the few materials of the scene.
As listed on the Asset Store.