Skip to content

Classes

Configured in classes.yml. Command: /class (aliases /classes, /pvpclass).

A class is chosen by what you wear: put on a class's whole armour set — helmet, chestplate, leggings and boots — and after a 10-second warmup the class turns on. Take one piece off and it turns off at once.

Class Armour In short
Diamond diamond The ordinary PvP set: no effects
Bard gold Supports the team: buffs teammates with held items, bursts with energy
Archer leather Fast; its arrows mark a target, who then takes more damage
Rogue chainmail Fast and agile; a golden sword hit from behind is a backstab
Miner iron For mining: haste, night vision, invisible deep underground

Every number below is a setting, and you can create your own classes from scratch.

/class               # your class, its energy, the warmup left
/class list          # every class and its armour
/class info bard     # everything a class does
/dyes                # the effects of each dye colour, in a menu

How a class turns on

  1. Put on the whole set. The scoreboard counts the warmup down (%class_line%) — there, not in chat.
  2. When the warmup ends, the class is on: its effects apply, its items work.
  3. Take any piece off — or swap to another set — and the class is off at once. A new set starts a new warmup.

A logout or a death drops the class; the next time you wear the set, the warmup starts again. Kits (/kit) that hand out a class's armour make the class turn on the same way.

Classes in the Citadel

Inside a Citadel, pearls and partner items are refused but class abilities keep working: the Citadel is where classes decide the fight.

Effects never cut a stronger one short

A class never replaces a stronger effect you already have: a Speed III potion is not cut down to a Bard's Speed II, and a weaker, longer effect comes back once a stronger one ends. When the class turns off, only the effects it gave are taken back.

Diamond

Full diamond armour. No effects: the ordinary PvP set, listed so the scoreboard and /class name it. No warmup: it turns on as soon as the set is on.

Diamond — as shipped in classes.yml
diamond:
  display-name: "&bDiamond"
  # No warmup: the Diamond gives no effect, so there is nothing to wait for.
  warmup-seconds: 0
  armor:
    helmet: DIAMOND_HELMET
    chestplate: DIAMOND_CHESTPLATE
    leggings: DIAMOND_LEGGINGS
    boots: DIAMOND_BOOTS

Bard

Full gold armour. The Bard is the team's support.

Always: Speed II, Regeneration I, Resistance II.

Holding an item buffs every teammate within 20 blocks — the Bard included — for as long as it stays in hand, and 8 seconds after it is put away or a teammate leaves the range. Scrolling through the items works: the effect comes the moment an item is in hand, and is renewed four times a second (held-effect-interval-ticks), so a Bard can give three effects or more in one sweep of the wheel.

Hold Teammates get
Sugar Speed II
Blaze Powder Strength I — not for the Bard
Iron Ingot Resistance I
Ghast Tear Regeneration I
Feather Jump Boost II
Magma Cream Fire Resistance I
Ink Sac Invisibility I

Right-clicking the item spends energy for a stronger burst, and uses up the item:

Right-click Effect Reaches Energy
Sugar Speed III, 8 s teammates 20
Blaze Powder Strength II, 5 s teammates 45
Iron Ingot Resistance III, 5 s teammates 40
Ghast Tear Regeneration III, 5 s teammates 40
Feather Jump Boost VII, 5 s teammates 25

Magma Cream and the Ink Sac have no burst.

Energy fills by 1 per second up to 100 while the class is on, and starts at 0 each time it turns on. The scoreboard shows it (%class_energy_line%), and a burst says what it cost and what is left: Used Speed III (-20 energy, 45/100 left).

  • Every effect reaches the Bard too, except the Strength of a held blaze powder: the team gets it, the Bard does not (include-self: false). The blaze powder burst, Strength II, reaches the Bard like the team.
  • Bard effects reach the Bard's team only, not allies — targets: team-and-allies changes that.
  • To make the Bard the only source of Strength, forbid Strength potions: strength: 0 under potions.caps in limiters.yml (potion caps). A Bard's effects are not potions: the potion cap never touches them. To cap an effect whatever gives it — a Bard's Resistance included — use effects.caps (effect caps).
  • A click effect of your own with targets: enemies — a Wither on a spider eye, say — reaches only enemies the Bard could hit: not on a safe zone, not during SOTW, never a teammate, and an ally only in an event area — the same rules as a blow (Combat).
  • Held and click effects do not work while the Bard stands in a safe zone (abilities-in-safe-zones).
