Effects and categories
How effects.yml is written, the three triggers of a shot, and the 120 effects that ship.
The file
Two sections: the categories, and the effects that belong to them. An effect's effects block is a
map of triggers, not a list.
categories:
ember:
material: BLAZE_POWDER
name: 'Ember'
priority: 1
arrow_effects:
EMBER_TRAIL:
category: ember
tier: common
name: "<gradient:#FFD08A:#C43A10><bold>EMBER TRAIL</bold></gradient>"
material: BLAZE_ROD
description: "Coals come off the shaft, {highlight}tumble, and burn out{neutral} behind it."
priority: 1
trail-interval: 1
effects:
trail:
- '[DISPLAY] MAGMA_BLOCK;as:block;size:0.09;size_to:0.01;life:0.45;spin:1,1,1;gravity:2;light:15;glow:{warning}'
- '[PARTICLE] FLAME;count:2;offset:0.04,0.04,0.04;speed:0.01'
hit:
- '[SOUND] BLOCK_FIRE_EXTINGUISH;0.7;1.3'
- '[CIRCLE] MAGMA_BLOCK;as:block;radius:0.2;points:10;size:0.1,0.05,0.1;size_to:0.5,0.04,0.5;pull:-2;ease:out;life:0.45;y:0.05;light:15;glow:{warning}'
- '[PARTICLE] FLAME;count:14;offset:0.4,0.2,0.4;speed:0.05'| Key | What it does |
|---|---|
category | Which tab it appears under. Must be a key declared under categories. |
tier | How rare it is. Must be a key declared under config.yml's tiers; without it the effect is common. It decides the colour it is named in, the odds of a crate landing on it, and what exyliarrows.tier.<id> grants. |
name | What menus and placeholders call it. |
material | The item the row is drawn with. |
description | A list is one line per entry; a single string breaks on <nl>. |
priority | Where it sits in its tab; lower comes first. |
trail-interval | Ticks between trail steps. 1 is every tick, 2 every other. Defaults to trail.default-interval. |
effects | The triggers, below. |
bows | Optional. What it may be bound to. |
projectiles | Optional. Which projectiles it plays on; without it config.yml decides. |
The triggers
| Trigger | When |
|---|---|
launch | The shot leaving the bow. |
trail | Along the flight, every trail-interval ticks. |
hit | Wherever it lands, whatever it hit. |
hit-entity | Only on something alive — falls back to hit. |
hit-block | Only on a block — falls back to hit. |
hit-entity and hit-block are the same moment told apart: declare them when landing on a player and
landing on the ground deserve different pictures. Written either way — hit-entity or hit_entity —
because a hyphen is what every other Exylia file writes.
An arrow lives about forty ticks, and four archers are four arrows in the air. Whatever trail writes
is drawn on every one of those ticks, per shot: one or two small displays plus a particle line for
the glow, and no sound. The impact is the payoff and is allowed to be one — under a second, a dozen
displays at the very most.
bows
Only read while behaviour.mode reads bows. It accepts item names and families:
bows: [ CROSSBOW, TRIDENT ]| Family | Matches |
|---|---|
ANY | Anything at all. |
BOW, CROSSBOW, TRIDENT | Just that item. |
RANGED | Bows, crossbows and tridents. |
None of the shipped effects declares bows, so out of the box every one of them fits everything.
EMBER_TRAIL is exyliarrows.effect.ember_trail. Renaming the key renames the node. Case is not part
of it: ids are lowercased on the way in.
The catalogue
Twenty effects per category, 120 in total.
Ember — BLAZE_POWDER
EMBER_TRAIL INFERNO CINDERFALL MAGMA_CORE FIREBRAND SCORCH PYRE ASHFALL FORGE_STRIKE
METEOR MOLTEN_RAIN EMBER_WINGS COALFALL FLINT_SPARK SUNFIRE CRIMSON_BLOOM TORCHLIGHT
FURNACE_BLAST WILDFIRE PHOENIX
Frost — BLUE_ICE
FROSTBITE SNOWFALL ICE_SHARD BLIZZARD GLACIER HAILSTORM PERMAFROST FROZEN_CORE SLEET
ICICLE FROST_NOVA DEEP_FREEZE AURORA DIAMOND_DUST COLD_SNAP FROSTED_GLASS CRYO_SHOT
AVALANCHE WINTER_BLOOM ABSOLUTE_ZERO
Storm — LIGHTNING_ROD
THUNDERBOLT STATIC_CHARGE WIND_GUST SQUALL TEMPEST CHAIN_LIGHTNING SKYFALL CLOUDBURST
DOWNPOUR CYCLONE THUNDERHEAD WIND_SHEAR STORM_SURGE IONISE GALE BREEZE_SHOT MONSOON
STATIC_WEB UPDRAFT SKYBREAKER
Void — ECHO_SHARD
SOULBOUND VOID_TEAR SCULK_BLOOM WITHERING ENDER_RIFT SHADOW_STEP NECROTIC SHRIEKER
ABYSS GRAVE_DUST WRAITH OBSIDIAN_TEAR DARK_MATTER SOUL_FIRE CATACOMB NULL REAPER
PHANTASM DECAY EVENT_HORIZON
Prism — AMETHYST_SHARD
STARLIGHT AMETHYST ARCANE_BOLT SPECTRUM BEACON GILDED REFRACTION NOVA SANCTUM
GLIMMER ECHO_CRYSTAL STARFALL LUMEN KALEIDOSCOPE SOLAR_FLARE CRYSTALLINE PRISM_ARROW
HALO MIRROR CELESTIAL
Goofy — SLIME_BALL
BONK RUBBER_CHICKEN PIE CONFETTI BUBBLE SLIME_TIME CAKE_DROP DUCK ANGRY_BEE BOING
SQUEAK TOAST BANANA TNT_PRANK SNOWBALL_FIGHT ANVIL_DROP OOF SAD_TRUMPET DISCO
ROLL_CREDITS
The void category has one called NULL. YAML reads that key as nothing at all unless it is quoted, so
leave it exactly as the file writes it if you are editing around it.
Writing your own
Add the entry
A new key under arrow_effects, with a category that exists and an effects block naming at
least one trigger.
Spend where it shows
Keep the trail to a display or two; put the work in hit. The full step syntax is in
Sequences.
Reload
/arrowsadmin reload.
Look at it
/arrows preview <id> plays it against an empty sky, then puts you back.
Grant it
exyliarrows.effect.<id in lowercase>, or the whole category.
Something missing on this page? Tell us on Discord