-
Notifications
You must be signed in to change notification settings - Fork 67
Adjusting Progression
This is a highly advanced topic. Spectrum's progression system differs a lot from most other mods. If not done with caution, you will very likely either confuse your players, or softlock them, making them incapable to progress entirely.
If you want to adjust Spectrum's progression to better fit into the progression of your mod pack, do it very carefully.
Feel free to contact us if there are any questions.
Spectrum's progression is almost entirely data driven via (hidden) advancements.
That gives modpack makers huge control about adjusting all those enchantment locks via data packs.
Be very careful to not introduce impossible / hard to understand scenarios. The Debug Command can help you with non-existent advancements and typos, but it can not detect circular references, for example.
All recipe types have a property advancement_identifier
. By making a data pack that modifies said recipe, you can adjust when this recipe will unlock for the player.
Let us look at the recipe for the Crafting Tablet, a very early game item:
{
"type": "spectrum:pedestal",
"group": "crafting_tablet",
"time": 40,
"tier": "basic",
"cyan": 0,
"magenta": 1,
"yellow": 0,
"white": 0,
"black": 0,
"experience": 0.1,
"pattern": [
"BB",
"CC"
],
"key": {
"B": {
"item": "spectrum:polished_basalt"
},
"C": {
"item": "spectrum:polished_calcite"
}
},
"result": {
"item": "spectrum:crafting_tablet",
"count": 1
},
"required_advancement": "spectrum:unlocks/items/crafting_tablet"
}
Note that the required advancement is set to a very specific one that only refers to the crafting tablet alone. This is done because this advancement is used both in this recipe and the Crafting Tablet entry in Spectrum's guidebook. Adjusting the value in the recipe alone and leaving the guidebook's entry unchanged would mean that, while you will change the criteria for when the recipe is unlocked, the player will now end up with differing unlock conditions for the Crafting Tablet recipe and its manual entry with the explanation for it. While you could adjust both, let's look at the advancement spectrum:unlocks/items/crafting_tablet
instead:
{
"criteria": {
"placed_pedestal": {
"trigger":"revelationary:advancement_gotten",
"conditions": {
"advancement_identifier": "spectrum:place_pedestal"
}
},
"collected_shard": {
"trigger":"revelationary:advancement_gotten",
"conditions": {
"advancement_identifier": "spectrum:hidden/collect_shards/collect_amethyst_shard"
}
}
}
}
Now, that's something you are able to tinker with easily! If you changed the recipe to use other materials you can add them as critiera here with ease. The use of Revelationary's advancement_gotten
trigger makes it really easy to gate stuff behind other advancements: in this case the player will unlock the recipe and guidebook entry when they placed down a Pigment Pedestal and found an amethyst shard.
One of Spectrum's more interesting progression methods is the Revelation system. Only when players reach a specific point in the progression are they are able to see new blocks and get their corresponding drops. If one of those is triggered, the player will receive a toast message indicating that something new in the world is now visible to them so they can go look for it if they so desire.
Those locks are exposed in the form of advancements. Those advancements are found in the directory "milestones" and will start with reveal_
.
{
"criteria": {
"crafted_using_pedestal": {
"trigger":"revelationary:advancement_gotten",
"conditions": {
"advancement_identifier": "spectrum:craft_using_pedestal"
}
}
}
}
This is from one of Spectrum's earliest unlockable ores, Shimmerstone. The use of the single advancement_gotten
trigger shows that this advancement will be granted to the player as soon as they unlock the spectrum:craft_using_pedestal
advancement, which is granted the first time the player uses the Pigment Pedestal to craft something.
Much like recipes, you can override those advancements to introduce additional locks or change them entirely. You can even depend this revelation on progression in other mods. While the modified example below is perfectly valid it also is an awful example, because players would only ever stumble upon that combination of advancements by accident. If you add more complicated gates you should always hint to them, like via clearly visible advancements or a quest book.
{
"criteria": {
"crafted_using_pedestal": {
"trigger":"spectrum:has_advancement",
"conditions": {
"advancement_identifier": "spectrum:craft_using_pedestal"
}
},
"entered_nether": {
"trigger":"spectrum:has_advancement",
"conditions": {
"advancement_identifier": "minecraft:nether/root"
}
},
"gotten_a_tech_reborn_grinder": {
"trigger":"spectrum:has_advancement",
"conditions": {
"advancement_identifier": "techreborn:grinder"
}
}
}
}
There are some other locks that you as a modpack maker can adjust. You will find them in the milestones
advancement directory. Here are some examples:
spectrum:milestones/unlock_shooting_stars
When this is unlocked sometimes there will spawn Shooting Stars (a collectible item that itself gates some optional recipes) around the player in the night.
spectrum:milestones/unlock_overenchanting_with_enchanter
When this is unlocked the player will be able to use the Enchanter to create enchanted books that have higher levels than what is possible with vanilla
spectrum:milestones/unlock_fourth_potion_workshop_reagent_slot
When this is unlocked the player will be able to access a 4th reagent slot in the Potion Workshop instead of only the 3 previously. This will allow the player to create more potent potions.
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