Sueta
BO

BowSpleef

2.3.0

MySQL/QLite | Bungee/MultiArena | Achievements | Shop | Leaderboards | 1.8-1.21 |

·Plugin

  • Multi-Arena or Bungee support.
  • Basic API with game events and data.
  • Achievements.
  • Cosmetics with custom particles!
  • Custom scoreboard.
    • 100% customizable.
  • Spectator mode.
  • Vault or custom economy support.
  • MySQL and SQLite support.
  • All game messages are configurable.
    • Signs, game messages, scoreboard and more.
  • Automatically rollback system (After game/server shutdown).
  • UUID support.
  • Save and restore player inventory, levels and more!
  • Made for Java 8+ and MC 1.8-1.19.
  • Leaderboards.
  • Advanced world restore or map resetting system.
  • Reward system.

Bugs

Do not use the rating area to report bugs or request features. Please go to discussion.

Dependencies

HolographicDisplays (optional):

Arena Restore System.

There are two restore system types.

Per World Arena (Config -> Advanced.Per-World-Arena)

If set to true, each arena will be a world. This will make so arenas will reset a lot faster, and no risks of restoring problems.

Normal Restore System
You will be able to create multiple arenas per world, with this you can tweak some options:

Restore-Task-Delay-Delay: '1' -> Defines the task delay, X
Blocks-Per-Iterator: '10' -> The amount of blocks that will be placed per X ticks

This restore system is slower and if your server crashes while the arena is restoring you may have to replace the TNTs. This system works with server shutdowns, if you server shutdown during a game or during the restoring process it should still restore the arena, but there's no way to detect crashes so just a warning.

Bungee Systems

If you want to run multiple game instances on a Bungee Server, set Multiple-Games-Per-Bungee-Server to true. You'll need to have multiple arenas on that server for the system to work.

There's no sign system for this just yet, it's planned for the future, meanwhile you can use the API (see below) to access the game and get data from the server.

ParticleEffects (for trails and effects)

ParticleEffects 1.8-1.12
There is more particles than that, to avoid issues we're working with:

EXPLODE
LARGEEXPLODE
HUGEEXPLOSION
FIREWORKSSPARK
CRIT
MAGICCRIT
SMOKE
LARGESMOKE
SPELL
INSTANTSPELL
MOBSPELL
WITCHMAGIC
DRIPWATER
DRIPLAVA
HAPPYVILLAGER
ANGRYVILLAGER
NOTE
PORTAL
ENCHANTMENTTABLE
FLAME
FOOTSTEP
CLOUD
REDSTONE
SNOWBALL
SNOW_SHOVELD
SLIME
HEART
LAVA


For 1.13+, check HERE.

Player commands

  • /bs join <arena> - no permission.
  • /bs leave - no permission.
  • /bs stats - no permission.
  • /bs joinmenu - bowspleef.joinmenu

Manager commands

  • /bs setgspawn - bowspleef.admin
  • /bs start <arena> - bowspleef.moderator/bowspleef.admin
  • /bs stop <arena> - bowspleef.moderator/bowspleef.admin
  • /bs delete <arena> - bowspleef.admin
  • /sbs edit <arena> - bowspleef.admin

Others:

  • /bs coins set/add/remve <player> <amount> - bowspleef.command.coins
  • /bs updateLeaderboard - bowspleef.admin
  • /bs config set [path] [value] - bowspleef.admin
  • /bs reload - bowspleef.admin

Creating an arena below.

Arena setup

