A Spigot/Bukkit plugin for Minecraft 1.8 that allows developers to play preconfigured sound tracks to players using a single command instead of multiple /playsound commands.
- Track-based Sound System: Create reusable sound tracks with multiple sounds
- Delay Support: Add delays between sounds in a track (measured in ticks, 20 ticks = 1 second)
- Nearby Player Support: Optionally play sounds to nearby players at a reduced volume
- Category Organization: Organize tracks into categories for better management
- In-game Configuration: Create and edit tracks using commands without editing config files
- YAML Configuration: All tracks are saved to
config.ymlfor easy manual editing - Tab Completion: Full tab completion support with common Minecraft 1.8 sounds
- Permission System: Granular permissions for different command actions
- Debug Mode: Toggle verbose console logging on/off to reduce console spam in production
All commands start with /wavetrack (alias: /wt)
/wavetrack play <trackname> <player>
Plays a track to the specified player. If the track has nearby-players enabled, nearby players will also hear the sounds at a reduced volume.
/wavetrack create <trackname> <category>
Creates a new empty track in the specified category.
/wavetrack delete <trackname>
Permanently deletes a track.
/wavetrack addsound <trackname> <sound> [volume] [pitch] [delay]
Adds a sound to a track.
sound: The Minecraft sound name (e.g.,random.levelup,mob.villager.yes)volume: Sound volume (default: 1.0)pitch: Sound pitch (default: 1.0)delay: Delay in ticks before playing this sound (default: 0)
/wavetrack removesound <trackname> <index>
Removes a sound from a track by its index. Use /wavetrack info <trackname> to see indices.
/wavetrack editsound <trackname> <index> <property> <value>
Edit a specific property of an existing sound in a track.
index: The sound index (use/wavetrack infoto see indices)property: One ofsound,volume,pitch,delayvalue: The new value for the property
Examples:
/wavetrack editsound mytrack 0 volume 0.5
/wavetrack editsound mytrack 1 sound random.levelup
/wavetrack editsound mytrack 2 delay 20
/wavetrack clearsounds <trackname>
Removes all sounds from a track (keeps track settings).
/wavetrack rename <trackname> <newname>
Renames an existing track.
/wavetrack copy <trackname> <newname> [newcategory]
Creates a copy of a track with a new name. Optionally place it in a different category.
/wavetrack move <trackname> <newcategory>
Moves a track to a different category.
/wavetrack setnearby <trackname> <true/false>
Enable or disable playing the track to nearby players.
/wavetrack setradius <trackname> <radius>
Set the radius (in blocks) for nearby player detection.
/wavetrack setvolumemultiplier <trackname> <multiplier>
Set the volume multiplier for nearby players (0.0 to 1.0).
/wavetrack info <trackname>
Shows detailed information about a track including all sounds and settings.
/wavetrack list [category]
Lists all tracks, optionally filtered by category.
/wavetrack reload
Reloads the configuration file without restarting the server.
/wavetrack debug [on/off]
Toggles debug/verbose mode on or off. When enabled, detailed information about track playback and plugin operations will be logged to the console. When disabled (default), only essential messages are logged to reduce console spam. Running the command without arguments will toggle the current state.
| Permission | Description | Default |
|---|---|---|
wavetrack.* |
All WaveTrack permissions | op |
wavetrack.play |
Play tracks to players | op |
wavetrack.create |
Create new tracks | op |
wavetrack.edit |
Edit existing tracks (add/remove sounds, change settings) | op |
wavetrack.delete |
Delete tracks | op |
wavetrack.list |
List tracks and view track info | op |
wavetrack.reload |
Reload plugin configuration | op |
The plugin automatically generates a config.yml file with example tracks:
# Debug mode - when enabled, detailed logging will be sent to console
# Useful for troubleshooting, but can flood the console in production
debug: false
# Default settings for sounds (used when not specified)
defaults:
volume: 1.0
pitch: 1.0
delay: 0
nearby-players: false
nearby-radius: 10
nearby-volume-multiplier: 0.5
# Tracks organized by category
tracks:
examples:
level-up:
nearby-players: true
nearby-radius: 15
nearby-volume-multiplier: 0.4
sounds:
- sound: random.levelup
volume: 1.0
pitch: 1.0
delay: 0
- sound: random.orb
volume: 0.8
pitch: 1.2
delay: 5
rare-drop:
nearby-players: true
nearby-radius: 20
nearby-volume-multiplier: 0.3
sounds:
- sound: random.levelup
volume: 1.0
pitch: 0.8
delay: 0
- sound: fireworks.blast
volume: 1.0
pitch: 1.0
delay: 5
- sound: fireworks.twinkle
volume: 0.8
pitch: 1.2
delay: 15Below is a complete list of all available sounds in Minecraft 1.8. Use these exact names when adding sounds to tracks.
ambient.cave.cave- Cave ambient soundsambient.weather.rain- Rain soundambient.weather.thunder- Thunder sound
damage.fallbig- Large fall damagedamage.fallsmall- Small fall damagedamage.hit- Hit sounddamage.hurtflesh- Flesh hurt sound
dig.cloth- Breaking cloth/wooldig.glass- Breaking glassdig.grass- Breaking grassdig.gravel- Breaking graveldig.sand- Breaking sanddig.snow- Breaking snowdig.stone- Breaking stonedig.wood- Breaking wood
fire.fire- Fire burningfire.ignite- Ignite/flint and steel
fireworks.blast- Firework explosionfireworks.blast_far- Distant firework explosionfireworks.largeBlast- Large firework explosionfireworks.largeBlast_far- Distant large firework explosionfireworks.launch- Firework launchfireworks.twinkle- Firework twinklefireworks.twinkle_far- Distant firework twinkle
liquid.lava- Lava ambientliquid.lavapop- Lava popliquid.splash- Splash soundliquid.swim- Swimmingliquid.water- Water ambient
minecart.base- Minecart rollingminecart.inside- Inside minecart
| Category | Sounds |
|---|---|
| Bat | mob.bat.death, mob.bat.hurt, mob.bat.idle, mob.bat.loop, mob.bat.takeoff |
| Blaze | mob.blaze.breathe, mob.blaze.death, mob.blaze.hit |
| Cat | mob.cat.hiss, mob.cat.hitt, mob.cat.meow, mob.cat.purr, mob.cat.purreow |
| Chicken | mob.chicken.hurt, mob.chicken.plop, mob.chicken.say, mob.chicken.step |
| Cow | mob.cow.hurt, mob.cow.say, mob.cow.step |
| Creeper | mob.creeper.death, mob.creeper.say |
| Ender Dragon | mob.enderdragon.end, mob.enderdragon.growl, mob.enderdragon.hit, mob.enderdragon.wings |
| Enderman | mob.endermen.death, mob.endermen.hit, mob.endermen.idle, mob.endermen.portal, mob.endermen.scream, mob.endermen.stare |
| Ghast | mob.ghast.affectionate_scream, mob.ghast.charge, mob.ghast.death, mob.ghast.fireball, mob.ghast.moan, mob.ghast.scream |
| Guardian | mob.guardian.attack, mob.guardian.curse, mob.guardian.death, mob.guardian.elder.death, mob.guardian.elder.hit, mob.guardian.elder.idle, mob.guardian.flop, mob.guardian.hit, mob.guardian.idle, mob.guardian.land.death, mob.guardian.land.hit, mob.guardian.land.idle |
| Horse | mob.horse.angry, mob.horse.armor, mob.horse.breathe, mob.horse.death, mob.horse.gallop, mob.horse.hit, mob.horse.idle, mob.horse.jump, mob.horse.land, mob.horse.leather, mob.horse.soft, mob.horse.wood |
| Donkey | mob.horse.donkey.angry, mob.horse.donkey.death, mob.horse.donkey.hit, mob.horse.donkey.idle |
| Skeleton Horse | mob.horse.skeleton.death, mob.horse.skeleton.hit, mob.horse.skeleton.idle |
| Zombie Horse | mob.horse.zombie.death, mob.horse.zombie.hit, mob.horse.zombie.idle |
| Iron Golem | mob.irongolem.death, mob.irongolem.hit, mob.irongolem.throw, mob.irongolem.walk |
| Magma Cube | mob.magmacube.big, mob.magmacube.jump, mob.magmacube.small |
| Pig | mob.pig.death, mob.pig.say, mob.pig.step |
| Rabbit | mob.rabbit.death, mob.rabbit.hurt, mob.rabbit.idle, mob.rabbit.hop |
| Sheep | mob.sheep.say, mob.sheep.shear, mob.sheep.step |
| Silverfish | mob.silverfish.hit, mob.silverfish.kill, mob.silverfish.say, mob.silverfish.step |
| Skeleton | mob.skeleton.death, mob.skeleton.hurt, mob.skeleton.say, mob.skeleton.step |
| Slime | mob.slime.attack, mob.slime.big, mob.slime.small |
| Spider | mob.spider.death, mob.spider.say, mob.spider.step |
| Villager | mob.villager.death, mob.villager.haggle, mob.villager.hit, mob.villager.idle, mob.villager.no, mob.villager.yes |
| Wither | mob.wither.death, mob.wither.hurt, mob.wither.idle, mob.wither.shoot, mob.wither.spawn |
| Wolf | mob.wolf.bark, mob.wolf.death, mob.wolf.growl, mob.wolf.howl, mob.wolf.hurt, mob.wolf.panting, mob.wolf.shake, mob.wolf.step, mob.wolf.whine |
| Zombie | mob.zombie.death, mob.zombie.hurt, mob.zombie.infect, mob.zombie.metal, mob.zombie.remedy, mob.zombie.say, mob.zombie.step, mob.zombie.unfect, mob.zombie.wood, mob.zombie.woodbreak |
| Zombie Pigman | mob.zombiepig.zpig, mob.zombiepig.zpigangry, mob.zombiepig.zpigdeath, mob.zombiepig.zpighurt |
note.bass- Bass notenote.bassattack- Bass attacknote.bd- Bass drumnote.harp- Harp notenote.hat- Hi-hatnote.pling- Pling notenote.snare- Snare drum
portal.portal- Portal ambientportal.travel- Portal travelportal.trigger- Portal activation
random.anvil_break- Anvil breakrandom.anvil_land- Anvil landrandom.anvil_use- Anvil userandom.bow- Bow shootrandom.bowhit- Arrow hitrandom.break- Item breakrandom.burp- Burprandom.chestclosed- Chest closerandom.chestopen- Chest openrandom.click- Clickrandom.door_close- Door closerandom.door_open- Door openrandom.drink- Drinkingrandom.eat- Eatingrandom.explode- Explosionrandom.fizz- Fizz/extinguishrandom.fuse- TNT fuserandom.glass- Glass breakrandom.levelup- Level uprandom.orb- Experience orbrandom.pop- Item poprandom.splash- Splashrandom.successful_hit- Successful hitrandom.toast- Toast/achievementrandom.wood_click- Wood click
records.11,records.13,records.blocks,records.cat,records.chirprecords.far,records.mall,records.mellohi,records.stal,records.stradrecords.wait,records.ward
step.cloth- Walking on cloth/woolstep.grass- Walking on grassstep.gravel- Walking on gravelstep.ladder- Climbing ladderstep.sand- Walking on sandstep.snow- Walking on snowstep.stone- Walking on stonestep.wood- Walking on wood
tile.piston.in- Piston retracttile.piston.out- Piston extend
/wavetrack create victory events
/wavetrack addsound victory random.levelup 1.0 1.0 0
/wavetrack addsound victory fireworks.blast 1.0 1.2 10
/wavetrack addsound victory fireworks.twinkle 0.8 1.0 20
/wavetrack setnearby victory true
/wavetrack setradius victory 25
/wavetrack setvolumemultiplier victory 0.3
/wavetrack play victory PlayerName
/wavetrack play victory YourName
- Clone the repository
- Run
./gradlew build - The plugin JAR will be in
build/libs/
The project includes Gradle tasks to run a local Spigot 1.8.8 test server.
Due to DMCA and Mojang's EULA, Spigot cannot distribute pre-built server JARs. You need to build it yourself using BuildTools:
Option 1: Use the helper script (Recommended)
./build-spigot.shThis script will download BuildTools and compile Spigot 1.8.8 automatically.
Option 2: Manual BuildTools
- Download BuildTools: https://hub.spigotmc.org/jenkins/job/BuildTools/
- Run:
java -jar BuildTools.jar --rev 1.8.8 - Copy the resulting JAR to
run/spigot-1.8.8.jar
Once you have the server JAR:
# Run the test server with your plugin
./gradlew runServerThe server will start with your plugin automatically installed. Connect with Minecraft 1.8.8 to localhost:25565.
| Task | Description |
|---|---|
./gradlew setupServer |
Creates the server directory structure |
./gradlew copyPlugin |
Copies the built plugin to the server |
./gradlew deployPlugin |
Rebuilds and deploys the plugin |
./gradlew cleanServer |
Deletes world data and logs |
./gradlew resetServer |
Resets entire server (keeps JAR) |
- Make changes to the plugin code
- Run
./gradlew deployPluginto rebuild and copy - In the server console, type
reloador restart the server - Test your changes in-game
This plugin is provided as-is for use on Minecraft servers by the DataThorn Technologies family. Modifications to the content of this plugin are prohibited. Attempts to profit from this plugin without granted permission from the DataThorn Technologies family or the AsianF4rmer Network will be answered with legal action.