Epiphany
An Epiphany is a qualitative ability, activated in an Epiphany Slot earned by completing modules. Epiphanies can be grouped via the path field.
TIP
This page describes the Epiphany datapack format. For other datapack types, see: Module / Insight / Path.
File Location
data/<namespace>/epiphany/epiphany/<path>.json- The epiphany's registry ID =
<namespace>:<path>data/mymod/epiphany/epiphany/blazing_aura.json→mymod:blazing_auradata/mymod/epiphany/epiphany/fire/aura.json→mymod:fire/aura
The repeated epiphany in the path
Note the file path is data/<ns>/epiphany/epiphany/ — the first epiphany is the datapack type directory (one of the top-level four), and the second is the Epiphany data type directory itself. This is a mod structure convention, not a typo.
Full Example
{
"name": "Excalibur", // optional; falls back to lang translation key
"description": "Anti-fortress Noble Phantasm", // optional
"icon": "minecraft:textures/item/totem_of_undying.png", // optional
"item_icon": "minecraft:totem_of_undying", // optional
"path": "epiphany:war", // optional
"condition": { // optional
"type": "epiphany:attribute",
"attribute": "minecraft:generic.max_health",
"comparison": ">=",
"value": 30.0
},
"condition_description": "Max Health ≥ 30", // optional
"initial_state": "locked", // optional, defaults to "selectable"
"reward": [ // optional; object or array
{
"type": "epiphany:attribute",
"attribute": "minecraft:generic.max_health",
"amount": 10.0,
"operation": "add_value"
},
{
"type": "epiphany:item",
"item": "minecraft:totem_of_undying",
"count": 1
}
],
"reward_description": "+10 Max Health and a Totem of Undying", // optional
"weight": 100 // optional, defaults to 100
}The example includes both icon and item_icon to demonstrate the two configuration methods; in practice, either field may be used alone. When both are present, the system prefers a loadable icon texture and falls back to item_icon if that texture is missing.
Field Reference
name (optional)
- Type:
Component(string, styled object, or translation key) - Default: falls back to translation key
epiphany.<ns>.<path>.name
Text Components & i18n
All Component fields support plain strings, styled objects, and translation keys. When omitted, they fall back to convention-based translation keys. See Module · Text Components & i18n.
description (optional)
- Type:
Component - Default: falls back to translation key
epiphany.<ns>.<path>.description - Describes the epiphany's effect or background lore, displayed in the epiphany slot tooltip
icon (optional)
- Type:
ResourceLocation, pointing to a resource pack texture
item_icon (optional)
- Type: an item registry ID, such as
"minecraft:totem_of_undying" - Priority: valid
icon→ validitem_icon→textures/gui/epiphany/<path>.png→ defaultgoat_horn - Missing textures and unknown item IDs continue to the next fallback
- See Module · icon for the full rules
path (optional)
- Type:
ResourceLocation, pointing to a Path registry ID - Default: epiphany is assigned to the "default group"
- Reference format:
"<namespace>:<path_id>"(e.g.,"epiphany:war")
One-way reference
An epiphany unidirectionally references a Path via the path field. The Path itself does not reverse-list its subordinate epiphanies; this relationship is reverse-built by the system at UI render time. See Path.
condition (optional)
- Type: condition object (
ConditionCodec) - Default: no condition
- Only meaningful when
initial_state == "locked": auto-unlocks when the condition is met - For the full list of condition types and fields, see Condition
condition_description (optional)
- Type:
Component - Default: falls back to translation key
epiphany.<ns>.<path>.condition_description - When the epiphany is not yet unlocked, the UI shows this text to tell the player what's needed
initial_state (optional)
- Type: string enum,
"locked"or"selectable" - Default:
"selectable"
| Value | Meaning |
|---|---|
"selectable" | Selectable as long as a slot is available (the default; typically has no condition) |
"locked" | Hidden until condition is met / API or command unlocks it |
Difference from Module
Epiphanies do not have an "Insight Point cost to select" concept — activating an epiphany consumes an Epiphany Slot (earned automatically by completing modules).
reward (optional)
- Type: reward object or reward object array (
EpiphanyRewardCodec) - Default: no reward
- Rewards are applied in array order when the epiphany is activated
- The legacy single-object form remains supported;
[]means no reward - On reset, list rewards are removed in reverse order
- For the full list of reward types and fields, see Reward
InsightReward vs. EpiphanyReward
Epiphany's reward uses the EpiphanyReward Codec. However, most built-in reward implementation classes implement both the InsightReward and EpiphanyReward interfaces (sharing logic), so the JSON fields are identical.
reward_description (optional)
- Type:
Component - Default: falls back to translation key
epiphany.<ns>.<path>.reward_description - Reward description shown in the tooltip (hold Shift)
- The UI displays this text directly — it will not be auto-derived from the reward type
weight (optional)
- Type:
int - Default:
100 - Sort weight among epiphanies within the same path grouping
- Can be negative