pack: v0.31.2 — proper JEI hide via c:hidden_from_recipe_viewers tag #59

Merged
Matt merged 1 commits from fix/v0.31.2-hidden-from-recipe-viewers-tag into main 2026-06-01 19:48:37 +00:00
Owner

The right solution that I should have found first. Standard NeoForge + JEI tag, no mod or KubeJS hack needed.

Source-confirmed:

  • JEI defines Tags.HIDDEN_FROM_RECIPE_VIEWERS = c:hidden_from_recipe_viewers
  • IngredientVisibility.isIngredientVisible() consults this tag on every visibility check
  • NeoForge defines the same tag
  • REI and EMI follow the convention

Datapack file at data/c/tags/item/hidden_from_recipe_viewers.json adds both items. One file, zero mods.

The right solution that I should have found first. Standard NeoForge + JEI tag, no mod or KubeJS hack needed. Source-confirmed: - JEI defines `Tags.HIDDEN_FROM_RECIPE_VIEWERS = c:hidden_from_recipe_viewers` - `IngredientVisibility.isIngredientVisible()` consults this tag on every visibility check - NeoForge defines the same tag - REI and EMI follow the convention Datapack file at `data/c/tags/item/hidden_from_recipe_viewers.json` adds both items. One file, zero mods.
Matt added 1 commit 2026-06-01 19:48:37 +00:00
Stop hacking around the problem -- use the standard cross-recipe-
viewer hide convention that both NeoForge and JEI define.

Source-level confirmation:

  mezz/JustEnoughItems @ 1.21.1
    CommonApi/.../api/constants/Tags.java
      HIDDEN_FROM_RECIPE_VIEWERS = c:hidden_from_recipe_viewers

    Library/.../ingredients/IngredientVisibility.java
      isIngredientVisible() calls
      ingredientHelper.isHiddenFromRecipeViewersByTags(typedIngredient)
      -> any item carrying this tag is hidden from JEI.

  neoforged/NeoForge @ 1.21.x
    common/Tags.java
      Tags.Items.HIDDEN_FROM_RECIPE_VIEWERS = c:hidden_from_recipe_viewers
      -> same tag, NeoForge agrees with JEI.

  EMI / REI also respect this tag (common convention).

So the proper modpack-shippable fix is a single datapack file:

  pack/overrides/world/datapacks/bns-fuel/data/c/tags/item/
    hidden_from_recipe_viewers.json
  {
    "replace": false,
    "values": [
      "alexsmobs:shattered_dimensional_carver",
      "alexsmobs:transmutation_table"
    ]
  }

No mod, no KubeJS, no CraftTweaker, no Item Obliterator JEI integration
(which doesn't exist for 1.21.1 NeoForge anyway). Just the tag the
recipe-viewer ecosystem agreed on years ago.

Item Obliterator + Necronomicon stay in the pack for what they actually
deliver on 1.21.1: inventory-pickup block + villager-trade removal +
right-click cancellation. The Capsid recipe override stays too as the
creation block.

The full disable stack now:
  - Tag (this commit)         -> Hidden from JEI / REI / EMI
  - Datapack capsid recipe    -> Can't be created in-world
  - Item Obliterator          -> Can't be picked up / right-clicked
                                 if obtained via /give or creative

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Matt merged commit 678e63497c into main 2026-06-01 19:48:37 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: minecraft/brass-and-sigil#59