Skip to content

Materials

Kal Chikhou edited this page Nov 24, 2022 · 19 revisions

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.


Material JSON file content:

Material Core module:

"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, or modded. 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 to true, 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.

Material Properties module:

"materialType": ""

* REQUIRED FIELD

Identifies whether the material is metal, gem, or alloy 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 and storage_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

Material Ore Drop module:

[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 a gem 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

Material Color module:

[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 to true.

example: "particlesColor": "c5dbed"

"materialColor": ""

Used to tint textures if no actual texture is provided through a Resource Pack.

example: "materialColor": "b5a642"

Material Compat module:

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;

Create [Crushing]:

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

Create [Splashing]:

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

Thermal [Pulvering]:

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

Thermal [Induction Smelting]:

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

List of currently available Mod Compat:

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.

List of currently available Processed Types:

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