NotEnoughRelics Documentation
Welcome to the NotEnoughRelics documentation. Learn how to configure custom artifacts, set up passive modifiers, and bind commands to player events.
All items must be configured under the relics: key in your plugin files. Use the sidebar to navigate through the available configuration blocks.
Core Features
- Stats & Attributes: Apply static modifiers like Max Health, Strength, Luck, and Movement Speed.
- Utility Mechanics: Configure i-frames, double jumps, fall damage reduction, and reach extensions.
- Event Triggers: Execute console commands, sounds, and particles reacting to damage, kills, equipping, or ticks.
- Loot & Generation: Integrate relics into vanilla structure chests and custom mob drops.
- Relic Sets: Link multiple relics to provide massive bonuses when equipped together.
Basic Structure
Every relic relies on a foundational YAML structure defining its visual presence, metadata, and tier.
relics:
my_custom_relic:
name: "&eMy Custom Relic"
material: ENCHANTED_BOOK
glint: false
lore:
- "&7A properly formatted artifact."
slots:
- RING
tier: COMMON
glow:
enable: true
color: "#E2B640"
custom_model_data: 4310002
Required Keys
| Key | Description |
|---|---|
name |
The display name of the item. Supports color codes (&). |
material |
The Bukkit Material type (e.g., ENCHANTED_BOOK, LEATHER_HELMET). |
glint |
Toggles the vanilla enchantment glint. |
slots |
List of valid equipment slots (e.g., RING, HELMET, CLOAK, GLOVES, BELT, NECKLACE, RELICS). |
tier |
Item rarity tier (e.g., COMMON, UNCOMMON, RARE, EPIC, LEGENDARY, MYTHIC). |
glow |
Custom glowing effect configuration. Set enable: true and specify a HEX color. |
custom_model_data |
Integer value used to assign custom textures via resource packs. |
Attributes & Stats
Passive attributes modify player stats while the relic is equipped in its designated slot.
You can stack multiple attributes on a single relic. Just list all desired stat keys under the attributes: block.
The attributes Block
Define stat modifications under the attributes: section:
attributes:
max_health: 4.0
luck: 2.0
speed: 1.0
strength: 3.0
knockback_resistance: 5.0
Available Attributes
| Attribute | Description | Format |
|---|---|---|
max_health |
Increases maximum health (1.0 = half a heart). | Float (e.g., 6.0) |
luck |
Increases the generic luck stat. | Float (e.g., 4.0) |
speed |
Increases movement speed. | Float (e.g., 0.2) |
strength |
Increases melee damage output. | Float (e.g., 5.0) |
knockback_resistance |
Reduces incoming knockback. | Float (e.g., 10.0) |
Special Effects & Mechanics
Enhance your relics with continuous potion buffs and unique utility mechanics like invulnerability frames and extra jumps.
Permanent Potion Effects
Use the potion_effects block to apply vanilla Minecraft potion effects that remain active as long as the player has the relic equipped. The number represents the amplifier of the effect (where 0 = Level 1, 1 = Level 2, etc.).
potion_effects:
SPEED: 0
INCREASE_DAMAGE: 1
FIRE_RESISTANCE: 0
You must use standard Bukkit/Spigot PotionEffectType names. For example, use INCREASE_DAMAGE instead of Strength, and SLOW_DIGGING instead of Mining Fatigue.
Utility Special Effects
Use the special_effects block to add custom utility mechanics, such as reach extensions and extra mobility.
special_effects:
invulnerability_time: 0.5
fall_damage_reduction: 0.3
entity_range: 1.5
block_range: 2.0
double_jump: 1
Available Mechanics
| Key | Description |
|---|---|
invulnerability_time |
Grants extra seconds of i-frames (invulnerability) after the player is hit (e.g., 0.8). |
fall_damage_reduction |
Reduces incoming fall damage by a percentage (e.g., 0.3 = 30% reduction). |
entity_range |
Increases the player's attack reach against entities (in blocks). |
block_range |
Increases the player's block breaking and interaction reach (in blocks). |
double_jump |
Grants extra mid-air jumps. Accepts integer values (e.g., 1 for one extra jump). |
Commands & Triggers
The commands block allows relics to listen for specific player events (like taking damage or killing mobs) and execute console commands, play sounds, or spawn particles.
Pass dynamic player data into commands using %player_name%, %player_x%, %player_y%, and %player_z%.
Event Listeners
Each listener requires a list of commands and a probability variable ([event]-chance) ranging from 0.0 to 1.0.
onEquip: Triggers when the item is slotted.onUnequip: Triggers when the item is unslotted.onKill: Triggers upon killing an entity.onDeath: Triggers upon player death.onDamage: Triggers upon taking damage.onDamageDealt: Triggers upon dealing damage.onInterval: Triggers repeatedly based on definedinterval-ticks.
Configuration Example
commands:
command-feedback: false
onKill:
- "playsound minecraft:entity.experience_orb.pickup player %player_name% %player_x% %player_y% %player_z% 1 2"
- "particle minecraft:note %player_x% %player_y% %player_z% 1 1 1 1 15"
onKill-chance: 0.5
onInterval:
- "particle minecraft:enchant %player_x% %player_y% %player_z% 0.5 1 0.5 0 5"
onInterval-chance: 0.1
interval-ticks: 60
Structure Loot Generation (loot.yml)
You can configure relics to spawn naturally inside vanilla Minecraft structure chests (like Dungeons, End Cities, or Bastions) using the structures section in your loot configuration.
The system uses a robust two-step roll for fairness:
1. Weight: The plugin picks a random item from the pool based on its weight relative to others.
2. Individual Chance: Once an item is picked, it must pass its own specific chance (e.g., 0.5 = 50%) to actually spawn. If it fails, nothing spawns for that attempt.
Configuration Example
Add this to your loot configuration file:
structures:
"minecraft:chests/simple_dungeon":
enabled: true
min_amount: 1
max_amount: 3
pool:
golden_ring_advanced:
weight: 10
chance: 0.5
mystic_orchestra:
weight: 2
chance: 0.1
Understanding the Keys
| Key | Description |
|---|---|
"minecraft:..." |
The exact vanilla loot table key (e.g., minecraft:chests/end_city_treasure). |
min_amount / max_amount |
The number of generation "attempts" the plugin will make when a chest is opened. |
pool |
The list of your custom relic_ids that can potentially spawn in this structure. |
weight |
How heavily weighted this relic is compared to others in the pool. (Higher = More likely to be chosen). |
chance |
The final probability of the item dropping once selected (0.0 to 1.0). Defaults to 1.0 (100%) if not set. |
Mob Drops (loot.yml)
Relics can be configured to drop when a player kills specific entities. This system uses the same Weight + Individual Chance system as structures, ensuring balanced drop rates.
To prevent infinite farming exploits, mobs will only drop relics if the entity was directly killed by a Player. Environmental damage or other mobs will not trigger the drop.
Configuration Example
Define your mob drops under the mobs section in the loot configuration:
mobs:
ZOMBIE:
enabled: true
sound: "ENTITY_PLAYER_LEVELUP"
pool:
ancient_coin_advanced:
weight: 5
chance: 0.05
ENDER_DRAGON:
enabled: true
sound: "UI_TOAST_CHALLENGE_COMPLETE"
pool:
dragon_heart_relic:
weight: 1
chance: 1.0
Understanding the Keys
| Key | Description |
|---|---|
ENTITY_TYPE |
The exact Bukkit EntityType enum (e.g., ZOMBIE, SKELETON, ENDER_DRAGON). |
sound |
(Optional) A Bukkit Sound enum to play directly to the player who got the kill when the relic drops. |
weight |
The probability weight of this relic being selected from the pool. |
chance |
The final chance (0.0 to 1.0) of the relic dropping. For example, 0.05 means a 5% drop rate. |
Relic Sets Configuration (relic_sets.yml)
Relic Sets allow you to link multiple individual relics into a unified set. When a player manages to collect and equip all the required relics within a set simultaneously, they are rewarded with bonus attributes and custom visual/audio effects.
We highly recommend using our visual Relic Set Creator. It allows you to drag, drop, and link your existing relics together to generate the relic_sets.yml file automatically!
Configuration File (relic_sets.yml)
This system operates within its own dedicated configuration file. Below is an example of a complete set configuration:
relic_sets:
merchant_fortune_set:
relics:
- golden_ring_advanced
- ancient_coin_advanced
- silver_necklace
extra-stats:
attributes:
luck: 15.0
max_health: 4.0
knockback_resistance: 1.0
set_config:
on-enable-sound:
- "UI_TOAST_CHALLENGE_COMPLETE"
- "BLOCK_BEACON_ACTIVATE"
on-disable-sound:
- "BLOCK_BEACON_DEACTIVATE"
particle:
- "VILLAGER_HAPPY"
- "END_ROD"
Understanding the Keys
| Key | Description |
|---|---|
relics |
A list containing the exact IDs of the relics required to complete the set. |
extra-stats.attributes |
Bonus attributes granted only when the entire set is equipped. These stack additively with the individual relic stats. |
set_config |
The global configuration block. This dictates what happens cosmetically when any set is completed or broken. |
on-enable-sound |
A list of Bukkit Sound enums played to the player exactly when they equip the final missing piece of a set. |
on-disable-sound |
A list of sounds played when a complete set is broken (e.g., the player removes one of the pieces). |
particle |
Bukkit Particle enums spawned around the player the moment the set becomes fully active. |
Example Snippets
Complete configuration examples combining attributes, mechanics, and triggers.
Example 1: Advanced Shadow Cloak
A mobility-focused artifact granting speed, strength, and extra jumps.
shadow_cloak_advanced:
name: "&8Advanced Shadow Cloak"
material: BLACK_BANNER
lore:
- "&7Hides in the darkness"
- "&7with deadly efficiency."
- ""
- "&eSpecial Effect:"
- "&7• +&a7.0 &7Speed"
- "&7• +&a5.0 &7Strength"
- "&7• +&a1.5 &7entity reach range"
- "&7• +&a1 &7extra mid-air jump"
slots:
- CLOAK
tier: UNCOMMON
glow:
enable: true
color: "#696969"
custom_model_data: 4310022
attributes:
speed: 7.0
strength: 5.0
special_effects:
entity_range: 1.5
double_jump: 1
Example 2: Mystic Orchestra
An epic item that acts dynamically through sound execution on combat events.
mystic_orchestra:
name: "&d&lOrquestra Mística"
material: NOTE_BLOCK
lore:
- "&7A musical artifact that plays"
- "&7melodies on every action."
- ""
- "&6Bonuses:"
- "&7• +&a8.0 &7Luck"
- "&7• +&a5.0 &7Speed"
slots:
- RELICS
tier: EPIC
glow:
enable: true
color: "#E91E63"
custom_model_data: 7001
attributes:
luck: 8.0
speed: 5.0
commands:
command-feedback: false
onEquip:
- "playsound minecraft:ui.toast.challenge_complete player %player_name% %player_x% %player_y% %player_z% 1 1"
- "title %player_name% subtitle {\"text\":\"Mystic Orchestra Activated\",\"color\":\"white\"}"
- "particle minecraft:note %player_x% %player_y% %player_z% 2 2 2 1 50"
onEquip-chance: 1.0
onUnequip:
- "playsound minecraft:entity.villager.no player %player_name% %player_x% %player_y% %player_z% 1 0.8"
- "particle minecraft:smoke %player_x% %player_y% %player_z% 0.5 0.5 0.5 0.05 20"
onUnequip-chance: 1.0
onDamage:
- "playsound minecraft:block.note_block.bass player %player_name% %player_x% %player_y% %player_z% 1 0.5"
onDamage-chance: 0.30
onInterval:
- "playsound minecraft:block.note_block.flute player %player_name% %player_x% %player_y% %player_z% 0.3 1.5"
- "particle minecraft:enchant %player_x% %player_y% %player_z% 0.5 1 0.5 0 5"
onInterval-chance: 0.1
interval-ticks: 60
KoStudios