Bard — as shipped in classes.yml
bard:
  display-name: "&6Bard"
  max-per-team: 0
  armor:
    helmet: GOLDEN_HELMET
    chestplate: GOLDEN_CHESTPLATE
    leggings: GOLDEN_LEGGINGS
    boots: GOLDEN_BOOTS
  passive-effects:
    speed: 2
    regeneration: 1
    resistance: 2
  energy:
    max: 100
    per-second: 1.0
  held-effects:
    SUGAR:
      effect: speed
      level: 2
      seconds: 8
      radius: 20
      targets: team
    BLAZE_POWDER:
      effect: strength
      level: 1
      seconds: 8
      radius: 20
      targets: team
      # The Bard gives Strength I to the team, not to themself; the burst
      # (click-effects) reaches the Bard too.
      include-self: false
    IRON_INGOT:
      effect: resistance
      level: 1
      seconds: 8
      radius: 20
      targets: team
    GHAST_TEAR:
      effect: regeneration
      level: 1
      seconds: 8
      radius: 20
      targets: team
    FEATHER:
      effect: jump_boost
      level: 2
      seconds: 8
      radius: 20
      targets: team
    MAGMA_CREAM:
      effect: fire_resistance
      level: 1
      seconds: 8
      radius: 20
      targets: team
    INK_SAC:
      effect: invisibility
      level: 1
      seconds: 8
      radius: 20
      targets: team
  click-effects:
    SUGAR:
      effect: speed
      level: 3
      seconds: 8
      radius: 20
      targets: team
      energy: 20
    BLAZE_POWDER:
      effect: strength
      level: 2
      seconds: 5
      radius: 20
      targets: team
      energy: 45
    IRON_INGOT:
      effect: resistance
      level: 3
      seconds: 5
      radius: 20
      targets: team
      energy: 40
    GHAST_TEAR:
      effect: regeneration
      level: 3
      seconds: 5
      radius: 20
      targets: team
      energy: 40
    FEATHER:
      effect: jump_boost
      level: 7
      seconds: 5
      radius: 20
      targets: team
      energy: 25

Archer

Full leather armour. Fast and fragile.

Always: Speed III, Resistance II.

Archer tag: an arrow hit from an Archer marks the target for 10 seconds. A marked player takes 15% more damage from everybody, not only the Archer. A new hit starts the mark over. Both players are told, and the marked player's scoreboard shows the time left (%archer_tag_line%).

Right-click Sugar: Speed IV for 8 seconds, every 30 seconds.

Dyed sets

Dye the whole leather set one colour and the Archer's arrows may add an effect to whoever they hit. As shipped:

Colour Chance per arrow hit Effect
Green (the dye made from cactus) 20% Poison I, 10 s
Black (the ink sac) 20% Wither I, 10 s
Blue (lapis lazuli) 20% Slowness I, 10 s

Every colour can have its own effect, chance and duration — dye-effects in classes.yml, with gray given as a commented example. /dyes (alias /dyecolors) opens a menu of every colour with an effect: its dye, the class, the effect and its duration, the chance per hit — and which one your set is right now. From the console, it prints the same list. /class also shows the colour your set reads as, and /class info archer lists them all.

  • All four pieces must be dyed and read as the same colour. A piece dyed with several dyes counts as the dye its colour is closest to — one green and one lime dye still read as green, one green and two lime as lime.
  • The effect follows the hit: an arrow refused by the rules of combat (safe zone, SOTW, a teammate) gives nothing.
  • The archer tag and the dye effect are independent: a hit always tags, and may also poison.

Dyeing keeps the enchantments. Dye a piece the vanilla way — the piece and a dye in the inventory's crafting grid, or at a crafting table — and it keeps everything it carried: enchantments, custom enchants, name and lore. The game builds the dyed piece from the original, only changing its colour.

Archer — as shipped in classes.yml
archer:
  display-name: "&aArcher"
  max-per-team: 0
  armor:
    helmet: LEATHER_HELMET
    chestplate: LEATHER_CHESTPLATE
    leggings: LEATHER_LEGGINGS
    boots: LEATHER_BOOTS
  passive-effects:
    speed: 3
    resistance: 2
  archer-tag:
    seconds: 10
    damage-multiplier: 1.15
  dye-effects:
    # Green dye, made from cactus.
    GREEN:
      effect: poison
      level: 1
      seconds: 10
      chance: 20
    # Black dye, the ink sac's.
    BLACK:
      effect: wither
      level: 1
      seconds: 10
      chance: 20
    # Blue dye, the lapis lazuli's.
    BLUE:
      effect: slowness
      level: 1
      seconds: 10
      chance: 20
    # More colours, if your server wants them:
    # GRAY:
    #   effect: weakness
    #   level: 1
    #   seconds: 5
    #   chance: 20
  click-effects:
    SUGAR:
      effect: speed
      level: 4
      seconds: 8
      targets: self
      cooldown-seconds: 30

