Spleef_reloaded | Spleef for 1.20 - 1.21.4 | icon

Spleef_reloaded | Spleef for 1.20 - 1.21.4 | -----

Bungeecord | MySQL | Multi-Arena | Placeholders | PVP | Kits | Scoreboards | Leaderboard | Parties



Minimum Java Version: ________Java 21


Spleef_reloaded
Run, run, run....

This latest version of this plugin Minecraft/Spigot 1.21.3 - 1.21.4.

Check the Legacy Support section for other versions.

Description

Spleef is the iconic Minecraft mini game where players join and arena and try to break the blocks that other players are standing on causing them to fall and lose the game. The last player standing wins.

Spleef_reloaded is a highly configurable, fully automated minigame. It has been created using the TNTRun_reloaded code base so many of the commands and features are identical between the two plugins.

Players are given a tool (default DIAMOND_SHOVEL) to break blocks and optionally SNOWBALLs with knockback which can be configured to also break blocks if required.

The plugin features a customisable shop where players can buy items such as weapons, armour, double-jumps, splash potion, and commands which run when the game starts. There is an option to enable PVP in arenas, assign kits, and the plugin also interfaces with HeadsPlus (by ThatsMusic99) allowing players to buy/wear custom heads during the game.

Optionally, a fee can be set to join each arena, which can be monetary or any minecraft item such gold_nuggets. Rewards for winning the game can be set to any combination of coins, materials, XP or a command based reward. Scoreboards, leaderboards, placeholders and holograms are fully supported (see the Dependencies section below).


Features
The following list of features applies to the latest release and so not all features will be present in older versions of the plugin.
  • Supports multiple arenas
  • Automatic arena regeneration
  • Configurable block destroy delay
  • Force-start voting system
  • Force-start command with permission
  • Custom Events
  • Join fee can be set per arena
  • Join fee currency can be money or Minecraft material
  • Optional waiting spawn location before auto joining arena
  • Configurable anti-camping system
  • Custom messages
  • Formatting codes support
  • Full tab completion based on permissions
  • Kits - can be enabled per arena
  • Heads - interfaces with HeadsPlus plugin
  • Signs
  • Configurable per-arena time limit
  • Configurable per-arena countdown
  • Configurable sounds
  • Customisable arena join menu
  • Autojoin command to join first available arena
  • In-game scoreboard
  • Titles and bossbars
  • Spectator system
  • Option to join as spectator only
  • Multiple spawn points
  • Built-in party system
  • Support for AlessioDP Parties
  • Player stats
  • Leader board
  • Auto updating leader board sign
  • Arena leave checker
  • Customizable shop
  • PVP can be enabled/disabled per arena
  • Player rewards
  • Built-in placeholder support
  • MySQL support
  • Bungeecord support
  • One player test mode
  • Localization support via Crowdin


Legacy Support
If your server is running Minecraft 1.20.6 - 1.21.2, then download version 1.0.

If your server is running a minimum of Java 17 with Minecraft 1.20.x, then download version 0.83 from GitHub here.


Dependencies
The latest version of Spleef_reloaded has been tested with the following versions of these plugins:


Commands
The commands required to create a standard arena are shown below.

spleef help.PNG

Player Commands

/sleef list - list the Spleef arenas
/spleef list {arena} - list the arena configuration
/spleef join {arena} - join arena, needs spleef.join permission (default)
/spleef join - open arena join menu, needs spleef.joinmenu permission (default)
/spleef autojoin {pvp|nopvp} - join arena with most waiting players
/spleef party {option} - Spleef party commands
/spleef leave - leave the current Spleef arena
/spleef vote - vote for the Spleef arena start
/spleef lobby - teleport to the Spleef lobby
/spleef stats - displays your Spleef record
/spleef leaderboard {size} - displays the Spleef leaderboard
/spleef listkit - list the Spleef kits
/spleef listkit {kit} - list the kit configuration
/spleef start {arena} - force-start arena, needs spleef.start permission
/spleef spectate {arena} - join as spectator, needs spleef.spectate
/spleef listrewards {arena} - list arena rewards, needs spleef.listrewards
/spleef info - information about this plugin
/spleef help - lists all the /spleef commands
/spleef cmds - lists all the /spsetup commands​

The following admin commands require the spleef.setup permission.

Arena Configuration Commands

