Volcanic Ash Combat

# Volcanic Ash Combat

Introduces volcanic hazards to Nether PvP encounters.

## Features

**Volcanic Vents**
– Spawn randomly across Nether wastes and basalt deltas biomes using marker entities
– Erupt every few minutes with a chance-based trigger system

**Ash Clouds**
– Dense particle effects that expand outward in a radius upon eruption
– Persist for 30-60 seconds before dissipating naturally
– Apply effects to players in the cloud:
– Mining fatigue
– Reduced visibility
– Small amounts of fire damage over time

**Tactical Element**
– Creates dynamic environmental zones during PvP fights
– Enables positioning strategies: lure enemies into ash or use eruptions as cover for retreats

## Technical Details

– Uses scoreboard timers for eruption cycles
– Uses area effect clouds for damage zones
– Optimized for performance: only checks vent status every 20 ticks, limited to loaded chunks with efficient entity selectors

## Commands

– `/function volcanic_ash:force_eruption` – Trigger an eruption at the nearest vent
– `/function volcanic_ash:clear_all` – Remove all active ash clouds

BladeBind

# BladeBind

BladeBind introduces a tactical PvP mechanic where players can throw their sword by dropping it while sneaking. The sword plants into the ground and creates a small territorial zone.

## Mechanics

**Planted Blade Zone**
– Affects all players not on the same team
– 5-block radius of effect
– Continuous damage based on sword material:
– Wooden sword: 0.5 hearts per second
– Netherite sword: 2 hearts per second
– Other materials scale between these values
– Duration: 60 seconds before despawning
– Sword returns to owner’s inventory if space is available
– Only one active blade per player at a time
– Subtle redstone particles mark the blade’s range

## Usage

– Sneak and drop your sword to activate
– No commands required
– No permissions required
– Works with vanilla teams

## Technical Details

Uses scoreboard tracking for ownership and team detection. Execute commands handle damage pulses. Server operators can adjust duration by modifying the `bladebind.duration` scoreboard objective.