Materials
EE does not come with any pre-configured materials. Therefore the creation of any materials will need to be done entirely by the modpack developer.
To create a new material:
Locate the
emendatusenigmatica\materialconfig 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 breakdown 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 set up 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 // example: "id": "iridium"Used for all registry naming conventions, note: this must be a unique identifier for each material.
"source": string // example: "source": "modded"Identifies whether the material added is
vanilla, ormodded. This field affects recipes, and other data generation.
"localizedName": string // example: "localizedName": "Iridium"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.
"processedTypes": [ string ] // example: "processedTypes": ["storage_block", "ingot", "ore", "gear"]A list object which contains a list of strings of supported types. A complete list of supported Processed Types can be found here.
"disableDefaultOre": boolean // example: "disableDefaultOre": falseThis field only affects
"source": "vanilla"materials, and if set totrue, it will disable the ore generation of these materials. This includes the standard Vanilla Ores and the large Ore Veins of Copper and Iron.
"properties": { object } This JSON object houses the Material Properties module.
"oreDrop": { object }This JSON object houses the Material Ore Drop module.
"tools": { object }This JSON object houses the Material Tools module.
"armor": { object }This JSON object houses the Material Armor module.
"colors": { object }This JSON object houses the Material Color module.
"gas": { object }This JSON object houses the Material Gas module.
"compat": { object }This JSON object houses the Material Compat module.
Material Properties module:
"materialType": string // example: "materialType": "metal"Identifies whether the material is
metal,gem, oralloybased.
"harvestLevel": integer // example: "harvestLevel": 3Determines the harvest level requirement of the appropriate tool. Only Vanilla tiers are accepted, and they are the following:
0: Wood/Gold1: Stone2: Iron3: Diamond4: Netherite
"hasParticles": boolean // example: "hasParticles": trueIf set to
true, the Ore block of this material will have particles.You can set your particles color in the Material Color module.
"hasOxidization": boolean // example: "hasOxidization": trueIf set to
true, the Storage Block of this material will undergo 4 stages of oxidization when exposed to air. The oxidization can be scrapped off with an axe, or waxed with a Honeycomb similar to Vanilla Copper Blocks.You can set your oxidization color in the Material Color module.

"isEmissive": boolean // example: "isEmissive": trueIf set to
true, the Ore block of this material will glow in the dark.

"isBurnable": boolean // example: "isBurnable": trueIf set to
true, all Processed Types of this material will have a burn time associated with them, marking them as a valid furnace fuel.
"burnTime": integer // example: "burnTime": 3600Determines the efficiency of the Material as a burnable fuel. The default should be
1600which is similar to Vanilla Coal, and can smelt 8 items.
"blockRecipeType": integer // example: "blockRecipeType": 4If the material has both
gemandstorage_blockas processed types, this field can be used to determine whether the block recipe is 9x or 4x gems per block.
"gemTexture": integer // example: "gemTexture": 8If the material has
gemas a processed type, and is a tint-based material, you can specify a texture to be used out of 10 available templates.
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": string // example: "drop": "minecraft:lapis_lazuli"If the material has no
gemas a processed type, but it is agemmaterial type, this field can be used to determine the dropped item.
"min": integer // example: "min": 4Determines the minimum number of drops when mining the ore.
"max": integer // example: "max": 9Determines the maximum number of drops when mining the ore.
"uniformCount": boolean // example: "uniformCount": trueForces the drop to use a Uniformed Count similar to Vanilla Redstone instead of a standard range like Vanilla Lapis Lazuli.
If left undefined it defaults to
false

Material Tools module:
[Required if the Material has sword, pickaxe, axe, shovel, hoe, or paxel as a Processed Type]
"attackDamage": float // example: "attackDamage": 4.0Determines the Base Attack Damage of all tools.
"level": integer // example: "level": 3Determines the Harvest Level of all tools. This mainly affects Pickaxes and Paxels against Stone-based blocks.
"enchantability": integer // example: "enchantability": 750Determines the Enchantability factor of all tools.
"efficiency": float // example: "efficiency": 3.0Determines the Base Efficiency of all tools.
"tools": { object }
// example:
// "sword": { "damage": 3.2, "speed": -2.4, "durability": 512 }
// "pickaxe": { "damage": 1.3, "speed": -3.5, "durability": 1024 }
"damage": float- Determines the Damage Modifier of the tool.Formula: Base Damage + Damage Modifier + 1 (unarmed damage)
"speed": float- Determines the Speed Modifier of the tool.Formula: Base Efficiency + Speed Modifier
"durability": integer- Determines the Durability of the tool.
Material Armor module:
[Required if the Material has helmet, chestplate, leggings, boots, or shield as a Processed Type]
"setArmor": boolean // example: "setArmor": trueDetermines whether wearing a full set of armor should provide the wearer with a set bonus.
"effects": { object }
// example:
// { "effect": "minecraft:night_vision", "level": 1, "showParticles": false, "showIcon": true }This JSON object houses a list of effects which activates once a full set is worn.
The list of effects can be a mix of both Vanilla and Modded effects.
"effect": string- Determines the effect of the set bonus.
"level": integer- Determines the level of the effect.
"showParticles": boolean- Determines whether the effect spawns particles around the player when the set bonus is active.
"showIcon": boolean- Determines whether the effect icon is visible in the HUD when the set bonus in active.
"setName": string // example: "setName": "Ember Bulwark"Determines the name of the set.
"setDesc": string // example: "setDesc": "Forged by the flames of the nether to protect its wearer from external heat sources"Provides the set a bit of a flavor text, describing the set bonus.

