Built-in Compatibility
Built-in Compatibility
Section titled “Built-in Compatibility”Relic provides Journey event integration and MoLang functions for task creation and progression tracking.
Journey Events
Section titled “Journey Events”Relic fires Journey events that can be used in task subtasks. These follow the same pattern as Cobblemon events.
RELIC_CATALYST_USED
Section titled “RELIC_CATALYST_USED”Fires when a player uses a relic catalyst on an item.
Query Paths:
q.relic.item // The item being transformed (e.g., "minecraft:diamond_pickaxe")q.relic.catalyst // The catalyst item usedExample:
{ "id": "use_catalyst", "name": "Use a Relic Catalyst", "event": "RELIC_CATALYST_USED", "filter": "1.0", "target": 1}Specific Item Filter:
{ "event": "RELIC_CATALYST_USED", "filter": "q.relic.item == 'minecraft:diamond_pickaxe'", "target": 1}RELIC_AWAKENED
Section titled “RELIC_AWAKENED”Fires when a relic is successfully created.
Query Paths:
q.relic.item // Base item typeq.relic.essence // Essence capacityExample:
{ "id": "awaken_relic", "name": "Awaken Your First Relic", "event": "RELIC_AWAKENED", "filter": "1.0", "target": 1}RELIC_RENOWN_GAINED
Section titled “RELIC_RENOWN_GAINED”Fires when a relic gains renown (experience).
Query Paths:
q.relic.renown // Amount of renown gained this eventq.relic.total_renown // Total renown on the relicq.relic.source // Source of renown ("block_break", "entity_kill", etc.)q.relic.level // Current relic levelExample - Track Total Renown:
{ "id": "gain_renown", "name": "Gain 1000 Renown", "event": "RELIC_RENOWN_GAINED", "filter": "1.0", "target": 1000}Filter by Source:
{ "event": "RELIC_RENOWN_GAINED", "filter": "q.relic.source == 'block_break'", "target": 500}RELIC_LEVEL_UP
Section titled “RELIC_LEVEL_UP”Fires when a relic levels up.
Query Paths:
q.relic.level // New levelq.relic.previous // Previous levelq.relic.sockets // Total sockets now unlockedExample:
{ "id": "reach_level_5", "name": "Reach Level 5", "event": "RELIC_LEVEL_UP", "filter": "q.relic.level >= 5.0", "target": 1}Specific Level:
{ "event": "RELIC_LEVEL_UP", "filter": "q.relic.level == 10.0", "target": 1}RELIC_SOCKET_UNLOCKED
Section titled “RELIC_SOCKET_UNLOCKED”Fires when a relic unlocks a new inscription socket.
Query Paths:
q.relic.sockets // Total sockets unlockedq.relic.level // Level at unlockExample:
{ "id": "unlock_socket", "name": "Unlock First Socket", "event": "RELIC_SOCKET_UNLOCKED", "filter": "q.relic.sockets == 1.0", "target": 1}RELIC_INSCRIPTION_INSTALLED
Section titled “RELIC_INSCRIPTION_INSTALLED”Fires when an inscription is installed into a relic.
Query Paths:
q.inscription.id // Inscription identifierq.relic.essence_used // Total essence used after installExample:
{ "id": "install_inscription", "name": "Install Any Inscription", "event": "RELIC_INSCRIPTION_INSTALLED", "filter": "1.0", "target": 1}Specific Inscription:
{ "event": "RELIC_INSCRIPTION_INSTALLED", "filter": "q.inscription.id == 'vein_miner'", "target": 1}RELIC_INSCRIPTION_REMOVED
Section titled “RELIC_INSCRIPTION_REMOVED”Fires when an inscription is removed from a relic.
Query Paths:
q.inscription.id // Inscription that was removedq.relic.essence_freed // Essence freed by removalExample:
{ "id": "remove_inscription", "name": "Remove an Inscription", "event": "RELIC_INSCRIPTION_REMOVED", "filter": "1.0", "target": 1}MoLang Query Functions
Section titled “MoLang Query Functions”Relic provides MoLang query functions for use in task filters and requirements.
Player Queries
Section titled “Player Queries”q.player.has_relic()
{ "start_requirement": "q.player.has_relic()", "filter": "q.player.has_relic()"}q.player.has_relic_type('item_type')
{ "filter": "q.player.has_relic_type('pickaxe')"}q.player.relic_count()
{ "start_requirement": "q.player.relic_count() >= 3.0"}q.player.has_inscription_unlocked('inscription_id')
{ "start_requirement": "q.player.has_inscription_unlocked('chain_lightning')"}q.player.total_relics_renown()
{ "start_requirement": "q.player.total_relics_renown() >= 100000.0"}Held Relic Queries
Section titled “Held Relic Queries”These query the relic currently held/equipped by the player:
q.held_relic.level
{ "filter": "q.held_relic.level >= 50.0"}q.held_relic.renown
{ "filter": "q.held_relic.renown >= 10000.0"}q.held_relic.essence_capacity
{ "filter": "q.held_relic.essence_capacity >= 20.0"}q.held_relic.essence_used
{ "filter": "q.held_relic.essence_used >= 15.0"}q.held_relic.socket_count
{ "filter": "q.held_relic.socket_count >= 3.0"}q.held_relic.has_inscription('inscription_id')
{ "filter": "q.held_relic.has_inscription('vein_miner')"}q.held_relic.inscription_count
{ "filter": "q.held_relic.inscription_count >= 4.0"}Reward Scripts
Section titled “Reward Scripts”Relic provides script functions for Journey rewards.
Script Reward Functions
Section titled “Script Reward Functions”Give Renown:
{ "type": "script", "data": { "scripts": [ "q.player.add_relic_renown(1000);" ] }}Set Relic Level:
{ "type": "script", "data": { "scripts": [ "q.player.set_held_relic_level(25);" ] }}Unlock Inscription:
{ "type": "script", "data": { "scripts": [ "q.player.unlock_inscription('chain_lightning');" ] }}Multiple Inscriptions:
{ "type": "script", "data": { "scripts": [ "q.player.unlock_inscription('vein_miner');", "q.player.unlock_inscription('auto_smelt');", "q.player.unlock_inscription('fortune_glyph');" ] }}Complete Tutorial Quest Example
Section titled “Complete Tutorial Quest Example”Here’s a proper Journey task that teaches players the Relic system:
File: config/journey/tasks/relic_tutorial.json
{ "name": "<gold>Forging Your First Relic", "description": [ "<gray>Learn the ancient art of relic crafting", "<yellow>and unlock legendary power!" ], "sequential": "sequential", "icon": { "item_id": "minecraft:echo_shard" }, "repeat_type": "NONE", "repeat_interval": 0, "rewards": [ { "type": "currency", "data": { "currency": "impactor:pokedollars", "amount": 500 } }, { "type": "command", "data": { "command": "tellraw {player} {\"text\":\"You've mastered the basics of Relic crafting!\",\"color\":\"gold\"}" } } ], "tasks": [ { "id": "earn_catalyst", "name": "<blue>Earn Your Catalyst", "description": "<gray>Mine 100 stone blocks to prove your dedication", "event": "BLOCK_BREAK", "filter": "q.block.id == 'minecraft:stone'", "target": 100, "rewards": [ { "type": "command", "data": { "command": "filament give {player} relic:common_catalyst 1" } }, { "type": "command", "data": { "command": "tellraw {player} {\"text\":\"You've earned a Relic Catalyst! Use it on a diamond tool.\",\"color\":\"aqua\"}" } } ] }, { "id": "awaken_relic", "name": "<blue>Awaken a Relic", "description": "<gray>Use your catalyst on a diamond pickaxe", "event": "RELIC_AWAKENED", "filter": "1.0", "target": 1, "rewards": [ { "type": "command", "data": { "command": "tellraw {player} {\"text\":\"Your relic awakens! Mine blocks to gain Renown.\",\"color\":\"green\"}" } } ] }, { "id": "gain_renown", "name": "<blue>Gain Renown", "description": "<gray>Mine blocks to gain 500 Renown", "event": "RELIC_RENOWN_GAINED", "filter": "1.0", "target": 500, "rewards": [ { "type": "command", "data": { "command": "tellraw {player} {\"text\":\"Your relic grows in power! Keep using it to level up.\",\"color\":\"yellow\"}" } } ] }, { "id": "level_up", "name": "<blue>Reach Level 5", "description": "<gray>Level your relic to 5 to unlock a socket", "event": "RELIC_LEVEL_UP", "filter": "q.relic.level >= 5.0", "target": 1, "rewards": [ { "type": "script", "data": { "scripts": [ "q.player.unlock_inscription('swift_mining');" ] } }, { "type": "command", "data": { "command": "tellraw {player} {\"text\":\"Level 5! Socket unlocked. You've learned Swift Mining.\",\"color\":\"light_purple\"}" } } ] }, { "id": "install_inscription", "name": "<blue>Install an Inscription", "description": "<gray>Open your Relic GUI (/relic) and install Swift Mining", "event": "RELIC_INSCRIPTION_INSTALLED", "filter": "1.0", "target": 1, "rewards": [ { "type": "script", "data": { "scripts": [ "q.player.add_relic_renown(1000);" ] } }, { "type": "currency", "data": { "currency": "impactor:pokedollars", "amount": 200 } }, { "type": "command", "data": { "command": "tellraw {player} {\"text\":\"Inscription installed! Your relic is now enhanced.\",\"color\":\"gold\"}" } } ] } ]}Step 1: Earn Catalyst
Section titled “Step 1: Earn Catalyst”- Event:
BLOCK_BREAK - Filter: Stone blocks only
- Target: 100 blocks
- Reward: Give Common Catalyst (Filament item)
Step 2: Awaken Relic
Section titled “Step 2: Awaken Relic”- Event:
RELIC_AWAKENED - Filter: Any relic
- Target: 1 awakening
- Teaches: Use catalyst on item
Step 3: Gain Renown
Section titled “Step 3: Gain Renown”- Event:
RELIC_RENOWN_GAINED - Filter: None (all sources count)
- Target: 500 renown points
- Note: Target is renown amount, not event count
Step 4: Level Up
Section titled “Step 4: Level Up”- Event:
RELIC_LEVEL_UP - Filter: Level >= 5
- Target: 1 level up event
- Reward: Unlock Swift Mining inscription
Step 5: Install Inscription
Section titled “Step 5: Install Inscription”- Event:
RELIC_INSCRIPTION_INSTALLED - Filter: Any inscription
- Target: 1 installation
- Reward: Bonus renown + currency
Integration Examples
Section titled “Integration Examples”Unlock Inscription via Quest Chain
Section titled “Unlock Inscription via Quest Chain”{ "name": "<gold>Path to Power", "sequential": "sequential", "tasks": [ { "id": "defeat_boss", "name": "Defeat the Boss", "event": "BATTLE_VICTORY", "filter": "q.battle.is_boss()", "target": 1, "rewards": [ { "type": "script", "data": { "scripts": [ "q.player.unlock_inscription('chain_lightning');" ] } } ] } ]}Relic Level Requirement
Section titled “Relic Level Requirement”{ "name": "<gold>Master's Challenge", "start_requirement": "q.player.has_relic() && q.held_relic.level >= 50.0", "tasks": [...]}Catalyst as Reward
Section titled “Catalyst as Reward”{ "rewards": [ { "type": "command", "data": { "command": "filament give {player} relic:common_catalyst 1" } } ]}Different Catalyst Tiers:
{ "type": "command", "data": { "command": "filament give {player} relic:rare_catalyst 1" }}{ "type": "command", "data": { "command": "filament give {player} relic:legendary_catalyst 1" }}Inscription-Specific Quest
Section titled “Inscription-Specific Quest”{ "name": "<gold>Vein Mining Mastery", "start_requirement": "q.player.has_inscription_unlocked('vein_miner')", "tasks": [ { "id": "use_vein_miner", "name": "Mine Ore Veins", "description": "Use Vein Miner to mine ore", "event": "BLOCK_BREAK", "filter": "q.held_relic.has_inscription('vein_miner') && q.block.has_tag('c:ores')", "target": 100 } ]}Best Practices
Section titled “Best Practices”Event Usage
Section titled “Event Usage”✅ Do:
- Use RELIC_RENOWN_GAINED for tracking total renown gained
- Filter by source when tracking specific activities
- Use level filters (>=) not exact matches (==) for flexibility
- Test filters with real relic items
❌ Don’t:
- Expect RELIC_RENOWN_GAINED to fire once per block (it fires per event with amount)
- Forget decimal points on number comparisons (
5.0not5) - Chain too many relic requirements (makes quests inaccessible)
Query Functions
Section titled “Query Functions”✅ Do:
- Use
q.player.has_relic()before checking held_relic properties - Check inscription unlock before requiring installation
- Use
>=for level checks to handle over-leveled relics
❌ Don’t:
- Query held_relic without checking if relic exists
- Assume inscription IDs (verify actual IDs in data packs)
- Mix up
q.relic.*(event context) withq.held_relic.*(player query)
Reward Balance
Section titled “Reward Balance”✅ Do:
- Reward inscriptions through meaningful progression
- Grant catalysts sparingly (they create new relics)
- Give bonus renown for quest milestones
- Use tellraw for player guidance
❌ Don’t:
- Give unlimited catalysts (trivializes system)
- Unlock all inscriptions at once
- Grant excessive renown (skips progression)
Event Summary
Section titled “Event Summary”| Event | Triggers | Target Behavior | Key Queries |
|---|---|---|---|
| RELIC_CATALYST_USED | Catalyst used | Counts uses | q.relic.item, q.relic.catalyst |
| RELIC_AWAKENED | Relic created | Counts awakenings | q.relic.item, q.relic.essence |
| RELIC_RENOWN_GAINED | Renown earned | Sums renown | q.relic.renown, q.relic.source |
| RELIC_LEVEL_UP | Level increase | Counts level ups | q.relic.level, q.relic.previous |
| RELIC_SOCKET_UNLOCKED | Socket opens | Counts unlocks | q.relic.sockets, q.relic.level |
| RELIC_INSCRIPTION_INSTALLED | Inscription added | Counts installs | q.inscription.id |
| RELIC_INSCRIPTION_REMOVED | Inscription removed | Counts removals | q.inscription.id |
This documentation reflects the actual Journey task format and event system. All examples follow the same patterns as verified Journey configurations.