Tips and tricks for the new procedure system

Submitted by Klemen on Sun, 05/06/2018 - 17:44
Tips and tricks for the new procedure system

There have been many questions on MCreator's website on how to use procedure system. We have decided to create a getting started guide for the new procedure system.

We have created a separate wiki page for this purpose. Old event related pages were marked as "legacy" on our wiki, but we will keep them on the website for the users of older MCreator versions.

Many users complained that they can not make things that were possible in event system before. This is not true, however. Just the way how to achieve the same effect is now different. Everything that was possible before is still possible, even with many more options and combinations. This new procedure system is very similar to the one found in Scratch editor. The block system framework we use is called Blockly and is developed by Google. It allows us to make a visual programming experience that was never possible before.

On the procedures wiki page, there are examples of procedures including the explanation of trigger and dependencies. Below, you can see an example of how to make a random possibility condition in the new procedure system.

Random possibility

In this example, we show how to create an if condition that triggers in 70% of the cases. In case it is triggered, the block at x, y, z (these coordinates depend on the trigger that provides actual coordinate values) is removed.

Random possibility of event in the procedure editor

Examples such as the one provided in the citation above and many others can be found on our wiki on the new page dedicated to procedures.

Procedure system wiki page

We will update this wiki page with more examples in the future. If you would like to see a specific example, comment on this post and we will select the best requests and add them to the wiki page. Right now, only some procedures that were most commonly asked are shown. These include examples of how to create conditions that could previously be made using the event condition text box.

Share this on:

Comments

With the new procedures system, nobody can say that mcreator is just "pressing buttons"! The possibilities are endless! :)

This is very true. And procedure system is also a great way to get a grip of the programming and how to define algorithms. The user actually defines the flow chart of the program.

Submitted by Lopes_HD on Sun, 05/13/2018 - 14:29

a question: with this new system it is possible to create a menu that appears at the beginning of a world where if one of the options is preamble a mob (of my mod) that was passive be aggressive because of the option that I chose?

This is currently not possible. You could do some hacks such as use GUI for the menu, two mobs for passive and aggressive type, but it would not be the same effect as desired. Right now, this is not possible, unfortunately.

Submitted by _Fa11out_ on Mon, 05/14/2018 - 06:25

Procedure system is good idea, however it requires more guides. My mod don't work now, I don't understand how to set potion effect. Can somebody help me with it?

I think that something not right with procedure triggers. What happened: I place trigger of effect when Item in invertory = npthing happens, however, when I added another trigger : When clicked on air = effect are working and mod is ok now. I guess that there is something not right with procedure system

Submitted by FlowGD on Mon, 05/14/2018 - 07:19

How do I use values from GUI's Text Inputs in a procedure? I love the procedure system but I haven't found how to do this.

I think you found a thing we forgot to implement and even I was not aware of this. Thank you for bringing this up. I will open a ticket for this and we will add this feature in 1.8.0.

Of course, you can, but right now I don't have a code snippet as it will most likely involve Java reflection in order to access the text field variables from the procedure class. I suggest you open a feature request ticket on our tracker and I will post the code there once I have a working sample.

Submitted by mc85 on Mon, 05/14/2018 - 17:38

Is there a way to change the random possibility in the random block?

you use multipliers and adders. For example if you want a number from 34 to 78 you take
44 * random 0 to 1 + 34
because by multiplying you get random 0 to 44, then by adding you get random 34 to 78

You just change the number in the condition. Random generates decimal numbers between 0 and 1 with equal possibility. So if you check if the number is smaller than 0.3, this will be true in 30% of cases if the condition is < 0.9, this will be true in 90% of the cases, so the probability for this condition to be true is 90% out of 100%.