EMC Essentials (ReFabricated)

A Fabric port of the EMC Essentials modpack experience. Adds enhanced EMC integration, auto-registration, EMC commands, and quality-of-life features built on Item Alchemy.

File Details

emcessentials-refabricated-1.0.5.jar

  • R
  • Jun 7, 2026
  • 115.69 KB
  • 1
  • 1.20.1
  • Fabric

File Name

emcessentials-reabricated-1.0.5.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:emc-essentials-refabricated-1567409:8209680"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Changelog

v1.0.5 — EMC Interface + EMC Link Restored

Added — EMC Interface (new block)

  • Ported from the Forge emc-interface mod by Ofek2608
  • No-GUI mechanical block — acts as a virtual infinite inventory backed by EMC knowledge
  • Items pushed in: converted to EMC via EMCUtil.ITEM.getEMC(), pushed to adjacent storage
  • Items pulled out: generated from EMC if enough EMC exists in adjacent storage via removeEMC()
  • 54-slot auto-rotating showcase: cycles through all known EMC items from Registries.ITEM, refreshed every 5 seconds
  • 16×48 animated texture directly from the original Forge mod
  • EMCInterfaceBlock + EMCInterfaceBlockEntity registered in ModBlockEntities.EMC_INTERFACE

Changed — EMC Link reverted to combined Importer/Exporter with GUI

  • Restored the 18-slot GUI version: slots 0–8 import buffer, slots 9–17 export request filters
  • onUse opens NamedScreenHandlerFactory — right-click opens chest GUI
  • Imports: scans adjacent inventories every 5 ticks for items with EMC value
  • Exports: generates items from EMC when request slots are populated
  • Full canInsert/canExtract/addEMC/removeEMC/getMaxEMC/getStoredEMC reflection API calls

Removed

  • Previous no-GUI EMC Link rewrite (replaced by separate EMC Interface block)

v1.0.4 — Item Cleanup & Projex Port

