Repository navigation
Configuration
DragonAltar 1.4.23 ships six editable YAML files. Each has a config-version. Runtime state is stored separately under plugins/DragonAltar/data and uses data-version.
Do not edit runtime data while Paper is running. Do not replace installed configuration with fresh bundled files during an upgrade.
The JAR also contains plugin.yml, Paper's packaged plugin descriptor. It declares API version 1.21, the /dragon command and /dragonaltar alias, all permission nodes, and the PlaceholderAPI and ScaledEnderDragon soft dependencies. Paper reads it from the JAR, so it is not copied out as an editable server configuration file. Its command and permission declarations are covered in Commands and Permissions.
| Name pattern | Unit |
|---|---|
*-ticks |
Server ticks, normally 20 per second |
*-seconds |
Seconds |
*-hours |
Real-time hours |
| Radius, range, distance | Blocks |
| Damage | Bukkit health points, where 2 points equal 1 heart |
additional-hearts |
Hearts |
| Fractions and chances | Values from 0 to 1 |
| Potion amplifiers | Bukkit zero-based amplifiers, so 1 displays as level II |
Shipped config-version: 3.
| Path | Default | Effect |
|---|---|---|
server-mode |
BETA |
DEVELOPMENT, BETA, or PRODUCTION
|
safety.allow-destructive-commands-in-production |
false |
Allows forced state and developer branches in production when deliberately enabled |
Operators do not bypass the production gate.
| Path | Default | Accepted or practical range |
|---|---|---|
event.end-world |
world_the_end |
Configured End world name |
event.nearby-player-radius |
128 | Greater than 0, at most 512 |
event.confirmation-seconds |
30 | 1 to 300 |
event.scaled-dragon-reward-delay-ticks |
40 | 0 to 12,000 |
event.altar-awakening-delay-ticks |
80 | 0 to 12,000 |
The confirmation duration is also used by general destructive-command tokens.
| Path | Default | Effect |
|---|---|---|
eligibility.allowed-game-modes |
[SURVIVAL, ADVENTURE] |
Empty means any mode, though Spectator still fails the alive check |
eligibility.minimum-playtime-ticks |
0 | Compared with Paper's PLAY_ONE_MINUTE statistic |
eligibility.required-permission |
Empty | Blank disables this requirement |
eligibility.exclusion-permission |
dragonaltar.eligibility.excluded |
A player with this permission is excluded |
eligibility.recently-joined-grace-seconds |
0 | Delay before a joining player can be selected |
Eligibility is shared by initial claims, reincarnation, limbo release, and automated transfer selection.
| Path | Default | Effect |
|---|---|---|
transfer.natural-death-countdown-seconds |
10 | Random reincarnation countdown, 0 to 3,600 |
transfer.dragonborn-killer-policy |
RANDOM_ELIGIBLE |
Collision policy when the killer already has a soul |
transfer.combat-tag-seconds |
15 | PvP logout tag, 0 to 3,600 |
Supported collision policies are RANDOM_ELIGIBLE, OPEN_RITUAL_SLOT, SOUL_DORMANT, and PENDING_TRANSFER.
| Path | Default | Validation |
|---|---|---|
instability.threshold |
6 | Cannot be negative; fracture starts only after this count |
instability.fracture-chance |
0.20 | 0 to 1 |
instability.teleport-min-seconds |
45 | Positive |
instability.teleport-max-seconds |
60 | At least the minimum, at most 86,400 |
instability.teleport-radius |
32 | 8 to 256 |
instability.bossbar-coordinate-update-seconds |
7 | Runtime clamps to at least 5 |
With the shipped threshold, Mother Soul cast 7 is the first cast eligible for the fracture roll.
| Path | Default |
|---|---|
forced-removal-ritual.selection-timeout-seconds |
60 |
forced-removal-ritual.animation-duration-ticks |
160 |
forced-removal-ritual.backfire-limbo-hours |
12 |
The caller count and required weakness-potion count are derived from the ritual's caller-pad layout, so they cannot drift apart. The timeout, animation duration, and limbo hours are configurable.
developer.enabled-in-beta defaults to true. When false, /dragon dev is
blocked in Beta. DEVELOPMENT enables developer commands and the setup-free
/dragon dev soul self <Akuma|Rev|Lamari> workflow. In Production, every
/dragon dev command is blocked unless the destructive production override is
true, including read-only-looking diagnostics; self-assignment remains blocked
outside DEVELOPMENT regardless of that override.
Shipped config-version: 4.
| Path | Default | 1.4.23 behavior |
|---|---|---|
internal-protection.enabled |
false |
Active switch for the cuboid protection listener |
internal-protection.required-for-event |
false |
When true, event validation requires enabled protection and same-world corners |
During the version 3 upgrade, the former protection.enabled value is migrated to the active switch and the old key is removed.
The file initially contains empty values for:
altar-centerritual-centeregg-displayinteractionarrivalfountaincrystalspedestalsprotection.pos1protection.pos2
The setup service writes world-uuid, world, x, y, z, yaw, and pitch under each location.
| Path | Default | Active |
|---|---|---|
display.material |
DRAGON_EGG |
Yes |
display.glow |
true |
Yes |
display.glow-color |
AA00AA |
Yes |
display.rotation-degrees-per-tick |
2.0 | Yes |
display.idle-particle |
DRAGON_BREATH |
Yes |
display.idle-particle-count |
2 | Yes, 0 to 128 |
display.idle-particle-interval-ticks |
10 | Yes, positive |
display.ambient-sound |
minecraft:block.beacon.ambient |
Yes |
display.ambient-sound-interval-ticks |
200 | Yes, positive |
display.heartbeat-sound |
minecraft:entity.warden.heartbeat |
Yes |
display.heartbeat-interval-ticks |
100 | Yes, positive |
The runtime task updates every 2 ticks. The configured rotation is multiplied by that interval.
| Path | Default |
|---|---|
recipe-display.enabled |
true |
recipe-display.offset.x |
0.0 |
recipe-display.offset.y |
1.8 |
recipe-display.offset.z |
0.0 |
recipe-display.billboard |
CENTER |
recipe-display.shadowed |
true |
recipe-display.see-through |
false |
recipe-display.line-width |
220 |
recipe-display.view-range |
32.0 |
recipe-display.lines |
Shipped title, five recipe lines, prompt, and remaining soul count |
Line width must be 1 to 2,048. View range must be greater than 0 and at most 128.
The %remaining_souls% token in these lines is replaced directly. Text uses MiniMessage.
Shipped config-version: 3.
offering-mode defaults to INVENTORY_CONSUME. Supported modes are INVENTORY_CONSUME, PEDESTAL_DEPOSIT, and HYBRID.
| Id | Material | Amount | Display |
|---|---|---|---|
elytra |
ELYTRA |
1 | Elytra |
nether-star |
NETHER_STAR |
1 | Nether Star |
dragon-breath |
DRAGON_BREATH |
16 | Dragon's Breath |
end-crystals |
END_CRYSTAL |
8 | End Crystals |
echo-shards |
ECHO_SHARD |
4 | Echo Shards |
Each amount must be 1 to 2,304. Materials must be valid Paper material names.
id, material, amount, and display-name are read. Elytra at any durability level is accepted.
| Path | Default | Active |
|---|---|---|
elytra.accept-enchanted |
true |
Yes |
elytra.accept-renamed |
true |
Yes |
elytra.accept-custom-lore |
true |
Yes |
elytra.include-equipped-chest-slot |
false |
Yes |
elytra.consumption-priority |
MOST_DAMAGED |
Yes |
elytra.blocked-pdc-keys |
[] |
Yes |
Priority values are MOST_DAMAGED, LEAST_DAMAGED, FIRST_MATCH, and LOWEST_ENCHANTMENT_VALUE.
| Path | Default |
|---|---|
phases.OFFERINGS_ACCEPTED |
40 ticks |
phases.ALTAR_CHARGING |
100 ticks |
phases.SOUL_AWAKENING |
80 ticks |
phases.PLAYER_BINDING |
60 ticks |
phases.ASCENSION |
60 ticks |
phases.COMPLETION |
40 ticks |
refund-on-cancel |
true |
restrict-movement |
true |
ritual-radius |
8.0 |
failure.cancel-on-damage |
true |
Phase durations cannot be negative. Ritual radius must be positive.
| Path | Default |
|---|---|
cinematic.boss-bar |
true |
cinematic.boss-bar-title |
Dragon Ritual: {phase} |
cinematic.boss-bar-color |
PURPLE |
cinematic.titles |
true |
cinematic.particle |
DRAGON_BREATH |
cinematic.particle-count |
30 |
Particle count is 0 to 512. The boss-bar color and particle must be valid Paper enum values.
Shipped config-version: 7.
| Path | Default | Validation |
|---|---|---|
energy.maximum |
100 | Must remain exactly 100 |
energy.regeneration |
2 | 0 to 100 |
energy.regeneration-interval-ticks |
20 | 1 to 1,200 |
energy.delay-after-cast-ticks |
60 | 0 to 72,000 |
presentation.maximum-particles-per-emission |
128 | Positive, at most 512 |
presentation.maximum-ring-points |
48 | Positive, at most 128 |
presentation.maximum-flame-arc-particles |
16 | Positive |
presentation.view-distance-blocks |
48 | Positive, at most 128 |
Target radius and range values are validated from 0 to 64. Runtime also hard-clamps target radius to 64 and each query to 128 entities.
| Path | Default |
|---|---|
focus.material |
ECHO_SHARD |
focus.name |
Dragon Focus in light purple MiniMessage |
focus.blocked-command-prefixes |
ah sell, auction sell, auctionhouse sell, market sell, sell
|
focus.blocked-inventory-command-prefixes |
sellall |
Focus protection listeners are always active for tagged Focus items.
Command prefix matching is case-insensitive, collapses whitespace, accepts a leading slash, and also matches namespaced command labels.
| Path | Default | Active |
|---|---|---|
passives.additional-hearts |
2 | Yes |
passives.slow-falling |
true |
Yes |
passives.neutral-endermen |
true |
Yes |
passives.particles |
true |
Yes |
named-souls.akuma.cold-temperature-threshold |
0.15 | Yes |
named-souls.akuma.cold-speed-bonus |
0.15 | Yes |
named-souls.rev.dimension-energy-multiplier |
1.5 | Yes |
named-souls.lamari.armor-toughness |
4 | Yes |
| Ability id | Energy | Cooldown |
|---|---|---|
wings |
40 | 45 seconds |
roar |
35 | 25 seconds |
akumas-trail |
25 | 12 seconds |
akumas-hush |
60 | 60 seconds |
absolute-zero |
Full bar | 120 seconds |
revs-rend |
25 | 12 seconds |
wrath-of-rev |
60 | 60 seconds |
infernos-wrath |
Full bar | 120 seconds |
lamaris-fault |
30 | 18 seconds |
lamaris-reckoning |
60 | 60 seconds |
titans-bulwark |
Full bar | 120 seconds |
ultimate.shared-cooldown-seconds defaults to 120.
The full leaf-by-leaf reference, including presentation, sound, Rev Hunt, drawback, and resonance tuning, is on Ability Configuration.
| Section | Important defaults |
|---|---|
rev-hunt.heat-bar |
Enabled, REV HEAT title, yellow/red/purple tiers, progress overlay |
rev-hunt.heat |
Maximum 100, 4 per direct marked hit, 20-tick target delay, player cap 20, mob cap 3, mob health floor 12, decay 2 per second after 100 ticks |
rev-hunt.mark |
120-tick duration, 180-tick remaining cap, 8 targets |
rev-hunt.finisher |
120-tick armed duration, reset Heat when consumed |
rev-hunt.tracking |
24-block range, 4 cues, 4 particles each, 1.8-block directional cue |
rev-hunt.sounds |
Tier gain and finisher-ready sounds, volumes, and pitches |
Heat mobility and tracking thresholds default to 35 and 65. The threshold order is validated.
resonances.unlock-range-blocks defaults to 50. All four cooldowns default to 720 seconds. Pair costs are 70 and Dragon Trinity costs 100.
| Resonance | Active time | Main radii | Main damage |
|---|---|---|---|
| Thermal Convergence | 6 seconds | 11 | 12 initial, 2 pulses, 6 finisher |
| Volcanic Aegis | 10 seconds | 6 pulse, 10 finisher | 10 initial, 2 pulses, 3 retaliation, 8 finisher |
| Glacial Bastion | 10 seconds | 7 domain, 11 finisher | 1 pulses, 8 finisher |
| Dragon Trinity | 12 seconds | 16 field, 18 finisher | 18 initial, 4 pulses, 14 finisher |
See Resonances for buffs, debuffs, wards, healing, energy restoration, and shared cooldown behavior.
Shipped config-version: 1.
The file contains these definitions:
| Id | Shipped steps |
|---|---|
altar-awaken |
Dragon growl, portal ring, cosmetic lightning |
egg-deplete |
Dragon Breath spiral, scale egg display to zero |
pvp-transfer |
Dragon growl, temporary wings, wait |
egg-idle |
Portal ring |
egg-claim |
Amethyst chime, Dragon Breath spiral |
soul-depart |
Soul Fire Flame spiral |
soul-arrive |
Cosmetic lightning, Dragon Breath ring |
natural-transfer |
Soul spiral, temporary wings |
ritual-start |
Beacon sound, visual levitation, enchantment ring |
ritual-egg |
Display move, rotate, and return |
ritual-complete |
Cosmetic lightning, dragon growl, temporary wings |
Supported action types:
SOUND
PARTICLE
PARTICLE_RING
PARTICLE_SPIRAL
LIGHTNING_EFFECT
TITLE
SUBTITLE
ACTION_BAR
BROADCAST
BOSS_BAR
PLAYER_GLOW
PLAYER_LEVITATE
TEMPORARY_WINGS
DISPLAY_MOVE
DISPLAY_SCALE
DISPLAY_ROTATE
DISPLAY_FADE
WAIT
Every step uses at-tick. Time and duration must be 0 to 72,000 ticks. Particle count must be 0 to 512. Particle and sound identifiers are validated. Cosmetic lightning uses strikeLightningEffect, so it does not deal damage or create fire.
Unknown or invalid runtime steps are logged and skipped.
Shipped config-version: 8.
Ordinary localized text uses MiniMessage. Replacement values supplied by the plugin are inserted as unparsed text, which prevents names and values from injecting MiniMessage tags.
The shipped keys are grouped below.
| Group | Keys |
|---|---|
| General command |
no-permission, player-only, command-error, help, player-status
|
| Setup and event |
setup-incomplete, event-started, event-defeated, event-recovery-required
|
| Souls and transfer |
dragonborn-gain, dragonborn-transfer, no-eligible-recipient, natural-death, natural-countdown, reincarnation, combat-log-transfer
|
| Focus and settings |
focus-restored, focus-unavailable, focus-protected, focus-inventory-full, settings-updated, settings-status
|
| Initial ritual |
ritual-refund, ritual-error
|
| Abilities |
abilities-list, ability-cooldown, ability-ultimate-cooldown, ability-full-energy, ability-energy, ability-cancelled, ability-not-dragonborn, ability-unavailable, ultimate-downside
|
| Resonances and HUD |
ability-resonance-cooldown, ability-resonance-lost, energy-hud, resonance-unlocked, resonance-lost, resonance-cast
|
| Mother Soul |
removal-ritual-invalid-altar, removal-ritual-participants, removal-ritual-no-targets, removal-ritual-busy, removal-ritual-expired, removal-ritual-invocation, removal-ritual-cleansing-complete, removal-ritual-backfire, all-dragonborn-silenced
|
| Limbo and fracture |
limbo-soul-released, fractured-soul-manifest, fractured-soul-claimed, fractured-soul-already-bound
|
| History and display |
history-entry, history-empty, protection-bypass
|
player-only handles commands that require a player. Setup-capable players are warned with setup-incomplete while validation fails, and event administrators receive event-recovery-required while manual recovery is needed. event-started is broadcast after Paper accepts the vanilla respawn ritual, and ritual-error reports player ritual start failures. The recipe display uses altar.yml lines instead of a message key.
DragonAltar writes:
data/event.ymldata/altar-state.ymldata/souls.ymldata/players.ymldata/rituals.ymldata/cooldowns.ymldata/pending-transfers.ymldata/consequences.yml
Writes use one serialized asynchronous queue, a temporary file, and a replace move. Shutdown flushes pending work.
| Value | Ceiling |
|---|---|
| Ability radius or range | 64 blocks |
| Entities processed by a target query | 128 |
| Particles in one staged emission | 512 |
| Ring points | 128 |
| Presentation view distance | 128 blocks |
| Animation step time or duration | 72,000 ticks |
| Ritual particles | 512 |
| Event nearby-player radius | 512 blocks |
| Fractured Soul teleport radius | 256 blocks |
/dragon system reload reloads the editable files and rebuilds services. If validation fails, DragonAltar disables itself and prints the errors. Prefer a full restart after large configuration changes.
On load, DragonAltar:
- Creates a missing file from its packaged default.
- Loads installed UTF-8 YAML.
- Loads the packaged defaults.
- Applies known targeted migrations.
- Adds only missing default leaves.
- Advances
config-version. - Preserves values already present at current paths.
Targeted migrations cover:
- The original one-Nether-Star beta ritual recipe
- Former Mother Soul message defaults
- Ability HUD status and resonance fields
- Renamed resonance tunables
- Rev version 6 timing and combat settings
- The former altar-protection switch
Deleting a key causes its packaged default to return at the next load. Use a documented boolean or allowed zero value to disable a feature.
For a disposable plugin or add-on test server, use:
server-mode: DEVELOPMENTWith dragonaltar.use and dragonaltar.developer, run /dragon dev soul self <Akuma|Rev|Lamari>. This bypasses setup and event progression while creating
normal persisted ownership, passives, Focus, energy, ability tasks, and public
API events. It refuses to take a soul held or reserved by someone else.
For production, use:
server-mode: PRODUCTION
safety:
allow-destructive-commands-in-production: falseKeep the override false during normal service. See Administrator Guide for backups and Troubleshooting for rejected values.
- Home
- Installation
- Altar Setup
- Ancient Dragon Event
- Dragon Souls
- Rituals
- Abilities
- Resonances
- Player Guide
- Administrator Guide
- Configuration
- Ability Configuration
- Commands
- Permissions
- Add-on Development
- API Reference
- Integrations
- Data and Privacy
- Troubleshooting
- FAQ
DragonAltar is owned by Silverfox0338.