Skip to content

Advancement Type: Item Choice #1401

@arbron

Description

@arbron

This advancement type is designed for any feature that gives the player a choice of options to add to their character at a certain level. This covers features with a limited set of options such as Fighting Style and more open ended features such as Magical Secrets.

Level Up Interface

If a limited pool of options are provided, the interface will present the list with checkboxes so the player can select which options they would like. If any arbitrary items can be added, then the player is presented with a drop area where items can be dragged from the items sidebar or a compendium. Both a list of items and the drop area can be used at the same time.

It should be clear how many choices are available (Fighting Style only allows one, Magical Secrets lets you take two, etc.).

Configuration

The hint string is a brief bit of text to assist players in what choices they can make. Typically this will be a portion of the feature's description and shouldn't be more than a single paragraph of one or two sentences.

The choices object indicates how many choices are available to the player and at which levels. A choice that can be taken only once such as a Fighter's Fighting Style would be simple as { 1: 1 }, indicating that player should be presented with choosing a single style at first level. Something like Bard's Magical Secrets which gives the option of choosing two options at levels 10, 14, and 18 is shown below.

The boolean allowDrops indicates whether the drop area should be shown to the player to allow arbitrary items to be added.

Item types can be restricted using the type field, which is null if any item type is acceptable, or can be set to one of the top-level types (except things like class, subclass, and background).

Finally pool contains an array of item UUIDs indicating a fixed list of options presented to the player.

{
  hint: "Choose two spells from any classes, including this one. A spell you choose must be of a level you can cast, as shown on the Bard table, or a cantrip.",
  choices: { 10: 2, 14: 2, 18: 2 },
  allowDrops: true,
  type: "spell",
  pool: null
}

Value

The value object contains an entry for each level where a choice is offered. Each of these entries is another object containing the ID of the item on the actor as the key and the UUID of the chosen or dropped item as the value.

{
  10: {
    "aonJ2YjkqkYB9WYB": "Compendium.dnd5e.spells.JLTQyqXEaJDrTXyW",
    "GBYN5rH4nh1ocRlY": "Compendium.dnd5e.spells.7UwUjJ6owIQkEPrs"
  }
}

Future Directions

In the future, this can potentially be tied with a more advanced system for matching item types in compendiums. So the advancement would be able to present a list of all Metamagic options available to the player, regardless of which module introduced them.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions