Advancement Criteria - DaFuqs/Spectrum GitHub Wiki
Spectrum adds quite a list of additional advancement criteria -- that is, requirements that you can specify in your advancement json files as "player must have done that to unlock this advancement".
You can find documentation about vanilla advancement criteria here: https://minecraft.gamepedia.com/wiki/Advancement/JSON_format
revelationary:advancement_gotten
Advancement Gotten: Moved to Revelationary/Advancement-Criteria
revelationary:had_revelation
Hidden Block/Item Revealed: Moved to Revelationary/Advancement-Criteria
spectrum:fluid_dipping
Converting an item using a fluid dipping recipe: All of Spectrum's fluids support recipes for throwing items into them. When a stack is thrown in by a player and gets converted, this criterion is triggered.
Properties
(FluidPredicate) fluid
: The fluid in which the stack converted(ItemPredicate) source_stack
: The stack that got converted(ItemPredicate) target_stack
: The resulting stack of the conversion
Example
"criteria": {
"dipped_something_into_liquid_crystal": {
"trigger": "spectrum:fluid_dipping",
"conditions": {
"fluid": {
"tag": "spectrum:liquid_crystal"
}
}
}
}
spectrum:azure_dike_charge_change
Player gains / loses Azure Dike charges: Triggered each time the player gains / loses Azure Dike charges, like them recharging through equipment, or drained via getting hit.
Properties
(IntRange) charges
: The amount of Azure Dike charges after the change(IntRange) recharge_rate
: The current recharge rate of Azure Dike(IntRange) change
: The amount of charges changed. When recharging this will be positive, when hit this will be negative
Example
"criteria": {
"five_azure_dike_charge": {
"trigger": "spectrum:azure_dike_charge_change",
"charges": {
"min": 5
},
}
}
spectrum:block_broken
Broken Block: Triggered when a block is broken by a player.
Properties
(BrokenBlockPredicate) broken_block
:(Identifier[]) blocks
: A list of block identifiers(Identifier) tag
: A block tag identifier(StatePredicate) state
: A block state predicate
Example
"criteria": {
"broken_budding_block_with_resonance": {
"trigger": "spectrum:block_broken",
"conditions": {
"player": {
"equipment": {
"mainhand": {
"enchantments": [
{
"enchantment": "spectrum:resonance"
}
]
}
}
},
"broken_block": {
"tag": "spectrum:budding_blocks"
}
}
}
}
spectrum:cinderhearth_smelting
Smelted an item in the Cinderhearth: Triggered each time an item is smelted in the Cinderhearth
Properties
(ItemPredicate) input
: The item that was smelted(ItemPredicate) output
: The item that was given as output. If there are > 1 outputs this Criterion is triggered once for every output(IntRange) speed_multiplier
: When Magenta was supplied, the multiplier for how much faster the recipe was smelted (default: 1.0. 0.5: twice as fast)(IntRange) yield_multiplier
: When Light Blue Ink was supplied, how many times the output was generated in this one cycle(IntRange) efficiency_multiplier
: When Black was supplied, the divisor for the efficiency of smelting(IntRange) experience_multiplier
: When Purple was supplied, the multiplier for the amount of XP generated by smelting (1: default; 2: twice as much)
Example
"criteria": {
"smelted_raw_iron_in_cinderhearth": {
"trigger": "spectrum:cinderhearth_smelting",
"conditions": {
"input": {
"item": "minecraft:raw_iron"
},
"yield_multiplier": {
"min": 2.0
}
}
}
}
spectrum:collect_using_crystal_apothecary
Blocks harvested by the Crystal Apothecary: Triggered when a Crystal Apothecary that was placed by the player harvests a block in the #crystal_apothecary_harvestable
block tag.
Properties
(ItemPredicate) item
: A ItemStack that was dropped as the result of the harvesting
Example
"criteria": {
"collected_using_crystal_apothecary": {
"trigger":"spectrum:collect_using_crystal_apothecary",
"conditions": {
"item": {
"tag": "spectrum:gemstone_shards"
}
}
}
}
spectrum:completed_multiblock
Build Multiblock: Triggered by Spectrum's implementation of Patchouli's multiblock system. Triggers when a multiblock structure successfully matches the construction of one of Spectrum's multiblocks.
Properties
(Identifier) multiblock_identifier
: The completed multiblock
Example
"criteria": {
"built_structure": {
"trigger": "spectrum:completed_multiblock",
"conditions": {
"multiblock_identifier": "spectrum:pedestal_simple_structure"
}
}
}
spectrum:confirmation_button_pressed
Pressing the button in a dedicated guidebook page: Spectrum adds a custom page for Patchouli (Spectrum's guidebook API) that can be used to request a confirmation from a player. You can use this page to require interaction with the player, like confirming if they have read a specific entry.
See Patchouli Confirmation Button Page
spectrum:crafted_with_fusion_shrine
Fusion Shrine Crafting: Analog to spectrum:crafted_with_pedestal
, this criterion is evaluated when a Fusion Shrine finishes crafting. The receiver is always the last player that interacted with the shrine.
Properties
(ItemPredicate[]) items
: A list of items that the crafted ItemStack is evaluated against(IntRange) gained_experience
: The experience rewarded for crafting that recipe
Example
"criteria": {
"created_onyx": {
"trigger":"spectrum:crafted_with_fusion_shrine",
"conditions": {
"items": [
{
"items": [
"spectrum:onyx_shard"
]
}
]
}
}
}
spectrum:crafted_with_pedestal
Pedestal Crafting: Spectrum's main crafting block is the Pigment Pedestal. This criterion is triggered every time a pedestal crafting process finishes. The receiver is the last user of the pedestal.
Properties
(ItemPredicate[]) items
: A list of items that the crafted ItemStack is evaluated against(IntRange) gained_experience
: The experience rewarded for crafting that recipe(IntRange) crafting_duration_ticks
: The length of the crafting process, in ticks
Example
"criteria": {
"craft": {
"trigger":"spectrum:crafted_with_pedestal",
"conditions": {
"items": [
{
"tag": "spectrum:colored_saplings"
}
]
}
}
}
spectrum:crafted_with_spirit_instiller
Spirit Instiller Crafting: Analog to spectrum:crafted_with_pedestal
, this criterion is evaluated when a Spirit Instiller finishes crafting. The receiver is always the last player that interacted with the instiller.
Properties
(ItemPredicate[]) items
: A list of items that the crafted ItemStack is evaluated against(IntRange) gained_experience
: The experience rewarded for crafting that recipe
Example
"criteria": {
"instilled_budding_onyx": {
"trigger":"spectrum:crafted_with_spirit_instiller",
"conditions": {
"items": [
{
"items": [
"spectrum:budding_onyx"
]
}
]
}
}
}
spectrum:crystallarieum_growing
Grown a resource on the Crystallarieum: Triggered each time a block on the Crystallarieum advances a step. Triggers for the last player that interacted with the Crystallarieum.
Properties
(BlockPredicate) grown_block
: The newly grown block(ItemPredicate) used_catalyst
: The item used as catalyst
Example
"criteria": {
"fully_grown_bismuth": {
"trigger":"spectrum:crystallarieum_growing",
"conditions": {
"grown_block": {
"block": "spectrum:bismuth_cluster"
}
}
}
}
spectrum:enchanter_crafting
Used the Enchanter to craft an Enchanter recipe: Triggered every time a recipe of type spectrum:enchanter
is crafted.
These are fixed recipes defined via json, analogous to the Pigment Pedestal or Fusion Shrine recipes.
Experience is supplied via Knowledge Gems.
Properties
(ItemPredicate) item
: The output item of the recipe(IntRange) spent_experience
: The amount of experience used
Example
"criteria": {
"crafted_resonance_book": {
"trigger": "spectrum:enchanter_crafting",
"conditions": {
"item": [
"item": "minecraft:enchanted_book",
"enchantments": [
{
"enchantment": "spectrum:resonance"
}
]
]
}
}
}
spectrum:enchanter_enchanting
Enchanted Item with the Enchanter: Triggered every time the enchanter is used to enchant an item using enchanted books. This is done by putting items in the Item Bowls surrounding the Enchanter, putting the item to enchant in the center. Experience is supplied via Knowledge Gems.
Properties
(ItemPredicate) item
: The output item after all enchantments have been applied(IntRange) spent_experience
: The amount of experience used
Example
"criteria": {
"enchanted_using_2500_experience": {
"trigger": "spectrum:enchanter_enchanting",
"conditions": {
"spent_experience": {
"min": 2500
}
}
}
}
spectrum:enchantment_upgraded
Upgraded an enchanted book in the Enchanter: Triggered every time a recipe of type spectrum:enchantment_upgrade
is crafted.
Note that the target levels can exceed vanilla max level limits, as long as the player has the required progression and it specified that way in the recipe's json file.
Properties
(Identifier) enchantment_identifier
: The output item after all enchantments have been applied(IntRange) enchantment_level
: The resulting enchantment level(IntRange) spent_experience
: The amount of experience used
Example
"criteria": {
"requirement": {
"trigger": "spectrum:enchantment_upgraded",
"conditions": {
"enchantment_identifier": "minecraft:fortune",
"enchantment_level": {
"min": 4
}
}
}
}
spectrum:fishing_rod_hooked
Successfully reeling with a Spectrum fishing rod: Triggered each time a player fishes successfully using one of Spectrum's fishing rods. It gives more freedom in it's properties than the default vanilla fishing criterion: You can specify conditions for Entity Fishing, as well as the fluid that was fished in (Spectrum's rods can fish in multiple kinds of fluids).
This advancement criterion does not trigger for the vanilla fishing rod, or ones from other mods, unless they implement Spectrum's entity fishing mechanics. It criterion triggers additionally to the vanilla fishing criterion.
Properties
(ItemPredicate) rod
: The fishing rod(EntityPredicate) bobber
: The fishing bobber at the time of reeling in(EntityPredicate) hooked_entity
: The entity that was hooked at the time of reeling in (like when hooking another player)(EntityPredicate) fished_entity
: The entity that was reeled in via Entity Fishing(ItemPredicate) item
: The item that was reeled in. This will be empty if the player reeled in a living entity or hooked a creature(FluidPredicate) fluid
: The fluid that was fished in
Example
"criteria": {
"fished_in_lava": {
"trigger": "spectrum:fishing_rod_hooked",
"conditions": {
"fluid": {
"tag": "minecraft:lava"
}
}
},
"fished_an_entity": {
"trigger": "spectrum:fishing_rod_hooked",
"conditions": {
"fished_entity": { }
}
}
}
spectrum:inertia_used
Used an Inertia-enchanted tool to break a block: Triggered every time a player breaks a block using Spectrumls Inertia enchantment. This enchantment is an alternative to efficiency. Instead giving a flat bonus to block breaking speed, it gets faster and faster the more blocks of the same type the player breaks.
Properties
(StatePredicate) state
: The block state that was broken(IntRange) amount
: The amount of continuous blocks broken of the same type. Includes the now broken block (so always > 0)
Example
"criteria": {
"500_blocks_mined_with_inertia": {
"trigger": "spectrum:inertia_used",
"conditions": {
"amount": {
"min": 500
}
}
}
}
spectrum:ink_container_interaction
Filling / draining INK containers: Triggered each time the stored energy inside a Pigment Palette/Ink Flask/... has changed. When storing energy, change_amount
will be positive. When energy is getting used, change_amount
is negative.
Sub-Types
(LongRange)
: Along
-sized variant of Minecraft'sNumberRange
.
Properties
(LongRange) black
: The amount of Black energy stored after the change(LongRange) blue
: The amount of Blue energy stored after the change(LongRange) brown
: The amount of Brown energy stored after the change(LongRange) cyan
: The amount of Cyan energy stored after the change(LongRange) gray
: The amount of Gray energy stored after the change(LongRange) green
: The amount of Green energy stored after the change(LongRange) light_blue
: The amount of Light Blue energy stored after the change(LongRange) light_gray
: The amount of Light Gray energy stored after the change(LongRange) lime
: The amount of Lime energy stored after the change(LongRange) magenta
: The amount of Magenta energy stored after the change(LongRange) orange
: The amount of Orange energy stored after the change(LongRange) pink
: The amount of Pink energy stored after the change(LongRange) purple
: The amount of Purple energy stored after the change(LongRange) red
: The amount of Red energy stored after the change(LongRange) white
: The amount of White energy stored after the change(LongRange) yellow
: The amount of Yellow energy stored after the change(ItemPredicate) item
: The item that was changed(ColorPredicate) change_color
: The color that was stored / drained(String)
: The name of one of the 16 colors
(LongRange) change_range
: The total amount of energy stored / drained in that single transaction. Positive if stored, negative if drained.
Example 1: filling any container
"criteria": {
"filled_ink_container_with_black": {
"trigger": "spectrum:ink_container_interaction",
"conditions": {
"change_color": "black",
"change_amount": {
"min": 1
}
}
}
}
Example 2: using a high amount of ink with one action
"criteria": {
"high_ink_use": {
"trigger": "spectrum:ink_container_interaction",
"conditions": {
"change_amount": {
"max": -100
}
}
}
}
spectrum:jeopardant_kill
Player kills an Entity while having a Jeopardant equipped: Triggered each time the player deals a killing blow to an entity while having a Jeopardant equipped as a trinket.
Properties
(EntityPredicate) killed_entity
: The killed entity(IntRange) health
: The amount of health the player has at the time of kill
Example
"criteria": {
"killed_entity_with_jeopardant_and_half_a_heart": {
"trigger": "spectrum:jeopardant_kill",
"conditions": {
"lives_left": {
"max": 1
}
}
}
}
spectrum:memory_manifesting
Creature hatches from a Memory: Triggered for the player that placed down a memory, when a creature emerges from it after enough time has passed.
Properties
(EntityPredicate) manifested_entity
: The entity that hatched from the memory
Example
"criteria": {
"hatch_any": {
"trigger":"spectrum:memory_manifesting"
}
}
spectrum:natures_staff_conversion
Convert a block using the Nature's Staff: Triggers when using the Nature's Staff on a block and converting it to another block.
Properties
(Identifier) source_block
: The source block converting from(StatePredicate) source_state
: A list of block states to match for the source block(Identifier) target_block
: The target block converting to(StatePredicate) target_state
: A list of block states to match for the target block
Example
"criteria": {
"used_natures_staff_on_dead_bush": {
"trigger": "spectrum:natures_staff_conversion",
"conditions": {
"source_block": "minecraft:dead_bush"
}
}
}
spectrum:potion_workshop_brewing
Brewed a Potion in the Potion Workshop: Triggered every time a player brews a potion or tipped arrow in the Potion Workshop. Also triggers when a Potion Pendant is filled with a new new effect. In that case, the "effects" list contains all effects of the resultant Potion Pendant, not only the most current one.
Properties
(ItemPredicate) item
: An item that the brewed ItemStack is evaluated against(ItemPredicate) reagent
: An item that every used reagent is evaluated against (any match)(EntityEffectPredicate) effects
: The list of effect identifiers of the potion(IntRange) highest_amplifier
: The highest amplifier of all effects of the potion(IntRange) longest_duration
: The longest duration of all effects of the potion(IntRange) effect_count
: The total count of effects(IntRange) unique_effect_count
: The total count of unique effects
Example
"criteria": {
"brewed_potion_with_min_regeneration_three": {
"trigger": "spectrum:potion_workshop_brewing",
"conditions": {
"item": [
{
"items": [
"minecraft:potion"
"minecraft:splash_potion"
"minecraft:lingering_potion"
]
}
],
"effects": [
{
"effect": "minecraft:regeneration",
"levels": {
"min": 3
}
}
]
}
}
}
spectrum:crafted_with_potion_workshop
Crafted an item in the Potion Workshop: The Potion Workshop can not only be used to brew Potions, but can also be used to craft items.
Properties
(ItemPredicate[]) items
: A list of items that the crafted ItemStack is evaluated against
Example
"criteria": {
"crafted_liquid_bucket": {
"trigger": "spectrum:potion_workshop_crafting",
"conditions": {
"item": [
{
"items": [
"spectrum:mud_bucket"
"spectrum:liquid_crystal_bucket"
]
}
]
}
}
}
spectrum:slime_sizing
Player uses a Bouncy Idol: Triggered when a player interactively uses a bouncy idol to increase the size of a nearby slime / magma cube.
Properties
(IntRange) size
: The new size of the slime (details)
Example
"criteria": {
"created_huge_slime": {
"trigger": "spectrum:slime_sizing",
"conditions": {
"size": {
"min": 1
}
}
}
}
spectrum:take_off_belt_jump
Making a High Jump with the Take-Off Belt equipped: Triggered when the player jumps while having a Take-Off Belt equipped and the High Jump potion effect active
Properties
(ItemPredicate) item
: The take-Off Belt ItemStack(IntRange) charges
: The amount of charges that the Take-Off belt was charged up to
Example
"criteria": {
"high_jump": {
"trigger": "spectrum:take_off_belt_jump",
"conditions": {
"charges": {
"min": 6
}
}
}
}
spectrum:titration_barrel_tapping
Tapping output of a Titration Barrel: Triggered each time the player interacts with a Titration Barrel which was sealed, fermented and then opened to extract it's contents.
Properties
(ItemPredicate[]) items
: The items that were stored in the barrel(IntRange) age_ingame_days
: The amount of Minecraft days (20 real-life minutes each) that the barrel was sealed. Note that this time is counted even if the server was not running, or if the chunk was not loaded(IntRange) ingredient_count
: The amount of items that was put into the barrel before sealing
Example
"criteria": {
"tapped_suspicious_brew": {
"trigger": "spectrum:titration_barrel_tapping",
"conditions": {
"items": [
{
"items": [
"spectrum:suspicious_brew"
]
}
]
}
}
}
spectrum:treasure_hunter_drop
Item dropped by using the Treasure Hunter enchantment: Triggers when killing an entity with a Treasure Hunter enchanted tool and a Treasure Hunter-specific drop happens.
Properties
(ItemPredicate) dropped_item
: The ItemStack dropped via the Treasure Hunter enchantment
Example
"criteria": {
"dropped_any_head": {
"trigger": "spectrum:treasure_hunter_drop",
"conditions": {
"dropped_item": {
"items": [
"spectrum:mob_heads"
]
}
}
}
}
spectrum:trinket_change
Player equips/unequips a Spectrum trinket: Triggered each time the player equips or unequips one of Spectrum's trinkets
Properties
(ItemPredicate[]) items
: All equipped trinkets after the change(IntRange) total_count
: The amount of all equipped trinkets(IntRange) spectrum_count
: The amount of all equipped Spectrum trinkets
Example
"criteria": {
"equipped_three_trinkets": {
"trigger": "spectrum:trinket_change",
"conditions": {
"spectrum_count": {
"min": 3
}
}
}
}
spectrum:upgrade_place
Placing down an Upgrade block: Triggered after the player placed down an Upgrade block (speed, yield, efficiency, experience) to enhance one of Spectrum's multiblock structures, like the Pigment Pedestal. Every upgrade grants the player a bonus to one of that structures properties depending on its tier, ranging from 1-8 without addons installed.
Properties
(BlockPredicate) block
: The particular upgrade block(IntRange) count
: The total count of placed upgrades(IntRange) speed_mod
: The resulting speed modifier(IntRange) experience_mod
: The resulting experience modifier(IntRange) efficiency_mod
: The resulting efficiency modifier(IntRange) yield_mod
: The resulting yield modifier
Example
"criteria": {
"used_all": {
"trigger":"spectrum:upgrade_place",
"conditions": {
"count": 4
"block": {
"tag": "spectrum:pedestals"
}
}
}
}
spectrum:pastel_network_creation
Creating or extending a Pastel Network: Triggered each time the player places down a Pastel Node to either form a new Pastel Network or to extend an existing, close-by one.
Properties
(IntRange) total_nodes
: The total count of nodes in the network(IntRange) connection_nodes
: The count of Connection Nodes(IntRange) provider_nodes
: The count of Provider Nodes(IntRange) storage_nodes
: The count of Storage Nodes(IntRange) sender_nodes
: The count of Sender Nodes(IntRange) gather_nodes
: The count of Gather Nodes
Example
"criteria": {
"created_16_node_pastel_network": {
"trigger": "spectrum:pastel_network_creation",
"conditions": {
"total_nodes": {
"min": 32
}
}
}
}
spectrum:pedestal_recipe_calculated
Placing a valid recipe into the Pigment Pedestal: Triggered when a Pigment Pedestal's inventory gets items added or removed with the result being a valid recipe.
Properties
(ItemPredicate[]) items
: The recipes output(IntRange) gained_experience
: The experience the recipe would give (unaffected by upgrades)(IntRange) crafting_duration_ticks
: The time in ticks this recipe would need to craft (affected by upgrades)
Example
"criteria": {
"trying_to_craft_consuming_pedestal_recipe": {
"trigger": "spectrum:pedestal_recipe_calculated",
"conditions": {
"crafting_duration_ticks": {
"min": 1200
}
}
}
}
spectrum:blood_orchid_plucking
Plucking a leaf off of a Blood Orchid: Properties
none
Example
"criteria": {
"plucked_blood_orchid": {
"trigger": "spectrum:blood_orchid_plucking"
}
}
spectrum:consumed_tea_with_scone
Drinking tea with a scone in the hotbar: Teas and Scones synergise in a way, that when the player drinks tea and has a Scone in the hotbar, the Scone is automatically consumed, giving its usual effects plus greatly boosting the teas effect.
Properties
(ItemPredicate) tea_items
: The tea that got drunk(ItemPredicate) scone_items
: The scone that got automatically consumed
Example
"criteria": {
"drank_any_tea_with_scone": {
"trigger": "spectrum:consumed_tea_with_scone",
"conditions": { }
},
}
spectrum:divinity_tick
Having Divinity applied: Triggered every tick as long as the entity has the Divinity status effect
Properties
(Bool) is_alive
: Whether the entity is alive(FloatRange) health
: The current health of the entity
Example
"criteria": {
"have_half_a_heart_with_divinity_active": {
"trigger": "spectrum:divinity_tick",
"conditions": {
"is_alive": true,
"health": {
"max": 1.00
}
}
}
}
spectrum:hummingstone_hymn
Causing a Hummingstone hymn: Interacting with a Hummingstone (by interacting with it, hitting it with a projectile, ...) sends out events to other hummingstones close to it. They have a chance to echo that event. When many events occur in a short timerange, the Humminstones break, dropping a useful resource.
Properties
(LocationPredicate) location
: The pos of the Hummingstone block that first started the hymn (received lots of events)
Example
"criteria": {
"struck_up_hummingstone_hymn": {
"trigger": "spectrum:hummingstone_hymn",
"conditions": {}
}
}
spectrum:preservation_check
Exploring Puzzle Structures: This one is a bit more complicated. In short, a Preservation Controller stores a lot of data which tells it which player is allowed in the structure, and which is not. It checks the surroundings every second, looks for players and determines of they will be kicked out (check_passed=false
), or if they may stay (check_passed=true
). Name name of the check is also set in its nbt.
Properties
(String) check_name
: The name of the preservation check(Bool) check_passed
: Whether the check passed
Example
"criteria": {
"trigger": "spectrum:preservation_check",
"conditions": {
"check_name": "enter_color_mixing_puzzle_structure",
"check_passed": true
}
}