Required permission: bs.admin
First of all set global spawn using /bs setgspawn

  1. Create your arena - /bs create <name>
    1. BowSpleef will create a empty world and teleport you the map.
    2. If you already have a world with the name of the arena on the server root, BowSpleef will load the world and teleport you to setup the arena. (Note: Don't load the world with any world plugin or BowSpleef will not able to delete them)
  2. Set arena lobby - /bs setLobby <name>
    1. Set the location where players will be teleported after joining.
  3. Add spawn - /bs setSpawn <name>
    1. Set the location where players will be teleported after game starts.
  4. Add Arena Bounds - /bs setBounds <name>
    1. IMPORTANT! Use /bs wand to get the selection tool.
    2. You don't need to select the whole arena, just where the TNTs are, but if you arena has multiple floors you should select the arena.
    3. You don't need to use this command if you are using Per World Arenas.
  5. Add Spectator Spawn /bs setSpectatorSpawn <name>
  6. Set min players - /bs setMinPlayers <name> <amount>
  7. Set max players - /bs setMaxPlayers <name> <amount>
  8. Finish the arena with - /bs finish <name>
    1. Loads/reloads the arena, you need to use this command after editing or creating a map.

Item Config

Normal item "MATERIAL : AMOUNT"
Item with data "MATERIAL:DATA : AMOUNT"
Item with enchantment "MATERIAL : AMOUNT : enchant:ENCHANT_NAME:LEVEL"
Item with name and/or lore "MATERIAL : AMOUNT : name:name :
lore:lore"
Item with color: "ID : AMOUNT : dye:COLOR"

You can combine all those type of items however you want.

Placeholders

  • %displayname% - For chat format setting, will return the player display name.
    • [ADMIN] Floodeer.
  • %playername% - For chat format setting, will return the player name.
    • Floodeer
  • %message% - For chat format setting, will return the player message.
  • %winner% - For winner messages, will return the winner's playername.
  • %coins% - For winner broadcast, will return the amount of coins that the player get from the game.
  • %shots% - For scoreboard and stats, amount from player's data.
  • %wins% - For scoreboard and stats, amount from player's data.
  • %games_played% - For scoreboard and stats, amount from player's data.
  • %balance% - For scoreboard and stats, amount from player's data.
  • %earned_coins% - For Game-Scoreboard (In-Game only).
  • %double_jumps% - For Game-Scoreboard (In-Game only).

PlaceholderAPI

  • %bowspleef_gamesplayed%
  • %bowspleef_wins%
  • %bowspleef_losses%
  • %bowspleef_shots%
  • %bowspleef_leaderboard_shots_position% (e.g; %bowspleef_leaderboard_shots_1%)
  • %bowspleef_leaderboard_wins_position% (e.g; %bowspleef_leaderboard_wins_1%)

Others placeholders can be found in settings.yml.

Extra permissions

  • bowspleef.joinfull - Allows you to join in full games.

Join Sign

  1. [BowSpleef]
  2. join
  3. ArenaName

Leaderboard Hologram (HolographicDisplays)

Placeholder: {bowspleef_wins_position}

  • e.g: {bowspleef_wins_1} for the player with most wins.

Placeholder: {bowspleef_shots_position}

  • e.g: {bowspleef_wins_1} for the player with most shots.

Shop

You can buy trails, effects, double jump and triple shots! If you leave the game after purchasing a triple shot or a double jump before the game starts you will receive your money back.

Trails & Effects config

  • The number is the ID and will be saved in Database.
  • name: The display name in menu.
  • buyPermission: The player needs to have this permission to buy an trail/effect.
  • permission: The trail/effect that the player with the buyPermission will purchase.
  • particles: The particle type, the list is on Main page. CLICK HERE TO GO
  • menuItem: The display item in menu.
  • lore: The item lore in menu.
  • buyCommands: Commands to execute when player buy the trail/effect.
  • price: The price
  • slot: Slot in menu
  • rotateParticles: For Effects Only, special/rotative particles around the player or normal particles.
  • helmet: (Full armor set will be added soon) If player will get some hat with the effect.

Screenshots

All Screenshots





Files

Options File
# ##### Important options in configuration #####
# Storage.Type: Types -> MYSQL, SQLITE
# Storage.Update-Interval: Interval (in minutes) to send a updated version of all the player data to your DB.
#
# Advanced.Advanced-Restore:  If enabled, THE WORLD WILL BE DELETED and recreated from a backup at maps folder.
# Advanced.Iterator-Delay: De delay between the block place -> 50 Blocks Per Iterator * 5 ticks Iterator Delay = 200 blocks placed per second.
Locations:
  spawn: ''
System:
  debug: 'false'
Advanced:
  Restore-Task-Delay-Delay: '1'
  Blocks-Per-Iterator: '15'
  Per-World-Arena: 'false'
Storage:
  Type: SQLite
  MySQL:
    Host: localhost
    Port: '3306'
    User: user
    Password: '123456'
    Database: database
  Update-Interval: '5'
Options:
  Leaderboard:
    Enabled: 'true'
    Data-Limit: '10'
    Refresh-Rate: '25'
  Bungee:
    Enabled: 'false'
    Lobby-Server: lobby
    Server-Name: bowspleef1
  Titles:
    Fade-In: '8'
    Stay: '28'
    Fade-Out: '5'
  Save-Inventory: 'true'
  Disable-Shop: 'false'
  Trails-Enabled: 'true'
  Arrow-Effects:
    Enabled: 'true'
  Double-Jump-Enabled: 'true'
  Triple-Shot-Enabled: 'true'
  Per-Game-Double-Jump: '2'
  Double-Jump-Limit: '5'
  Per-Game-Triple-Shot: '3'
  Triple-Shot-Limit: '5'
  Trails:
    Stop-Particles-When-Looking-Up: 'true'
    Stop-Particles-When-Invisible: 'false'
    Per-Player-Particle: 'false'
  Multiple-Games-Per-Bungee-Server: 'false'
  Offline-Mode: 'false'
  Join-While-Starting: 'true'
  Disable-Spectator: 'false'
  Use-Spectator-Game-Mode: 'true'
  Use-Vault: 'false'
  Double-Jump-Multiply-Forward: '1.5'
  Double-Jump-Multiply-Y: '0.8'
  Time-After-Game: '8'
  Economy:
    Coins-Per-Win: '250'
    Coins-Per-Player-Death: '5'
    Coins-For-Participation: '50'
  Game:
    Pre-Start-Countdown: '35'
    Game-Length: '600'
    Grace-Period: '10'
  Whitelisted-Commands:
  - bs
  - tell
  - r
Items:
  Spectator-Item: 'COMPASS : 1 : name:&7Players'
  Spectator-Item-Slot: '0'
  Arena-Item: 'EMERALD_BLOCK : 1'
  Join-Arena-Item: 'EMERALD_BLOCK : 1'
  Leave-Item:
    Type: 'BED : 1 : name:&cLeave'
    Slot: '8'
  Shop-Item:
    Type: 'EMERALD : 1 : name:&eShop'
    Slot: '4'
Sounds:
  Double-Jump: ENTITY_BAT_LOOP:0.2
  Grace-Time: UI_BUTTON_CLICK:1
  Purchase-Sound: ENTITY_PLAYER_LEVELUP:2
Rewards:
  Win-Commands:
  - eco give %player% 100
  Second-Place:
  - eco give %player% 50
  Third-Place:
  - eco give %player% 25
Shop:
  Settings:
    Items:
      Double-Jump-Slot: '0'
      Triple-Shot-Slot: '2'
  Effects-Slot: '6'
  Trail-Slot: '8'
  Balance-Slot: '4'
  Main-Shop-Rows: '1'
  Effects-Rows: '6'
  Trails-Rows: '6'
  Double-Jump-Price: '500'
  Triple-Shot-Price: '750'
  Double-Jump-Name: '&7Double Jump'
  Double-Jump-Lore:
  - '&eUse your double jump to scape from death!'
  Triple-Shot-Name: '&7Triple Shot'
  Triple-Shot-Lore:
  - '&eLeft click to shot triple arrows!'
Menus:
  Trails:
    No-Permission-Item: 'BARRIER : 1'
    Locked-Item: 'RED_STAINED_GLASS_PANE : 1'

Similar projects

Plugin →