Placeholders
AstralScrolls registers two ComplexPlaceholder namespaces with AstralCore — scroll on Scroll and rarity on RarityBlueprint. For the general %namespace_key_subkey% syntax, inner placeholders, and expressions, see Placeholders.
Both namespaces are contextual, not global — neither is registered against RootPlaceholderContainer, so %scroll_*% and %rarity_*% only resolve inside the specific container AstralScrolls hands them to. Outside those places the placeholders simply won't resolve.
scroll_*
Scroll implements ComplexPlaceholder with namespace() returning "scroll". It's registered directly (registerPlaceholder(scroll)) into two containers:
Item display.
MainConfiguration.ItemInfo#applybuilds a fresh container carrying only the scroll and rendersscroll-item/completed-item'sname/loreagainst it — see Configuration.Completion actions.
ScrollService#updateregisters the completing scroll on top of the player's normal placeholder container (so%player_*%is also available) before runningcompletion-actions— see Configuration.
Sub-key ( | Placeholder | Returns |
|---|---|---|
|
| The scroll's current progress value ( |
|
| The scroll's target value ( |
|
| The goal's |
|
| The goal's |
|
| The scroll's |
Any other sub-key falls to the default branch and returns null.
rarity_*
RarityBlueprint implements ComplexPlaceholder with namespace() returning "rarity". It's registered directly into two containers:
Chained off a scroll, as
%scroll_rarity_*%(seescrollabove).Top-level, as
%rarity_*%, in/scrolls give's message container (alongside%target_*%and%amount%) — see Commands./scrolls rewardsand scroll redemption run reward-group actions against a plain player-only placeholder container (PaperActionList#run(Player)), so%rarity_*%is not available there.
Sub-key ( | Placeholder | Returns |
|---|---|---|
|
| The rarity's id ( |
|
| The rarity's |
|
| The rarity's |
|
| The rarity's |
|
| The rarity's base |
Any other sub-key returns null — rewards is not exposed as a placeholder sub-key.
%target_*% and %amount% in gave/received
/scrolls give's message container also registers target directly (a PlayerPlaceholder wrapping the recipient, giving %target_name% and the rest of the standard player sub-keys) and amount as a plain int value. See Messages for where these are used.