Rogue

Full chainmail armour. Fast, agile, and dangerous from behind.

Always: Speed III, Jump Boost II, Resistance I.

Backstab: a melee hit from behind with a golden sword deals 3 hearts through armour — armour, enchantments and Resistance do not reduce it — and the sword breaks. Then 15 seconds before the next one.

  • From behind means standing on the victim's back side and facing roughly the way they face (within 60°): walking backwards into somebody's face is not a backstab, and neither is standing behind them looking sideways.
  • A backstab follows the rules of any hit: it cannot land on a safe zone, during SOTW, or on a teammate.
  • A backstab that would kill kills as an ordinary hit, credited to the Rogue — deathban, DTR and statistics follow as usual.

Right-click: Sugar gives Speed IV, Feather gives Jump Boost V — 8 seconds each, every 30 seconds. They are the Rogue's alone, and say how long they last: Used Jump Boost V - applied for 8s.

Rogue — as shipped in classes.yml
rogue:
  display-name: "&7Rogue"
  max-per-team: 0
  armor:
    helmet: CHAINMAIL_HELMET
    chestplate: CHAINMAIL_CHESTPLATE
    leggings: CHAINMAIL_LEGGINGS
    boots: CHAINMAIL_BOOTS
  passive-effects:
    speed: 3
    jump_boost: 2
    resistance: 1
  backstab:
    weapon: GOLDEN_SWORD
    damage: 6.0
    cooldown-seconds: 15
    break-weapon: true
    max-angle: 60
  click-effects:
    SUGAR:
      effect: speed
      level: 4
      seconds: 8
      targets: self
      cooldown-seconds: 30
    FEATHER:
      effect: jump_boost
      level: 5
      seconds: 8
      targets: self
      cooldown-seconds: 30

Miner

Full iron armour. For mining, not fighting.

Always: Haste II, Night Vision, Fire Resistance.

Invisible below Y 20: deep underground, the Miner is invisible — handy for mining without being hunted.

Miner — as shipped in classes.yml
miner:
  display-name: "&eMiner"
  max-per-team: 0
  armor:
    helmet: IRON_HELMET
    chestplate: IRON_CHESTPLATE
    leggings: IRON_LEGGINGS
    boots: IRON_BOOTS
  passive-effects:
    haste: 2
    night_vision: 1
    fire_resistance: 1
  invisible-below-y: 20

Team limits

Each class can be limited per team — for example two Bards and three Archers — with max-per-team. Every class ships with no limit (0). A player whose team is full is told so when the warmup ends, and the class stays off until they take a piece off and try again.

Creating your own

Every part of a class is optional except its armour, and any class may use any part. A class is a block of YAML in classes.yml:

classes.yml
classes:
  assassin:
    display-name: "&5Assassin"
    permission: "myserver.class.assassin"   # empty for everybody
    max-per-team: 2
    armor:
      helmet: NETHERITE_HELMET
      chestplate: NETHERITE_CHESTPLATE
      leggings: NETHERITE_LEGGINGS
      boots: NETHERITE_BOOTS
    passive-effects:
      speed: 2
      invisibility: 1
    backstab:
      weapon: NETHERITE_SWORD
      damage: 8.0            # half-hearts: four hearts
      cooldown-seconds: 20
      break-weapon: false
      max-angle: 45
    click-effects:
      INK_SAC:
        effect: blindness
        level: 1
        seconds: 4
        radius: 8
        targets: enemies
        cooldown-seconds: 45
Part Does
armor The four pieces that make the set (required)
display-name, permission, max-per-team Its name; who may use it; how many per team
passive-effects Effects kept for as long as the class is on
energy max and per-second: what click effects spend
held-effects An effect handed out while an item is held
click-effects An effect handed out on a right-click, with an energy cost, a cooldown, and whether the item is used up
archer-tag Arrow hits mark the target, who takes more damage
backstab A hit from behind with a weapon deals fixed damage through armour
invisible-below-y Invisible below a height
dye-effects Leather sets: per dye colour, a chance for the class's arrows to give an effect

Targets of held and click effects: self (the user alone), team (the user and teammates in range), team-and-allies, or enemies (everybody else in range the user could hit).

Every key, its default and an example of each part taken from the shipped file are in the classes.yml reference.

After editing, /hcf reload applies the file — to classes already on, too. An unknown item or effect is reported in the console and left out; a class whose armour is unknown, or whose set another class already uses, is skipped. The shipped file documents every setting.