Repository navigation
Extra Alternations ๐ง
I am happy to provide Modpack Developers access to all newly added procedures by this mod, including:
- Scraping
- Brushing
- Drying
- Compressing
- Mixing (New!)
- Cleaning
- Lye Water
If you don't know what the above mentioned procedures do, feel free to check out the other categories of this wiki
Note: The following guide assumes the installation and a basic understanding of KubeJS.
All Parameter listed here are mandatory for a valid recipe and cannot be left out
You always have to set it and it is always the same
type: 'extra_steps:processing'
Defines for which kind of process the recipe is for
mode: 'scraping'
| Scraping | Brushing | Drying | Compressing | Mixing | Cleaning | Lye-Water | |
|---|---|---|---|---|---|---|---|
| Mode Names | scraping | brushing | drying | compressing | mixing | cleaning | lye-water |
The ingredient(s) used for the recipe. If the procedure allows it, a count can be configured. The default count if not set is always 1.
ingredients: [
{
item: "minecraft:sugar_cane"
},
{
tag: "#minecraft:logs",
count: 2
}
]
| Scraping | Brushing | Drying | Compressing | Mixing | |
|---|---|---|---|---|---|
| max ingredients | 1 | 1 | 1 | 1 | 8 |
| count available | no | no | no | yes | yes |
The result used for the recipe. If the procedure allows it, a count can be configured. The default count if not set is always 1.
result: {
item: "minecraft:paper",
count: 3
}
| Scraping | Brushing | Drying | Compressing | Mixing | |
|---|---|---|---|---|---|
| count considered | yes | yes | yes | yes | yes |
All Parameter listed here are optional. If not given, a default value is used
The time the procedure requires. Measured in ticks; 20 ticks = 1 second
time: 300 // default is 200
| Scraping | Brushing | Drying | Compressing | Mixing | |
|---|---|---|---|---|---|
| available | no | no | yes | no | no |
The required interaction count with a valid tool to trigger the process
interaction_count: 2 // default is 3
| Scraping | Brushing | Drying | Compressing | Mixing | |
|---|---|---|---|---|---|
| available | yes | yes | no | no | yes |
The consumed water level if processed successfully
water_level_consumption: 2 // default is 1
| Scraping | Brushing | Drying | Compressing | Mixing | |
|---|---|---|---|---|---|
| available | no | no | no | no | yes |
The permitted processing tools. Items and Item Tags are supported. Adding tools here will replace the default tools. Default tools for the corresponding procedure can viewed in-game through the JEI interface
tools: [
{
item: "minecraft:stick"
},
{
tag: "minecraft:shovels"
}
]
| Scraping | Brushing | Drying | Compressing | Mixing | |
|---|---|---|---|---|---|
| available | yes | yes | no | no | yes |
By Products are additional results that can be additionally configured by setting a count, chance and a trigger method. Note: Not all procedures support all trigger methods
byproducts: [
{
item: "minecraft:sugar",
count: 2, // default is 1
chance: 0.25, // default is 1.0
trigger: "per_interaction" // default is "on_complete" (supported by every procedure)
},
{
item: "minecraft:stick" // minimum required example; drops 1 stick with a 100% chance when the procedure is completed
}
]
| Trigger Methods | Per Interaction | On Completion |
|---|---|---|
| Description | Is triggered after every interaction during the procedure (considers interaction count) | Is triggered upon procedure completion (when receiving the result item) |
| code enum | per_interaction | on_complete |
| Scraping | Brushing | Drying | Compressing | Mixing | |
|---|---|---|---|---|---|
| available | yes | yes | yes | yes | yes |
| trigger selection | yes | yes | no | no | yes |
In the following I will provide some example code. These example recipe include all possible configurations. Check the comments to see whether the parameter is required or not
- Put an ingredient in a Drying Rack and interact with it with a required tool in your main hand for a set amount of times to receive the result
// A new Scraping Recipe (You can set Ingredient and Result)
event.custom({
// โ๏ธ [Required] Default Settings
type: 'extra_steps:processing',
mode: 'scraping',
// ๐งฉ [Required] Inputs
ingredients: [ // exactly 1 ingredient is required
{
item: "minecraft:dirt", // this is the 1 ingredient (tags are also allowed)
}
],
// ๐ฆ [Required] Output
result: { // exactly 1 result is required
item: "minecraft:diamond", // this is the 1 result
count: 2 // optional; default is 1
},
// ๐ [Optional] How often it must be interacted with
interaction_count: 3, // optional; default is 1
// ๐ [Optional] tools (override mode defaults)
tools: [
{
item: "minecraft:stick" // you can set items
},
{
tag: "minecraft:axes" // and item tags
}
],
// ๐ [Optional] Byproducts
byproducts: [
{
item: "minecraft:emerald", // adds emeralds as by products
count: 2, // drops 2 items
chance: 0.667, // with a 66.7% chance
trigger: "per_interaction" // after every interaction
},
{
// minimum example for a by product, drops 1 cobblestone with 100% chance upon procedure completion
item: "minecraft:cobblestone"
}
]
});
- The same like Scraping, just different sound effects and default tools
// A new Brushing Recipe
event.custom({
// โ๏ธ [Required] Default Settings
type: 'extra_steps:processing',
mode: 'brushing',
// ๐งฉ [Required] Inputs
ingredients: [ // exactly 1 ingredient is required
{
item: "minecraft:dirt", // this is the 1 ingredient (tags are also allowed)
}
],
// ๐ฆ [Required] Output
result: { // exactly 1 result is required
item: "minecraft:diamond", // this is the 1 result
count: 2 // optional; default is 1
},
// ๐ [Optional] How often it must be interacted with
interaction_count: 3, // optional; default is 1
// ๐ [Optional] tools (override mode defaults)
tools: [
{
item: "minecraft:brush" // you can set items
},
{
tag: "minecraft:swords" // and item tags
}
],
// ๐ [Optional] Byproducts
byproducts: [
{
item: "minecraft:emerald", // adds emeralds as by products
count: 2, // drops 2 items
chance: 0.667, // with a 66.7% chance
trigger: "per_interaction" // after every interaction
},
{
// minimum example for a by product, drops 1 cobblestone with 100% chance upon procedure completion
item: "minecraft:cobblestone"
}
]
});
- When placing the ingredient in a Drying Rack, it will start drying over time and become the result
- While the custom procedures are working, there is no visual transition in the Drying Rack support yet. Stay tuned for updates
// A new Drying Recipe
event.custom({
// โ๏ธ [Required] Default Settings
type: 'extra_steps:processing',
mode: 'drying',
// ๐งฉ [Required] Inputs
ingredients: [ // exactly 1 ingredient is required
{
item: "minecraft:dirt", // this is the 1 ingredient (tags are also allowed)
}
],
// ๐ฆ [Required] Output
result: { // exactly 1 result is required
item: "minecraft:diamond", // this is the 1 result
count: 2 // optional; default is 1
},
// โฑ [Optional] Processing time
time: 300, // optional; default is 200,
// ๐ [Optional] Byproducts (no trigger available here!)
byproducts: [
{
item: "minecraft:emerald", // adds emeralds as by products
count: 2, // drops 2 items
chance: 0.667 // with a 66.7% chance
},
{
// minimum example for a by product, drops 1 cobblestone with 100% chance upon procedure completion
item: "minecraft:cobblestone"
}
]
});
- (working since v1.1.0)
- Put the ingredient in the basket and jump on it to receive the result
// A new Compressing Recipe
event.custom({
// โ๏ธ [Required] Default Settings
type: 'extra_steps:processing',
mode: 'compressing',
// ๐งฉ [Required] Inputs
ingredients: [ // exactly 1 ingredient is required
{
item: "minecraft:dirt", // this is the 1 ingredient (tags are also allowed),
count: 3 // optional; default is 1
}
],
// ๐ฆ [Required] Output
result: { // exactly 1 result is required
item: "minecraft:diamond", // this is the 1 result
count: 2 // optional; default is 1
},
// ๐ [Optional] Byproducts (no trigger available here!)
byproducts: [
{
item: "minecraft:emerald", // adds emeralds as by products
count: 2, // drops 2 items
chance: 0.667, // with a 66.7% chance
},
{
// minimum example for a by product, drops 1 cobblestone with 100% chance upon procedure completion
item: "minecraft:cobblestone"
}
]
});
- Put ingredients in the cauldron and interact with it with a required tool in your main hand for a set amount of times to receive the result
// A new Mixing Recipe
event.custom({
// โ๏ธ [Required] Default Settings
type: 'extra_steps:processing',
mode: 'mixing',
// ๐งฉ [Required] Inputs
ingredients: [ // allows up to 8 ingredients, requires at least 1 ingredient
{
item: "minecraft:dirt", // this is 1/8 ingredients
},
{
tag: "minecraft:logs", // this is 2/8 ingredients
count: 2 // optional; default is 1
}
],
// ๐ฆ [Required] Output
result: { // exactly 1 result is required
item: "minecraft:diamond", // this is the 1 result
count: 2 // optional; default is 1
},
// ๐ [Optional] How often it must be interacted with
interaction_count: 2, // optional; default is 3
// ๐ง [Optional] water usage
water_level_consumption: 2, // optional; default is 1
// ๐ [Optional] tools (override mode defaults)
tools: [
{
item: "minecraft:stick" // you can set items
},
{
tag: "minecraft:shovels" // and item tags
}
],
// ๐ [Optional] Byproducts
byproducts: [
{
item: "minecraft:emerald", // adds emeralds as by products
count: 2, // drops 2 items
chance: 0.667, // with a 66.7% chance
trigger: "per_interaction" // after every interaction
},
{
// minimum example for a by product, drops 1 cobblestone with 100% chance upon procedure completion
item: "minecraft:cobblestone"
}
]
});
- Interact with the ingredient on a Lye Water Cauldron to receive the result
// A new Cleaning Recipe
event.custom({
// โ๏ธ [Required] Default Settings
type: 'extra_steps:processing',
mode: 'cleaning',
// ๐งฉ [Required] Inputs
ingredients: [ // exactly 1 ingredient is required
{
item: "minecraft:dirt", // this is the 1 ingredient (tags are also allowed)
}
],
// ๐ฆ [Required] Output
result: { // exactly 1 result is required
item: "minecraft:diamond", // this is the 1 result
count: 2 // optional; default is 1
}
});
- This recipe allows you to add an ingredient that turns the Water in the cauldron to Lye Water
- Result is in fact irrelevant, but has to be set
- A game restart is required
// Add Lye Water Ingredient
event.custom({
// โ๏ธ [Required] Default Settings
type: 'extra_steps:processing',
mode: 'lye_water',
// ๐งฉ [Required] Inputs
ingredients: [ // exactly 1 ingredient is required
{
item: "minecraft:dirt", // this is the 1 ingredient (tags are also allowed)
}
],
// ๐ฆ [Required] Output (doesn't change anything but is required to be considered a valid recipe)
result: { // exactly 1 result is required
item: "minecraft:diamond", // this is the 1 result
}
});
This is handled like you'd expect in KubeJS. I'll still provide an example since it may not be clear how to remove the default Lye Water Recipe:
// Delete Recipe
event.remove({output: 'extra_steps:lye_water_bucket'});