Create Mechanical Extruder
Rank 1,208
Rank 929 among mods

Quick rating

Community listing page, reviews here may not be monitored by the author.

Create Mechanical Extruder

By oierbravoOwner
Overall rating distribution
0.5★ 5★
Gameplay
0.0
Aesthetics
0.0
Performance
0.0

A mechanical extruder block. Can be used to generate any block or item from adjacent blocks/fluids.

Mod Loaders
Minecraft

About

Description

Create Mechanical Extruder

A mechanical extruder block. Can be used to generate any block or item from adjacent blocks/fluids. This mod it's meant to be used in modpacks.

Heavily inspired on Thermal Expansions Igneous Extruder.

Dedicated wiki

1.21.1-2.x Version Requires Mechanicals Lib

Version support & documentation

  • 1.21.1: Supported. Documentation refers to this version.
  • 1.20.1: Only critical issues
  • 1.19.x: Unsupported: Documentation
  • 1.18.x: Unsupported: Documentation

Andesite Extruder

  • Kinetic block.
  • Filter functionality for selecting output when recipe collides.
  • Shift+right click with empty hand to extract content.
  • Extraction via automation.

Brass Extruder

  • Can consume source blocks.

Extruding recipes

  • JEI integration.
  • Per recipe custom requirements.

BlockState

Block

{
        "blocks": "minecraft:water"
},

Block with State

{
  "blocks": "minecraft:furnace",
  "state": {
    "lit": "true"
  }
}

Input BlockStates

"blockIngredients": {
    "first": {
        "blocks": "minecraft:water"
    },
    "second": {
        "blocks": "minecraft:lava"
    }
}

Catalyst BlockStates

"catalyst": {
  "blocks": "minecraft:obsidian"
}

Required bonks (optional)

  • "requiredBonks": 10
  • Defines how many times must hit.

Advanced extruder (brass) per recipe (optional)

  • "advanced":"true"
  • Recipes requires brass extruder.

Consume blocks (advanced recipe)

  • Advanced extruder can consume blocks.
"consumeBlocks": {
    "first": false,
    "second": true
},

Recipe Requirements

  • MinY/MaxY
"requirements": [
    {
        "type": "mechanicals:min_y",
        "value": 0
    },
    {
        "type": "mechanicals:max_y",
        "value": 60
    }
],
  • MinSpeed/MaxSpeed
"requirements": [
    {
        "type": "mechanicals:max_speed",
        "value": 4.0
    }
],
  • Biome
"requirements": [
    {
        "type": "mechanicals:biome",
        "value": "minecraft:plains"
    }
],
  • BiomeTag
"requirements": [
    {
        "type": "mechanicals:biome_tag",
        "value": "minecraft:is_nether"
    }
],

KubeJS

  • Remove al Extruding recipes.
ServerEvents.recipes(event => {
  event.remove({ type: 'create_mechanical_extruder:extruding' })
})
  • Chanced output (binding)
Output.of('minecraft:clay', 0.5)
Output.of('4xminecraft:clay', 0.5)
  • BlockPredicate (binding)
BlockPredicate.of('minecraft:sand')
  • RecipeRequirement (binding)
RecipeRequirement.minY(int) //ex: RecipeRequirement.minY(-10)
RecipeRequirement.maxY(int) //ex: RecipeRequirement.maxY(20)
RecipeRequirement.minSpeed(float) //ex: RecipeRequirement.minSpeed(2.0)
RecipeRequirement.maxSpeed(float) //ex: RecipeRequirement.maxSpeed(160)
RecipeRequirement.biome(string) //ex: RecipeRequirement.biome("minecraft:plains")
RecipeRequirement.maxSpeed(string)  //ex: RecipeRequirement.biome("minecraft:plains")
  • Add recipes
ServerEvents.recipes(event => {
  /** 
    create_mechanical_extruder.extruding(Output result, BlockPredicate[] inputs)
    .catalys(BlockPredicate catalyst) // optional, default: empty
    .advanced(true) //optional, default: false
    .consumeBlock(Couple consume) //optional, default: empty
  **/

    event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
            .catalyst('minecraft:clay')})
  • Some examples:
//Minimal
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:redstone_block'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])

        //Catalyst
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
            .catalyst('minecraft:clay')

        //Bonks
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:sand'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
            .requiredBonks(10)

        //Chanced output
        event.recipes.create_mechanical_extruder.extruding(Output.of('minecraft:red_sand',0.5),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])

        //Chanced output & bonks
        event.recipes.create_mechanical_extruder.extruding(Output.of('minecraft:birch_planks',0.5),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
            .requiredBonks(5)

        //Advanced extruder
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:obsidian'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
            .catalyst(BlockPredicate.of("minecraft:dirt"))
            .advanced(true)

        //Advanced extruder + consume blocks
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:birch_planks'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
            .catalyst(BlockPredicate.of("minecraft:dirt"))
            .consumeBlocks(true)
            .advanced(true)

        //Advanced extruder + consume different blocks
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:obsidian'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
            .catalyst(BlockPredicate.of("minecraft:dirt"))
            .consumeBlocks([true,false])
            .advanced(true)

        //Biome requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:iron_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
            .requirements(
                [
                    RecipeRequirement.biome("minecraft:plains")
                ]
            );

        //Biome Tag requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:gold_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
            .requirements(
                [
                    RecipeRequirement.biomeTag("minecraft:is_nether")
                ]
            );

        //MinY & MaxY requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:coal_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
            .requirements(
                [
                    RecipeRequirement.minY(-10),
                    RecipeRequirement.maxY(12),
                ]
            );
        //MinSpeed & MaxSpeed requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
            .requirements(
                [
                    RecipeRequirement.minSpeed(1.0),
                    RecipeRequirement.maxSpeed(16.0),
                ]
            );

        //All requirements together
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:emerald_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
        .requirements(
            [
                RecipeRequirement.minSpeed(6.0),
                RecipeRequirement.maxSpeed(16.0),
                RecipeRequirement.minY(10),
                RecipeRequirement.maxY(12),
                RecipeRequirement.biomeTag("minecraft:is_nether")

            ]
        );

        //Everything together
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:emerald_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
        .catalyst(BlockPredicate.of("minecraft:dirt"))
        .advanced(true)
        .consumeBlocks(true)
        .requirements(
            [
                RecipeRequirement.minSpeed(16.0),
                RecipeRequirement.minY(10),
                RecipeRequirement.maxY(12),
                RecipeRequirement.biomeTag("minecraft:is_nether")

            ]
        );

        // Funny things
        // Flower pots
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:glowstone'),[BlockPredicate.of('minecraft:potted_dandelion'),BlockPredicate.of('minecraft:potted_poppy')])

Thanks to the Creators of Create.

Code inspiration from the Create mod itself.

Create Mechanical Extruder

A mechanical extruder block. Can be used to generate any block or item from adjacent blocks/fluids. This mod it's meant to be used in modpacks. Only contains very basic recipes.

Heavily inspired on Thermal Expansions Igneous Extruder.

Dedicated wiki

1.21.1-2.x Version Requires Mechanicals Lib

Version support & documentation

  • 1.21.1: Supported. Documentation refers to this version.
  • 1.20.1: Only critical issues
  • 1.19.x: Unsupported: Documentation
  • 1.18.x: Unsupported: Documentation

Andesite Extruder

  • Kinetic block.
  • Filter functionality for selecting output when recipe collides.
  • Shift+right click with empty hand to extract content.
  • Extraction via automation.

Brass Extruder

  • Can consume source blocks.

Extruding recipes

  • JEI integration.
  • Per recipe custom requirements.

BlockState

Block

{
        "blocks": "minecraft:water"
},

Block with State

{
  "blocks": "minecraft:furnace",
  "state": {
    "lit": "true"
  }
}

Input BlockStates

"blockIngredients": {
    "first": {
        "blocks": "minecraft:water"
    },
    "second": {
        "blocks": "minecraft:lava"
    }
}

Catalyst BlockStates

"catalyst": {
  "blocks": "minecraft:obsidian"
}

Required bonks (optional)

  • "requiredBonks": 10
  • Defines how many times must hit.

Advanced extruder (brass) per recipe (optional)

  • "advanced":"true"
  • Recipes requires brass extruder.

Consume blocks (advanced recipe)

  • Advanced extruder can consume blocks.
"consumeBlocks": {
    "first": false,
    "second": true
},

Recipe Requirements

  • MinY/MaxY
"requirements": [
    {
        "type": "mechanicals:min_y",
        "value": 0
    },
    {
        "type": "mechanicals:max_y",
        "value": 60
    }
],
  • MinSpeed/MaxSpeed
"requirements": [
    {
        "type": "mechanicals:max_speed",
        "value": 4.0
    }
],
  • Biome
"requirements": [
    {
        "type": "mechanicals:biome",
        "value": "minecraft:plains"
    }
],
  • BiomeTag
"requirements": [
    {
        "type": "mechanicals:biome_tag",
        "value": "minecraft:is_nether"
    }
],

KubeJS

  • Remove al Extruding recipes.
ServerEvents.recipes(event => {
  event.remove({ type: 'create_mechanical_extruder:extruding' })
})
  • Chanced output (binding)
Output.of('minecraft:clay', 0.5)
Output.of('4xminecraft:clay', 0.5)
  • BlockPredicate (binding)
BlockPredicate.of('minecraft:sand')
  • RecipeRequirement (binding)
RecipeRequirement.minY(int) //ex: RecipeRequirement.minY(-10)
RecipeRequirement.maxY(int) //ex: RecipeRequirement.maxY(20)
RecipeRequirement.minSpeed(float) //ex: RecipeRequirement.minSpeed(2.0)
RecipeRequirement.maxSpeed(float) //ex: RecipeRequirement.maxSpeed(160)
RecipeRequirement.biome(string) //ex: RecipeRequirement.biome("minecraft:plains")
RecipeRequirement.maxSpeed(string)  //ex: RecipeRequirement.biome("minecraft:plains")
  • Add recipes
ServerEvents.recipes(event => {
  /** 
    create_mechanical_extruder.extruding(Output result, BlockPredicate[] inputs)
    .catalys(BlockPredicate catalyst) // optional, default: empty
    .advanced(true) //optional, default: false
    .consumeBlock(Couple consume) //optional, default: empty
  **/
  
    event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
    	    .catalyst('minecraft:clay')})
  • Some examples:
//Minimal
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:redstone_block'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])

        //Catalyst
    	event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
    	    .catalyst('minecraft:clay')

        //Bonks
    	event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:sand'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
    	    .requiredBonks(10)

        //Chanced output
        event.recipes.create_mechanical_extruder.extruding(Output.of('minecraft:red_sand',0.5),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])

        //Chanced output & bonks
        event.recipes.create_mechanical_extruder.extruding(Output.of('minecraft:birch_planks',0.5),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
            .requiredBonks(5)

        //Advanced extruder
    	event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:obsidian'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
    	    .catalyst(BlockPredicate.of("minecraft:dirt"))
    	    .advanced(true)

    	//Advanced extruder + consume blocks
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:birch_planks'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
            .catalyst(BlockPredicate.of("minecraft:dirt"))
            .consumeBlocks(true)
            .advanced(true)

        //Advanced extruder + consume different blocks
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:obsidian'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
            .catalyst(BlockPredicate.of("minecraft:dirt"))
            .consumeBlocks([true,false])
            .advanced(true)

        //Biome requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:iron_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
            .requirements(
                [
                    RecipeRequirement.biome("minecraft:plains")
                ]
            );

        //Biome Tag requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:gold_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
            .requirements(
                [
            	    RecipeRequirement.biomeTag("minecraft:is_nether")
                ]
            );

        //MinY & MaxY requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:coal_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
            .requirements(
                [
                    RecipeRequirement.minY(-10),
                    RecipeRequirement.maxY(12),
                ]
    	    );
        //MinSpeed & MaxSpeed requirement
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
    	    .requirements(
                [
                    RecipeRequirement.minSpeed(1.0),
                    RecipeRequirement.maxSpeed(16.0),
                ]
            );

        //All requirements together
    	event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:emerald_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
    	.requirements(
    	    [
    	        RecipeRequirement.minSpeed(6.0),
    	        RecipeRequirement.maxSpeed(16.0),
    	        RecipeRequirement.minY(10),
    	        RecipeRequirement.maxY(12),
    	        RecipeRequirement.biomeTag("minecraft:is_nether")

    	    ]
    	);

        //Everything together
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:emerald_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
        .catalyst(BlockPredicate.of("minecraft:dirt"))
        .advanced(true)
        .consumeBlocks(true)
    	.requirements(
    	    [
    	        RecipeRequirement.minSpeed(16.0),
    	        RecipeRequirement.minY(10),
    	        RecipeRequirement.maxY(12),
    	        RecipeRequirement.biomeTag("minecraft:is_nether")

    	    ]
    	);

    	// Funny things
    	// Flower pots
        event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:glowstone'),[BlockPredicate.of('minecraft:potted_dandelion'),BlockPredicate.of('minecraft:potted_poppy')])

Thanks to the Creators of Create.

Code inspiration from the Create mod itself.