Plugins / Arcana
Arcana Coming soon
Twelve real custom enchantments in the enchanting table, plus wands, spell foods, glider capes and hats. No mods, no resource pack.
Get Arcana
Coming soon Not on sale yet. This page gets a buy button the day it is.
Overview
Arcana
Custom enchantments that are real enchantments. They show up in the enchanting table, combine on anvils and glow like vanilla ones, and nobody needs a mod or a resource pack.
Most custom enchant plugins fake it: a line of lore, a menu of their own, an enchanting table that ignores them. Arcana registers its twelve enchantments in the game's own enchantment registry before the worlds load, the same way Mojang adds one. So a player gets Lifesteal from the enchanting table, finds a Veinminer book in a dungeon chest, buys Telekinesis from a librarian and combines them on an anvil, and the tooltip, the glint and the level numerals are all vanilla.
On top of that, Arcana adds wands, spell foods, glider capes and hats built from Minecraft's new item components, and physics spells that change a player's size, gravity and jump for a while.
- Latest version
- 1.0.0
- Server
- Paper or Purpur, Java 21
- BuiltByBit
- coming soon
What changed in 1.0.0
- Twelve real enchantments registered in the game's enchantment registry: Lifesteal, Frostbite, Thunderstrike, Veinminer, Excavator, Timber, Telekinesis, Harvester, Magnet, Swiftness, Leaping and Soulbound. They appear in the enchanting table, loot chests and villager trades and combine on anvils.
- Wands with a real cooldown, spell foods, glider capes and hats, all built from vanilla item components, with recipes.
- Six physics spells (Gust, Shrink, Giant, Moonwalk, Stride, Phoenix) with hard safety limits; running spells survive a relog or restart and still end on time.
- Rune ring effects made of display entities, and item pictures in chat for /arcana show, crafting and enchanting.
- The Arcana book: dialog windows for enchantments, items and spells, with admin buttons.
- Registry settings (enchantment on/off, name, max level, rarity, where it appears) need a full restart; everything else reloads with /arcana reload.
Features
Why server owners pick it
- Real enchantments: in the enchanting table, loot chests, villager trades and anvils, with the vanilla glint and tooltip
- Twelve balanced enchantments that players actually want: Veinminer, Timber, Telekinesis, Lifesteal, Magnet and more
- Wands with a real cooldown sweep, spell foods you can eat on a full stomach, capes that glide like an elytra
- Spells that change size, gravity and jumping, with hard limits so a typo can never break a player
- Nothing to install for players, and nothing to host: no resource pack, no mod
The twelve enchantments
- Lifesteal I to III (swords, axes): heals you for part of the damage you deal, capped per hit
- Frostbite I to II (swords, axes): a chance to slow and chill what you hit
- Thunderstrike I to III (swords, axes): a chance to call lightning for extra damage, no fire; never on the same weapon as Frostbite
- Veinminer I to III (pickaxes): mining one ore mines the connected vein, up to 8, 16 or 32 blocks
- Excavator I to II (shovels): digs a 3x3 or 5x5 square
- Timber I (axes): fells the whole tree, and leaves log walls in houses alone
- Telekinesis I (tools): drops go straight into your inventory
- Harvester I to II (hoes): ripe crops replant themselves; level II harvests the 3x3 around; young crops are protected
- Magnet I to III (leggings): pulls nearby items to you
- Swiftness I to II (leggings): faster walking; level II steps up full blocks
- Leaping I to III (boots): higher jumps, softer landings
- Soulbound I (anything with durability, treasure only): the item stays with you when you die
Area enchantments work while standing; sneak to break a single block. Every break goes through the normal break event, so claim and protection plugins protect the whole vein too, and the tool wears down as usual.
What you get
- Registry enchantments: name, max level, rarity and where each one appears (table, loot, trades) set in config.yml
- Wands: right click casts a spell, then the client draws the vanilla cooldown sweep over the item
- Spell foods: eaten with their own animation and time, even when full, and cast their spell when finished
- Glider capes: worn in the chest slot, glide like an elytra and show the wings, with durability you choose
- Hats: any item made wearable on the head
- Physics spells: Shrink, Giant, Moonwalk, Gust, Stride, Phoenix, or your own, built from size, gravity, jump strength, step height, speed and potion effects
- Spell effects: a ring of glowing runes and a spinning book around the caster, made of display entities
- Item pictures in chat: /arcana show, crafting an Arcana item and pulling an Arcana enchantment all post the item with its real picture and full tooltip on hover
- Recipes for every item, in the recipe book, all editable
- The Arcana book: native dialog windows listing every enchantment, item and spell, with admin buttons for books, items and test casts
- Every word is yours: all messages and labels in config.yml, in MiniMessage, with one colour theme
FAQ
Which servers does it run on?
Paper or Purpur 1.21.11 or a newer 1.21.x, with Java 21. Item pictures in chat need players on 1.21.9 or newer; older clients see the name and the tooltip without the picture.
Why does changing an enchantment need a restart?
Because it is a real enchantment. Paper freezes the enchantment registry when the server starts, so switching one on or off, renaming it, or changing its max level or rarity takes effect on the next full start. Effect numbers, chances, items, spells and messages reload live with /arcana reload.
Does it work with /reload or plugin managers?
Not for the enchantments, for the reason above. Restart the server instead.
What happens to enchanted items if I remove the plugin or switch an enchantment off?
The enchantment stops existing on the next start, so items that carry it can lose it when the server loads them. Back up your worlds before removing Arcana or switching off an enchantment your players already have.
Will Veinminer get around my claims?
No. Every extra block is broken through the same event a normal break uses, so a protected block stays protected.
Is there DRM or a licence key?
No. There is nothing to activate and no licence server to reach, and the code is not obfuscated.
Can I try it before I buy?
Yes. This page has a test server with the plugin installed.
Where do I get help?
In the active support Discord or in the discussion tab on this page.
Updates
The first release is v1.0.0. Every update is free, new Minecraft versions included.
Also by Frostyh
- Crates: crates with the real chances shown
- Holograms: floating text and boards
- Graves: death chests with a floating label
- Complete Collection: all my published plugins in one purchase, 40% off
If this plugin helps your server, a short review on this page would mean a lot. Thank you!
Installation
Requirements
- Server software
- Paper, or a Paper fork such as Purpur. Spigot and CraftBukkit are not supported: the plugin uses Paper-only APIs.
- Minecraft version
- plugin.yml api-version 1.21.11; built against Paper API 1.21.11
- Java
- 21 or newer
- Required plugins
- none
- Optional plugins
- none
Steps
- Download
Arcana.jarfrom BuiltByBit. There is no licence key to enter. - Stop the server and put the jar into the
pluginsfolder. - Start the server. The plugin creates
plugins/Arcana/config.ymlwith the defaults shown under Configuration. - Edit
config.ymlto suit your server. - Apply the changes with
/arcana reload(Read config.yml again), or restart the server.
Setup guide
- Drop Arcana.jar into /plugins and restart the server (a full restart, not /reload).
- Open
/arcanato see what is there. Enchant a book at the enchanting table and you will meet them. - Optional: switch enchantments off, rename them or change their rarity in config.yml, then restart.
Commands
From plugin.yml. "Not set" in the permission column means plugin.yml attaches no permission to the command itself; the nodes the plugin checks are listed under Permissions.
| Command | Aliases | Usage | Description | Permission |
|---|---|---|---|---|
/arcana | /magic, /arc | /arcana | Open the Arcana book: enchantments, items and spells. Registered in code, not in plugin.yml (see the note below). | not set |
Subcommands in detail
/arcana The Arcana book.
/arcana enchants | items | spells A page of the book.
/arcana show Show the held item in chat.
/arcana give <player> <item> [amount] Give an Arcana item.
/arcana book <enchant> [level] [player] Give an enchanted book.
/arcana enchant <enchant> [level] Put an enchantment on the held item (0 removes it).
/arcana cast <spell> [player] Cast a spell (admin test).
/arcana end <spell> [player] End a running spell.
/arcana reload Read config.yml again.
Permissions
From plugin.yml.
| Node | Default | Description | Children |
|---|---|---|---|
arcana.use | everyone | Open the Arcana book and read the enchantments, items and spells. | none |
arcana.cast | everyone | Cast spells with wands and spell foods. | none |
arcana.show | everyone | Show the held Arcana item in chat with its picture. | none |
arcana.give | operators | Give Arcana items and enchanted books. | none |
arcana.enchant | operators | Put an Arcana enchantment on the held item at any level. | none |
arcana.admin | operators | Reload the config and use every admin button. | arcana.use, arcana.cast, arcana.show, arcana.give, arcana.enchant |
Placeholders
This plugin registers no PlaceholderAPI placeholders.
Configuration reference
The default files as they ship in the jar, with their comments. The plugin writes them to plugins/Arcana/ on first start.
config.yml
Top-level keys:
| Key | Default | Comment above it |
|---|---|---|
config-version | 1 | none |
theme | section, 12 keys | none |
menu | section, 1 key | none |
chat | section, 3 keys | none |
effects | section, 5 keys | none |
recipes | section, 1 key | none |
disabled-worlds | [] (empty list) | Worlds where no spell can be cast (wands and spell foods do nothing there). |
spell-limits | section, 8 keys | ███ ███ ████ █ █ █ ███ █ █ ███ ███ ███ █ █ █ █ █ █ █ █ ██ ██ █ █ █ ██ ███ ███ █ █ █ █ █ █ █ █ █ ██ |
enchantments | section, 13 keys | ████ █ █ ███ █ █ ██ █ █ ███ █ █ ████ █ █ ███ ███ █ ██ █ █ █ █ █ █ ██ █ █ ██ ██ █ ██ █ █ █ ███ █ ██ █ ████ ████ █ ██ █ █ █ █ ███ █ ██ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ████ █ █ ███ █ █ █ █ █ █ █ █ █ ████ █ █ █ ███ Twelve real enchantments. They... |
spells | section, 6 keys | ███ ███ ████ █ █ ███ █ █ █ █ █ █ █ ██ ███ ███ █ █ ██ |
items | section, 11 keys | ███ ███ ████ █ █ ███ █ █ █ ██ ██ █ █ █ ███ █ █ █ ██ █ █ █ █ █ █ ███ █ ████ █ █ ███ Built from vanilla item components, no resource pack: |
messages | section, 109 keys | █ █ ████ ███ ███ ██ ███ ████ ███ ██ ██ █ █ █ █ █ █ █ █ █ █ █ ███ ██ ██ ████ █ ██ ███ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ████ ███ ███ █ █ ███ ████ ███ Every word the plugin says. {placeholders} are filled in. An emptied message is switched off. |
# ██ ███ ███ ██ █ █ ██
# █ █ █ █ █ █ █ ██ █ █ █
# ████ ███ █ ████ █ ██ ████
# █ █ █ █ █ █ █ █ █ █ █
# █ █ █ █ ███ █ █ █ █ █ █
#
# Arcana by Frostyh: magic without mods or a resource pack.
# /arcana opens the book: the enchantments, the items and the spells.
#
# Two kinds of setting live in this file:
# LIVE settings (effects, chances, items, spells, messages) follow /arcana reload.
# REGISTRY settings (the first block of each enchantment: enabled, name, max-level, weight,
# in-enchanting-table, in-loot-chests, in-villager-trades) need a FULL SERVER RESTART. Paper
# freezes the enchantment registry when the server starts, so /reload, /arcana reload and
# plugin managers cannot add, remove or resize an enchantment. Each registry line says so.
#
# Colours: messages use named tags (<accent>, <text>, <muted>, <value>, <good>, <warn>, <bad>)
# that resolve to the theme below. Plain MiniMessage works everywhere too.
config-version: 1
# ███ ████ █ █ ████ ███ ██ █
# █ █ ██ █ █ █ █ █ █ █
# █ ██ ███ █ ██ ███ ███ ████ █
# █ █ █ █ █ █ █ █ █ █ █
# ███ ████ █ █ ████ █ █ █ █ ████
# Look, sounds, the book's width, chat and the rune effects.
theme:
accent: "#b48cff"
accent2: "#e2d4ff"
title: "#f4f1ff"
text: "#cfc8e6"
muted: "#7c7398"
value: "#ffffff"
good: "#7be0a3"
warn: "#ffc857"
bad: "#ff6b6b"
# One quiet sound per button and action, played to that player only.
sounds: true
# Item pictures in menus and chat (Minecraft 1.21.9 and newer draw them; older clients show nothing).
item-icons: true
# The small font for menu text. Off: it reads worse in long menus.
small-caps: false
menu:
# Width of the text in the book, in pixels (200 to 1024).
width: 320
chat:
# /arcana show: seconds between two shows per player (admins skip it).
show-cooldown-seconds: 10
# Who sees a shown item: 0 = the whole server, otherwise players within this many blocks.
show-range: 0
# Tell everyone when someone pulls a treasure or max-level Arcana enchantment from the table.
announce-rare-enchants: true
effects:
# The rune ring and spinning book around a player who casts a spell.
enabled: true
# Rings running at the same time on the whole server; more are skipped, never queued.
max-at-once: 24
# Runes per ring (3 to 16).
runes: 8
# How long a ring lasts, in ticks (20 = one second).
lifetime-ticks: 50
# The small enchanted book above the caster's head.
book: true
recipes:
# Give every player the Arcana recipes in their recipe book when they join.
unlock-on-join: true
# Worlds where no spell can be cast (wands and spell foods do nothing there).
disabled-worlds: []
# ███ ███ ████ █ █ █ ███ █ █ ███ ███ ███
# █ █ █ █ █ █ █ █ ██ ██ █ █ █
# ██ ███ ███ █ █ █ █ █ █ █ █ █ ██
# █ █ █ █ █ █ █ █ █ █ █ █
# ███ █ ████ ████ ████ ████ ███ █ █ ███ █ ███
# Hard limits on what any spell may do to a body, whatever a spell below says. The values are
# the resulting multiplier: scale-min 0.4 means a spell can never make a player smaller than
# 40 percent of their normal size.
spell-limits:
scale-min: 0.4
scale-max: 1.5
gravity-min: 0.25
gravity-max: 2.0
jump-max: 2.0
speed-max: 1.6
# Extra blocks of step height (normal is 0.6).
step-extra-max: 1.5
# Extra blocks of fall before damage (normal is 3).
safe-fall-extra-max: 20
# ████ █ █ ███ █ █ ██ █ █ ███ █ █ ████ █ █ ███ ███
# █ ██ █ █ █ █ █ █ ██ █ █ ██ ██ █ ██ █ █ █
# ███ █ ██ █ ████ ████ █ ██ █ █ █ █ ███ █ ██ █ ██
# █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
# ████ █ █ ███ █ █ █ █ █ █ █ █ █ ████ █ █ █ ███
# Twelve real enchantments. They appear in the enchanting table, combine on anvils, come out of
# loot chests and villager trades and show the vanilla glint. Put them on items with books from
# the table, or /arcana book <enchant> [level] [player].
#
# REGISTRY lines (restart): enabled, name, max-level, weight (1 rare to 10 common),
# in-enchanting-table, in-loot-chests, in-villager-trades.
# Everything else in a section is LIVE.
#
# CAREFUL: switching off an enchantment (or removing Arcana) after players have it means it no
# longer exists on the next start, and items carrying it can lose it. Back up your worlds first.
enchantments:
area-tools:
# Veinminer, Excavator, Timber and Harvester II stop before the tool drops to this durability,
# so an area break never destroys a good tool by surprise.
stop-at-durability: 5
lifesteal:
enabled: true # restart
name: "Lifesteal" # restart
max-level: 3 # restart
weight: 2 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Heals you for part of the damage you deal."
heal-percent-per-level: 4
# The most health one hit can give back (2.0 = one heart).
max-heal-per-hit: 4.0
particles: true
frostbite:
enabled: true # restart
name: "Frostbite" # restart
max-level: 2 # restart
weight: 3 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "A chance to slow and chill what you hit. Never on the same weapon as Thunderstrike."
chance-per-level: 20
slow-seconds-per-level: 1.5
slowness-level: 2
# Powder snow freezing added per proc (140 ticks starts the freeze damage).
freeze-ticks: 80
thunderstrike:
enabled: true # restart
name: "Thunderstrike" # restart
max-level: 3 # restart
weight: 1 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "A chance to call lightning on a hit: extra damage, no fire."
chance-per-level: 4
bonus-damage-per-level: 1.5
cooldown-seconds: 3
affects-players: true
veinminer:
enabled: true # restart
name: "Veinminer" # restart
max-level: 3 # restart
weight: 2 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Mining one ore mines the whole connected vein."
# Extra ores per level (I, II, III).
blocks-per-level: [8, 16, 32]
# standing: works unless sneaking (sneak to mine one block). sneaking: only while sneaking. always.
activation: standing
excavator:
enabled: true # restart
name: "Excavator" # restart
max-level: 2 # restart
weight: 2 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Digs a 3x3 (I) or 5x5 (II) square with a shovel."
# 1 = 3x3, 2 = 5x5.
radius-per-level: [1, 2]
activation: standing
timber:
enabled: true # restart
name: "Timber" # restart
max-level: 1 # restart
weight: 3 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Chopping one log fells the whole tree."
max-logs: 96
# A tree needs at least this many natural leaves, so a log wall in a house is never felled.
min-natural-leaves: 6
activation: standing
telekinesis:
enabled: true # restart
name: "Telekinesis" # restart
max-level: 1 # restart
weight: 3 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Drops go straight into your inventory. Tools only; full inventory drops the rest."
# Also collect mob drops when the killing blow is made with the tool.
mob-drops: true
harvester:
enabled: true # restart
name: "Harvester" # restart
max-level: 2 # restart
weight: 5 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Ripe crops replant themselves. Level II harvests the 3x3 around."
# Right click a ripe crop to harvest and replant it.
right-click-harvest: true
# A hoe with Harvester never breaks a crop that is not ripe yet.
protect-young-crops: true
magnet:
enabled: true # restart
name: "Magnet" # restart
max-level: 3 # restart
weight: 4 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Leggings that pull nearby items to you."
radius-per-level: [3, 5, 7]
pull-speed: 0.35
swiftness:
enabled: true # restart
name: "Swiftness" # restart
max-level: 2 # restart
weight: 3 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Leggings that make you walk faster. Level II also steps up full blocks."
speed-percent-per-level: 6
step-height-at-level-2: 0.4
leaping:
enabled: true # restart
name: "Leaping" # restart
max-level: 3 # restart
weight: 4 # restart
in-enchanting-table: true
in-loot-chests: true
in-villager-trades: true
description: "Boots that jump higher and fall softer."
jump-percent-per-level: 10
safe-fall-blocks-per-level: 1
soulbound:
enabled: true # restart
name: "Soulbound" # restart
max-level: 1 # restart
weight: 1 # restart
# Treasure: never in the enchanting table, only loot chests, trades and books.
in-enchanting-table: false
in-loot-chests: true
in-villager-trades: true
description: "The item stays with you when you die. Never on the same item as Curse of Vanishing."
# True: the enchantment is used up when it saves the item (one save per enchant).
used-up-on-death: true
# ███ ███ ████ █ █ ███
# █ █ █ █ █ █ █
# ██ ███ ███ █ █ ██
# █ █ █ █ █ █
# ███ █ ████ ████ ████ ███
# Physics spells: timed changes to how a player's body works, using vanilla attributes, so the
# client draws them itself (a shrunk player really is small). Wands and spell foods cast them.
#
# body: (offsets; the limits above always win)
# scale: -0.5 = half size, 0.4 = 1.4x gravity: -0.6 = 40 percent gravity
# jump-strength: 0.5 = 1.5x jump movement-speed: 0.15 = 15 percent faster
# step-height: 1.0 = one extra block safe-fall-distance: 10 = ten more blocks
# potion-effects: "effect level" for the spell's whole duration, e.g. "slow_falling 1".
# push-forward / push-up: a shove when cast (-3 to 3).
# A running spell is stored on the player: it survives a relog or a restart and still ends on time.
spells:
gust:
name: "<#9fe7ff>Gust</#9fe7ff>"
description: "A burst of wind throws you forward; you float down slowly."
duration-seconds: 6
cooldown-seconds: 0
body:
gravity: -0.6
safe-fall-distance: 12
push-forward: 1.3
push-up: 0.7
ring-colour: "#9fe7ff"
sound: "minecraft:entity.breeze.wind_burst"
shrink:
name: "<#c58bff>Shrink</#c58bff>"
description: "Half size: fit through one-block gaps, harder to hit."
duration-seconds: 30
cooldown-seconds: 0
body:
scale: -0.5
ring-colour: "#c58bff"
sound: "minecraft:entity.illusioner.mirror_move"
giant:
name: "<#ffb35c>Giant</#ffb35c>"
description: "Grow to one and a half times your size and step over blocks."
duration-seconds: 20
cooldown-seconds: 0
body:
scale: 0.5
step-height: 0.5
ring-colour: "#ffb35c"
sound: "minecraft:block.beacon.power_select"
moonwalk:
name: "<#e2e8ff>Moonwalk</#e2e8ff>"
description: "Low gravity and high jumps, like walking on the moon."
duration-seconds: 25
cooldown-seconds: 0
body:
gravity: -0.7
jump-strength: 0.4
safe-fall-distance: 15
ring-colour: "#e2e8ff"
sound: "minecraft:block.amethyst_block.resonate"
stride:
name: "<#7be0a3>Stride</#7be0a3>"
description: "Walk faster and step straight up full blocks."
duration-seconds: 60
cooldown-seconds: 0
body:
step-height: 0.5
movement-speed: 0.15
ring-colour: "#7be0a3"
sound: "minecraft:entity.horse.gallop"
phoenix:
name: "<#ff7a4d>Phoenix</#ff7a4d>"
description: "Fire cannot touch you for a minute."
duration-seconds: 60
cooldown-seconds: 0
potion-effects:
- "fire_resistance 1"
ring-colour: "#ff7a4d"
sound: "minecraft:item.firecharge.use"
# ███ ███ ████ █ █ ███
# █ █ █ ██ ██ █
# █ █ ███ █ █ █ ██
# █ █ █ █ █ █
# ███ █ ████ █ █ ███
# Built from vanilla item components, no resource pack:
# wand right click casts its spell, then recharges (the client draws the cooldown sweep)
# food eaten even on a full stomach, casts its spell when finished
# cape worn in the chest slot, glides like an elytra and shows the wings
# hat any item worn on the head
# name and lore are MiniMessage. recipe: up to three rows of three; a space is an empty slot.
# Items keep working when renamed here: they are recognised by an id stored on the item.
items:
wind_wand:
type: wand
material: BREEZE_ROD
name: "<#9fe7ff>Wand of Wind</#9fe7ff>"
lore:
- "<muted>Right click: Gust."
spell: gust
cooldown-seconds: 8
recipe:
shape: [" W ", " A ", " B "]
ingredients: {W: WIND_CHARGE, A: AMETHYST_SHARD, B: BREEZE_ROD}
shrinking_wand:
type: wand
material: AMETHYST_SHARD
name: "<#c58bff>Shrinking Wand</#c58bff>"
lore:
- "<muted>Right click: Shrink."
spell: shrink
cooldown-seconds: 45
recipe:
shape: [" A ", " E ", " S "]
ingredients: {A: AMETHYST_SHARD, E: ENDER_PEARL, S: STICK}
giant_staff:
type: wand
material: BLAZE_ROD
name: "<#ffb35c>Giant's Staff</#ffb35c>"
lore:
- "<muted>Right click: Giant."
spell: giant
cooldown-seconds: 60
recipe:
shape: [" G ", " B ", " B "]
ingredients: {G: GOLD_BLOCK, B: BLAZE_ROD}
moon_staff:
type: wand
material: END_ROD
name: "<#e2e8ff>Moon Staff</#e2e8ff>"
lore:
- "<muted>Right click: Moonwalk."
spell: moonwalk
cooldown-seconds: 40
recipe:
shape: [" P ", " E ", " S "]
ingredients: {P: PHANTOM_MEMBRANE, E: END_ROD, S: STICK}
shrinking_cookie:
type: food
material: COOKIE
name: "<#c58bff>Shrinking Cookie</#c58bff>"
lore:
- "<muted>Eat: Shrink."
spell: shrink
eat-seconds: 0.8
animation: eat
nutrition: 2
recipe:
shape: ["CAC"]
ingredients: {C: COOKIE, A: AMETHYST_SHARD}
moon_bread:
type: food
material: BREAD
name: "<#e2e8ff>Moon Bread</#e2e8ff>"
lore:
- "<muted>Eat: Moonwalk."
spell: moonwalk
eat-seconds: 1.2
animation: eat
nutrition: 4
recipe:
shape: ["BPB"]
ingredients: {B: BREAD, P: PHANTOM_MEMBRANE}
stride_stew:
type: food
material: RABBIT_STEW
name: "<#7be0a3>Stride Stew</#7be0a3>"
lore:
- "<muted>Eat: Stride."
spell: stride
eat-seconds: 1.6
animation: eat
nutrition: 6
recipe:
shape: ["SRS"]
ingredients: {S: SUGAR, R: RABBIT_STEW}
phoenix_pepper:
type: food
material: BLAZE_POWDER
name: "<#ff7a4d>Phoenix Pepper</#ff7a4d>"
lore:
- "<muted>Eat: Phoenix."
spell: phoenix
eat-seconds: 1.0
animation: eat
nutrition: 1
recipe:
shape: ["BMB"]
ingredients: {B: BLAZE_POWDER, M: MAGMA_CREAM}
glider_cape:
type: cape
material: PHANTOM_MEMBRANE
name: "<#b48cff>Glider Cape</#b48cff>"
lore:
- "<muted>Wear it in the chest slot and glide."
# Uses before it breaks (an elytra has 432). 0 = never breaks.
durability: 432
glint: true
# Gliding changes a survival server; switch the recipe off to keep capes admin-only.
recipe:
enabled: true
shape: ["MBM", "MDM", "M M"]
ingredients: {M: PHANTOM_MEMBRANE, B: BREEZE_ROD, D: DIAMOND_BLOCK}
sunflower_crown:
type: hat
material: SUNFLOWER
name: "<#ffd75e>Sunflower Crown</#ffd75e>"
lore:
- "<muted>Wear it on your head."
recipe:
shape: ["SGS"]
ingredients: {S: SUNFLOWER, G: GOLD_INGOT}
lantern_hat:
type: hat
material: LANTERN
name: "<#ffcf7a>Lantern Hat</#ffcf7a>"
lore:
- "<muted>Wear it on your head."
recipe:
shape: ["ILI"]
ingredients: {I: IRON_NUGGET, L: LANTERN}
# █ █ ████ ███ ███ ██ ███ ████ ███
# ██ ██ █ █ █ █ █ █ █ █
# █ █ █ ███ ██ ██ ████ █ ██ ███ ██
# █ █ █ █ █ █ █ █ █ █ █
# █ █ ████ ███ ███ █ █ ███ ████ ███
# Every word the plugin says. {placeholders} are filled in. An emptied message is switched off.
messages:
prefix: "<accent>Arcana</accent> <muted>|</muted> "
no-permission: "<bad>You do not have permission for that."
players-only: "<bad>Only a player can do that."
usage: "<text>/arcana <muted>[enchants|items|spells|show|help]</muted>"
usage-give: "<text>/arcana give <value><player> <item> [amount]"
usage-book: "<text>/arcana book <value><enchant> [level] [player]"
usage-enchant: "<text>/arcana enchant <value><enchant> [level]</value> <muted>(level 0 removes it)"
usage-cast: "<text>/arcana cast|end <value><spell> [player]"
reloaded: "<good>Reloaded. Enchantment registry changes still need a restart."
player-not-found: "<bad>No player online named <value>{player}</value>."
item-not-found: "<bad>No Arcana item called <value>{item}</value>."
enchant-not-found: "<bad>No Arcana enchantment <value>{enchant}</value> is active."
spell-not-found: "<bad>No spell called <value>{spell}</value>."
bad-number: "<bad>That is not a number."
given: "<good>Gave <value>{amount}x</value> {item} <good>to <value>{player}</value>."
given-self: "<good>You got {item}<good>."
book-given: "<good>Gave a <value>{enchant} {level}</value> book to <value>{player}</value>."
enchant-added: "<good>Added <value>{enchant} {level}</value> to the item in your hand."
enchant-removed: "<good>Removed <value>{enchant}</value> from the item in your hand."
spell-cast: "<text>{spell} <muted>for {seconds}s"
spell-ended: "<muted>{spell} <muted>wore off."
spell-cooldown: "<warn>{spell} <warn>is ready in <value>{seconds}s</value>."
spell-world-off: "<warn>Spells do not work in this world."
spell-cast-on: "<good>Cast {spell} <good>on <value>{player}</value>."
spell-ended-by: "<good>Ended {spell} <good>for <value>{player}</value>."
spell-not-running: "<warn>{spell} <warn>is not running on <value>{player}</value>."
wand-empty: "<warn>This wand has no spell set in the config."
show-empty: "<warn>Hold an item first."
show-cooldown: "<warn>You can show another item in <value>{seconds}s</value>."
# The item (its picture, name and tooltip on hover) is added at the end of these two.
show-item: "<accent>{player}</accent> <text>shows "
crafted: "<good>You crafted "
enchant-pulled: "<text>The magic took: <accent>{enchant} {level}</accent>"
enchant-pulled-all: "<accent>{player}</accent> <text>pulled <accent>{enchant} {level}</accent> <text>from the table!"
soulbound-kept: "<good>Soulbound kept <value>{count}</value> item(s) safe. You get them back when you respawn."
soulbound-kept-used: "<good>Soulbound kept <value>{count}</value> item(s) safe and was used up. You get them back when you respawn."
# ---- the book ----
home-title: "<title>Arcana"
home-intro: "<text>Magic without mods. Real enchantments, wands, spell foods, capes and hats, all made from vanilla Minecraft."
home-counts: "<value>{enchants}</value> <muted>enchantments</muted> <value>{items}</value> <muted>items</muted> <value>{spells}</value> <muted>spells</muted>"
home-running: "<text>Running on you: {list}"
running-entry: "<accent>{spell}</accent> <muted>{seconds}s</muted>"
list-separator: "<muted>, </muted>"
btn-enchants: "<white><icon:enchant></white>Enchantments"
btn-enchants-tip: "What each enchantment does and where it goes."
btn-items: "<white><icon:wand></white>Items"
btn-items-tip: "Wands, spell foods, capes and hats."
btn-spells: "<white><icon:spell></white>Spells"
btn-spells-tip: "Every spell and what it does to you."
btn-show: "<white><icon:chat></white>Show held item"
btn-show-tip: "Show the item in your hand in chat, picture and all."
btn-help: "<white><icon:help></white>Help"
btn-help-tip: "Commands and how to get everything."
btn-books: "<white><icon:book></white>Enchanted books"
btn-books-tip: "Admin: take a max-level book of any enchantment."
btn-reload: "<white><icon:reload></white>Reload"
btn-reload-tip: "Reload the config. Registry changes still need a restart."
btn-home: "<white><icon:back></white>Back"
btn-home-tip: "Back to the start."
btn-back: "<white><icon:back></white>Back"
btn-back-tip: "Back one page."
btn-close: "Close"
btn-book: "{icon}{name} {level}"
btn-book-tip: "Put the book in your inventory."
btn-give: "{icon}{name}"
btn-give-tip: "Admin: put one in your inventory."
btn-cast: "Cast {name}"
btn-cast-tip: "Admin: cast it on yourself to try it."
enchants-title: "<title>Enchantments"
enchants-intro: "<text>Real enchantments: they come from the enchanting table, books, loot chests and villagers, and combine on anvils."
enchant-row: "{icon}<accent>{name}</accent> <muted>I to {max} {items} {source}</muted><newline><text>{description}"
enchant-row-off: "{icon}<muted><st>{name}</st> switched off on this server"
source-table: "table"
source-treasure: "treasure only"
where-lifesteal: "swords, axes"
where-frostbite: "swords, axes"
where-thunderstrike: "swords, axes"
where-veinminer: "pickaxes"
where-excavator: "shovels"
where-timber: "axes"
where-telekinesis: "pickaxes, axes, shovels, hoes"
where-harvester: "hoes"
where-magnet: "leggings"
where-swiftness: "leggings"
where-leaping: "boots"
where-soulbound: "anything with durability"
books-title: "<title>Enchanted books"
books-intro: "<text>Each button puts a max-level book in your inventory. Combine it with an item on an anvil."
items-title: "<title>Items"
items-intro: "<text>Craft them (see your recipe book) or ask an admin. Hover an item for its tooltip."
items-none: "<muted>No items are set up in the config."
item-row: "{name}<newline><text>{what}"
kind-wand: "Wand: right click casts {spell}<text>, then recharges for {seconds}s."
kind-food: "Spell food: eat it to cast {spell}<text>, even when full."
kind-cape: "Cape: wear it in the chest slot and glide like an elytra."
kind-hat: "Hat: wear it on your head."
no-spell: "<muted>nothing"
spells-title: "<title>Spells"
spells-intro: "<text>Spells change how your body works for a while. They end on time, even if you log out."
spell-row: "<accent>{name}</accent> <muted>{seconds}s</muted><newline><text>{description}<newline><muted>{changes}"
spell-row-running: "<accent>{name}</accent> <good>running</good> <muted>{seconds}s</muted><newline><text>{description}<newline><muted>{changes}"
spell-has-effects: "{count} potion effect(s)"
body-scale: "size {percent}%"
body-gravity: "gravity {percent}%"
body-jump: "jump {percent}%"
body-speed: "speed {percent}%"
body-step: "+{blocks} step height"
body-fall: "+{blocks} blocks safe fall"
help-title: "<title>Help"
help-lines:
- "<accent>/arcana</accent> <text>opens this book."
- "<accent>/arcana show</accent> <text>shows the item in your hand in chat."
- "<text>Enchantments come from the <value>enchanting table</value>, books in <value>loot chests</value> and <value>villager trades</value>. Combine books on an anvil."
- "<text>Area enchantments (Veinminer, Excavator, Timber) work while standing. <value>Sneak</value> to break a single block."
- "<text>Every item has a recipe in your <value>recipe book</value>."
help-admin-lines:
- "<accent>/arcana give</accent> <text>player item [amount]"
- "<accent>/arcana book</accent> <text>enchant [level] [player]"
- "<accent>/arcana enchant</accent> <text>enchant [level] on the held item (0 removes it)"
- "<accent>/arcana cast | end</accent> <text>spell [player]"
- "<accent>/arcana reload</accent> <text>reloads everything except the enchantment registry"FAQ
Which servers and versions does it run on?
It needs Paper or a Paper fork such as Purpur, because it uses Paper-only APIs (the dialog API for its menus, Adventure text components). Spigot and CraftBukkit are not supported. plugin.yml declares api-version 1.21.11, the jar is built against Paper API 1.21.11, and it needs Java 21 or newer.
Does it need other plugins?
No other plugin is required (plugin.yml has no hard dependencies).
How do I apply config changes?
Edit plugins/Arcana/config.yml and run /arcana reload (read config.yml again). A restart works too.
Does it run on Folia, or for Bedrock players?
Not tested on Folia, and plugin.yml does not declare folia-supported. Bedrock players (through Geyser) have not been tested either.
What licence do I get?
The licence terms are the BuiltByBit EULA shown on the listing. There is no licence key to enter, and the plugin never contacts a licence server.
Links
- BuiltByBit: listing coming soon
- Support Discord: discord.gg/KG4ubAZEuw
- All plugins on BuiltByBit: the collection
- More plugins: all plugins
- Custom work: commissions
Support
Questions, bugs or ideas: the active support Discord or the discussion tab on this page. When something breaks, include your server version and the error from the console.