โก AutoEMC
Automatic EMC generation for ProjectE โข Forge 1.16.5
๐ง AutoEMC scans your modpack and assigns EMC to items that ProjectE does not already know.
It calculates values from recipes first, uses fallback values only when needed, and writes the results into ProjectE's custom EMC file.




โจ What AutoEMC Does
AutoEMC is made for large Forge 1.16.5 modpacks with lots of modded materials, machines, tools, armor, upgrades, ores, and endgame items.
Instead of giving every missing item a random value immediately, AutoEMC follows a recipe-first approach:
๐ฆ Existing ProjectE EMC
โ
๐จ Calculate EMC from loaded recipes
โ
๐ฉ Seed only true raw/source materials
โ
๐ช Recalculate recipe chains
โ
๐ง Assign fallback EMC only to unresolved items
โ
๐ต Improve downstream fallback recipe outputs
โ
โ
Write AutoEMC values to ProjectE
Example recipe chain
Raw Gem
โ
Gem Block
โ
Machine Part
โ
Advanced Machine Part
โ
Armor / Tool / Upgrade
AutoEMC repeats recipe solving because a later item may depend on an earlier item that only received EMC during the previous pass.
๐ก๏ธ Safe by Default
AutoEMC is designed to avoid destroying normal ProjectE mappings.
| Type of EMC value |
What AutoEMC does |
| ๐ข Existing ProjectE value |
Keeps it protected |
| ๐ข Manually added custom EMC |
Keeps it protected |
| ๐ต AutoEMC-generated value |
May update it during a later rescan |
| ๐ก Missing EMC value |
Attempts recipe calculation, then fallback if needed |
Important: Keep generated_entries.json. It tells AutoEMC which old entries belong to AutoEMC and can safely be recalculated.
๐งฉ Supported Recipe Types
AutoEMC reads standard loaded Forge/Minecraft recipe types, including:
- ๐ ๏ธ Crafting Table recipes
- ๐งบ Shapeless crafting recipes
- ๐ฅ Smelting recipes
- ๐ฅ Blasting recipes
- ๐ Smoking recipes
- ๐ฅ Campfire cooking recipes
- โ๏ธ Stonecutting recipes
- โ๏ธ Smithing Table recipes
- ๐งฉ Compatible mod recipes that expose normal Forge
IRecipe data
โ๏ธ Smithing Table Support
For a standard Smithing Table upgrade, AutoEMC reads both required inputs:
Base armor/tool
+ Upgrade material
= Upgraded armor/tool
Example:
Netherite Chestplate
+ Upgraded Netherite Ingot
= Upgraded Netherite Chestplate
๐ก Some mods use unusual or custom Smithing Table behavior. Check autoemc-debug.log when an upgraded item does not have the expected EMC.
๐งฎ How EMC Is Calculated
Normal crafting recipe
8 Chroma Shards = 1 Chroma Block
When one Chroma Shard is worth 64 EMC:
8 ร 64 EMC = 512 EMC
The Chroma Block should receive 512 EMC.
Smithing recipe
Base Item EMC
+ Addition Material EMC
= Upgraded Item EMC
Deep recipe chains
Raw Material
โ Component
โ Machine
โ Upgrade
โ Armor
โ Weapon
AutoEMC performs multiple recipe passes so earlier components can feed into later recipes.
๐ฑ Source Material Seeding
Some items are not crafted. They are source materials.
Examples include:
- โ๏ธ Ores
- ๐ Raw gems
- ๐งช Dusts
- โจ Crystals
- ๐งฉ Shards
- ๐ Boss drops
- ๐ฉ Modded ingots
- ๐ฆ Special components
AutoEMC gives these source items fallback EMC once, then uses that value to calculate crafted items downstream.
Raw Gem gets fallback EMC once
โ
Gem Block gets recipe EMC
โ
Machine Part gets recipe EMC
โ
Armor gets recipe EMC
๐ซ A crafted machine part should not normally be seeded. It should get EMC from its recipe whenever possible.
๐งฏ Final Fallback EMC
Some items cannot be calculated from readable recipes.
This can happen when:
- โ The item has no recipe
- โ The recipe is hidden or malformed
- โ A required ingredient has no EMC
- โ A mod uses a custom machine recipe
- โ The recipe does not expose ingredients through Forge
- โ The item is loot-only, quest-only, or reward-only
- โ The item depends on special NBT, fluids, energy, or multiblock processing
AutoEMC gives those items a final fallback EMC value so they are not left blank.
After fallback values are created, AutoEMC safely checks recipe chains again:
Fallback Machine Part
โ
Advanced Machine Part
โ
Armor
โ
Weapon
This helps downstream items improve from the value of their actual components.
๐ Endgame EMC Tiers
AutoEMC supports material tiers for powerful late-game content.
| Tier |
Typical materials |
Purpose |
| ๐ฉ Strong |
Allthemodium, Wyvern |
Prevents strong materials from receiving tiny normal values |
| ๐ฆ Very Strong |
Vibranium, Draconium, Awakened Draconium |
Protects high-tier modded progression |
| ๐ฅ Overpowered |
Unobtainium, Chaos, Infinity, Creative |
Protects extreme endgame items |
Priority order:
Overpowered
โ
Very Strong
โ
Strong
โ
Normal fallback
โ ๏ธ Powerful materials can create very large EMC values because their recipe cost can travel through long machine and upgrade chains. This is expected.
๐ Recipe Loop Protection
Some modpacks have reversible conversion recipes:
Item A โ Item B
Item B โ Item A
Without protection, those loops could increase EMC forever.
AutoEMC protects against this by:
- โ
Only allowing generated values to increase when appropriate
- โ
Using snapshot-based recipe passes
- โ
Stopping when a complete pass makes no improvements
- โ
Respecting the configured maximum recipe-pass limit
- โ
Blocking cyclic fallback chains from feeding each other forever
๐จ Colored In-Game Progress Messages
AutoEMC shows clear phase-based chat messages while it works.
[AutoEMC] START โถ Starting AutoEMC scan...
[AutoEMC] 1/6 CHECK ยป Checking existing ProjectE EMC
[AutoEMC] 2/6 RECIPES ยป Reading loaded recipes
[AutoEMC] 3/6 SOURCES ยป Finding source materials
[AutoEMC] 4/6 CHAIN ยป Solving recipes using source materials
[AutoEMC] 5/6 FALLBACK ยป Assigning final fallback EMC
[AutoEMC] 6/6 UPGRADE ยป Improving fallback recipe outputs
[AutoEMC] DONE โ Scan completed
| Color |
Meaning |
| ๐จ Gold |
Starting / recipe loading |
| ๐ฆ Aqua |
Existing ProjectE EMC check |
| ๐ฉ Green |
Source materials / completed scan |
| ๐ช Light Purple |
Recipe-chain solving |
| ๐จ Yellow |
Fallback values / warnings |
| ๐ต Blue |
Post-fallback recipe upgrades |
| ๐ฅ Red |
Errors |
| โช Gray |
Skipped or low-priority information |
๐ Dedicated AutoEMC Debug Log
Minecraft's latest.log can be extremely crowded. AutoEMC writes its own clean debug log.
config/autoemc/autoemc-debug.log
The previous AutoEMC session is saved here:
config/autoemc/autoemc-debug.previous.log
The dedicated log contains only AutoEMC information:
- ๐ Scan start reason
- ๐ Scan progress
- ๐งพ Recipe pass results
- ๐ฑ Source material seeding
- ๐งฏ Fallback assignment
- ๐ Post-fallback recipe upgrades
- โ ๏ธ Warnings
- โ Errors with full stack traces
- โ๏ธ Smithing Table recipe details
- ๐ฐ Smithing Table calculated values
Smithing debug example
[SMITHING-RECIPE]
output=examplemod:upgraded_chestplate
inputs=[minecraft:netherite_chestplate] + [examplemod:upgrade_ingot]
[SMITHING-SOLVED]
stage=recipe solve
output=examplemod:upgraded_chestplate
emc=180288
๐ค When reporting an AutoEMC problem, upload config/autoemc/autoemc-debug.log instead of the full Minecraft latest.log.
๐ Important Files
| File |
What it does |
config/ProjectE/custom_emc.json |
ProjectE custom EMC mappings |
config/autoemc/generated_entries.json |
Tracks entries created by AutoEMC |
config/autoemc/recipe_solve_state.json |
Stores the completed scan state |
config/autoemc/known_items.json |
Stores known item registry data |
config/autoemc/autoemc-debug.log |
Clean AutoEMC-only debug log |
config/autoemc/autoemc-debug.previous.log |
Previous AutoEMC debug session |
๐ Installation
1. Install required mods
Your modpack needs:
Minecraft Forge 1.16.5
ProjectE
AutoEMC
Place the compiled AutoEMC .jar in your instance's mods folder.
CurseForge\minecraft\Instances\Your Modpack\mods\
2. Start Minecraft
Launch the modpack normally.
AutoEMC scans once the server/world is available. Watch the colored chat messages or open:
config/autoemc/autoemc-debug.log
Wait until you see:
[AutoEMC] DONE โ
โณ Do not close Minecraft during the first large scan.
3. Restart Minecraft
After values are written, restart Minecraft.
Close Minecraft
โ
Start Minecraft again
โ
Check EMC in JEI or ProjectE
A restart is preferred because ProjectE loads EMC mappings during startup.
๐ When AutoEMC Rescans
When nothing relevant changed, AutoEMC skips the long scan:
[AutoEMC] SKIP โ item registry and AutoEMC settings are unchanged; prior scan is complete.
That is normal.
AutoEMC rescans when important changes happen:
- โ You add a mod
- โ You remove a mod
- โ๏ธ You change AutoEMC settings
- ๐ You update the solver version
- ๐งฉ Registered items change
- ๐ Loaded recipes change
- ๐๏ธ You delete the saved scan state
Removing a mod can change many recipe paths:
Removed Mod Ingredient
โ
Changed Component Recipe
โ
Changed Machine Recipe
โ
Changed Armor / Tool Recipe
A full rescan prevents stale EMC values from remaining after the recipe graph changes.
๐ง How to Force a New Scan
Delete only this file:
config/autoemc/recipe_solve_state.json
Then restart Minecraft.
โ
This is the safest way to force another calculation pass.
โ ๏ธ How to Completely Reset AutoEMC
Use this only when you want AutoEMC to rebuild all generated values from scratch.
Step 1 โ Back up your files
Back up:
config/ProjectE/custom_emc.json
config/autoemc/generated_entries.json
Step 2 โ Remove AutoEMC state files
config/ProjectE/custom_emc.json
config/autoemc/generated_entries.json
config/autoemc/recipe_solve_state.json
config/autoemc/known_items.json
Step 3 โ Launch Minecraft
Start the game and wait for the full scan to finish.
๐จ Warning: Do not delete custom_emc.json without a backup if it contains manual EMC values you want to preserve.
โ Troubleshooting
<details>
<summary>Why is AutoEMC scanning again?</summary>
AutoEMC detected a registry, recipe, mod, setting, or version change.
Check the first lines of:
config/autoemc/autoemc-debug.log
They explain why the scan started.
</details>
<details>
<summary>Why does recipe progress restart on every pass?</summary>
The progress counter tracks recipes in the current pass, not missing items across the whole modpack.
Pass 1: Raw Gem โ Gem Block
Pass 2: Gem Block โ Machine Part
Pass 3: Machine Part โ Armor
Each pass needs to review the recipe list again because more ingredients become usable over time.
</details>
<details>
<summary>Why did an item receive fallback EMC?</summary>
The item could not be calculated from a supported readable recipe.
Common causes:
- No recipe
- Hidden or broken recipe
- Custom machine recipe
- Unknown ingredient EMC
- Recipe data unavailable through Forge
- Loot-only or quest-only item
Check the dedicated debug log.
</details>
<details>
<summary>Why did my upgraded armor or tool not get the expected value?</summary>
Check for these lines in autoemc-debug.log:
[SMITHING-RECIPE]
[SMITHING-SOLVED]
[SMITHING-FALLBACK]
A normal Smithing Table upgrade should follow:
Base Item EMC + Addition Material EMC = Upgraded Item EMC
Custom modded Smithing recipes may need manual verification.
</details>
<details>
<summary>Why is an EMC value extremely high?</summary>
High-tier materials and long recipe chains can produce very large values.
This is common for:
- Draconic Evolution items
- Allthemodium / Vibranium / Unobtainium items
- Chaos / Infinity / Creative-tier items
- Large machine chains
- Late-game storage and upgrade components
</details>
<details>
<summary>Why did AutoEMC not change an item?</summary>
AutoEMC protects normal ProjectE values and manual custom EMC values.
It normally updates only entries it previously created and recorded in:
config/autoemc/generated_entries.json
</details>
โ ๏ธ Known Limitations
AutoEMC cannot always calculate every modded item perfectly.
Examples:
- Custom machine recipes that do not use Forge
IRecipe
- Dynamic runtime recipes
- Hidden recipes with unreadable ingredients
- Malformed recipe data
- Loot-table-only items
- Quest reward items
- NBT-dependent crafting costs
- Fluid, energy, multiblock, or custom processing costs
- Non-standard Smithing Table recipes
Those items can receive fallback EMC and may need manual balancing in a highly customized modpack.
๐งช Recommended Modpack Author Workflow
1. Install ProjectE + AutoEMC
โ
2. Back up custom_emc.json
โ
3. Launch the modpack
โ
4. Wait for AutoEMC DONE โ
โ
5. Restart Minecraft
โ
6. Test key progression items
โ
7. Check autoemc-debug.log for warnings
โ
8. Add manual EMC only where special balancing is needed
โ
9. Keep generated_entries.json for future automatic updates
Test at least:
- โ๏ธ Ores and raw materials
- ๐งฑ Ingots and blocks
- โ๏ธ Components and machines
- ๐ก๏ธ Armor and tools
- โ๏ธ Smithing upgrades
- ๐ Endgame items
- ๐ High-tier materials
๐ Reporting a Bug
Include:
Minecraft version:
Forge version:
ProjectE version:
AutoEMC version:
Wrong item ID:
Expected EMC behavior:
Actual EMC value:
Attached file:
config/autoemc/autoemc-debug.log
For a Smithing problem, also include:
Base item:
Upgrade material:
Upgraded output:
JEI recipe screenshot or exact recipe:
### โก AutoEMC โ Recipe-first EMC generation for large ProjectE modpacks