-
Notifications
You must be signed in to change notification settings - Fork 16
Materials
EE does not come with any pre-configured materials. Therefore creation of any materials will need to be done entirely by the modpack developer.
To create a new material:
- Locate the
emendatusenigmatica\material
config folder inside the root config folder. - Create a *.json file inside this folder for each material you wish to add to the game.
The file you have just created represents a Material Data Object.
Below you will find a more detailed break down of a Material Data Object showing what is required for each material and giving a brief explanation of each module and data field. All Data Generation will be done by the mod the next time you run your game.
An example of a complete material file can be found here.
Note: The mod is capable of using the material color data in this file to create tint-based textures for your materials, however should you prefer a more artistic option you can provide your own textures through a custom Resource Pack. More information on how to setup your own EE Resource Pack and a set of available textures and texture templates are available here. If no texture is provided via a resource pack the mod will automatically generate textures the next time the game is run.
"id": ""
* REQUIRED FIELD
Used for all registry naming conventions, note: this must be a unique identifier for each material.
example:
"id": "iridium"
"source": ""
* REQUIRED FIELD
Identifies whether the material added is
vanilla
, ormodded
. This field affects recipes, and other data generation.example:
"source": "modded"
"localizedName": ""
* REQUIRED FIELD
Used for the generation of the lang (en_us) entries of the material. This is the name you will see in game and in JEI
example:
"localizedName": "Iridium"
"processedTypes": [ ]
* REQUIRED FIELD
A list object which contains a list of strings of supported types. A complete list of supported Processed Types can be found here.
example:
"processedTypes": ["storage_block", "ingot", "ore", "gear"]
"disableDefaultOre": true
This field only affects
"source": "vanilla"
materials, and if set totrue
, it will disable the ore generation of these materials.example:
"disableDefaultOre": false
"properties": { }
This json object houses the Material Properties module.
"oreDrop": { }
This json object houses the Material Ore Drop module.
"colors": { }
This json object houses the Material Color module.
"compat": { }
This json object houses the Material Compat module.
"materialType": ""
* REQUIRED FIELD
Identifies whether the material is
metal
,gem
, oralloy
based.example:
"materialType": "metal"
"harvestLevel": 0
Determines the harvest level requirement of the appropriate tool. Only Vanilla tiers are accepted, and they are the following:
0: Wood/Gold
1: Stone
2: Iron
3: Diamond
4: Netherite
example:
"harvestLevel": 3
"hasParticles": true
If set to
true
, the Ore block of this material will have particles. You can set your particles color in the Material Color module.example:
"hasParticles": true
"isBurnable": true
If set to
true
, all Processed Types of this material will have a burn time associated with them, marking them as a valid furnace fuel.example:
"isBurnable": true
"burnTime": 0
Determines the efficiency of the Material as a burnable fuel. The default should be
1600
which is similar to Vanilla Coal, and can smelt 8 items.example:
"burnTime": 3600
"blockRecipeType": 0
If the material has both
gem
andstorage_block
as processed types, this field can be used to determine whether the block recipe is 9x or 4x gems per block.example:
"blockRecipeType": 4
[Required if the Material has ore
, but no gem
or raw
as a Processed Type, or if you want to specify a Min/Max drop count]
"drop": ""
If the material has no
gem
as a processed type, but it is agem
material type, this field can be used to determine the dropped item.example:
"drop": "minecraft:lapis_lazuli"
"min": 0
Determines the minimum number of drops when mining the ore.
example:
"min": 4
"max": 0
Determines the maximum number of drops when mining the ore.
example:
"max": 9
[All colors should be Hexadecimal value without #]
"fluidColor": ""
Used to tint the Fluid and Fluid Bucket of the Material.
example:
"fluidColor": "0099ff"
"particlesColor": ""
Used for the particles color of the Material Ores if
hasParticles
is set totrue
.example:
"particlesColor": "c5dbed"
"materialColor": ""
Used to tint textures if no actual texture is provided through a Resource Pack.
example:
"materialColor": "b5a642"
While EE comes with compat integration for many mod recipes, some recipes require additional information such as the secondary outputs of Thermal and Create. The below fields are used to determine these values.
The first step is to setup the mod compat, and recipe type objects as the following "create": { "crushing": { ... }, "splashing": { ... } }
for Create, or "thermal": { "induction": { ... } }
for Thermal Expansion.
Based on the mod/recipe type objects you setup, the rest of the fields can be populated with the below information;
Crushing recipe is generated when the Material contains ore
and crushed_ore
processed types.
"firstOutputCount": 0
Determines the count of the item created for the 1st output.
example:
"firstOutputCount": 2
"secondOutputCount": 0
Determines the count of the item created for the 2nd output.
example:
"secondOutputCount": 4
"secondOutputChance": 0.0
Determines the chance of the item created for the 2nd output.
example:
"secondOutputCount": 0.25
Splashing recipe is generated when the Material contains crushed_ore
and nugget
processed types.
"secondOutput": ""
Determines the item created for the 2nd output.
example:
"secondOutput": "minecraft:apple"
"secondOutputCount": 0
Determines the count of the item created for the 2nd output.
example:
"secondOutputCount": 3
"secondOutputChance": 0.0
Determines the chance of the item created for the 2nd output.
example:
"secondOutputChance": 0.35
Pulverizer recipe is generated when the Material contains ingot
and dust
, gem
and dust
, ore
and dust
, or ore
and gem
processed types.
"firstOutputCount": 0
Determines the count of the item created for the 1st output.
example:
"firstOutputCount": 2
"firstOutputChance": 0.0
Determines the chance of the item created for the 1st output.
example:
"firstOutputChance": 0.3
"secondOutput": ""
Determines the item created for the 2nd output.
example:
"secondOutput": "minecraft:ghast_tear"
"secondOutputCount": 0
Determines the count of the item created for the 2nd output.
example:
"secondOutputCount": 6
"secondOutputChance": 0.0
Determines the chance of the item created for the 2nd output.
example:
"secondOutputChance": 0.45
Induction Smelter recipe is generated when the Material contains an dust
and ingot
, ore
and ingot
, ore
and gem
processed types.
"firstOutputCount": 0
Determines the count of the item created for the 1st output.
example:
"firstOutputCount": 4
"firstOutputChance": 0.0
Determines the chance of the item created for the 1st output.
example:
"firstOutputChance": 0.27
"secondOutput": ""
Determines the item created for the 2nd output.
example:
"secondOutput": "minecraft:ender_pearl"
"secondOutputCount": 0
Determines the count of the item created for the 2nd output.
example:
"secondOutputCount": 5
"secondOutputChance": 0.0
Determines the chance of the item created for the 2nd output.
example:
"secondOutputChance": 0.32
The creation of Alloy induction recipes is also supported, and it is based on the input of items in this section, and if the materialType
is set to alloy
.
"firstInput": ""
Determines the item used for the 1st input for an Alloy.
example:
"firstInput": "minecraft:gold_ingot"
"firstInputCount": 0
Determines the count of the item used for the 1st input for an Alloy.
example:
"firstInputCount": 1
"secondInput": ""
Determines the item used for the 2nd input for an Alloy.
example:
"secondInput": "minecraft:iron_nugget"
"secondInputCount": 0
Determines the count of the item used for the 2nd input for an Alloy.
example:
"secondInputCount": 5
"thirdInput": ""
Determines the item used for the 3rd input for an Alloy.
example:
"thirdInput": "emendatusenigmatica:iridium_ingot"
"thirdInputCount": 0
Determines the count of the item used for the 3rd input for an Alloy.
example:
"thirdInputCount": 2
Note: If a mod you want is missing, you can either request it on Github, or create your own recipe through other means like KubeJS for example.
- Ars Nouveau: Crushing Spell recipes.
- Blood Magic: Ore 2x/3x recipes.
- Create: Crushing and Washing recipes.
- Mekanism: Ore 2x/3x/4x/5x recipes.
- Occultism: Spirit Crushing recipes.
- Thermal: Pulverizer and Induction Smelter recipes.
General: storage_block
ingot
gem
ore
raw
nugget
dust
plate
gear
rod
fluid
Mekanism: slurry
crystal
shard
clump
dirty_dust
Blood Magic: fragment
gravel
Create: crushed_ore