Plugin Config
The main plugin settings live in OFTRelics/config.yml. It controls the relic menus and their slots, the spatial menu, the HUD, the generated resource pack and debug logging. Messages and the admin menu's texts live in OFTRelics/lang.yml. Every option below is annotated inline.
After editing, run /oftrelics reload to apply your changes (or /oftrelics reloadpack if you only changed the resource-pack section or a HUD size or colour).
Sections
| Section | What it controls | Explained on |
|---|---|---|
debug | Diagnostic messages in the console | Advanced Configuration |
menu | Which menu /relics opens by default | Menus and HUD |
relics-gui | The chest menu, its slots, equip feedback and death drops | The Gameplay, Menus and HUD |
cursor-menu | The spatial menu | Menus and HUD |
hud | The relic HUD | Menus and HUD |
resource-pack | Pack generation, hosting and delivery, GUI glyphs and icons | Resource Pack |
Slot options
Each entry in relics-gui.slots takes these keys:
| Key | Meaning |
|---|---|
id | Unique slot id (lowercase letters, numbers, _, ., -). Equipped relics are saved under it, so renaming a slot gives its relics back to their owners |
row, column | Position in the chest menu (rows 1 to relics-gui.rows, columns 1 to 9) |
supports | Which relics fit: type:<type>, relic:<id> or *. Defaults to * |
conditions | libreforge conditions that unlock the slot; [] is always unlocked |
empty-display | The item shown in an unlocked, empty slot: item (an item lookup), model (a gui-icons id), name and lore |
locked-display | The item shown in a locked slot, with the same keys |
In a display's name and lore, %slot% is the slot id, a lore line with %supported% is repeated for each supports entry, and a lore line with %conditions% is repeated for each unmet condition's not-met-lines.
Default config.yml
# OFTRelics configuration.
# Keys you add (e.g. cursor-menu.layout.slots, extra resource-pack.gui-glyphs
# or gui-icons) are kept across /oftrelics reload, and default keys missing
# from this file are added back. Whenever this file's keys differ from the
# defaults, eco rewrites the whole file on reload, which drops these comments;
# the bundled copy inside the plugin jar always keeps them.
debug:
# Master switch for detailed diagnostic messages in the server console.
enabled: false
# Categories can be disabled independently while the master switch is on.
categories:
relic-loading: true # Config parsing, registry clearing and CustomItem creation.
recipes: true # Recipe enablement, validation and registration.
loot: true # Every matching loot-table event and chance roll (noisy).
resource-pack: true # Pack scan, build, hash and publish lifecycle.
pack-http: false # Every HTTP request to the built-in pack host (very noisy).
delivery: true # Join/status events and pack sends to players.
display: false # Item display refreshes (extremely noisy).
equipment: true # GUI slot loading, equip/unequip and holder refreshes.
# /oftrelics menu [chest|spatial|admin] and /relics [chest|spatial|admin]
# open a relic menu; each type also needs oftrelics.command.menu.<type>.
menu:
# What the command opens when no type is given (also a bare /oftrelics):
# chest, spatial (the cursor menu below) or admin. Players can override it
# for themselves with /oftrelics style <type> (needs oftrelics.command.style
# and that type's oftrelics.command.menu.<type>); /oftrelics style default
# goes back to this.
default-type: chest
# Relics are equipped here and are no longer activated by holding them.
relics-gui:
rows: 6
title: ""
# Bitmap background rendered through the generated default-font glyph.
background-glyph: relics_menu
# (Optional) Whether equipped relics drop when their wearer dies. Equipped
# relics live outside the player's inventory, so by default (false) they
# are kept through death. A relic's own "drop-on-death" overrides this.
# Ignored when the death keeps inventory (keepInventory gamerule, etc).
drop-on-death: false
# Feedback played to a player when they equip any relic. sound/particle are
# Bukkit Sound/Particle enum names. Set enabled: false to turn it all off,
# or set sound or particle to "" to turn off just that part. (Removing the
# keys doesn't work: missing default keys are added back on reload.)
equip-feedback:
enabled: true
sound: entity_experience_orb_pickup
volume: 1.0
pitch: 1.2
particle: enchant
particle-count: 15
# eco FillerMask. Each character maps to the item at the same index.
mask:
items:
- black_stained_glass_pane name:" "
pattern:
- "000000000"
- "000000000"
- "000000000"
- "000000000"
- "000000000"
- "000000000"
# Each column below is a dedicated slot type: one relic type per column,
# with up to 5 slots stacked down that column (row 1 is the decorative
# header rendered by the background texture, not a real slot). The top
# two slots of every column are open by default; the rest require the
# matching oftrelics.slot.<id> permission.
#
# Slots are checked from top to bottom in this list when a relic is
# shift-left-clicked in the player's inventory.
slots:
# ---------------------------------------------------------------- Ring
- id: ring-1
row: 2
column: 1
# Accepted forms: type:<relic type>, relic:<relic id>, or "*".
# A bare value is treated as a relic ID if it exists, otherwise as a type.
supports:
- type:ring
# LibReforge conditions. An empty list means the slot is always unlocked.
conditions: []
empty-display: &ring-empty-display
item: structure_void
model: empty-slot
name: "&e&lEmpty Ring Slot"
lore:
- ""
- "&7Place a compatible &fRing&7 here."
- ""
locked-display: &ring-locked-display
item: barrier
model: locked-slot
name: "&c&lLocked Ring Slot"
lore:
- ""
- "&7This slot must be unlocked before"
- "&7a &fRing&7 can be equipped here."
- ""
- "%conditions%"
- id: ring-2
row: 3
column: 1
supports:
- type:ring
conditions: []
empty-display: *ring-empty-display
locked-display: *ring-locked-display
- id: ring-3
row: 4
column: 1
supports:
- type:ring
conditions:
- id: has_permission
args:
permission: oftrelics.slot.ring-3
not-met-lines:
- "&cRequires permission &foftrelics.slot.ring-3&c."
empty-display: *ring-empty-display
locked-display: *ring-locked-display
- id: ring-4
row: 5
column: 1
supports:
- type:ring
conditions:
- id: has_permission
args:
permission: oftrelics.slot.ring-4
not-met-lines:
- "&cRequires permission &foftrelics.slot.ring-4&c."
empty-display: *ring-empty-display
locked-display: *ring-locked-display
- id: ring-5
row: 6
column: 1
supports:
- type:ring
conditions:
- id: has_permission
args:
permission: oftrelics.slot.ring-5
not-met-lines:
- "&cRequires permission &foftrelics.slot.ring-5&c."
empty-display: *ring-empty-display
locked-display: *ring-locked-display
# -------------------------------------------------------------- Amulet
- id: amulet-1
row: 2
column: 3
supports:
- type:amulet
conditions: []
empty-display: &amulet-empty-display
item: structure_void
model: empty-slot
name: "&e&lEmpty Amulet Slot"
lore:
- ""
- "&7Place a compatible &fAmulet&7 here."
- ""
locked-display: &amulet-locked-display
item: barrier
model: locked-slot
name: "&c&lLocked Amulet Slot"
lore:
- ""
- "&7This slot must be unlocked before"
- "&7an &fAmulet&7 can be equipped here."
- ""
- "%conditions%"
- id: amulet-2
row: 3
column: 3
supports:
- type:amulet
conditions: []
empty-display: *amulet-empty-display
locked-display: *amulet-locked-display
- id: amulet-3
row: 4
column: 3
supports:
- type:amulet
conditions:
- id: has_permission
args:
permission: oftrelics.slot.amulet-3
not-met-lines:
- "&cRequires permission &foftrelics.slot.amulet-3&c."
empty-display: *amulet-empty-display
locked-display: *amulet-locked-display
- id: amulet-4
row: 5
column: 3
supports:
- type:amulet
conditions:
- id: has_permission
args:
permission: oftrelics.slot.amulet-4
not-met-lines:
- "&cRequires permission &foftrelics.slot.amulet-4&c."
empty-display: *amulet-empty-display
locked-display: *amulet-locked-display
- id: amulet-5
row: 6
column: 3
supports:
- type:amulet
conditions:
- id: has_permission
args:
permission: oftrelics.slot.amulet-5
not-met-lines:
- "&cRequires permission &foftrelics.slot.amulet-5&c."
empty-display: *amulet-empty-display
locked-display: *amulet-locked-display
# ---------------------------------------------------------------- Cube
- id: cube-1
row: 2
column: 5
supports:
- type:cube
conditions: []
empty-display: &cube-empty-display
item: structure_void
model: empty-slot
name: "&e&lEmpty Cube Slot"
lore:
- ""
- "&7Place a compatible &fCube&7 here."
- ""
locked-display: &cube-locked-display
item: barrier
model: locked-slot
name: "&c&lLocked Cube Slot"
lore:
- ""
- "&7This slot must be unlocked before"
- "&7a &fCube&7 can be equipped here."
- ""
- "%conditions%"
- id: cube-2
row: 3
column: 5
supports:
- type:cube
conditions: []
empty-display: *cube-empty-display
locked-display: *cube-locked-display
- id: cube-3
row: 4
column: 5
supports:
- type:cube
conditions:
- id: has_permission
args:
permission: oftrelics.slot.cube-3
not-met-lines:
- "&cRequires permission &foftrelics.slot.cube-3&c."
empty-display: *cube-empty-display
locked-display: *cube-locked-display
- id: cube-4
row: 5
column: 5
supports:
- type:cube
conditions:
- id: has_permission
args:
permission: oftrelics.slot.cube-4
not-met-lines:
- "&cRequires permission &foftrelics.slot.cube-4&c."
empty-display: *cube-empty-display
locked-display: *cube-locked-display
- id: cube-5
row: 6
column: 5
supports:
- type:cube
conditions:
- id: has_permission
args:
permission: oftrelics.slot.cube-5
not-met-lines:
- "&cRequires permission &foftrelics.slot.cube-5&c."
empty-display: *cube-empty-display
locked-display: *cube-locked-display
# ----------------------------------------------------------------- Belt
- id: belt-1
row: 2
column: 7
supports:
- type:belt
conditions: []
empty-display: &belt-empty-display
item: structure_void
model: empty-slot
name: "&e&lEmpty Belt Slot"
lore:
- ""
- "&7Place a compatible &fBelt&7 here."
- ""
locked-display: &belt-locked-display
item: barrier
model: locked-slot
name: "&c&lLocked Belt Slot"
lore:
- ""
- "&7This slot must be unlocked before"
- "&7a &fBelt&7 can be equipped here."
- ""
- "%conditions%"
- id: belt-2
row: 3
column: 7
supports:
- type:belt
conditions: []
empty-display: *belt-empty-display
locked-display: *belt-locked-display
- id: belt-3
row: 4
column: 7
supports:
- type:belt
conditions:
- id: has_permission
args:
permission: oftrelics.slot.belt-3
not-met-lines:
- "&cRequires permission &foftrelics.slot.belt-3&c."
empty-display: *belt-empty-display
locked-display: *belt-locked-display
- id: belt-4
row: 5
column: 7
supports:
- type:belt
conditions:
- id: has_permission
args:
permission: oftrelics.slot.belt-4
not-met-lines:
- "&cRequires permission &foftrelics.slot.belt-4&c."
empty-display: *belt-empty-display
locked-display: *belt-locked-display
- id: belt-5
row: 6
column: 7
supports:
- type:belt
conditions:
- id: has_permission
args:
permission: oftrelics.slot.belt-5
not-met-lines:
- "&cRequires permission &foftrelics.slot.belt-5&c."
empty-display: *belt-empty-display
locked-display: *belt-locked-display
# -------------------------------------------------------------- Circlet
- id: circlet-1
row: 2
column: 9
supports:
- type:circlet
conditions: []
empty-display: &circlet-empty-display
item: structure_void
model: empty-slot
name: "&e&lEmpty Circlet Slot"
lore:
- ""
- "&7Place a compatible &fCirclet&7 here."
- ""
locked-display: &circlet-locked-display
item: barrier
model: locked-slot
name: "&c&lLocked Circlet Slot"
lore:
- ""
- "&7This slot must be unlocked before"
- "&7a &fCirclet&7 can be equipped here."
- ""
- "%conditions%"
- id: circlet-2
row: 3
column: 9
supports:
- type:circlet
conditions: []
empty-display: *circlet-empty-display
locked-display: *circlet-locked-display
- id: circlet-3
row: 4
column: 9
supports:
- type:circlet
conditions:
- id: has_permission
args:
permission: oftrelics.slot.circlet-3
not-met-lines:
- "&cRequires permission &foftrelics.slot.circlet-3&c."
empty-display: *circlet-empty-display
locked-display: *circlet-locked-display
- id: circlet-4
row: 5
column: 9
supports:
- type:circlet
conditions:
- id: has_permission
args:
permission: oftrelics.slot.circlet-4
not-met-lines:
- "&cRequires permission &foftrelics.slot.circlet-4&c."
empty-display: *circlet-empty-display
locked-display: *circlet-locked-display
- id: circlet-5
row: 6
column: 9
supports:
- type:circlet
conditions:
- id: has_permission
args:
permission: oftrelics.slot.circlet-5
not-met-lines:
- "&cRequires permission &foftrelics.slot.circlet-5&c."
empty-display: *circlet-empty-display
locked-display: *circlet-locked-display
# Ordinary eco ConfigSlots, useful for close/help buttons and commands.
custom-slots: {}
# Experimental: a second relic menu drawn with display entities in front of
# the player, used with the crosshair as a cursor (in the style of "Ultimate
# UI"). It reuses the slots from relics-gui above. Players open it with
# /oftrelics menu spatial (or /relics spatial).
cursor-menu:
enabled: true
# screen: the player is switched to spectator mode, seated, and their view is
# moved to a fixed point, so the panel stays docked on screen and the
# crosshair, hands and HUD are hidden; mouse movement moves a cursor over
# the panel (with ping-sized lag). Left click presses a button, sneaking
# closes. The previous game mode is restored on close (or on the next join
# after a crash). Needs the packetevents plugin, otherwise world is used.
# world: the panel is placed in the world in front of the player and the
# crosshair is the cursor (no lag, but the camera moves freely).
mode: screen
screen:
# Horizontal position of the panel, in degrees from the centre of the view
# (negative = left).
offset: 0
# Cursor speed multiplier.
sensitivity: 1.0
# Cursor square size in blocks and its #AARRGGBB colour.
cursor-size: 0.035
cursor-color: "#FFFFFFFF"
# Seconds after taking damage during which the menu can't be opened (the
# player is in spectator mode while it is open, so they can't be hurt).
combat-cooldown: 5
# Panel geometry in blocks. The panel is placed this far in front of the
# player's eyes when the menu opens.
distance: 1.8
vertical-offset: 0.0
cell-size: 0.22
padding: 0.08
icon-scale: 0.17
# Icon size multiplier while the crosshair is over a slot.
hover-scale: 1.3
text-scale: 0.3
# Tooltip wrap width in font pixels.
tooltip-width: 160
# #RRGGBB or #AARRGGBB.
colors:
background: "#C8140F1E"
cell: "#78302838"
locked: "#78401818"
hover: "#C8D69B45"
title: "&#d69b45&lRelics"
hint: "&7Click: equip / remove &8| &7Sneak: close"
# World mode: seat the player on an invisible anchor so they can't walk away
# while the menu is open. Sneaking leaves the seat and closes the menu.
# (Screen mode always holds the player in place.)
freeze-player: false
# World mode without freeze-player: the panel moves along with the player as
# they walk (it keeps facing the same way).
follow-player: true
# (Optional) The menu's own grid instead of the relics-gui rows/columns.
layout:
# Close up rows and columns that hold no slot (e.g. the gaps between the
# chest menu's columns 1, 3, 5, 7, 9).
compact: false
# Slot id -> "row, column". When this list is not empty, only the listed
# slots are shown, at these positions. Example:
# ring-1: "1, 1"
# ring-2: "2, 1"
# amulet-1: "1, 2"
slots: {}
close-on-damage: true
# Sound keys (e.g. ui.button.click). Leave empty to disable.
hover-sound: "block.note_block.hat"
click-sound: "ui.button.click"
# Experimental: shows the icons of equipped relics on screen. Icons are the
# relics' item.texture PNGs, added to the generated pack as glyphs of the
# <namespace>:hud font. Relics drawn with a custom model/definition fall back
# to no-icon-text. Players toggle it with /oftrelics hud.
hud:
enabled: true
default-enabled: true
# bossbar: the title of a boss bar (colour: bar-color) at the top of the screen.
# actionbar: above the hotbar (other plugins using the action bar will
# fight over it).
mode: bossbar
# Colour of the HUD's boss bar: pink, blue, red, green, yellow, purple or
# white. With hide-bar-texture the pack makes this colour's bar sprites
# transparent so only the HUD is visible, which also hides the bar of any
# other plugin's boss bar of the same colour - so pick one nothing else on
# the server uses. Vanilla uses pink (dragon), purple (wither), red (raids);
# white is the default of /bossbar and many plugins. Needs /oftrelics reloadpack.
bar-color: yellow
hide-bar-texture: true
# Keep the HUD's boss bar above the others (dragon, wither, raids, other
# plugins) by re-sending those to the client after ours. Needs packetevents.
# When false, the HUD's bar is simply added below any bars already showing.
bar-on-top: false
# popup: nothing on screen until a relic gains xp; then its icon, a wide xp
# bar and its level slide down from the top edge, stay for a moment and
# slide back up (boss bar mode only).
# static: every equipped relic's icon, small xp bar and level, always.
style: popup
popup:
hold-seconds: 3
# Played when a relic levels up while the popup shows it (on top of the
# relic's own leveling.level-up-sound). Empty to disable.
level-up-sound: "ui.toast.challenge_complete"
level-up-volume: 0.5
level-up-pitch: 1.2
# Size of the popup's xp bar in pixels. Needs /oftrelics reloadpack.
bar-width: 64
bar-height: 4
# #RRGGBB or #AARRGGBB; the highlight is the bar's top row.
colors:
fill: "#3FB950"
fill-highlight: "#7EE787"
max: "#E3A008"
max-highlight: "#FFD866"
background: "#C8141414"
# The settings below are for the static style.
update-ticks: 10
# Icon size and vertical position in font pixels (ascent must not exceed
# height; lower it to move icons down). Needs /oftrelics reloadpack.
icon-height: 16
icon-ascent: 7
# Vertical position of HUD text in font pixels (vanilla text uses 7); the
# default centres it on 16px icons. Needs /oftrelics reloadpack.
text-ascent: 3
# One entry per equipped relic. %icon%, %level% and %name% are replaced;
# %bar% draws the relic's xp progress under the icon placed before it.
entry: "%icon%%bar% &7Lv &f%level%"
# Used instead of entry for relics without leveling.
entry-no-leveling: "%icon%"
no-icon-text: "&7%name%"
# Pixels between entries.
spacing: 8
# Small xp bar under each icon (the %bar% placeholder), as wide as the icon.
# Needs /oftrelics reloadpack.
bar:
enabled: true
# Thickness in pixels.
height: 2
# #RRGGBB or #AARRGGBB; max is used once the relic reached its max level.
colors:
fill: "#55D86A"
max: "#FFB43C"
background: "#B4141414"
resource-pack:
# Builds plugins/OFTRelics/pack.zip from relic configs and the pack/ folder.
enabled: true
# Namespace of the pack's own assets, models and fonts. Relic texture and
# model paths without a "namespace:" resolve against it. The bundled
# textures are copied to pack/assets/<namespace>/ when this changes; files
# you added under the old namespace have to be moved by hand.
namespace: oftrelics
description: "OFTRelics Server Pack"
# Pack formats the pack declares support for: pack-format is the oldest
# (46 = Minecraft 1.21.4, the oldest client with the item model files this
# pack uses), max-pack-format the newest (88 = Minecraft 26.2). Clients
# outside this range are told the pack is incompatible.
pack-format: 46
max-pack-format: 88
minify-json: true
# The only deployment mode supported by OFTRelics: host the generated ZIP
# directly from the Minecraft server.
self-host:
enabled: true
bind: "0.0.0.0"
# Not 8163: that is EcoItems' self-hosted pack port, and two hosts can't
# share a port.
port: 8173
# The address reachable by players, including http(s) and the port, for
# example: "http://203.0.113.4:8173". Required: while it is blank the pack
# is built but not served, unless auto-detect-public-ip is on.
public-url: ""
# (Optional) With public-url blank, look up the server's public IPv4 on
# reload through outside "what's my IP" services (api.ipify.org,
# checkip.amazonaws.com, ipv4.icanhazip.com) and serve the pack at that IP
# and the port above. Off by default: it doesn't work behind NAT, panels
# or port forwarding, where the detected IP or port isn't what players
# connect through.
auto-detect-public-ip: false
delivery:
prompt: "&fThis server uses a resource pack for custom relics"
required: false
kick-on-decline: false
send-on-join: true
join-delay-ticks: 10
send-on-reload: true
# GUI backgrounds/icons implemented as bitmap font glyphs. Put each PNG at
# pack/assets/oftrelics/textures/<texture>.png, then obtain its character
# as a correctly-fonted Adventure component with
# ResourcePackManager.glyphComponent(id) or decorateGuiTitle(...).
gui-glyphs:
relics_menu:
texture: gui/relics_menu
# Matches EcoItems-style 256px GUI background positioning.
ascent: 37
height: 256
width: 256
codepoint: "U+E000"
# (Optional) Empirical horizontal nudge in pixels, positive shifts right,
# negative shifts left. Tune this the same way as ascent if the
# auto-centered background sits a few pixels off horizontally.
offset-x: 1
# Standalone item-model icons, referenced by id from a "model:" key on any
# display config (e.g. relics-gui empty-display/locked-display). Put each
# PNG at pack/assets/oftrelics/textures/<texture>.png.
gui-icons:
empty-slot:
texture: item/plus_gray
texture-parent: generated
locked-slot:
texture: item/lock_gray
texture-parent: generated
Default lang.yml
messages:
prefix: "&#d69b45&lOFTRelics&r &8» &r"
no-permission: "&cYou don't have permission to do this!"
not-player: "&cThis command must be run by a player."
invalid-command: "&cUnknown subcommand! Use /oftrelics <menu|style|hud|reload|give|reloadpack|sendpack|setlevel|givexp>."
style-current: "&f/relics opens the &a%style%&f menu for you. Change it with &a/oftrelics style <%types%>&f."
style-set: "&f/relics now opens the &a%style%&f menu for you."
style-reset: "&f/relics now opens the server default (&a%style%&f) for you."
menu-unknown-type: "&cUnknown menu type! Use /relics <%types%>."
reloaded: "&fReloaded in &a%time%ms&f; loaded &a%count%&f relics."
invalid-player: "&cUnknown or offline player."
invalid-relic: "&cUnknown relic."
invalid-level: "&cInvalid level; must be a positive whole number."
invalid-xp: "&cInvalid xp amount; must be a number."
give-success: "&fGave &a%amount%x %relic%&f to &a%recipient%&f."
relic-item-required: "&cOnly a configured relic can be placed in this slot."
relic-slot-locked: "&cThis relic slot is locked."
relic-slot-empty: "&cThis relic slot is already empty."
relic-slot-occupied: "&cRemove the equipped relic first with shift-left-click."
relic-slot-incompatible: "&c%relic% is not compatible with this slot."
relic-max-active: "&cYou already have the maximum of &f%max%&c %relic% equipped."
relic-no-compatible-slot: "&cThere is no unlocked empty slot compatible with %relic%."
relic-equipped: "&fEquipped &a%relic%&f."
relic-soulbound: "&cThis relic is bound to another player and cannot be equipped by you."
relic-not-levelling: "&cThat relic doesn't have leveling configured."
relic-not-equipped: "&c%recipient% doesn't have %relic% equipped."
setlevel-success: "&fSet &a%recipient%&f's &a%relic%&f to level &a%level%&f."
givexp-success: "&fGave &a%amount%&f xp to &a%recipient%&f's &a%relic%&f (now level &a%level%&f)."
cursor-menu-disabled: "&cThe cursor menu is disabled on this server."
cursor-menu-in-combat: "&cYou can't open the relic menu right after taking damage."
cursor-menu-unsafe: "&cStand still on solid ground to open the relic menu."
cursor-no-relic-for-slot: "&cYou have no relic in your inventory that fits this slot."
cursor-close-tooltip: "&cClose"
hud-enabled: "&fRelic HUD &aenabled&f."
hud-disabled: "&fRelic HUD &cdisabled&f."
hud-unavailable: "&cThe relic HUD is turned off on this server."
pack-reloaded: "&fResource pack rebuilt and deployed in &a%time%ms&f."
pack-sent: "&fResource pack sent to &a%recipient%&f."
pack-unavailable: "&cThe resource pack is not published. Check self-host.public-url and the console."
pack-disabled: "&cResource pack generation is turned off (resource-pack.enabled)."
pack-not-self-hosted: "&cThe resource pack is built but not served: resource-pack.self-host.enabled is false."
craft-no-permission: "&cYou don't have permission to take this item."
pack-declined: "&cThe server resource pack is required."
# /oftrelics menu admin (or /relics admin): relic browser for admins (category picker, then the relics in it).
admin-gui:
title: "&8Relics &7(admin)"
category-title: "&8Relics: %category%"
category-name: "&6%category%"
category-count: "&7Relics: &f%count%"
category-open: "&eClick to open"
relic-id: "&8%id%"
give-one: "&eClick &7to get 1"
give-stack: "&eShift-click &7to get a stack"
back: "&eBack to categories"
previous-page: "&ePrevious page"
next-page: "&eNext page"
empty: "&cNo relics are loaded"
# Display names per relic type; types not listed here are shown capitalized.
categories:
ring: "Rings"
amulet: "Amulets"
belt: "Belts"
circlet: "Circlets"
cube: "Cubes"
Messages support colour codes and hex colours. Placeholders such as %relic%, %recipient%, %amount%, %level%, %time%, %count%, %style% and %types% are filled in by the plugin where the default message uses them.
Where to go next
Understand what you're configuring: The Gameplay explains slots, types and unlocking.
The menus and the HUD in depth: Menus and HUD.
Commands to apply and test changes: Commands and Permissions.