Data Packs
Processes
A process file is the recipe file that the machine process to produce an output
Duration
This is the processing length required to complete the process, this is measured in ticks, there is 20 ticks per second
so a duration of...
20 = 1 second
100 = 5 seconds
200 = 10 seconds
400 = 20 seconds
1200 = 1 minute
6000 = 5 minutes
Example
Name
this can be either text
or a translation
key
Text
Translation
Structure Id
This is the structure id you set in one of your structure.json files
Do note that the namespace for the structureId is actually the namespace of the folder you put the structures into. so the namespace
folder in this example datapackName\data\namespace\mm\recipes\
Do note if you have your structure files in a folder you will need to write the entire path to them, for example if your structure is in a folder called structure1 datapackName\data\namespace\mm\structures\structure1\cheese_maker.json
then your structure id is
Input / Output Process Entries
Entry - Port Designated
The mm:port_designated
recipe entry, simple takes other recipe entries, but only checks and applies them to the designated port of the given id
The Recipe Entry Id
Full Definition
Common Example
This example (as an input) will consume 10000FE
of energy from the energy port which has been given the id (when defined in the structure) of "my_funky_port"
Entry - And Gate
If you need to use multiple requirements and processes within a single entry, use the mm:gate/and
Entry Type.
This can be used inside of an mm:gate/or
to effectively require "(a group on inputs) OR (an alternate group of inputs)"
This is a recursive recipe entry; meaning, you can effectively put recipe entries inside of recipe entries. Note this can get confusing (remember discord support is always an option. We are happy to help)
The Recipe Entry Id
Full Definition
Common Example
Entry - Per Tick
For inputs, mm:per_tick
will consume the specified ingredient every tick that the recipe is processing for.
For outputs, mm:per_tick
will output the specified ingredient every tick that the recipe is processing for.
The Recipe Entry Id
Full Definition
Common Example
Entry - Simple
For inputs, the mm:simple
recipe entry defines a required ingredient with the option to specify a chance of the input being consumed.
For outputs, the mm:simple
recipe entry defines an output ingredient also with the option to specify a chance of whether the ingredient will be output or not.
The Recipe Entry Id
Full Definition
Common Example
Input / Output Ingredient Types
These are the ingredient types inside the input and output sections of a recipe.
Input
This page defines what type of ingredient you can use as an input for your recipes.
Base Mod
These types are already implemented into Masterful Machinery no extra addons are required.
Example
Full Example
mm:energy
mm:energy
This type will allow you to use RF Energy as part of the recipe
Example
Full Example
mm:fluid
mm:fluid
This type will allow you to use liquids in your recipe.
Example
Full Example
mm:dimension
mm:dimension
This type will allow you to limit what dimension your recipe can process in. You can only use this as a input requirement.
Example
Full Example
Create mod
In order to use these ingredient types you must first have these dependencies
Create mod and its dependencies installed in your modpack
Created a
create_rotation
capable port inside yourconfig/ports
folder
mm:create_rotation
mm:create_rotation
This type will allow you to use creates rotational force in order for your machine to operate.
Example
Full Example
Mekanism Mod
In order to use these ingredient types you must first have these dependencies
Mekanism mod and its dependencies installed in your modpack
Created a
mekanism_X
capable port inside yourconfig/ports
folder
mm:mekanism_laser
mm:mekanism_laser
This can onl be used as a input
, output
will not work.
This type will accept Mekanism Lasers energy beams as an input for your machine.
Example
Full Example
mm:mekanism_gas
mm:mekanism_gas
This type will allow mekanism gasses to be used as an input for your machine.
Example
Full Example
mm:mekanism_heat
mm:mekanism_heat
This type will allow mekanism heat to be used as an input for your machine.
Example
Full Example
mm:mekanism_infuse
mm:mekanism_infuse
This type will allow mekanism infuse types to be used as an input for your machine.
Example
Full Example
mm:mekanism_pigment
mm:mekanism_pigment
This type will allow mekanism pigments to be used as an input for your machine.
Example
Full Example
mm:mekanism_slurry
mm:mekanism_slurry
This type will allow mekanism slurries to be used as an input for your machine.
Example
Full Example
Output
This page defines what type of ingredient you can use as an output for your recipes.
Base Mod
These types are already implemented into Masterful Machinery no extra addons are required.
mm:item
mm:item
This type will allow you to use items as part of the recipe, you CANNOT use tags it must be a single item output, though you can have multiple item output entries.
Example
Full Example
mm:energy
mm:energy
This type will allow you to use RF Energy as part of the recipe
Example
Full Example
mm:fluid
mm:fluid
This type will allow you to use liquids in your recipe.
Example
Full Example
Create mod
In order to use these ingredient types you must first have these dependencies
Create mod and its dependencies installed in your modpack
Created a
create_rotation
capable port inside yourconfig/ports
folder
mm:create_rotation
mm:create_rotation
This type will allow you to use creates rotational force in order for your machine to operate.
Example
Full Example
Mekanism Mod
In order to use these ingredient types you must first have these dependencies
Mekanism mod and its dependencies installed in your modpack
Created a
mekanism_X
capable port inside yourconfig/ports
folder
Do note you cannot use Mekanism Laser as an output.
mm:mekanism_gas
mm:mekanism_gas
This type will allow mekanism gasses to be used as an input for your machine.
Example
Full Example
mm:mekanism_heat
mm:mekanism_heat
This type will allow mekanism heat to be used as an input for your machine.
Example
Full Example
mm:mekanism_infuse
mm:mekanism_infuse
This type will allow mekanism infuse types to be used as an input for your machine.
Example
Full Example
mm:mekanism_pigment
mm:mekanism_pigment
This type will allow mekanism pigments to be used as an input for your machine.
Example
Full Example
mm:mekanism_slurry
mm:mekanism_slurry
This type will allow mekanism slurries to be used as an input for your machine.
Example
Full Example
Structures
structures are the json defined blocks and their placement relative to the controller.
Define a simple Structure
Controller Id
This is the id you set in the controller file in the config folder
Layout
These are arrays of strings where each line represents a block layout like you where looking down on a slice of your machine.
The top of the array is north
, bottom south
, right is east
, left is west
Each array is a different Y level in your structure, the top layer in the file is the very top layer of your structure
A capital C
is specifically reserved for the controller, this is automatically defined by setting the controllerId
at the top of the file
For a structure file to be valid it needs to have a capital C
in the layout somewhere
The code below is of a 3x3x3 structure, where...
1 = cobblestone (Very top layer)
2 = stone (Central layer)
3 = oak_log (Very bottom layer)
C = the controller
Name
this can be either text
or a translation
key
Text
Translation
Structure Part - And
The mm:and
structure part is quite a cool part, this structure part will make it so the one block space MUST have both of the required properties inorder for it to be correct. e.g. A daylight detector and a specific power level of that daylight detector.
The Structure Part Id
Full Definition
Full Example
Key
Each key has to be unique and must be one of these characters a-z
, A-Z
, 0-9
, !@#$%^&*
, but not capital C
as this is reserved for the controller
Note: a-z and A-Z are different characters so having "a" and "A" as 2 keys is perfectly valid
What are Structure Parts?
Structure Parts are different types of json objects which can be used in the key of a structure. To define what and where each block goes. You can have and / or gates in this as well.
Structure Part - Block
The mm:block
structure part is simply a key for a specific block in a structure.
The Structure Part Id
Full Definition
Full Example
Structure Part - Or
The mm:or
structure part is quite a cool part, this structure part will make it so the one block space can have EITHER the first entry or the second inorder for it to be correct.
e.g. A daylight detector and a sponge, inorder for it to detect complete one of these 2 blocks must be in the blockspace.
The Structure Part Id
Full Definition
Full Example
Structure Part - Port
The mm:port
structure part defines a key for a port block as defined in the config jsons
The Structure Part Id
Full Definition
Full Example
Structure Part - Port Block
The mm:block
structure part is simply a key for a specific block in a structure.
The Structure Part Id
Full Definition
Full Example
Last updated