Skip to content
BlazeZDocs

BlazeEffects

Kill effects, kill sounds and death messages players pick from a menu, plus a combat tag with combat-log protection.

Version
1.2.7
Runs on
Paper, Purpur, Folia
Minecraft
1.21+
Java
21+
Works with
PlaceholderAPI
On this page

BlazeEffects plays a cosmetic when a player gets a kill: particles in shapes like spirals and rings, sounds, fireworks and lightning, all at the victim's position. Players pick their kill effect, kill sound and death message from /be, and you decide who unlocks what with permissions.

Every effect is a small YAML file in effects/, so you can design new ones without code. 28 effects ship with the plugin. It also has a combat tag that shows a live countdown and kills players who log out mid-fight.

Permissions#

PermissionLets a playerDefault
blazeeffects.menuOpen the menus.Everyone
blazeeffects.toggleTurn their own effects off or on.Everyone
blazeeffects.previewPreview an effect on themselves, and run /be demo.Everyone
blazeeffects.infoSee their equipped effect.Everyone
blazeeffects.effect.<id>Use one kill effect, such as blazeeffects.effect.galaxy. blazeeffects.effect.* gives all.OP
blazeeffects.killsound.<id>Use one kill sound. .* gives all.OP
blazeeffects.deathmessage.<id>Use one death message. .* gives all.OP
blazeeffects.cooldown.bypassSwitch and preview without the anti-spam delay.OP
blazeeffects.combat.bypassUse blocked commands while combat-tagged.OP
blazeeffects.admin.reloadRun /be reload.OP
blazeeffects.admin.setSet or clear another player's effect, and run /be demo <player>.OP
blazeeffects.admin.clearClear another player's effect.OP
blazeeffects.admin.winPlay a player's win effect.OP
blazeeffects.adminAll admin permissions.OP
blazeeffects.*Everything.OP

A cosmetic with default-unlocked: true in its file is free for everyone, with no permission.

Commands#

/blazeeffects also works as /be, /blazefx and /killeffects.

CommandWhat it doesPermission
/beOpens the menu.blazeeffects.menu
/be soundsOpens the kill sound menu.blazeeffects.menu
/be messagesOpens the death message menu.blazeeffects.menu
/be picker [kill|death|win|trail]Opens the picker for another effect slot, when gui.picker-enabled is true.blazeeffects.menu
/be select <id> [effect|sound|message]Equips an effect, kill sound or death message by id. Without a type it finds the id in all three.The item's permission
/be unequip [effect|sound|message]Removes your equipped effect, sound or message. Defaults to the effect.blazeeffects.menu
/be preview <id>Plays an effect on you.blazeeffects.preview
/be toggleTurns your effects off or on.blazeeffects.toggle
/be mode [chosen|random]Switches between your chosen effect and a random one, when allow-player-selection-mode is true.None
/be infoShows your equipped effect.blazeeffects.info
/be listLists every effect.None
/be demo [player]Plays every unlocked effect back to back on a dummy target.blazeeffects.preview, blazeeffects.admin.set for another player
/be set <player> <id>Equips an effect for a player.blazeeffects.admin.set
/be clear <player>Removes a player's effect.blazeeffects.admin.clear
/be win <player>Plays a player's win effect, for minigame plugins.blazeeffects.admin.win
/be reloadReloads every file.blazeeffects.admin.reload
BlazeEffects kill effects menu
/be opens the kill effect picker.
BlazeEffects kill sounds menu
/be sounds opens the kill sound picker. Hover a sound to see if it is unlocked, click to equip it.

Configuration#

FileWhat it controls
config.ymlEffect rules, extra effect slots, the menu and the combat tag.
effects/<id>.ymlOne kill effect each. The file name is its id.
kill-sounds.ymlKill sounds, and who hears them.
death-messages.ymlDeath messages that replace the vanilla one on a kill.
messages.ymlEvery message, in MiniMessage format.
license.ymlYour license key.

Making an effect#

Copy a file in effects/, rename it and run /be reload. An effect is a list of steps that run in order:

