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\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 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:

REQUIRED FIELD
"id": string // example: "id": "iridium"

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

REQUIRED FIELD
"source": string // example: "source": "modded"

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

REQUIRED FIELD
"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.

REQUIRED FIELD
"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": false

This field only affects "source": "vanilla" materials, and if set to true, 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:

REQUIRED FIELD
"materialType": string // example: "materialType": "metal"

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

"harvestLevel": integer // example: "harvestLevel": 3

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

"hasParticles": boolean // example: "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.

"hasOxidization": boolean // example: "hasOxidization": true

If 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": true

If set to true, the Ore block of this material will glow in the dark.

"isBurnable": boolean // example: "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.

"burnTime": integer // example: "burnTime": 3600

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.

"blockRecipeType": integer // example: "blockRecipeType": 4

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.

"gemTexture": integer // example: "gemTexture": 8

If the material has gem as 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 gem as a processed type, but it is a gem material type, this field can be used to determine the dropped item.

"min": integer // example: "min": 4

Determines the minimum number of drops when mining the ore.

"max": integer // example: "max": 9

Determines the maximum number of drops when mining the ore.

"uniformCount": boolean // example: "uniformCount": true

Forces 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.0

Determines the Base Attack Damage of all tools.

"level": integer // example: "level": 3

Determines the Harvest Level of all tools. This mainly affects Pickaxes and Paxels against Stone-based blocks.

"enchantability": integer // example: "enchantability": 750

Determines the Enchantability factor of all tools.

"efficiency": float // example: "efficiency": 3.0

Determines 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 }

a TOOL object should be created for each tool type.

Currently supported tools are: "sword", "pickaxe", "axe", "shovel", "hoe", and "paxel"

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

Determines 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.0

Determines the Base Armor Toughness value of all armor pieces.

"enchantability": integer // example: "enchantability": 1250

Determines the Enchantability factor of all armor pieces.

"knockback": float // example: "knockback": 0.3

Determines the Knockback Resistance value of all armor pieces.

"ARMOR": { object } 
// example: 
// "helmet": { "protection": 4, "durability": 330 }
// "shield": { "durability": 675 }

a ARMOR object should be created for each armor piece.

Currently supported armor pieces are: "helmet", "chestplate", "leggings", "boots", and "shield"

"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 hasParticles is set to true.

"oxidizationColor": string // example: "oxidizationColor": "c5dbed"

Used for the oxidization effect on the Storage Blocks if hasOxidization is set to true.

"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, slurry and gas of 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": true

Determines whether this gas can be used as a Fuel.

"burnTime": integer // example: "burnTime": 2

Determines the burn ticks of this Fuel.

"energyDensity": long // example: "energyDensity": 200

Determines the amount of energy produced per tick of this Fuel.

"isRadioactive": boolean // example: "isRadioactive": true

Determines whether this gas is Radioactive.

"radioactivity": double // example: "radioactivity": 0.9

Determines the Radioactivity of this gas in Sv/h.

"isCoolant": boolean // example: "isCoolant": true

Determines whether this gas can be used as a Coolant.

"coolantType": string // example: "coolantType": "cooled"

Determines the type of the Coolant whether it is cooled or heated.

"thermalEnthalpy": double // example: "thermalEnthalpy": 0.2

Determines the Thermal Enthalpy of this Coolant. Thermal Enthalpy defines how much energy one mB of the chemical can store.

"conductivity": double // example: "conductivity": 0.4

Determines 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:

ID: mekanism
Recipes: Ore 2x/3x/4x/5x, Enriching, and Infusion Conversion
// example
"compat": {
    "mekanism": false
}
  • Thermal Expansion:

ID: thermal
Recipes: Pulverizer, Induction Smelter, and Multiservo Press
// example
"compat": {
    "thermal": false
}
  • Create:

ID: create
Recipes: Crushing Wheel, and Washing
// example
"compat": {
    "create": false
}
  • Ars Nouveau:

ID: ars_nouveau
Recipes: Crushing Spell
// example
"compat": {
    "ars_nouveau": false
}
  • Occultism:

ID: occultism
Recipes: Crusher Spirits
// 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