REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

So, how do you set up items?

<item:minecraft:stone>

Okay, so how do you set up chanced outputs? Simple.

[<item:minecraft:basalt> % 100]

Compacting

  • Supports the following constants to determine if no heating is required, heated or superheated.
    • <constant:create:heat_condition:none>
    • <constant:create:heat_condition:heated>
    • <constant:create:heat_condition:superheated>
  • Outputs on left [] and ingredients on [] right with fluids [] also on the right, they are all separated by commas.
1
2
3
4
5
6
import mods.create.CompactingManager;
// Remember, output is always the first [] on the very left! Ingredients are grouped on the right side.
// copy any of the lines below for your respective renewable materials
<recipetype:create:compacting>.addRecipe("renewable_basalt", <constant:create:heat_condition:none>, [<item:minecraft:basalt> % 100], [<item:minecraft:blue_ice> * 1], [<fluid:minecraft:lava> * 500], 100);
<recipetype:create:compacting>.addRecipe("renewable_coal", <constant:create:heat_condition:heated>, [<item:minecraft:coal>], [<item:minecraft:dried_kelp_block> * 9], [<fluid:minecraft:lava> * 25]);
<recipetype:create:compacting>.addRecipe("renewable_diamond", <constant:create:heat_condition:superheated>, [<item:minecraft:diamond>], [<item:minecraft:coal_block> * 9], [<fluid:minecraft:lava> * 1000]);

Mixing

Crushing

Processing time is set by being the last number at the very end as can be seen below. You can also see clearly where the output items are.

1
2
import mods.createtweaker.CrushingRecipe;
<recipetype:create:crushing>.addRecipe("netherrack_crushing", [<item:create:cinder_flour>, <item:create:cinder_flour> % 50, <item:minecraft:netherite_scrap> % 0.002], <item:minecraft:netherrack>, 250);

Encased Fan Recipes

1
2
3
import mods.createtweaker.HauntingManager;
// Haunting - Crying Obsidian
<recipetype:create:haunting>.addRecipe("obsidian_haunting", [<item:minecraft:crying_obsidian>], <item:minecraft:obsidian>);

Mechanical Crafting

This is a recipe taken out of my modpack, just to perfectly demonstrate the issue with ZenScript’s method of writing a recipe for Mechanical Crafters. It does get hard keeping track of where ingredients are positioned on the crafting grid.

1
2
3
4
5
6
7
8
9
10
11
12
13
import mods.create.MechanicalCrafterManager;
// MechanicalCrafterManager.addRecipe(name as string, output as IItemStack, ingredients as IIngredient[][]) as void
<recipetype:create:mechanical_crafting>.addRecipe("zen_electron_tube_singularity", (<item:extendedcrafting:singularity>.withTag({Id: "extendedcrafting:electron_tube"}) * 1), [
    [<item:minecraft:air>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:air>], 
    [<item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>], 
    [<item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>],
    [<item:minecraft:crying_obsidian>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:minecraft:crying_obsidian>,],
    [<item:minecraft:crying_obsidian>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:minecraft:crying_obsidian>,],
    [<item:minecraft:crying_obsidian>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:minecraft:crying_obsidian>,],
    [<item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>],
    [<item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:create:electron_tube>, <item:create:electron_tube>, <item:create:electron_tube>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>], 
    [<item:minecraft:air>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:crying_obsidian>, <item:minecraft:air>], 
    ]);

For a comparison with KubeJS’s method of writing a Mechanical Crafting recipe with the exact same recipe shown above.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ServerEvents.recipes(event => {
    event.recipes.createMechanicalCrafting(Item.of('extendedcrafting:singularity', '{Id:"extendedcrafting:electron_tube"}'), [
        ' LLLLLLL ',
        'LLLEEELLL',
        'LLEEEEELL',
        'LEEEEEEEL',
        'LEEEEEEEL',
        'LEEEEEEEL',
        'LLEEEEELL',
        'LLLEEELLL',
        ' LLLLLLL '
    ], {
        L: 'minecraft:crying_obsidian',
        E: 'create:electron_tube'
    }).id('finality:electron_tube_singularity')
})

However, it can also be written like this. (Says ashley)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import mods.create.MechanicalCrafterManager;
var O as IIngredient = <item:minecraft:crying_obsidian>;
var E as IIngredient = <item:create:electron_tube>;
var A as IIngredient = <item:minecraft:air>;
// MechanicalCrafterManager.addRecipe(name as string, output as IItemStack, ingredients as IIngredient[][]) as void
<recipetype:create:mechanical_crafting>.addRecipe("zen_electron_tube_singularity", (<item:extendedcrafting:singularity>.withTag({Id: "extendedcrafting:electron_tube"}) * 1), [
    [A, O, O, O, O, O, O, O, A],
    [O, O, O, E, E, E, O, O, O],
    [O, O, E, E, E, E, E, O, O],
    [O, E, E, E, E, E, E, E, O],
    [O, E, E, E, E, E, E, E, O],
    [O, E, E, E, E, E, E, E, O],
    [O, O, E, E, E, E, E, O, O],
    [O, O, O, E, E, E, O, O, O],
    [A, O, O, O, O, O, O, O, A]
]);

Sequenced Assembly

The code below is actually very self explanatory. You also do not have to restate the transitional item which is located in .transitionTo(<>).

1
2
3
4
5
6
7
8
9
10
<recipetype:create:sequenced_assembly>.addRecipe(<recipetype:create:sequenced_assembly>.builder("seq_blue_ice_singularity")
                                      .transitionTo(<item:extendedcrafting:singularity>)
                                      .require(<item:minecraft:blue_ice>)
                                      .loops(16)
                                      .addOutput(<item:extendedcrafting:singularity>.withTag({Id: "extendedcrafting:blue_ice"}) * 1, 100)
                                      .addStep<mods.createtweaker.FillingRecipe>((rb) => rb.require(<fluid:minecraft:water> * 25))
                                      .addStep<mods.createtweaker.DeployerApplicationRecipe>((rb) => rb.require(<item:minecraft:blue_ice>))
                                      .addStep<mods.createtweaker.PressingRecipe>((rb) => rb.require(<item:extendedcrafting:singularity>))
                                      .addStep<mods.createtweaker.PressingRecipe>((rb) => rb.require(<item:extendedcrafting:singularity>))
                                      .addStep<mods.createtweaker.PressingRecipe>((rb) => rb.require(<item:extendedcrafting:singularity>)));