Skip to content

EMI

Generated page, edit scripts/gen_schema_pages.py instead.

EMI client-side customization (index stacks, recipe/tab hiding, category tabs, aliases, info/world-interaction recipes, tag exclusions), pkl4mc dialect.

Place the file under config/pkl4mc/assets/emi/, EMI only reads the emi namespace. Reload in-game with F3+T (client resource reload).

Usage

amends "@pkl4mc/emi.pkl"

Example

// EMI customization - hide/add index stacks, hide recipe tabs, tab order/icons,
// search aliases, info recipes, tag exclusions.
// Must live under config/pkl4mc/assets/emi/ (EMI only reads the `emi` namespace).
// Reload in-game with F3+T.
amends "@pkl4mc/emi.pkl"

// Index = the item list on the right side of EMI.
index {
  // Remove these stacks from the index (still craftable, just not shown).
  hide {
    new { item = "minecraft:stone" }
    new { item = "minecraft:dirt" }
    new { fluid = "minecraft:flowing_lava" }
  }
  // Add stacks (back) to the index; `after` pins the position.
  add {
    new { item = "minecraft:granite"; after { item = "minecraft:diorite" } }
  }
  // hideRegex { "/item:gtceu:.*/" }  - hide by regex on the stack id
  // disable = true                   - wipe the whole default index, rebuild via `add`
}

// Hide recipes; hiding every recipe of a category removes its tab.
hideRecipes {
  new { category = "gtceu:macerator" } // whole recipe tab
  new { id = "/minecraft:.*_slab/" } // recipes by id regex
}

// Recipe tab appearance: sort order, icon, recipe sorting.
categories {
  ["minecraft:smelting"] {
    order = -1 // lower = further left, default 0
    icon { item = "minecraft:furnace" }
    sort = "output_then_input" // or "none", "input_then_output", "identifier"
  }
}

// Extra search terms for stacks (text = translation keys).
aliases {
  new {
    stacks {
      new { item = "minecraft:ender_pearl" }
      new { tag = "forge:ingots/copper" }
    }
    text { "alias.mymod.teleport" }
  }
}

// Custom EMI-only recipe entries.
recipes {
  // Info page shown as a recipe for the given stacks.
  new InfoRecipe {
    name = "pearl_info"
    stacks { new { item = "minecraft:ender_pearl" } }
    text { "info.mymod.pearl" }
  }
  // World interaction (like water + lava = obsidian).
  new WorldInteraction {
    name = "obsidian_from_lava"
    left { new { fluid = "minecraft:lava"; amount = 1000 } }
    right { new { fluid = "minecraft:water" } }
    output { new { item = "minecraft:obsidian" } }
  }
}

// Tags EMI should never collapse stacks under (e.g. in recipe slots).
tagExclusions {
  "forge:ores/coal"
}