/spsetup configure {arena} - open menu to run configuration commands
/spsetup setmaxplayers {arena} {number} - set max players for this arena (default: 15)
/spsetup setminplayers {arena} {number} - set min players for this arena (default: 2)
/spsetup settimelimit {arena} {seconds} - set the arena time limit in seconds (default: 300, no_time_limit: 0)
/spsetup setcountdown {arena} {seconds} - set countdown time for arena (default: 10)
/spsetup setmoneyreward {arena} {amount} - sets a money reward (Vault and economy plugins required for this)
/spsetup setteleport {arena} {previous/lobby} - teleports the player to pre-join location or to lobby when game ends
/spsetup setdamage {arena} {yes/no/zero} - sets pvp state in the arena (yes - full damage, zero - zero damage, no - no attack at all)
/spsetup deletespectate {arena} - deletes spectator spawnpoint
/spsetup setgameleveldestroydelay {arena} {ticks} - add a delay before a block is destroyed after a player steps on it (default: 8)
/spsetup setregenerationdelay {arena} {ticks} - set the time allowed for arena regeneration before players can rejoin (default: 60)
/spsetup setvotepercent {arena} {0<votepercent<1} - set the percentage of votes required to start the game for this arena (default: 0.75)
/spsetup givedoublejumps {player} {amount} - give doublejumps to a player
/spsetup setfee {arena} {amount} - set a fee to join the arena
/spsetup setcurrency {arena} {currency_item} - set the currency item
/spsetup setreward {arena} - start conversation to set Money, Material, XP and Command rewards for arena
/spsetup addtowhitelist {command} - whitelist a command for use in-game
/spsetup linkkit {arena} {kit} - links the named kit to an arena
/spsetup unlinkkit {arena} - removes a linked kit from an arena
/spsetup setP1 - set targetted block as first selection point
/spsetup setP2 - set targetted block as second selection point
/spsetup clear - clear selection points​

Console Commands
spconsole help - help for console commands
spconsole info - plugin info
spconsole list - list Spleef_reloaded arenas
spconsole enable {arena} - enable the arena
spconsole disable {arena} - disable the arena
spconsole start {arena} - force-start the arena
spconsole reloadconfig - reload config.yml
spconsole reloadbars - reload configbars.yml
spconsole reloadmsg - reload messages.yml
spconsole leaderboard - display leader board
spconsole join {arena} {player} - join player in arena
spconsole spectate {arena} {player} - join player in arena as spectator
spconsole autojoin [pvp|nopvp] {player} - autojoin player in arena
spconsole givedoublejumps {player} {amount} - give doublejumps to a player


Additional Commands

/spsetup setlobby - set the Spleef lobby at your current position
/spsetup deletelobby - delete the Spleef lobby
/spsetup setbarcolor {color} - set bar color. Default is RANDOM
/spsetup resetstats {player} - delete a player's Spleef_reloaded stats
/spsetup resetcachedrank {player} - delete a player's rank from cache to force update
/spsetup addkit {kit} - create a kit
/spsetup deletekit {kit} - delete a kit
/spsetup reloadbars - reload configbars.yml
/spsetup reloadmsg - reload messages.yml
/spsetup reloadtitles - reload titles.yml
/spsetup reloadconfig - reload config.yml
/spsetup addspawn {arena} - creates additional arena spawn points
/spsetup deletespawnpoints {arena} - removes all additional points created with addspawn
/spsetup setwaitingspawn {arena} - creates a waiting spawn location from where players will auto-join the arena
/spsetup deletewaitingspawn {arena} - removes the waiting spawn location
/spsetup setlanguage {language-code} - switches messages.yml to one of the supported language options
/spsetup enable {arena} - enable the arena
/spsetup disable {arena} - disable the arena
/spsetup delete {arena} - delete the arena​


Arena Setup Example

First create your arena. The arena below was created for TNTRun, but the way the arena is configured is the same for Spleef_reloaded. The SAND and TNT blocks should be replaced with a layer of SNOW_BLOCKS.

You can have any number of levels.
Leave enough room between the levels for players to jump without hitting the level above. There is a gap of 7 blocks in this example.
View attachment 323699

1. Give the arena a name

/spsetup create <arena>

