Skip to content

Materials

Kal Chikhou edited this page Nov 20, 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": "string" - [* Required]

Used for all registry naming conventions, note: this must be a unique identifier for each material.

example: "id": "iridium"

"source": "string" - [* Required]

Identifies whether the material added is vanilla, or modded. This field affects recipes, and other data generation.

example: "source": "modded"

"localizedName": "string" - [* Required]

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": [ "string" ] - [* Required]

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": boolean

This field only affects "source": "vanilla" materials, and if set to true, it will disable the ore generation of these materials.

example: "disableDefaultOre": false

Material Properties module:

"materialType": "string" - [* Required]

Identifies whether the material is metal, gem, or alloy based.

example: "materialType": "metal"

"harvestLevel": integer

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": boolean

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": boolean

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": integer

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": integer

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 Type is set to gem, and has ore as a Processed Type]

"drop": "string"

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": integer

Determines the minimum number of drops when mining the ore.

example: "min": 4

"max": integer

Determines the maximum number of drops when mining the ore.

example: "max": 9

Material Color module:

[All colors should be Hexadecimal value without #]

"fluidColor": "string"

Used to tint the Fluid and Fluid Bucket of the Material.

example: "fluidColor": "0099ff"

"particlesColor": "string"

Used for the particles color of the Material Ores if hasParticles is set to true.

example: "particlesColor": "c5dbed"

"materialColor": "string"

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

DISCLAIMER: This feature is still in-development, and there is a chance for the hue to shift to something outside of the input's color range. Changing the color value a little couple shift it back into range.

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.

Create [Crushing]:

Crushing recipe is generated when the Material contains ore and crushed_ore processed types.

"firstOutputCount": integer

Determines the count of the item created for the 1st output.

example: "firstOutputCount": 2

"secondOutputCount": integer

Determines the count of the item created for the 2nd output.

example: "secondOutputCount": 4

"secondOutputChance": float

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": "string"

Determines the item created for the 2nd output.

example: "secondOutput": "minecraft:apple"

"secondOutputCount": integer

Determines the count of the item created for the 2nd output.

example: "secondOutputCount": 3

"secondOutputChance": float

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": integer

Determines the count of the item created for the 1st output.

example: "firstOutputCount": 2

"firstOutputChance": float

Determines the chance of the item created for the 1st output.

example: "firstOutputChance": 0.3

"secondOutput": "string"

Determines the item created for the 2nd output.

example: "secondOutput": "minecraft:ghast_tear"

"secondOutputCount": integer

Determines the count of the item created for the 2nd output.

example: "secondOutputCount": 6

"secondOutputChance": float

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": integer

Determines the count of the item created for the 1st output.

example: "firstOutputCount": 4

"firstOutputChance": float

Determines the chance of the item created for the 1st output.

example: "firstOutputChance": 0.27

"secondOutput": "string"

Determines the item created for the 2nd output.

example: "secondOutput": "minecraft:ender_pearl"

"secondOutputCount": integer

Determines the count of the item created for the 2nd output.

example: "secondOutputCount": 5

"secondOutputChance": float

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": "string"

Determines the item used for the 1st input for an Alloy.

example: "firstInput": "minecraft:gold_ingot"

"firstInputCount": integer

Determines the count of the item used for the 1st input for an Alloy.

example: "firstInputCount": 1

"secondInput": "string"

Determines the item used for the 2nd input for an Alloy.

example: "secondInput": "minecraft:iron_nugget"

"secondInputCount": integer

Determines the count of the item used for the 2nd input for an Alloy.

example: "secondInputCount": 5

"thirdInput": "string"

Determines the item used for the 3rd input for an Alloy.

example: "thirdInput": "emendatusenigmatica:iridium_ingot"

"thirdInputCount": integer

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:

storage_block ingot gem ore raw nugget dust plate gear rod fluid slurry crystal shard clump dirty_dust fragment gravel crushed_ore

Clone this wiki locally