This has ONLY been tested in 1.8.3, if you'd like to test this more, tell DaleksOfSkaro what you've discovered! If it's applicable, it will definitely be added to the wiki!
Before you start
For this tutorial you will need to make at least 3 blocks, you can use a coolant liquid as well, which i will be using in this example, you're required to use air blocks or liquid in this example if you'd like machine noises, if not, then you dont need air blocks.
Making the required blocks/mob
Making the blocks
Use the textures you have to make blocks. See How to Make a Block.
Make a "Main" block, this would be a controller or something like that, the other 2 will be the "active" controller, this block is for when the machine is complete, and a casing block, you can use blocks in game, but you can make a new block for this. The Active controller should have inventory enabled, this is for the GUI later on.
Avoiding Silk Touch
You probably do not want a player being able to get a certain part of you machine, like an active furnace in vanilla. To avoid it follow these steps, On the activated block, make it so "Affected by Silk Touch" is unchecked, and make it so it Doesn't drop itself, and drops the unactivated controller.
Making the mob
This is only if you want a delay and/or sounds. Use the resources you have to make a mob. See How to Make a Mob.
Then change these settings:
- Make the mob have no AI.
- Change the speed as low as possible.
- Give it no attack strength.
- Make it drop nothing including exp.
- Add the sounds you want (hurt=machine working, death=machine stopping).
- Change your mob health to the desired amount (more=longer time, less=shorter).
If you want to know how to add custom sounds to mobs See How to Make a Mob.
Mapping out the machine
There's a few designs you could make this, people who are more experienced with procedures can take this and make new shapes and twists on what is here. In this we will be using a 3x1x3, which is the machine seen on the left here:
Making the procedures
Redstone Power Toggle
I have yet to find a way to do this efficiently, it seems to break a lot if you do the method I use for machine checking, as well as Tedstone power, if anyone finds a way to do this, let me know.
Testing to see if the multi-block is complete
Once your controller block is complete we can begin the procedure, this example is for a machine from ANY direction, the block will be in the direct center of one side with a coolant fluid block in the center, this can be replaced with air if you do not wish to use a fluid. These air blocks are so that the mob wont suffocate to death, however if you wish to make the machine have a limited time, fill in the blocks and make the hurt sound the machine working noise, with the death noise being the machine power down noise.
The procedure used in this will be attached to this wiki. The procedure should look like this for you:
All you have to do is replace each block with what you want, casing blocks would be everything outside, if you wish to have a fuel tank or something along those lines, replace one of those blocks with a fuel tank!
The middle block, which is where the fluid or air block would be found is the 4th "Get Block" procedure of each if statement.
Once you add in all your blocks, in the "Do" section, change the block to be your active controller. After that attack it to the green "Event Triggered" block.
Once you add in all your blocks, it should look something like this:
Once this is done, go to the "Random tick update event" of both your controller and active controller, and add to it this procedure you just created, go test it! With this you should be able to create your machine from any side!
Now you're ready to move on to the next step!
Making the GUI
In this step you can create the Machine's GUI, this can be found here: How to Make a Machine GUI
Using the mob's death as a timer
By setting the armor value, health, and making it immune to drowning and the likes, you can make the mob take longer to die, if dying at all, a new procedure should be made in the "When block added" category, with a procedure spawning the mob behind the block in either the air block, liquid, or blocks there, depending on what you plan to do.
Preventing the machine from doing the job multiple times at once
This can be prevented by making just 1 GUI, you could also use global variables to prevent more than 1 active block in the machine running operations.
As long as the blocks being used have inventories, you should be able to input and output items via hoppers.
This Wiki page can still be improved, but covers most, if not all, of the main points for making a multi-block machine.
All files can be found here: