---
# System prepended metadata

title: Adventure Architect System Design

---

# Adventure Architect System Design

## Definitions
**Adventure**: a combination of an Event and a Room
**Event**: A `microevent` which drives a combat encounter
**Room**: The physical geometry placed in the level

## MS7 Demo
Floors 1+2: Select an event + room from a pre-configured list
Flor 3: Pre-determined "boss" event + room

## Production

### Inputs
* Player count
* Players' combined progression flags
* Players' current quests
* Zone
* Floor
* Difficulty?

### Selection process

1. Using the inputs, select all rows which meet requirements from table `ZanzibarAdventures`
2. Repeat step 1 for each additional portal, maintaining a list of `ExclusionGroups` from each selected adventure.
3. For each selected **Adventure**, select and assign an **Event** from table `ZanzibarMicroevents` using `WhitelistMicroeventTags`
4. For each **Adventure** + **Event** combination, select and assign a **Room** from `ZanzibarRooms` using `WhitelistRoomTags` from `ZanzibarAdventures` and the room requirements columns from `ZanzibarMicroevents`

### Table examples

#### ZanzibarAdventures
| Id       | MinPlayerCount | MinFloor | ExclusionGroups | WhitelistMicroeventTags | WhitelistRoomTags | 
| -------- | -------- | -------- | -- | -- | -- |
| HighValueCatacombs     | 2     | 1     | HighValue | HighValue | Catacombs |

#### ZanzibarMicroevents
| Id       | Tags | MicroeventGameplayTag | MinRoomSize | MinRoomSpawnPoints |
| -------- | -------- | -------- | -- | -- |
| HighValueTarget     | HighValue     | Microevent.HighValue     | Medium | 5 |

#### ZanzibarRooms
| Id       | Tags | LevelName | Size | SpawnPoints |
| -------- | -------- | -------- | -- | -- |
| MediumCatacombs     | Catacombs     | Level.Catacombs.Medium     | Medium | 8 |