Skip to main content

Attribute Modifier Operation (Data Type)

A String that picks the operation of an Attribute Modifier.

note

The values below are listed in the order they apply, so add_base_early (and its aliases) runs first and add_total_late runs last.

Vanilla and Apoli names

The three vanilla operation names, in both their 1.20 and 1.21 spellings, and the longer Apoli names are interchangeable. Use whichever reads better in your pack.

Vanilla 1.20 / ApaceVanilla 1.21Apoli name
additionadd_valueadd_base_early
multiply_baseadd_multiplied_basemultiply_base_additive
multiply_totaladd_multiplied_totalmultiply_total_multiplicative

The 1.21 names are also accepted in upper case (ADD_VALUE, ADD_MULTIPLIED_BASE, ADD_MULTIPLIED_TOTAL), since some packs write them that way.

Values

ValueDescription
add_base_early (aliases addition and add_value)NewBase = Base + Modifier, early in the base phase.
multiply_base_additive (aliases multiply_base and add_multiplied_base)NewBase = Base + (Base * Modifier).
multiply_base_multiplicativeNewBase = Base * (1 + Modifier).
standard_multiply_baseNewBase = Base * Modifier.
standard_divide_baseNewBase = Base / Modifier.
add_base_lateNewBase = Base + Modifier, late in the base phase.
min_baseNewBase = max(Base, Modifier), which raises the floor.
max_baseNewBase = min(Base, Modifier), which caps the ceiling.
set_baseNewBase = Modifier.
add_total_earlyNewTotal = Total + Modifier, early in the total phase.
multiply_total_additiveNewTotal = Total + (Total * Modifier).
multiply_total_multiplicative (aliases multiply_total and add_multiplied_total)NewTotal = Total * (1 + Modifier).
standard_multiply_totalNewTotal = Total * Modifier.
standard_divide_totalNewTotal = Total / Modifier.
min_totalNewTotal = max(Total, Modifier).
max_totalNewTotal = min(Total, Modifier).
set_totalNewTotal = Modifier, which overrides everything before it.
add_total_lateNewTotal = Total + Modifier, after everything else, set_total included.

Phases and ordering

Modifiers run in two phases, base first and then total. Within a phase they follow the order of the table above, top first. When two modifiers share a phase and an operation, the order between them isn't defined, so don't rely on it.

For resource operations (apoli:modify_resource and its apoli:change_resource alias), the resource value is both Base and Total, so the operations come down to a change of a single number.