-
Notifications
You must be signed in to change notification settings - Fork 68
Advancement Criteria
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
Moved to Revelationary/Advancement-Criteria
Moved to Revelationary/Advancement-Criteria
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.
-
(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
"criteria": {
"dipped_something_into_liquid_crystal": {
"trigger": "spectrum:fluid_dipping",
"conditions": {
"fluid": {
"tag": "spectrum:liquid_crystal"
}
}
}
}
Triggered each time the player gains / loses Azure Dike charges, like them recharging through equipment, or drained via getting hit.
-
(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
"criteria": {
"five_azure_dike_charge": {
"trigger": "spectrum:azure_dike_charge_change",
"charges": {
"min": 5
},
}
}
Triggered when a block is broken by a player.
-
(BrokenBlockPredicate) broken_block
:-
(Identifier[]) blocks
: A list of block identifiers -
(Identifier) tag
: A block tag identifier -
(StatePredicate) state
: A block state predicate
-
"criteria": {
"broken_budding_block_with_resonance": {
"trigger": "spectrum:block_broken",
"conditions": {
"player": {
"equipment": {
"mainhand": {
"enchantments": [
{
"enchantment": "spectrum:resonance"
}
]
}
}
},
"broken_block": {
"tag": "spectrum:budding_blocks"
}
}
}
}
Triggered each time an item is smelted in the Cinderhearth
-
(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)
"criteria": {
"smelted_raw_iron_in_cinderhearth": {
"trigger": "spectrum:cinderhearth_smelting",
"conditions": {
"input": {
"item": "minecraft:raw_iron"
},
"yield_multiplier": {
"min": 2.0
}
}
}
}
Triggered when a Crystal Apothecary that was placed by the player harvests a block in the #crystal_apothecary_harvestable
block tag.
-
(ItemPredicate) item
: A ItemStack that was dropped as the result of the harvesting
"criteria": {
"collected_using_crystal_apothecary": {
"trigger":"spectrum:collect_using_crystal_apothecary",
"conditions": {
"item": {
"tag": "spectrum:gemstone_shards"
}
}
}
}
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.
-
(Identifier) multiblock_identifier
: The completed multiblock
"criteria": {
"built_structure": {
"trigger": "spectrum:completed_multiblock",
"conditions": {
"multiblock_identifier": "spectrum:pedestal_simple_structure"
}
}
}
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
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.
-
(ItemPredicate[]) items
: A list of items that the crafted ItemStack is evaluated against -
(IntRange) gained_experience
: The experience rewarded for crafting that recipe
"criteria": {
"created_onyx": {
"trigger":"spectrum:crafted_with_fusion_shrine",
"conditions": {
"items": [
{
"items": [
"spectrum:onyx_shard"
]
}
]
}
}
}
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.
-
(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
"criteria": {
"craft": {
"trigger":"spectrum:crafted_with_pedestal",
"conditions": {
"items": [
{
"tag": "spectrum:colored_saplings"
}
]
}
}
}
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.
-
(ItemPredicate[]) items
: A list of items that the crafted ItemStack is evaluated against -
(IntRange) gained_experience
: The experience rewarded for crafting that recipe
"criteria": {
"instilled_budding_onyx": {
"trigger":"spectrum:crafted_with_spirit_instiller",
"conditions": {
"items": [
{
"items": [
"spectrum:budding_onyx"
]
}
]
}
}
}
Triggered each time a block on the Crystallarieum advances a step. Triggers for the last player that interacted with the Crystallarieum.
-
(BlockPredicate) grown_block
: The newly grown block -
(ItemPredicate) used_catalyst
: The item used as catalyst
"criteria": {
"fully_grown_bismuth": {
"trigger":"spectrum:crystallarieum_growing",
"conditions": {
"grown_block": {
"block": "spectrum:bismuth_cluster"
}
}
}
}
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.
-
(ItemPredicate) item
: The output item of the recipe -
(IntRange) spent_experience
: The amount of experience used
"criteria": {
"crafted_resonance_book": {
"trigger": "spectrum:enchanter_crafting",
"conditions": {
"item": [
"item": "minecraft:enchanted_book",
"enchantments": [
{
"enchantment": "spectrum:resonance"
}
]
]
}
}
}
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.
-
(ItemPredicate) item
: The output item after all enchantments have been applied -
(IntRange) spent_experience
: The amount of experience used
"criteria": {
"enchanted_using_2500_experience": {
"trigger": "spectrum:enchanter_enchanting",
"conditions": {
"spent_experience": {
"min": 2500
}
}
}
}
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.
-
(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
"criteria": {
"requirement": {
"trigger": "spectrum:enchantment_upgraded",
"conditions": {
"enchantment_identifier": "minecraft:fortune",
"enchantment_level": {
"min": 4
}
}
}
}
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.
-
(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
"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": { }
}
}
}
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.
-
(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)
"criteria": {
"500_blocks_mined_with_inertia": {
"trigger": "spectrum:inertia_used",
"conditions": {
"amount": {
"min": 500
}
}
}
}
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.
-
(LongRange)
: Along
-sized variant of Minecraft'sNumberRange
.
-
(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.
"criteria": {
"filled_ink_container_with_black": {
"trigger": "spectrum:ink_container_interaction",
"conditions": {
"change_color": "black",
"change_amount": {
"min": 1
}
}
}
}
"criteria": {
"high_ink_use": {
"trigger": "spectrum:ink_container_interaction",
"conditions": {
"change_amount": {
"max": -100
}
}
}
}
Triggered each time the player deals a killing blow to an entity while having a Jeopardant equipped as a trinket.
-
(EntityPredicate) killed_entity
: The killed entity -
(IntRange) health
: The amount of health the player has at the time of kill
"criteria": {
"killed_entity_with_jeopardant_and_half_a_heart": {
"trigger": "spectrum:jeopardant_kill",
"conditions": {
"lives_left": {
"max": 1
}
}
}
}
Triggered for the player that placed down a memory, when a creature emerges from it after enough time has passed.
-
(EntityPredicate) manifested_entity
: The entity that hatched from the memory
"criteria": {
"hatch_any": {
"trigger":"spectrum:memory_manifesting"
}
}
Triggers when using the Nature's Staff on a block and converting it to another block.
-
(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
"criteria": {
"used_natures_staff_on_dead_bush": {
"trigger": "spectrum:natures_staff_conversion",
"conditions": {
"source_block": "minecraft:dead_bush"
}
}
}
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.
-
(ItemPredicate) item
: An item that the brewed ItemStack is evaluated against -
(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
"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
}
}
]
}
}
}
The Potion Workshop can not only be used to brew Potions, but can also be used to craft items.
-
(ItemPredicate[]) items
: A list of items that the crafted ItemStack is evaluated against
"criteria": {
"crafted_liquid_bucket": {
"trigger": "spectrum:potion_workshop_crafting",
"conditions": {
"item": [
{
"items": [
"spectrum:mud_bucket"
"spectrum:liquid_crystal_bucket"
]
}
]
}
}
}
Triggered when a player interactively uses a bouncy idol to increase the size of a nearby slime / magma cube.
-
(IntRange) size
: The new size of the slime (details)
"criteria": {
"created_huge_slime": {
"trigger": "spectrum:slime_sizing",
"conditions": {
"size": {
"min": 1
}
}
}
}
Triggered when the player jumps while having a Take-Off Belt equipped and the High Jump potion effect active
-
(ItemPredicate) item
: The take-Off Belt ItemStack -
(IntRange) charges
: The amount of charges that the Take-Off belt was charged up to
"criteria": {
"high_jump": {
"trigger": "spectrum:take_off_belt_jump",
"conditions": {
"charges": {
"min": 6
}
}
}
}
Triggered each time the player interacts with a Titration Barrel which was sealed, fermented and then opened to extract it's contents.
-
(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
"criteria": {
"tapped_suspicious_brew": {
"trigger": "spectrum:titration_barrel_tapping",
"conditions": {
"items": [
{
"items": [
"spectrum:suspicious_brew"
]
}
]
}
}
}
Triggers when killing an entity with a Treasure Hunter enchanted tool and a Treasure Hunter-specific drop happens.
-
(ItemPredicate) dropped_item
: The ItemStack dropped via the Treasure Hunter enchantment
"criteria": {
"dropped_any_head": {
"trigger": "spectrum:treasure_hunter_drop",
"conditions": {
"dropped_item": {
"items": [
"spectrum:mob_heads"
]
}
}
}
}
Triggered each time the player equips or unequips one of Spectrum's trinkets
-
(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
"criteria": {
"equipped_three_trinkets": {
"trigger": "spectrum:trinket_change",
"conditions": {
"spectrum_count": {
"min": 3
}
}
}
}
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.
-
(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
"criteria": {
"used_all": {
"trigger":"spectrum:upgrade_place",
"conditions": {
"count": 4
"block": {
"tag": "spectrum:pedestals"
}
}
}
}
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.
-
(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
"criteria": {
"created_16_node_pastel_network": {
"trigger": "spectrum:pastel_network_creation",
"conditions": {
"total_nodes": {
"min": 32
}
}
}
}
Triggered when a Pigment Pedestal's inventory gets items added or removed with the result being a valid recipe.
-
(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)
"criteria": {
"trying_to_craft_consuming_pedestal_recipe": {
"trigger": "spectrum:pedestal_recipe_calculated",
"conditions": {
"crafting_duration_ticks": {
"min": 1200
}
}
}
}
none
"criteria": {
"plucked_blood_orchid": {
"trigger": "spectrum:blood_orchid_plucking"
}
}
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.
-
(ItemPredicate) tea_items
: The tea that got drunk -
(ItemPredicate) scone_items
: The scone that got automatically consumed
"criteria": {
"drank_any_tea_with_scone": {
"trigger": "spectrum:consumed_tea_with_scone",
"conditions": { }
},
}
Triggered every tick as long as the entity has the Divinity status effect
-
(Bool) is_alive
: Whether the entity is alive -
(FloatRange) health
: The current health of the entity
"criteria": {
"have_half_a_heart_with_divinity_active": {
"trigger": "spectrum:divinity_tick",
"conditions": {
"is_alive": true,
"health": {
"max": 1.00
}
}
}
}
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.
-
(LocationPredicate) location
: The pos of the Hummingstone block that first started the hymn (received lots of events)
"criteria": {
"struck_up_hummingstone_hymn": {
"trigger": "spectrum:hummingstone_hymn",
"conditions": {}
}
}
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.
-
(String) check_name
: The name of the preservation check -
(Bool) check_passed
: Whether the check passed
"criteria": {
"trigger": "spectrum:preservation_check",
"conditions": {
"check_name": "enter_color_mixing_puzzle_structure",
"check_passed": true
}
}
General
For Players
- Getting Started
- Mixing Colors
- Stuck on how to progress?
- Main Progression Steps (MAJOR SPOILERS)
For Server Admins / Modpack Creators
- Integrating into Modpacks
- Adjusting Progression
- Advancement Criteria
- 1.7.x: Patchouli Pages
- 1.7.x: Patchouli Recipe Pages
- 1.8.x: Modonomicon Pages
- 1.8.x: Modonomicon Recipe Pages
- Commands
- Type Specific Predicates
- JsonNBT
For Map Makers
Recipe Types
- Custom Pigment Pedestal Recipes
- Custom Anvil Crushing Recipes
- Custom Fusion Shrine Recipes
- Custom Enchanter Recipes
- Custom Enchantment Upgrade Recipes
- Custom Potion Workshop Brewing Recipes
- Custom Potion Workshop Crafting Recipes
- Custom Potion Workshop Reagents
- Custom Spirit Instiller Recipes
- Custom Liquid Dipping Recipes
- Custom Ink Converting Recipes
- Custom Crystallarieum Recipes
- Custom Cinderhearth Recipes
- Custom Titration Barrel Recipes
- Fluid Ingredients
Loot Tables
More Customisation
- Adding Nature's Staff Conversions
- Adding Entity Fishing Entries
- Adding Resonance Drops
- Adding Crystal Apothecary Harvestables
- Adding Particle Spawner Particles
For Contributors