Insight
An Insight is the smallest unit within a module — an incremental upgrade node. Insights are defined as standalone JSON files, referenced by Modules via their insights list, together forming the module's insight tree.
TIP
This page describes the Insight datapack format. For other datapack types, see: Module / Epiphany / Path.
File Location
data/<namespace>/epiphany/insight/<path>.json- The insight's registry ID =
<namespace>:<path>data/mymod/epiphany/insight/fireball.json→mymod:fireballdata/mymod/epiphany/insight/spell/fireball.json→mymod:spell/fireball
Reusing Insights
Technically, different modules can reference the same insight ID. However, this is not recommended — each insight should belong to exactly one module.
Full Example
{
"name": "Charisma", // optional; falls back to lang translation key
"description": "The ability to govern a nation", // optional
"icon": "minecraft:textures/item/golden_chestplate.png", // optional
"item_icon": "minecraft:golden_chestplate", // optional
"cost": 1, // optional, defaults to 1
"reward": [ // optional; object or array
{
"type": "epiphany:attribute",
"attribute": "minecraft:generic.max_health",
"amount": 6.0,
"operation": "add_value"
},
{
"type": "epiphany:insight_points",
"amount": 1
}
],
"reward_description": "+6 Max Health and +1 Insight Point", // 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
insight.<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
insight.<ns>.<path>.description - Briefly describes the insight's effect (e.g.,
"+6 Max Health")
icon (optional)
- Type:
ResourceLocation, pointing to a resource pack texture
item_icon (optional)
- Type: an item registry ID, such as
"minecraft:golden_chestplate" - Priority: valid
icon→ validitem_icon→textures/gui/insight/<path>.png→ defaultdiamond - Missing textures and unknown item IDs continue to the next fallback
- See Module · icon for the full rules
cost (optional)
- Type:
int - Default:
1 - The number of Insight Points consumed to unlock this insight
Distinct from moduleSelectCost
moduleSelectCost (config option) is the uniform cost for selecting a module and is independent from insight costs. Each insight's cost is configured individually.
reward (optional)
- Type: reward object or reward object array (
InsightRewardCodec) - Default: no reward
- Rewards are immediately applied in array order when the player unlocks this insight
- 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
reward_description (optional)
- Type:
Component - Default: falls back to translation key
insight.<ns>.<path>.reward_description - Displayed in the insight node's tooltip (hold Shift), intuitively telling the player the reward content
- The UI displays this text directly — it will not be auto-derived from the reward type
weight (optional)
- Type:
int - Default:
100 - Affects sort order when multiple insights are displayed flat; of limited practical significance
- Can be negative