Configuration
Where’s my config?
The config should be in config\eventsounds.conf
. You’ll have to create that ini yourself. There was no point in pregenerating the config as you’ll have to change pretty much everything anyways.
Shortened Values
I won’t always write all possible values in the config below, instead I’ll use keywords that I explain here:
Target: Specify the targets for this sound / title. Possible values are
none
- Don’t play this to anyonesource
- Play this to the player that triggered the eventboth
- Only in PvP events: Play this to the attacker and victimworld
- Play this to everyone in the same world als thesource
Playerall
- Play this to everyone on the server
DeathCause: The entity or damage-type responsible for this players death.
In order to specify a mob type go to the wiki,
pick a mob and use the Entity ID prefixed by minecraft and a colon (Like minecraft:pig
for pigs)
for a damage-type go here and scroll to the section
“Death Messages”, any title here should do (example: Lava
).
"packer": {
# This is an optional resource-pack that will be merged with the resource-pack generated by eventsounds
"template": "my_resourcepack.zip",
# This is the ftp server and location on the server to upload the resource-pack to.
# Feel free to ask, if you're unsure what to put here but basically it should be
# ftp://<YOUR FTP SERVER>/<PATH TO FILE ON SERVER>
"ftpserver": "ftp://...",
"ftplogin": "username",
"ftppasswd": "password",
# If you set this to false, the resource-pack will be managed by Minecraft
# instead of Sponge. If Minecraft manages the resource-pack joining the server
# might be slightly faster, but you'll have to restart the server after
# updating the resource-pack for Minecraft to correctly distribute it.
"forceDownload": "true"
}
"plugin": {
# If you change this to false it will reduce the amount of console output
"verbose": false
}
# every sound can require a permission and/or user id
# all "_options" support cooldown_global, cooldown_client and delay (seconds)
"chat": {
"_options": {
"cooldown_global": 0,
"cooldown_client": 0
}
# Each of these keys need to be unique within an event, but are not otherwise
# linked to the sound
"hello": {
# The user ID that has to match exactly for this sound to play
# This can be used on all sounds
"userid": "UUID"
# The player needs to have this permission for the sound to play
# This can be used on all sounds
"permission": "Permission",
# This title will be shown to selected players when the sounds triggers
# The text lines support &color-codes and %player% will be replaced by the playername
# of the player triggering this sound
# This can be used on all sounds
"title": [ "First Title Line", "Subtitle line" ],
# Targets for the title message, see shortened values
# Default value: NONE
# This can be used on all sounds
"titleTarget": "Target",
# Targets for the title message, see shortened values.
# Default value: ALL
# This can be used on all sounds
"soundTarget": "Target",
# The sound file to play when this event triggers.
# Make sure these sounds are in the server directory assets/eventsounds/
# With these examples: assets/eventsounds/chat/hi.ogg and assets/eventsounds/chat/hi2.ogg
# have to exist
# This can be used on all sounds
"sounds": [ "chat/hi.ogg", "chat/hi2.ogg" ],
# The literal text messages a user can type to trigger this sound.
# This is a full-text match where one element has to match
"text": [ "hi", "hello" ]
}
}
# 2 examples for sounds, when a player joins the server
"join": {
"_options": {
"cooldown_global": 0,
"cooldown_client": 0,
# join has a delay by default, so the resource-pack can be downloaded/updated first
"delay": 0.1
}
"guest": {
"permission": "",
"sounds": [ "join/joinserver.ogg" ]
},
# Generic admin join sound on groups permission
"admin": {
"permission": "es.join.admin",
"title": [ "&a%player%", "Wellcome back" ]
"titleTarget": "source"
"sounds": [ "join/adminjoin.ogg" ]
}
}
# 2 examples for death sounds
"death": {
"_options": {
"cooldown_global": 10,
"cooldown_client": 10
}
# remove the whole entry (mobs) to disable the sound
"mobs": {
# Trigger for this is that `types` exists, not the name "mobs"
# Empty means any mob/reason, for other values see shortened values
"types": [ "DeathCause" ],
"sounds": [ "quake/humiliation.ogg" ]
},
"suicide": {
"sounds": [ "quake/humiliation.ogg" ]
}
}
# The following event entries are an example configuration for quake-sounds
# If you don't know what quake-sounds are a quick search on google or youtube should
# clear things up.
# Sound files are not included but are easily downloaded and converted to oggs using tools
# like [Audacity](https://www.audacityteam.org/download/)
"killstreak": {
"_options": {
"cooldown_global": 0,
"cooldown_client": 0
}
"dominating": {
"kills": 4,
"title": [ "Dominating", "%player% is dominating" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/dominating.ogg" ]
}
"rampage": {
"kills": 6,
"title": [ "Rampage", "%player% is on a rampage" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/rampage.ogg" ]
}
"killingspree": {
"kills": 8,
"title": [ "Killingspree", "%player% is on a killingspree" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/killingspree.ogg" ]
}
"monsterkill": {
"kills": 10,
"title": [ "Monsterkill", "%player% got a monsterkill" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/monsterkill.ogg" ]
}
"unstoppable": {
"kills": 14,
"title": [ "Unstoppable", "%player% is unstoppable" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/unstoppable.ogg" ]
}
"ultrakill": {
"kills": 16,
"title": [ "Ultrakill", "%player% got an ultrakill" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/ultrakill.ogg" ]
}
"godlike": {
"kills": 18,
"title": [ "God like", "%player% is god like" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/godlike.ogg" ]
}
"wickedsick": {
"kills": 20,
"title": [ "Wicked sick", "%player% is wicked" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/wickedsick.ogg" ]
}
"impressive": {
"kills": 22,
"title": [ "Impressive", "%player% is really impressive" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/impressive.ogg" ]
}
"ludicrouskill": {
"kills": 24,
"title": [ "Ludicrouskill", "%player% got a ludicrouskill" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/ludicrouskill.ogg" ]
}
"ludicrouskill": {
"kills": 26,
"title": [ "Holy shit", "Can nobody stop %player%?" ],
"titleTarget": "all",
"soundTarget": "all",
"sounds": [ "quake/holyshit.ogg" ]
}
}
"combobreaker": {
"_options": {
"cooldown_global": 0,
"cooldown_client": 0
}
"guest": {
# minimum killstreak the victim needs to have before a combo can be broken
"kills": 5,
"title": [ "Combo Breaker", """%player% was shut down!""" ],
"titleTarget": "all",
"sounds": [ "quake/humiliation.ogg" ]
}
}
"multikill": {
"_options": {
# for multikill only cooldowns are inactive
# the cooldown_client value instead specifies when (in seconds after the last kill)
# the multikill expires
"cooldown_client": 10
}
"double": {
# minimum killstreak the victim needs to have before a combo can be broken
"kills": 2,
# title do work here, but doublekill seems pretty easy
"soundTarget": "both"
"sounds": [ "quake/doublekill.ogg" ]
}
"triple": {
"kills": 3,
"title": [ "&bDoublekill" ]
"titleTarget": "source"
"soundTarget": "both"
"sounds": [ "quake/triplekill.ogg" ]
}
"multi": {
"kills": 4,
"title": [ "&bMultikill", """%player% got multikill!""" ],
"titleTarget": "world",
"sounds": [ "quake/multikill.ogg" ]
}
"mega": {
"kills": 5,
"title": [ "&bMegakill", """%player%" is on fire!""" ],
"titleTarget": "world",
"sounds": [ "quake/megakill.ogg" ]
}
}