effects/galaxy.yml
display-name: "<gradient:#7b5bff:#19d3ff>Galaxy</gradient>"
icon: NETHER_STAR
default-unlocked: false
broadcast: "<#7b5bff>{killer}</#7b5bff> <gray>sent</gray> <#19d3ff>{victim}</#19d3ff> <gray>to the stars</gray>"
steps:
  - type: SHAPE
    shape: SPIRAL
    particle: END_ROD
    radius: 2.2
    points: 80
    rotations: 3
    y-offset: 1.4
    delay: 0
  - type: SOUND
    sound: "block.beacon.activate"
    volume: 0.7
    pitch: 1.6
    delay: 4
Step typeDoes
PARTICLEA burst of one particle, with count and offset.
SHAPEParticles drawn in a shape: CIRCLE, HELIX, DOUBLE_HELIX, SPHERE, SPIRAL, WAVE, BURST, VORTEX or STAR.
SOUNDA Minecraft sound key with volume and pitch.
FIREWORKA firework burst.
LIGHTNINGA lightning strike that does no damage.

delay is in ticks from the kill. broadcast is an optional chat line on the kill, with {killer} and {victim}. menu-priority sets the order in the menu, and effects.max-particles-per-step (default 200) caps any one step.

config.yml#

KeyDefaultWhat it does
effects.default-enabledtrueEffects start on for new players.
effects.cooldown-seconds0Least time between two effects from the same killer.
effects.kill-broadcasttrueAllow the effects' broadcast lines.
effects.disabled-worlds[]World names where no effects play.
effects.selection-modeCHOSENCHOSEN plays the equipped effect. RANDOM plays one from random-pool, or from every unlocked effect when it's empty.
death-effects.enabledfalseAlso play the player's death effect where they die.
win-effects.enabledfalseAllow win effects through /be win or the API.
projectile-trails.enabledfalseDraw the player's trail effect behind their arrows.
gui.switch-cooldown-millis2000Anti-spam delay for equipping and previewing.
gui.preview-on-selecttruePlay the effect on the player when they equip it.
gui.menu-categoriesall trueWhich buttons show in the main menu.

In kill-sounds.yml, play-to sets who hears the kill sound: KILLER (default), VICTIM, BOTH or NEARBY.

Combat tag#

config.yml
combat:
  enabled: true
  duration-seconds: 10
  refresh-millis: 50
  combat-log-kill: true
  block-commands: true
  allowed-commands:
    - msg
    - r
    - shout

Hitting another player tags both of them for duration-seconds, with an action bar countdown in hundredths of a second. A tagged player who logs out is killed when combat-log-kill is true. While tagged, only the allowed-commands work, unless the player has blazeeffects.combat.bypass.

Update alerts#

Staff with blazez.updates (OPs by default) get one chat message when they join, listing every installed BlazeZ plugin that has an update waiting. It stays off until you set check-for-updates: true in this plugin's license.yml.

Developer API#

BlazeEffects fires two Bukkit events from lol.blazez.blazeeffects.api.event, both on the player's server thread.

EventCancellableFires when
CombatTagStartEventYesA player enters combat. Refresh hits on an already tagged player don't fire it again. getPlayer(), getOpponent() (can be null), getDurationMillis() and setDurationMillis(long). Cancelling it, or setting the duration to 0, leaves the player untagged.
CombatTagEndEventNoA tag ends. getPlayer() and getReason(): EXPIRED, DEATH, QUIT (combat log) or RESET (/be reload or shutdown).
@EventHandler
public void onTag(CombatTagStartEvent event) {
    if (isInSafeZone(event.getPlayer())) {
        event.setCancelled(true);
    }
}

Add softdepend: [BlazeEffects] to your plugin.yml.

Install#

  1. Put the BlazeEffects jar in plugins/ and start the server once. It creates plugins/BlazeEffects/ with the files above.
  2. Paste your license key into license-key in license.yml. Your key is under My Licenses on the BlazeZ portal; licenses linked to your Discord account show up there automatically. If yours is missing, open a License Key ticket in the BlazeZ Discord.
  3. Restart the server.
  4. Grant the effects players should have, for example blazeeffects.effect.galaxy, or set default-unlocked: true in an effect's file.
  5. After editing files, run /be reload.