Changed

  • All item and block textures regenerated via AI-generated assets
  • EMC Bridge Terminal now uses a green-tinted Importer texture on all 6 faces (matching Item Alchemy's emc_importer block style)
  • README and CHANGELOG now reference "EMC Essentials Forge Mod" instead of "modpack"
  • Version bumped from 1.0.2 to 1.0.3
  • Output jar: emcessentials-reabricated-1.0.3.jar

v1.0.2 — JEI Fix

Fixed

  • Items not appearing in JEI — created a custom creative tab itemGroup.emcessentials.general via FabricItemGroup.builder() and assigned all items and blocks to it. JEI only shows items that belong to at least one creative tab. Now all 4 items and 10 blocks appear in both the creative inventory and JEI.

Changed

  • Version bumped from 1.0.1 to 1.0.2
  • Output jar: emcessentials-reabricated-1.0.2.jar

v1.0.1 — Delta HUD, Power Flowers, Bridge Terminal

Added

EMC HUD Delta Indicator

  • HUD now shows EMC: 1,234,567 (+100 | +100/s) in green for gains
  • Or EMC: 1,234,567 (-50 | -50/s) in red for losses
  • Delta calculated by comparing current sync value to previous (updates every 1s)
  • Per-second rate derived from delta (sync interval = ~1s)
  • Exposed via getDeltaDisplay(), getRateDisplay(), isDeltaPositive() in EMCEssentialsClient
  • Delta text renders right after main EMC value on the same line, same color-aware positioning

EMC Bridge Terminal

  • New block emcessentials:emc_bridge_terminal with green-tinted Importer/Exporter texture
  • 18-slot inventory (2×9) visible to Tom's Simple Storage, hoppers, and pipes
  • Auto-converts inserted items to EMC using EMCUtil.ITEM.getEMC()
  • Pushes converted EMC into adjacent Item Alchemy storage via EMCStorageUtil
  • Block entity ticks every 5 ticks to process input and replenish output
  • NBT-persistent inventory
  • Right-click opens a generic 2-row container GUI

Power Flower Block Entities (all 6 tiers)

  • Ticking block entities that generate EMC each tick:
    • MK1: 4 EMC/tick, MK2: 12, MK3: 48, MK4: 192, MK5: 768, MK6: 3072
  • 1B EMC internal buffer per flower
  • Auto-pushes stored EMC to adjacent EMC Batteries/Cables every 5 ticks via EMCStorageUtil.getNearEMCStorages() and addEMC()
  • NBT-persistent stored EMC and tier fields
  • Custom PowerFlowerBlock class extending Block + BlockEntityProvider

Miniature Sun Block Entity

  • Ticking block entity scans loaded chunks within 5-block radius every 10 ticks
  • Detects Item Alchemy's EMCCollectorTile via class name reflection
  • Applies 10× boost by injecting extra EMC via addEMC() on each tick
  • Also boosts PowerFlowerBlockEntity output by 10× directly
  • Uses chunk-based iteration (WorldChunk.getBlockEntities()) for reliable neighbor scanning

Block Entity Registration

  • ModBlockEntities class with registry for POWER_FLOWER, MINIATURE_SUN, EMC_BRIDGE_TERMINAL
  • Cached-type singleton pattern (setType()) to avoid circular initialization
  • FabricBlockEntityTypeBuilder with multi-block support (6 power flower variants share one type)

Block Assets (10 new)

  • Blockstate JSONs: emc_bridge_terminal, power_flower_mk2 through mk6
  • Block models: emc_bridge_terminal (cube_bottom_top), power_flower_mk2mk6
  • Item models: all 7 new blocks inherit block parent
  • Textures: emc_bridge_terminal_side.png, emc_bridge_terminal_top.png (16×16 green-tinted)
  • Loot tables: all new blocks drop themselves
  • Mining tag: emc_bridge_terminal added to mineable/pickaxe

Lang Entries

  • block.emcessentials.emc_bridge_terminal, container.emcessentials.emc_bridge_terminal
  • block.emcessentials.power_flower_mk2 through power_flower_mk6

Changed

  • Version bumped from 1.0.0 to 1.0.1 in gradle.properties
  • Output jar: emcessentials-reabricated-1.0.1.jar
  • README.md rewritten with full v1.0.1 feature list including HUD delta section

Fixed

  • HUD compile errors in 1.20.1 Yarn mappings:
    • Replaced client.getDebugHud().shouldShowDebugHud() with client.options.debugEnabled
    • Removed access to private reducedDebugInfo field in GameOptions
  • Command registration — changed method reference to lambda to match Fabric API's 3-parameter CommandRegistrationCallback signature
  • Block entity type registration — switched to cached-type pattern (setType()) to resolve class-loading order issues
  • Chunk scanning — replaced non-existent World.getBlockEntities(Box) with chunk iteration via WorldChunk.getBlockEntities() using reflection
  • Build chain — upgraded to Fabric Loom 1.15.2, Gradle 9.2.1, JDK 21 to match Item Alchemy 1.3.1's build version

v1.0.0 — Initial Release

Added — Mod Framework

  • Fabric 1.20.1 mod project with Fabric Loom 1.15.2, Gradle 9.2.1, JDK 21
  • fabric.mod.json with id emcessentials, depends on itemalchemy >=1.3.1
  • emcessentials.accesswidener for future access widening

Added — Items

  • Alchemical Matter — blue gem, uncommon rarity, mid-tier crafting component
  • Omnium Matter — purple gem, rare rarity, high-tier component
  • Alchemical Catalyst — orange orb, common rarity, base material
  • Compressed Philosopher's Stone — green orb, epic rarity, single-use
  • All items registered via ModItems using vanilla Fabric Registry.register()
  • Item models: item/generated with 16×16 PNG textures
  • English lang translations for all items

Added — Blocks (initial)

  • EMC Stabilizer — obsidian-tier blast-resistant decorative block
  • Alchemical Ore — diamond-level ore, drops 3–7 XP, needs iron pick
  • Deepslate Alchemical Ore — deepslate variant of alchemical ore
  • Power Flower — single decorative block, iron-tier, luminance 7
  • Miniature Sun — glowstone-tier full-brightness block, luminance 15
  • All blocks registered via ModBlocks with associated BlockItem
  • Block models: cube_bottom_top (EMC Stabilizer, Power Flower), cube_all (ores, Miniature Sun)
  • Blockstates: single-variant JSONs for all 5 blocks
  • Loot tables: all blocks drop themselves on break (survives explosion)
  • Mining tags: added to mineable/pickaxe, ores and stabilizer to needs_iron_tool
  • Block textures: 16×16 PNGs for all block faces (generated via Python)

Added — EMC HUD Display

  • Client-side HUD overlay rendering player's EMC in top-left corner
  • Smart positioning: below Sodium Extra FPS (line 1) and coordinates (line 2)
  • Human-readable formatting: 1,234 / 1.2M / 3.5B / 7.8T
  • Server-to-client sync via custom Fabric network packet (emc_sync / emc_request)
  • Client requests EMC every 20 ticks (1 second)
  • Server reads player EMC from Item Alchemy's EMCUtil.PLAYER.getEMC() via reflection
  • EMCEssentialsClient client initializer registered in fabric.mod.json

Added — EMC Commands

  • /emce help — lists all commands
  • /emce get <item> — looks up EMC value via EMCUtil.ITEM.getEMC() reflection
  • /emce set <item> <value> — saves custom EMC override to config
  • /emce remove <item> — removes a custom override
  • /emce reload — reloads emcessentials.properties from disk
  • /emce list — lists all custom EMC entries
  • /emce stats — counts total items and custom entries
  • Registered via CommandRegistrationCallback.EVENT

Added — EMC Config

  • config/emcessentials.properties for custom EMC values
  • Default config with vanilla reference values (coal: 128, diamond: 8192, netherite: 49152, etc.)
  • Load/save with Properties file format
  • Auto-creates default config on first launch
  • Full CRUD: get/set/remove custom values in memory + persist to disk

Added — EMC Auto-Registration

  • Auto-applies custom EMC values from config at startup via EMCUtil.ITEM.setEMC() reflection
  • Graceful fallback: logs warning if Item Alchemy not installed
  • Validation: checks item IDs exist in registry before applying
  • Error-tolerant: skips invalid entries, reports counts

Added — Asset Pipeline

  • 28KB placeholder mod icon (128×128 green diamond gradient)
  • en_us.json with translations for all items, blocks, commands, and container names
  • Full directory structure: models/item, models/block, blockstates, textures/item, textures/block, data/minecraft/tags/blocks