Event types
The twelve kinds of event, what each one counts, and the settings that belong to each type.
Every event in events.yml has a type. The type decides which player actions are counted and which of the optional settings mean anything. The seven count types score the actions players already take, while the five objective types place something in the world for players to finish, and the point value of each action comes from the event's own targets list, so two mining events can value the same block differently.
| Type | What it counts | Point value comes from |
|---|---|---|
MINING | Blocks broken | targets, one value per block |
FARMING | Crops harvested | targets, one value per crop |
LOGGING | Logs and stems broken | targets, one value per log |
FISHING | Things pulled out of the water | targets, one value per catch |
ENCHANTING | Enchants at the table and the anvil | Levels spent, or one point per item |
COMBAT | Damage dealt to hostile mobs | Hearts of damage, times the mob's value |
FARMPOINTS | All of the above at once | farmpoints.yml |
OBJECTIVE_BREAK | Blocks placed in a zone that get broken | objective.points |
MOB_HUNT | Objective mobs killed in a zone | objective.mobs, a value per mob |
EXCAVATION | Brushed relics in a zone | objective.reward.points |
BARREL_CLAIM | Barrels opened in a zone | objective.reward.points |
TARGET_HIT | Target entities hit in a zone | objective.reward.points |
Every type runs the same fairness checks first. Creative and spectator players, staff with the bypass permission, disabled worlds and blocks placed during the event are all worth nothing, whatever the type. See Scoring rules.
MINING
Counts every block broken that is listed under targets. A block that is not listed is worth default, which the shipped events set to 0 so only the listed blocks score.
type: MINING
targets:
default: 0
STONE: 1
COBBLESTONE: 1
DIAMOND_ORE: 15Block names are the ones Minecraft uses, in capitals with underscores. A name the running version does not have stops that event from loading, with a console warning naming the key, and every other event still works.
FARMING
Counts crops harvested. Age based crops such as wheat, carrots, potatoes, beetroot, nether wart and cocoa only count when they are fully grown, so tearing up a seedling scores nothing. Crops with no growth stages, such as sugar cane, cactus, bamboo, melon and pumpkin, count as soon as they are broken.
type: FARMING
settings:
require-fully-grown: true
targets:
default: 0
WHEAT: 2
NETHER_WART: 3
MELON: 3| Setting | What it does | Default |
|---|---|---|
require-fully-grown | Age based crops only count at full growth. Turn it off to count every stage. | true |
A crop replanted during the event still counts once it has fully regrown, even though a player put it down. That is the one exception to the placed block rule, and it exists so a shared farm does not turn into a field nobody can score from after the first harvest. Bamboo is left out of that exception because it can be placed already at full height.
LOGGING
Counts logs, wood, stems and hyphae broken. The shipped timber_run sets default: 1 so any log not listed still scores one point, and lists the rarer woods at more.
type: LOGGING
targets:
default: 1
CHERRY_LOG: 3
CRIMSON_STEM: 3FISHING
Counts what a player reels in. Only a real catch counts, not the moment the bobber lands or a bite that got away.
type: FISHING
targets:
default: 0
TROPICAL_FISH: 5
PUFFERFISH: 3
settings:
count-treasure: false
count-junk: false| Setting | What it does | Default |
|---|---|---|
count-treasure | Whether treasure catches can score at all. They still need to be listed under targets. | false |
count-junk | The same for junk catches. | false |
Treasure means a bow, an enchanted book, a fishing rod, a name tag, a nautilus shell or a saddle. Junk means a lily pad, a bowl, leather, leather boots, rotten flesh, a stick, string, a potion, a bone, an ink sac or a tripwire hook. Anything else is a fish and only needs to be in targets.
ENCHANTING
Counts enchants done at an enchanting table and at an anvil. At the table the cost is the level cost of the slot the player picked. At the anvil the cost is what the anvil charged, and only a result that adds a new enchantment or raises the level of one counts, so renaming and plain repairs are worth nothing. A shift click that crafts a whole stack counts as one result.
type: ENCHANTING
settings:
min-levels: 5
count-anvil: true
count-table: true
points-per-level: 1| Setting | What it does | Default |
|---|---|---|
min-levels | Enchants that cost fewer levels than this are ignored, so nobody can farm one level enchants in a loop. | 0 |
count-anvil | Whether the anvil counts. | true |
count-table | Whether the enchanting table counts. | true |
points-per-level | Points for every level spent. Set it to 0 to score one point per item instead. | 0 |
An anvil result a player cannot pay for is never taken out of the anvil, so it never scores either. An enchanting event has no targets list.
COMBAT
Counts damage dealt to hostile mobs. What is counted is the damage that actually landed after armour and resistance, and anything past the mob's remaining health is trimmed, so finishing a mob on one heart is worth one heart and not a full hit. Arrows, thrown potions and a tamed pet all count towards the player behind them.
type: COMBAT
settings:
ignore-spawner-mobs: true
points-per-damage: 1
targets:
HOSTILE: 1| Setting | What it does | Default |
|---|---|---|
ignore-spawner-mobs | Skip mobs that came out of a spawner, so a grinder does not decide the event. | false |
points-per-damage | A multiplier on every heart of damage. | 1 |
targets takes either HOSTILE with one value, which covers every hostile mob, or a list of mob names such as ZOMBIE: 1 and CREEPER: 2 to count only those. Players, villagers, armour stands and tamed pets never count whatever is listed. Hostile covers every monster, plus slimes, phantoms, ghasts, hoglins, shulkers, the ender dragon and the wither.
A point is one heart of damage, times the value of that mob, times points-per-damage. Two hearts on a zombie worth 1 with the default multiplier is two points.
FARMPOINTS
The mixed event. Mining, farming, logging, fishing, enchanting and combat all count at once, converted to one score using the values in farmpoints.yml, so a miner and a farmer can compete against each other in the same event. It has no targets and no settings of its own, everything comes from that one file. See FarmPoints.
type: FARMPOINTSThe objective events
The other five types, OBJECTIVE_BREAK, MOB_HUNT, EXCAVATION, BARREL_CLAIM and TARGET_HIT, work differently from the seven above. Instead of counting actions players already take, the plugin places something inside a zone and each one that gets finished is worth points. These types all share three things that the counting types do not use.
zoneslists one or more zone names fromzones.yml. The objectives are placed inside the first zone in the list, the event is dropped at load if it names no zone or names one that is not inzones.yml, and the warning names the missing one.zonePointsnames points inside the chosen zone. They are the exact spots some types place things at, and a point that is not in the zone's own list drops the event at load.objectiveis the block that holds the type specific settings. Its shape depends on the type, and the shared keys aretotal,spawn,spawnIntervalSeconds,respawnAfterComplete,completionand an optionalreward.
| Shared objective key | What it does | Default |
|---|---|---|
total | How many objectives the event makes. It must be 1 or more. | none, required |
spawn | For OBJECTIVE_BREAK, EXCAVATION and BARREL_CLAIM, ALL lays objectives down at once and PROGRESSIVE brings them out over time. | ALL |
spawnIntervalSeconds | For progressive block objectives, the seconds between blocks; for TARGET_HIT, the seconds between target spawn attempts. | 30 for progressive blocks, 0 otherwise |
activeCount | For OBJECTIVE_BREAK, EXCAVATION and BARREL_CLAIM, the number of live blocks or barrels at once. Free named points are picked at random and never hold two objective blocks. | total |
respawnSeconds | For block objectives, how long to wait before a completed objective is replaced. The original block is restored at once; zero disables this delayed replacement. | 0 |
respawnAfterComplete | With completion: FIXED, when set the event does not end the moment every objective is done and instead runs to its timer. | false |
completion | TIMED runs the event to its timer no matter what, FIXED ends it the moment every objective is finished, unless respawnAfterComplete is set. | TIMED |
reward | An optional block given to a player the moment they finish one objective, on top of its points. See Rewards for the item and command shapes it shares with the end of event rewards. | none |
Zones and their points are written with the wand and the zone commands, not by hand in the config. See Commands for how that works.
For OBJECTIVE_BREAK, EXCAVATION and BARREL_CLAIM, activeCount defaults to total. The plugin chooses active named points at random and does not place two objective blocks at the same point. A FIXED event ends after total objectives have been completed, even when activeCount is lower. With respawnSeconds: 0, a completed block has no delayed replacement, though objectives not yet spawned can fill free slots as the event progresses. With a positive delay, the original block is restored immediately and a replacement appears after the delay at a free point, preferring a different point.
Guards
Every objective type can have a guards list under objective. Each entry uses either entity for a normal Minecraft mob or mythic for a MythicMobs mob, plus points, amount per point and respawnSeconds.
objective:
guards:
- entity: ZOMBIE
points: [egg_one, egg_two]
amount: 2
respawnSeconds: 30
- mythic: arena_guard
points: [egg_one]
amount: 1
respawnSeconds: 0Guards attack players and can be killed, but they give no points, do not count towards total or any other objective cap, and drop no loot or experience. A killed guard returns after respawnSeconds when that value is above zero. All guards are removed when the event ends.
OBJECTIVE_BREAK
The plugin swaps one block at each chosen point for the material under material, and the player who breaks that block takes the objective. A point that has not been broken still sits there as the replacement block, and breaking a block that was never an objective scores nothing.
type: OBJECTIVE_BREAK
zones: [arena]
zonePoints: [egg_one, egg_two]
objective:
total: 6
spawn: ALL
completion: FIXED
material: TURTLE_EGG
points: 1| Objective key | What it does | Default |
|---|---|---|
material | The block placed at each point. A name the running version does not have drops the event at load. | required |
points | The score each broken objective is worth. | 1 |
MOB_HUNT
The plugin spawns mobs inside the zone on a timer and the kill of an objective mob takes it. Mobs are listed under mobs, one entry per line, and each entry is picked by its weight when it is time to spawn. A vanilla mob is named with entity, and a MythicMobs mob is named with mythic in place of it. MythicMobs mobs only spawn when that plugin is present and healthy, and otherwise that entry is skipped. An itemDrop on an entry gives that item when the mob is killed, either a vanilla material or an ItemsAdder item.
type: MOB_HUNT
zones: [arena]
objective:
total: 12
completion: TIMED
spawnEverySeconds: 5
maxActive: 8
spawnMode: MIXED
spawnPoints: [hunt_gate, hunt_bridge]
pointChance: 60
mobs:
- entity: SPIDER
weight: 7
points: 1
itemDrop: spider_fang
- mythic: wolf
weight: 2
points: 3| Objective key | What it does | Default |
|---|---|---|
mobs | The weighted list of mobs that can be spawned. An entry without a usable mob is dropped, and if nothing is left the event is dropped at load. | required |
spawnEverySeconds | The seconds between spawn attempts. | 5 |
maxActive | The most objective mobs that can be live at once. | 8 |
huntTotal | A kill ceiling the spawner obeys when completion is TIMED, so a short event can end with kills left on the table. | 0, no ceiling |
spawnMode | RANDOM uses safe random ground, POINTS uses named points and MIXED chooses between the two. | RANDOM |
spawnPoints | Named points used by POINTS and MIXED. An empty list falls back to the event's zonePoints, then every point in the zone. | empty |
pointChance | In MIXED, the chance out of 100 that a spawn uses a named point. | 50 |
When completion is FIXED, the event keeps spawning until the total kills are in, then it ends. maxActive still caps how many are live at once, and once the ceiling is reached no more spawn until one drops.
Random hunt locations are inside loaded chunks of the zone and are only accepted when they have solid ground with two free blocks above. A point spawn is spread by up to 1.5 blocks around the named point, while staying inside the zone.
EXCAVATION
The plugin places suspicious blocks at the chosen points and players brush them open with a vanilla brush. A brushing is counted when the brush action finishes, and the number of full brushings that clears one relic is brushHits. The block comes back as suspicious between brushings. The material must be SUSPICIOUS_SAND or SUSPICIOUS_GRAVEL. A material set to anything else is put back to SUSPICIOUS_SAND with a console note, and the event still runs.
type: EXCAVATION
zones: [arena]
zonePoints: [relic_one, relic_two]
objective:
total: 6
spawn: PROGRESSIVE
spawnIntervalSeconds: 30
completion: FIXED
digMaterial: SUSPICIOUS_SAND
brushHits: 3| Objective key | What it does | Default |
|---|---|---|
digMaterial | The suspicious block placed at each point. | SUSPICIOUS_SAND |
brushHits | The full brushings needed to clear one relic. | 3 |
Points come from objective.reward.points, the same block the counting and other objective types use.
BARREL_CLAIM
The plugin places barrels, either at the named points or at random spots inside the zone, and the player who right clicks a barrel takes it. The old claim-items list still gives guaranteed items, while loot adds independently rolled entries using the shapes in Rewards. The point value is objective.reward.points.
type: BARREL_CLAIM
zones: [arena]
objective:
total: 8
spawn: PROGRESSIVE
spawnIntervalSeconds: 30
completion: TIMED
placement: RANDOM_IN_ZONE
claim-items:
- material: GOLD_INGOT
amount: 2
loot:
- type: ITEM
material: EMERALD
amount: 1-3
chance: 25
guide:
enabled: true
format: "&e%arrow% &fNearest barrel &e%distance% &fblocks"| Objective key | What it does | Default |
|---|---|---|
placement | AT_POINTS places a barrel at each named point, RANDOM_IN_ZONE places it at a random spot inside the zone. | AT_POINTS |
claim-items | Guaranteed vanilla items given on every claim. This older key remains supported. | none |
loot | Loot entries rolled when a player claims a barrel. See Loot entries. | none |
guide.enabled | Shows an action bar guide to the nearest barrel to players in the zone's world. | false |
guide.format | The action bar text. %arrow% is replaced with the direction arrow and %distance% with the rounded distance in blocks. | event.barrel-guide-format |
The guide re-aims at the nearest live barrel on every update. It is shown only in the zone's world and is cleared when no barrels remain or the event ends. An empty guide.format uses the event.barrel-guide-format key from the selected language file.
TARGET_HIT
The plugin spawns a target entity inside the zone on a timer and the hit of one takes it. Targets only accept damage from a player's arrow or another projectile shot by a player. The entity, appearance, movement, particle and sound all come from the objective block. A hit sound is played at the target and to the player who shot it.
type: TARGET_HIT
zones: [arena]
objective:
total: 10
spawnIntervalSeconds: 5
completion: TIMED
entityType: ARMOR_STAND
model: ""
headBlock: GOLD_BLOCK
invisible: false
particle: HEART
sound: ENTITY_ARROW_HIT_PLAYER
activeTargets: 5
movement:
enabled: true
speed: 0.15
minHeight: 4
maxHeight: 12
area: ZONE
areaPoints: []| Objective key | What it does | Default |
|---|---|---|
entityType | The entity spawned as the target. A name with no such entity drops the event at load. | ARMOR_STAND |
activeTargets | The maximum number of live targets. | total |
model | An optional ItemsAdder item id worn on the head of an armour stand target. Left empty for no ItemsAdder model. | empty |
headBlock | An optional item worn on the head of an armour stand target when no ItemsAdder model is used. | empty |
invisible | Hides the armour stand body. | false |
particle | The particle shown when the target is hit. | HEART |
sound | The sound played when the target is hit. none plays nothing. | none |
movement.enabled | Makes targets drift inside the movement area. | false |
movement.speed | Distance travelled per tick while moving. | 0.15 |
movement.minHeight | Lowest target height measured from the bottom of the zone. | 4 |
movement.maxHeight | Highest target height measured from the bottom of the zone. | 12 |
movement.area | ZONE uses the zone bounds; POINTS uses the horizontal box between areaPoints, with height still measured from the zone bottom. | ZONE |
movement.areaPoints | Two or more named points that define the horizontal movement box when area is POINTS. | empty |
The point value is objective.reward.points, which defaults to 1 when the reward block or its points key is missing. Every objective type is cleaned up when it ends, blocks restored, guards and objective mobs removed, and placed items cleared, so nothing is left behind.
Solo and team
Every type can run solo or as a team event, where every member of the same island adds to one score. The values above are used the same way in both, a team event simply adds the members' points together. See Team mode.