2. Set the boundary of the arena - using WorldEdit, select 2 opposite corners, one above and one below the arena, ensuring the whole of the arena is included within the selection.( https://worldedit.enginehub.org/en/latest/usage/regions/selections/#selecting-cuboids)

/spsetup setarena <arena>

3. Set the lose level. This is basically the floor beneath the final level of the arena, the level at which the player loses. Run the command with your feet at the Y location you want to set. The point MUST be within the boundary of the arena from the previous step.

/spsetup setloselevel <arena>

4. Set the spawnpoint. Go to the top level of the arena, the spawnpoint will be created at the location you are standing.

/spsetup setspawn <arena>

5. Set spectator spawnpoint. The point at which a player spawns after losing (provided the game has not ended).

/spsetup setspectate <arena>

6. Finish the arena creation and save it. The arena is automatically enabled.

/spsetup finish <arena>

7. Set a main lobby location for all Spleef arenas (only needs to be done once) at your current location.

/spsetup setlobby

Permissions
Code (Text):
spleef.join:
    description: used to control who can join spleef and from where.
    default: true
spleef.setup:
    description: required to run "/spsetup" commands
    default: op
spleef.version.check:
    description: display new version message on player join
    default: op
spleef.heads:
    description: allow players to use HeadsPlus in game
    default: true
spleef.shop:
    description: allow players to buy any shop item (if they have money)
    default: true
spleef.joinmenu:
    description: allow players to use the join menu
    default: true
spleef.start:
    description: allow players to start an arena before the minimum players is reached
    default: op
spleef.spectate:
    description: allow players to join an arena as a spectator
    default: op
spleef.party:
    description: allow players to use the native party commands
    default: true
spleef.autojoin:
    description: used to control who can use the autojoin command
    default: true
spleef.listrewards:
    description: allow players to list the arena rewards
    default: true
spleef.doublejumps.n:
    description: limit allowed doublejumps using permissions, where n is a positive integer (>= 1)
    default: false

Installation
For upgrading, check the release notes for each release.
  1. Download Spleef_reloaded.jar
  2. Copy to your 'plugins' folder
  3. Restart your server - this will create the default config.yml and other configuration files.

Configuration
Code (YAML):
special :
    # use bossbar to display arena messages and countdown
   UseBossBar
: true
    # set the bossbar color, or have random colors
   BossBarColor
: RANDOM
    # use splash titles for join/leave
   UseTitle
: true
    # use scoreboard to display in-game stats
   UseScoreboard
: true
    # use permission node to limit double jumps
   UseDoubleJumpPermissions
: false
    # enable metrics (bStats)
   Metrics
: true
    # check for new version of Spleef_reloaded on Spigot
   CheckForNewVersion
: true
# use player's exp bar to display countdown and time limit
usexpbar
:
  countdown
: true
  timelimit
: true
# use player's rank in chat messages
UseRankInChat
:
   enabled
: false
   usegroup
: true
   groupcolormeta
: false
   useprefix
: false
# in-game shop configuration
shop
:
   enabled
: true
   name
: '&6&lSpleef &f&lSHOP'
   size
: 27
   doublejump
:
      maxdoublejumps
: 10
    # log every shop purchase to console
   logpurchases
: false
    # remove player's purchase if player leaves before game starts
   onleave
:
      removepurchase
: false
    # item to use to show player's monetary balance in shop
   showmoneyitem
: GOLD_INGOT
# give players free doublejumps when arena starts
freedoublejumps
:
   enabled
: false
   amount
: 10
# customise the size of the double jump
doublejumps
:
   multiplier
: 1.5
   height
: 0.7
# run server commands on win
commandsonwin
:
- say {PLAYER } won Spleef on {ARENA }
- say Congratulations ...
# set duration (seconds) for fireworks on win
fireworksonwin
:
   enabled
: true
   duration
: 4
# broadcast win to whom:
# 2 = server, 1 = only arena players, 0 = no broadcast message
broadcastwinlevel
: 2
# send join invitation to chat when first player joins arena
invitationmessage
:
  enabled
: false
  # allow player clicking the message on running arena to join as spectator
  allowspectate
: false
  # exclude players on other Spleef arenas from receiving the message
  excludeplayers
: false
  # exclude originating player from receiving the message
  excludeoriginator
: false
# enable Spleef parties or AlessioDP parties plugin
parties
:
  enabled
: true
  usePartiesPlugin
: false
#
# configure arena join menu
menu
:
  # set menu item for non-PVP arenas
  item
: TNT
  # set menu item for PVP arenas
  pvpitem
: IRON_BLOCK
  # set menu background colour
  panecolor
: LIGHT_BLUE
  # should disabled arenas be included in the menu
  includedisabled
: false
#
# configure arena config menu
configmenu
:
  # set 'lore' to false to not display the help text when hovering over each menu item
  lore
: true
#
# configure sounds
sounds
:
  arenastart
:
     enabled
: true
     sound
: ENTITY_PLAYER_LEVELUP
     volume
: 10
     pitch
: 1.0
  itemselect
:
     enabled
: true
     sound
: UI_BUTTON_CLICK
     volume
: 1
     pitch
: 1.0
  blockbreak
:
     enabled
: true
     sound
: BLOCK_SAND_BREAK
     volume
: 5
     pitch
: 1.0
  invitationmessage
:
    enabled
: false
    sound
: ENTITY_PLAYER_LEVELUP
    volume
: 20
    pitch
: 1.0
# if enabled, all players in arena teleport to arena spawn when countdown = 5 seconds
anticamping
:
   enabled
: true
   teleporttime
: 5
# set max entries displayed by leaderboard command
leaderboard
:
  maxentries = 10
# set hotbar items while waiting for arena start
items
:
   vote
:
      use
: true
      material
: DIAMOND
      name
: '&2&lVOTE'
      slot
: 0
   info
:
      use
: true
      material
: EMERALD
      name
: '&2&lINFO'
      slot
: 1
   shop
:
      use
: true
      material
: NETHER_STAR
      name
: '&2&lSHOP'
      slot
: 2
   stats
:
      use
: true
      material
: PLAYER_HEAD
      name
: '&2&lSTATS'
      slot
: 3
   heads
:
      use
: true
      material
: GLOWSTONE_DUST
      name
: '&e&lHEADSPLUS'
      slot
: 4
   tracker
:
      use
: true
      material
: COMPASS
      name
: '&e&lPlayer Tracker'
      slot
: 5
   leave
:
      use
: true
      material
: GREEN_BED
      name
: '&2&lLEAVE'
      slot
: 8
   doublejump
:
      use
: false
      material
: FEATHER
      name
: '&e&lDoublejump'
      slot
: 5
   tool
:
      use
: true
      material
: DIAMOND_SHOVEL
      name
: ''
      slot
: 0
   snowball
:
       use
: true
      material
: SNOWBALL
      name
: ''
      knockback
: 1.0
     slot
: 1
     breakblocks
: false
     allowpickup
: false
     maxpickup
: 10
# set scoreboard text - only the header supports hex/rgb colours
scoreboard
:
  # header: '<#ff11aa>&lSpleef'
  header
: '&6&lSpleef'
  # set to true to add a player's doublejumps to the scoreboard
  displaydoublejumps
: false
  # set to true to remove the scoreboard when a player becomes a spectator
  removefromspectators
: true
  # set to true to display the lobby scoreboard when a player runs the "/spleef lobby" command
  enablelobbyscoreboard
: false
   waiting
:
   - '&fWelcome to Spleef'
   - '&a '
   - '&fArena
: &6&l{ARENA}'
   - '&b '
   - '&fPlayers
: &a&l{PS}&7&l/&c&l{MPS}'
   - '&c '
   - '&fVotes required
: &a&l{VOTES}'
   - '&d'
   - '&fStarting in
: &6&l{COUNT}'
   playing
:
   - '&fPlaying Spleef'
   - '&fon arena
: &6&l{ARENA}'
   - '&b '
   - '&fPlayers
: &a&l{PS}&7&l/&c&l{MPS}'
   - '&c '
   - '&fLost Players
: &a&l{LOST}'
   - '&2 '
   - '&fEnd in
: &c&l{LIMIT}'
   lobby
:
   - '&fWelcome to the Spleef lobby'
   - '&a '
   - '&fNumber of Arenas
: %spleef_arena_count%'
   - '&b '
   - '&fGames played
: %spleef_played%'
   - '&fGames won
: %spleef_wins%'
   - '&c '
   - '&fSpleef_reloaded v %spleef_version%'
# set database to 'file' or 'sql'
database
: file
MySQL
:
   host
: host
   port
: 12345
   name
: spleef
   table
: stats
   user
: root
   pass
: password
   useSSL
: false
   flags
: allowPublicKeyRetrieval=true
   legacyDriver
: true
#
# set sign text
signs
:
   prefix
: '&6&lSpleef'
   join
: ' [Join ]'
   status
:
      disabled
: '&cDisabled'
      ingame
: '&c&l {PS }&8/&c&l {MPS }'
      regenerating
: '&6&lRegen ...'
      waiting
: '&a&l {PS }&8/&a&l {MPS }'
    # if a join sign is placed on a STAINED_GLASS block, the block colour can be set to reflect the arena status
   blockcolour
:
      disabled
: ''
      ingame
: ''
      starting
: ''
      waiting
: ''
    # set 'allowspectate' to true to allow players clicking on a sign of an in-game arena to join as spectators
   allowspectate
: false
# bungeecord settings
bungeecord
:
  enabled
: false
  # name of hub server
  hub
: lobby
  # if false players will teleport to the spleef lobby
  teleporttohub
: true
  # used to display arena status
  useMOTD
: true
  # if server has more than 1 arena, randomly select one each round
  randomarena
: true
  # stop the server after each round
  stopserver
: false
  # use players online UUIDs which can be passed through bungee to offline servers
  useUUID
: false
  # if true players with 'spectate' permission will join as a player if the arena has not started
  playorspectate
: false
  # if false the default Bukkit join message will not be displayed
  showdefaultjoinmessage
: true
# should a player's inventory be dropped if the player dies in the arena
ondeath
:
  dropitems
: true
# disable player collisions
disablecollisions
: false
# setting this to true will prevent arrows being picked up and re-used
removearrows
: false
# should a player's hunger and health bars be filled on joining an arena.
# previous values will be restored when leaving the arena.
onjoin
:
  fillhunger
: true
  fillhealth
: false
# number of seconds after game starts before blocks start to break
onstart
:
  delay
: 0
# currency symbols to apply to monetary messages
currency
:
  prefix
: ''
  suffix
: ' coins'
# specify language file to use
language
: en-GB
# set to true to log more verbose messages to console
debug
: false

Scoreboard Configuration
There are 3 scoreboards, one while the players are waiting for the game to start, one when the game is in progress, and a lobby scoreboard displayed when a player joins the Spleef lobby. They can all be configured/translated in the config.yml file.

Setting displaydoublejumps to true will add a scoreboard entry displaying the number of doublejumps the player has remaining.

The text and colour codes can be changed, but not the placeholders such as {ARENA}, {PS} and {VOTES}.

Everything that currently supports colours in the config.yml and messages.yml files can be changed to use Hex/RGB colours, EXCEPT the scoreboard entries.

The scoreboard header can still be set, and as an example, the following colour options/formats are supported:
Code (YAML):
scoreboard:
  header
: '&x&f&f&1&1&a&a&lSpleef'

scoreboard
:
  header
: '< #ff11aa>&lSpleef'

scoreboard
:
  header
: '&c&lSpleef'
Standard PlaceholderAPI placeholders can also be used in the scoreboard - see example below.
Code (YAML):
# set scoreboard text
scoreboard
:
  # Scoreboard Title
   header
: '&6&lSpleef'
   displaydoublejumps
: true
   removefromspectators
: true
   enablelobbyscoreboard
: false
    # Waiting scoreboard config
   waiting
:
   - '&fWelcome to Spleef'                   # title message
   - '&a '
   - '&fArena
: &6&l{ARENA}'                 # arena name
   - '&b '
   - '&fPlayers
: &a&l{PS}&7&l/&c&l{MPS}'   # players in arena and max players
   - '&c '
   - '&fVotes required
: &a&l{VOTES}'       # number of required to force-start arena
   - '&d'
   - '&fStarting in
: &6&l{COUNT}'           # countdown to game start
   - '&e '
   - '&fDouble Jumps
: &6&l{DJ}'             # number of doublejumps remaining
   - '&f '
   - '&fMoney
: %vault_eco_balance%'        # Example placeholder displaying player's balance
    # Playing scoreboard config
   playing
:
   - '&fPlaying Spleef'
   - '&fon arena
: &6&l{ARENA}'             # Scoreboard title with arena name
   - '&b '
   - '&fPlayers
: &a&l{PS}&7&l/&c&l{MPS}'   # players still active and max players
   - '&c '
   - '&fLost Players
: &a&l{LOST}'           # count of players that have lost
   - '&d '
   - '&fEnd in
: &c&l{LIMIT}'               # seconds remaining before game ends
   - '&e '
   - '&fDouble Jumps
: &6&l{DJ}'             # number of doublejumps remaining
    # Lobby scoreboard config
   lobby
:
   - '&fWelcome to the Spleef lobby'
   - '&a '
   - '&fNumber of Arenas
: %spleef_arena_count%'
   - '&b '
   - '&fGames played
: %spleef_played%'
   - '&fGames won
: %spleef_wins%'
   - '&c '
   - '&fSpleef_reloaded v %spleef_version%'
 


Kits
A kit is a set of items, weapons, food and potions that can be allocated to players at the start of a game.
A kit is created with command /spsetup addkit [kitname]

The addkit command adds all the items in your inventory including armour and active potion effects to the kit.
Kits are enabled on a per arena basis using command /spsetup enablekits [arena]
Players joining an arena (with kits enabled) will be allocated a random kit from those that have been created. If there is only one kit, everyone will receive the same kit.

A kit can also be linked to an arena using command /spsetup linkkit {arena} {kit}. Every player joining the arena will then receive the same kit.

If more than one kit is linked to an arena, by default players will receive a random kit from this list. To force all players to receive the same linked kit, set the following in the {arena}.yml file.
Code (YAML):
randomLinkedKit : false
The list of available kits can be displayed with command /spleef listkits
The contents of a kit can be displayed with command /spleef listkit [kitname]
A kit can be deleted with command /spsetup deletekit [kitname]

Item slot 9 in the hotbar will always be the configured 'leave' item for the arena unless removed in the config.


Parties
Players are able to create and join parties so that when the party leader joins an arena, the party members will automatically join the same arena at the same time.

Information on creating and using Spleef_reloaded parties can be found in the wiki .

Alternatively, parties created using the AlessioDP Parties plugin are also supported.


Heads
An optional feature is to allow players to purchase different heads to wear during the game. To enable this feature you will need to have the plugin HeadsPlus by Thatsmusic99 installed on your server.

During the arena countdown, players can use a hotbar item to open the HeadsPlus interface and purchase a head to wear during the game. The head is automatically equipped on the player's head when purchased, and removed at the end of the game.

Players will need permission node spleef.heads: true to be able to use this feature.

The price for each head is set in plugins\HeadsPlus\customheads.yml. The default price is 10.0 and is set in the same file, so if you want all heads to be free just change the default price to 0.0.

You may need to explicitly set permission headsplus.bypass.cost: false if players can buy heads at 0 cost even with a price set.

2019-06-10_23.08.25.png

Arena Join Menu
The arena join menu allows Spleef_reloaded arenas to be selected from an inventory menu. This can be disabled by disallowing permission spleef.joinmenu.

The list of arenas can be limited to only show enabled arenas in the config.yml.

The clickable items (TNT by default) and the coloured tiles can be changed in the config.yml file. The menu heading and other text can be changed in the messages.yml file.
Code (YAML):
menutitle : '&1Spleef_reloaded Arenas'
menuarenaname
: '&a {ARENA }'
menutext
: '&5Players : &6{PS}/{MPS}'
menufee
: '&5Join Fee : &6{FEE}'
menupvp
: '&5PVP : &6Enabled'
spleef join.PNG


Double-Jumps
There is an option (disabled by default) to give players a set number of double-jumps at the beginning of each game.
Code (YAML):
freedoublejumps:
  enabled
: false
  amount
: 10
This avoids the need to purchase double-jumps in the shop. If the free double-jumps option is enabled, then players can still purchase double-jumps in the shop (up to the maximum allowed), but these are stored and not used until the free double-jumps option is disabled. Unlike the shop bought double-jumps, the number of free double-jumps are reset at the start of each game.

The number of double-jumps a player can receive can also be limited using a permission node, spleef.doublejumps.n, where n is a positive integer (>=1).

A player with permission spleef.doublejumps.6: true will be able to receive or buy a maximum of 6 double-jumps, provided the maximum amount allowed in the config is at least 6.

A player should not have more than one doublejump permission set to true as there is no guarantee which one the plugin will match with first.

Doublejumps can be disabled completely in an arena by modifying the 'allowDoublejumps' setting in the arena config file.

The height of the doublejump can be modified in config.yml
Code (YAML):
doublejumps:
  multiplier
: 1.5
  height
: 0.7
The multiplier affects the forward trajectory of the player, while the height affects the vertical height the player can jump.

There is also an admin/console command ( [/trsetup|trconsole] givedoublejumps {player} {amount}) to give players additional doublejumps overriding any maximums set in the config.


Shop Setup
Items to be purchased in-game can be defined in the shop.yml file. The configuration below is the default shop configuration created when the plugin is installed. The description and prices can can be amended, items can removed completely or new items added provided they follow the existing convention.

By default, the permission node spleef.shop is set to true, allowing players to purchase any shop item, provided they have the money to purchase it. Alternatively, each shop item can have its own permission node set (in shop.yml) which a player will need to have in order to purchase that item.

Potions and Splash Potions have a duration and amplifier which can be set using the syntax:
<potion effect>#<duration>#<amplifier>

Setting the amplifier is optional in which case the default value of 1 will apply.

Snowballs have a custom knockback effect. This can be set from 0 (no knockback) to 5 (large knockback). The default is 2.

Items can be bought while waiting in the arena or during the arena countdown, and are given to the player immediately the game starts. Only one shop item can be purchased per game.

Optionally purchases can be removed when the player leaves the arena before the game starts using the config.yml option:
Code (YAML):
shop:
  onleave
:
      removepurchase
: true
The amount of money a player currently has is displayed using the item in the final slot of the shop GUI. The GOLD_INGOT can be changed to any other item in the config.


This is the default shop for the current release of Spigot/Minecraft. For older versions, some items may need to be removed for the shop to function.

Code (Text):

'1':
  name: '&fDouble Jump'
  cost: 100
  material: FEATHER
  amount: 1
  permission: spleef.shop.default
  lore:
  - Double Jump
  - Cost&6 100 &5coins
  items:
    '1':
      material: ''
      amount: 1
      displayname: '&cDouble jump'
      lore:
      - Basic kit - double jump
      enchantments:
      - 'null'
'2':
  name: '&fSwordsman'
  cost: 250
  material: IRON_SWORD
  glow: false
  amount: 1
  permission: spleef.shop.2
  lore:
  - Sword + Knockback#1
  - Cost&6 250 &5coins
  items:
    '1':
      material: IRON_SWORD
      amount: 1
      displayname: '&cSword + Knockback1'
      lore:
      - Sword + Knockback#1
      enchantments:
      - KNOCKBACK#2
      - SWEEPING#1
'3':
  name: '&fProtection Plus'
  cost: 300
  material: GOLDEN_CHESTPLATE
  glow:false
  amount: 1
  permission: spleef.shop.3
  lore:
  - Chestplate + Thorns#1
  - Cost&6 300 &5coins
  items:
    '1':
      material: GOLDEN_CHESTPLATE
      amount: 1
      displayname: '&cChestplate + Thorns1'
      lore:
      - Chestplate + Thorns#1
      enchantments:
      - THORNS#1
'4':
  name: '&fSword and Helmet'
  cost: 300
  material: GOLDEN_SWORD
  glow:false
  amount: 1
  permission: spleef.shop.4
  lore:
  - Golden Sword and Helmet
  - Cost&6 300 &5coins
  items:
    '1':
      material: GOLDEN_SWORD
      amount: 1
      displayname: '&cGolden Sword'
      lore:
      - Golden Sword
      enchantments:
      - null
    '2':
      material: GOLDEN_HELMET
      amount: 1
      displayname: '&cGolden Helmet'
      lore:
      - Golden Helmet
      enchantments:
      - PROTECTION#1
'5':
  name: '&fSnowballs x 20'
  cost: 50
  material: SNOWBALL
  amount: 20
  permission: spleef.shop.5
  lore:
  - Snowballs + Knockback2
  - Cost&6 50 &5coins
  items:
    '1':
      material: SNOWBALL
      amount: 20
      displayname: '&cSnowballs'
      lore:
      - Snowballs
      enchantments:
      - KNOCKBACK#2
'6':
  name: '&fSpeed Potion'
  cost: 50
  material: POTION
  amount: 1
  permission: spleef.shop.6
  lore:
  - Add&6 SPEED &5(1:00)
  - Cost&6 50 &5coins
  items:
    '1':
      material: POTION
      amount: 1
      enchantments:
      - SPEED#60#1
'7':
  name: '&fJump Potion'
  cost: 50
  material: POTION
  amount: 1
  permission: spleef.shop.7
  lore:
  - Add&6 JUMP &5boost (0:45)
  - Cost&6 50 &5coins
  items:
    '1':
      material: POTION
      amount: 1
      enchantments:
      - JUMP_BOOST#45#1
'8':
  name: '&fNight Vision Potion'
  cost: 50
  material: POTION
  amount: 1
  permission: spleef.shop.8
  lore:
  - Add&6 NIGHT_VISION &5(2:00)
  - Cost&6 50 &5coins
  items:
    '1':
      material: POTION
      amount: 1
      enchantments:
      - NIGHT_VISION#120#1
'9':
  name: '&fInvisibility Potion'
  cost: 50
  material: POTION
  amount: 1
  permission: spleef.shop.9
  lore:
  - Add&6 INVISIBILITY &5(1:00)
  - Cost&6 50 &5coins
  items:
    '1':
      material: POTION
      amount: 1
      enchantments:
      - INVISIBILITY#60#1
'10':
  name: '&fSplash Potion of Slowness'
  cost: 50
  material: SPLASH_POTION
  amount: 1
  permission: spleef.shop.10
  lore:
  - Add&6 SLOWNESS &5(0:30)
  - Cost&6 50 &5coins
  items:
    '1':
      material: SPLASH_POTION
      amount: 1
      displayname: '&cSplash Potion of Slowness'
      lore:
      - Slowness
      enchantments:
      - SLOWNESS#30#1
'11':
  name: '&fSplash Potion of Confusion'
  cost: 50
  material: SPLASH_POTION
  amount: 1
  permission: spleef.shop.11
  lore:
  - Add&6 CONFUSION &5(0:30)
  - Cost&6 50 &5coins
  items:
    '1':
      material: SPLASH_POTION
      amount: 1
      displayname: '&cSplash Potion of Confusion'
      lore:
      - Confusion
      enchantments:
      - NAUSEA#30#1
'12':
  name: '&fSplash Potion of Blindness'
  cost: 50
  material: SPLASH_POTION
  amount: 1
  permission: spleef.shop.12
  lore:
  - Add&6 BLINDNESS &5(1:30)
  - Cost&6 100 &5coins
  items:
    '1':
      material: SPLASH_POTION
      amount: 1
      displayname: '&cSplash Potion of Blindness'
      lore:
      - Blindness
      enchantments:
      - BLINDNESS#90#1
'13':
  name: '&fCommand'
  cost: 50
  material: COMMAND_BLOCK
  amount: 1
  permission: spleef.shop.13
  lore:
  - '&6give %PLAYER% GOLD_NUGGET 1'
  - '&6give %PLAYER% IRON_NUGGET 1'
  - Cost&6 50 &5coins
  items:
    '1':
      material: COMMAND
      amount: 2
      enchantments:
      - 'null'
 


Placeholders
All the placeholders listed below work with the current version.

Code (Text):
%spleef_played%                                : number of Spleef games played
%spleef_wins%                                  : number of Spleef games won
%spleef_losses%                                : number of Spleef games lost
%spleef_winstreak%                             : number of consecutive games won
%spleef_version%                               : version number of plugin
%spleef_current_arena%                         : player's current arena
%spleef_arena_count%                           : number of Spleef arenas
%spleef_pvp_arena_count%                       : number of PVP Spleef arenas
%spleef_nopvp_arena_count%                     : number of non-PVP Spleef arenas
%spleef_player_count%                          : number of players currently playing Spleef
%spleef_pvp_player_count%                      : number of players currently playing PVP Spleef
%spleef_nopvp_player_count%                    : number of players currently playing non-PVP Spleef
%spleef_player_count_<arena>%                  : number of players currently playing arena
%spleef_spectator_count_<arena>%               : number of spectators in arena
%spleef_spectator_count%                       : number of Spleef spectators
%spleef_status_<arena>%                        : current status of arena
%spleef_joinfee_<arena>%                       : fee required to join arena
%spleef_currency_<arena>%                      : currency item required to join arena
%spleef_seconds_remaining_<arena>%             : seconds remaining in arena
%spleef_time_remaining_<arena>%                : time remaining in arena as hh:mm:ss
%spleef_minplayers_<arena>%                    : minimum players required in arena
%spleef_maxplayers_<arena>%                    : maximum players for arena
%spleef_doublejumps%                           : number of doublejumps the player has
%spleef_leaderboard_wins_player_<position>%    : player at position in "wins" leaderboard
%spleef_leaderboard_wins_score_<position>%     : number of wins at position in "wins" leaderboard
%spleef_leaderboard_wins_rank_<position>%      : rank of player at position in "wins" leaderboard
%spleef_leaderboard_losses_player_<position>%  : player at position in "losses" leaderboard
%spleef_leaderboard_losses_score_<position>%   : number of losses at position in "losses" leaderboard
%spleef_leaderboard_losses_rank_<position>%    : rank of player at position in "losses" leaderboard
%spleef_leaderboard_played_player_<position>%  : player at position in "played" leaderboard
%spleef_leaderboard_played_score_<position>%   : number of games played at position in "played" leaderboard
%spleef_leaderboard_played_rank_<position>%    : rank of player at position in "played" leaderboard
%spleef_allplayers_<arena>%                    : list of names of all players in the arena
%spleef_players_<arena>%                       : list of names of active players in the arena
%spleef_spectators_<arena>%                    : list of names of spectators in the arena
%spleef_position_wins%                         : player's position in games won leaderboard
%spleef_position_played%                       : player's position in games played leaderboard
%spleef_position_losses%                       : player's position in games lost leaderboard
%spleef_pvp_status_<arena>%                    : display if PVP is enabled or disabled in the arena
%spleef_damage_status_<arena>%                 : display the player damage setting in the arena (yes/no/zero)

Creating holograms using the placeholders
This information is on the wiki and includes examples on creating holographic leaderboards using HolographicDisplays.


Signs
Each sign is created as in the picture below. The Join sign colours are configurable in config.yml, and the arena name colour can be set when creating the sign, e.g. &farena1 will create the name in white instead of the default black text.

The Leaderboard sign colours and text can be set in messages.yml. The Leaderboard sign will automatically refresh at the end of each game.

The leave and vote signs have largely been superceded by using inventory items but can still be used if required.


If a join sign is placed on a STAINED_GLASS block, the glass colour can be configured to reflect the status of the arena, for example GREEN/waiting, RED/in-game, BLACK/disabled.
Code (YAML):
signs:
  blockcolour
:
    disabled
: ''
    ingame
: RED
    starting
: ''
    waiting
: GREEN

Custom Events
Custom events allow developers to hook into Spleef_reloaded.
The current list of events are:
  • PlayerJoinArenaEvent
  • PlayerLeaveArenaEvent
  • PlayerWinArenaEvent
  • PlayerSpectateArenaEvent
  • ArenaStartEvent
  • ArenaTimeoutEvent
  • RewardWinnerEvent
Each custom player event will give you the player object and also the arena.
The arena events will return the arena object.
Code (Java):
@EventHandler
public void onPlayerJoinArena (PlayerJoinArenaEvent event ) {

    Player player = event. getPlayer ( ) ;
    String arena = event. getArena ( ). getArenaName ( ) ;

    getLogger ( ). info ( "Spleef_reloaded: Player " + player. getName ( ) + " has joined arena " + arena. getArenaName ( ) )
}


Languages / Localization
The in-game default language is English (en-GB). The language can be changed by manually replacing the messages.yml with your own translated version of the file.

If you would like to contribute your translations to the project, these are managed via Crowdin.com. Please visit the wiki for details on how to set the language for your server and how to contribute via Crowdin.

If your language is not listed below and if its supported by Crowdin, let me know and it can easily be added.


Metrics
This plugin uses bStats to collect anonymous plugin metrics. The data is collected once every 30mins and is submitted asynchronously to the bStats server. The plugin doesn't collect any custom data, just the default bStats data which is listed on bstats.org. The metrics class is also open source and can be viewed here, or in this plugin's source code on GitHub.

Metrics can of course be disabled on your server but I would appreciate it if it was left enabled as the information it provides gives me an idea of how many servers are using the plugin, what versions are in use, etc. and is an incentive for me to put more of my time into development of the plugin.

Data from the plugin can be viewed here:
https://bstats.org/plugin/bukkit/Spleef_reloaded

[​IMG]


Issues and support
Join our Discord server to make it easier to discuss issues and share information.

[​IMG]
Any issues or suggestions can be raised on the Issues tab in the GitHub repository, by clicking the big Discord banner above, in the Discussions tab, or even send me a PM.

Please don't use the Review section to ask for help or additional features. Use one of the options listed above and provide as much information as possible. If something's not working, then it probably is a configuration issue, and it's just not possible to diagnose and resolve a problem in the review space. Thank you.
Resource Information
Author:
----------
Total Downloads: 523
First Release: Aug 6, 2024
Last Update: Jan 24, 2025
Category: ---------------
All-Time Rating:
1 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings