
TL;DR — I added ProjectE to a stock Tekkit SMP v1.0.5 install, noticed most mod items had no EMC and a few had absurd values, so I spent a weekend digging in. Result: a public repo with 152 seed EMC values, 4 exploit fixes, and the Python scripts I wrote to audit everything. Drop-in for anyone running the same pack.
Repo: https://github.com/ilkerdevops/tekkit-smp-projecte-emc Modpack: https://www.technicpack.net/modpack/tekkit-smp (v1.0.5)
The problem
Tekkit SMP v1.0.5 (MC 1.12.2, Forge 14.23.5.2860) ships with ProjectE (Technic fork, PE1.4.8-14). On first boot ProjectE's auto-mapper walks every crafting recipe, every smelting recipe, every OreDict entry, and derives EMC for everything it can reach through those. In theory this gives you the classic "Wood=32 → 4×Plank=8" conservation automatically, all the way up the tech tree.
In practice, after a clean boot I got 2756 items with EMC out of ~7000 registered items. The rest came from mods that don't use vanilla IRecipe:
- Thaumcraft (Infusion Altar, Crucible, Arcane Workbench)
- Thaumic Augmentation / Wonders / Tinkerer
- Galacticraft Core + Planets (NASA Workbench)
- Industrial Foregoing (machine recipes)
- Mystcraft / MoreMystcraft (book binder)
- MFFS, Exchangers, ComputerCraft, Computronics
- MoCreatures, MagicBees, ForbiddenMagicRe
The mapper can't see their recipes, so every item from those mods gets EMC = null (or sometimes an OreDict-inherited value that makes no sense).
On top of that, logEMCExploits=true produced 43 warnings, including some that are economically devastating.
What I did
1. Inventory
Wrote a Python script that reads every mod jar, extracts blockstates/*.json (blocks) and models/item/*.json (items), then cross-references with lang/en_us.{lang,json} for registry names the asset files miss.
Output: 1878 blocks + 3377 items from blockstates, 2892 blocks + 5048 items from lang (lang-based is more complete). Committed as analysis/blocks_by_mod.md, registry_full.json.
2. Coverage measurement
Enabled pregenerate=true and dumpEverythingToFile=true in mapping.cfg, booted the server once, got a 100 KB pregenerated_emc.json with every derived EMC and a 2.4 GB mappingdump.json with the full conversion graph. Compared the dump to the registry inventory, got a per-mod "missing" count. Published as analysis/real_coverage_v2.md.
Top gap mods at that point: thaumcraft (217 missing blocks), quark (170 — mostly decorative variants, low priority), galacticraftcore (61), cathedral (84 — decorative), balkonsexpansion (253 items, 0% coverage).
3. Seeds
For each major unmapped mod, I picked the base resources — the nodes at the root of the recipe tree — and assigned EMC values anchored to vanilla reference units (Iron Ingot = 256, Diamond = 8192, Gold = 2048). Examples:
"thaumcraft:amber|0": 8,
"thaumcraft:salis_mundus|0": 64,
"thaumcraft:primordial_pearl|0": 8192,
"galacticraftcore:meteoric_iron_raw|0": 1024,
"galacticraftplanets:item_basic_mars|3": 4096, // desh ingot
"industrialforegoing:plastic|0": 16,
"mystcraft:agebook|0": 4096,
"mocreatures:ancientsilveringot|0": 512
All 152 seed values live in config/ProjectE/customConversions/tekkitsmp_seeds.json. Once seeded, the ProjectE engine re-runs and derives downstream items automatically — second boot produced 3103 EMC entries (+347 from the seeds).
4. Exploit audit
Parsed the EMC Exploit warnings from the server log with a regex. Most (39 of 43) are 9 × nugget → 1 × ingot rounding losses — cost 252, value 256, profit 4 EMC per craft. Not exploitable at any meaningful scale, left alone.
Four are actual exploits:
| Item | Recipe cost | Current EMC | Profit | Fix |
|---|---|---|---|---|
minecraft:minecart |
800 (5× bronze) | 1280 (5× iron) | 480 | pin to 800 |
| ProjectRed ruby cevher | 1024 | 2048 | 1024 | pin to 2048 |
| ProjectRed sapphire cevher | 1024 | 2048 | 1024 | pin to 2048 |
| ProjectRed peridot cevher | 1024 | 2048 | 1024 | pin to 2048 |
The ProjectRed ones are the juiciest — a 1024 EMC resource item converts 1:1 to a 2048 EMC gemstone. An EMC condenser could double-print gems in a loop. All four are pinned in the repo.
What's in the repo
config/ProjectE/customConversions/tekkitsmp_seeds.json— the main output, 152 seed EMC valuesconfig/ProjectE/custom_emc.json— includes the minecart fixanalysis/— Python scripts (extract_blocks.py,extract_registry_from_lang.py,real_coverage*.py,parse_exploits.py) plus markdown reports and boot logs- Full Tekkit SMP v1.0.5 server config snapshot (no mod jars — license + size)
README.mdwith install steps and the "how to add your own seed" recipe
How to use it
If you run Tekkit SMP v1.0.5:
- Copy
config/ProjectE/customConversions/tekkitsmp_seeds.jsonandconfig/ProjectE/custom_emc.jsoninto your server. - Delete
pregenerated_emc.json(if it exists) to force a re-map. - Set
B:pregenerate=trueinmapping.cfg, boot once, stop. - Set
B:pregenerate=false.
First boot will take ~30 seconds longer while the mapper re-runs. ProjectE auto-appends B:tekkitsmp_seeds=true to mapping.cfg on first load, so the new conversion file gets picked up without you editing anything.
Known gaps
- Thaumcraft internal recipes (aspect-heavy items, infused tools) are only partially covered.
tc_integrationis installed and might extend this — I haven't fully explored its config yet. - Decorative variant explosion (Quark, Chisel, Cathedral, ChiselsandBits combined produce ~1000 variant blocks). They're not in the seed list because their economic impact is near zero, but if anyone wants full coverage the actionable list is in
analysis/actionable_missing.json. - Steve's Carts and Balkons Expansion — their custom assemblers are invisible to ProjectE. Left at EMC=0 as safe default.
Feedback welcome
If you run Tekkit SMP and spot a seed that's miscalibrated (too cheap, too expensive, or just plain wrong) open an issue on the repo — the seeds are quick to revise. Also curious if anyone on a different 1.12.2 modpack has success reusing the seed file; most of the items should resolve as long as the mods are present.
Scripts in analysis/ are general — they work against any 1.12.2 install with ProjectE, you just point them at the mods folder. If you want to audit your own pack the same way, extract_blocks.py + parse_exploits.py will give you 80% of what I found here.
Repo is CC0 / public domain for the config and scripts. Mod jars not included (copyright and 242 MB). Built against Technic's Tekkit SMP v1.0.5.
by mrvolkan
1 Comment
da ai sloppy