"toughness": float // example: "toughness": 3.0Determines the Base Armor Toughness value of all armor pieces.
"enchantability": integer // example: "enchantability": 1250Determines the Enchantability factor of all armor pieces.
"knockback": float // example: "knockback": 0.3Determines the Knockback Resistance value of all armor pieces.
"ARMOR": { object }
// example:
// "helmet": { "protection": 4, "durability": 330 }
// "shield": { "durability": 675 }
"protection": integer- Determines the Protection of the armor piece.
"durability": integer- Determines the Durability of the armor piece.
Material Color module:
[All colors should be Hexadecimal values without #]
"fluidColor": string // example: "fluidColor": "0099ff"Used to tint the Fluid and Fluid Bucket of the Material.
"particlesColor": string // example: "particlesColor": "c5dbed"Used for the particles of the Material Ores if
hasParticlesis set totrue.
"oxidizationColor": string // example: "oxidizationColor": "c5dbed"Used for the oxidization effect on the Storage Blocks if
hasOxidizationis set totrue.
"materialColor": string // example: "materialColor": "b5a642"Used to tint textures if no actual texture is provided through a Resource Pack.
"gasColor": string // example: "gasColor": "dd3e29"Used to tint the
infuse_type,slurryandgasof the Material.NOTE: This is only applicable if you are also using the Mekanism Addon
Material Gas module:
[Required if the material has gas as a processed type]
"isBurnable": boolen // exmple: "isBurnable": trueDetermines whether this gas can be used as a Fuel.
"burnTime": integer // example: "burnTime": 2Determines the burn ticks of this Fuel.
"energyDensity": long // example: "energyDensity": 200Determines the amount of energy produced per tick of this Fuel.
"isRadioactive": boolean // example: "isRadioactive": trueDetermines whether this gas is Radioactive.
"radioactivity": double // example: "radioactivity": 0.9Determines the Radioactivity of this gas in Sv/h.
"isCoolant": boolean // example: "isCoolant": trueDetermines whether this gas can be used as a Coolant.
"coolantType": string // example: "coolantType": "cooled"Determines the type of the Coolant whether it is
cooledorheated.
"thermalEnthalpy": double // example: "thermalEnthalpy": 0.2Determines the Thermal Enthalpy of this Coolant. Thermal Enthalpy defines how much energy one mB of the chemical can store.
"conductivity": double // example: "conductivity": 0.4Determines the Conductivity of this Coolant. 'Conductivity' defines the proportion of a reactor's available heat that can be used at an instant to convert this coolant's cool variant to its heated variant.
Material Compat module:
This section is used to determine whether this specific material should/shouldn't have default modded compat recipes.
Some recipes require additional information (i.e. secondary output, chance of output ..etc.) which can be specified in a custom JSON file for each material. Information on how to set up these files can be found in the Compat section.
By default, all compat recipes generation is set to true; to disable the generation of a specific mod you should simply provide the id and the set the boolean value to false.
Note: If a mod you want EE to compat with is not included in the list below, you can either request it on Github, or create your own recipe through other means like KubeJS for example.
Below is a list of all supported mods, which will be updated whenever a new mod compat is added;
Mekanism:
// example
"compat": {
"mekanism": false
}Thermal Expansion:
// example
"compat": {
"thermal": false
}Create:
// example
"compat": {
"create": false
}Ars Nouveau:
// example
"compat": {
"ars_nouveau": false
}Occultism:
// example
"compat": {
"occultism": false
}List of currently available Processed Types:
General: storage_block ingot gem ore raw nugget dust plate gear rod fluid cluster sword pickaxe axe shovel hoe paxel helmet chestplate leggings boots shield
Mekanism: infuse_type gas slurry crystal shard clump dirty_dust
Create: crushed_ore
Last updated