Pr2gQnq.png
 
The game is played as follows:
Bowling Party is a game where each player gets to play 10 rounds. In each of the rounds, you have 2 frames to hit as many pins as possible. If you manage to hit all 10 of them you get extra points. The player with the most points wins the game.
 
SiwyY.gif
 
Features:
The plugin is highly configurable, allowing you to adjust nearly every aspect. Some of the key highlights of this game mode include:
  • Design Your Own Tracks: Unleash your creativity by crafting personalized tracks.
  • Music Integration: Enhance the gaming experience by adding music through NBS files.
  • Per-server/Multi-arena: Set one game per server (BungeeCord) or multiple games per server.
  • MySql Support: Keep track of win streaks with efficient MySql integration.
  • PlaceholderAPI Support: Enjoy compatibility with PlaceholderAPI for streamlined integration.
cLbW7Mh.jpeg
(You can get the map on the picture here: Bowling Party Default Map)
 
Setup:
  1. Get the plugin and put it in the plugins folder. Start the server and let the plugin generate the folders.
  2. Feel free to modify any settings in the configuration file as you see fit. Afterward, restart the server, and you'll be able to join with your new changes.
  3. For both the multi-games per server and single game on the server mode, you'll want to create at least one game. You can do so with the "/bp create [game_name]" command.
  4. Setup game.
  5. First, set the waiting location (waiting location before the game starts) using the "/bp set waiting [game_name]" command.
  6. Next, go to all the lane locations where you want the players to stand and look at the pin area as if you were throwing the ball, then run the command "/bp add lane [game_name]".
  7. Next, you'll want to save the game with this command "/bp save [game_name]".
  8. Enjoy!
 
When setting up the game for older verions you will have to replace all the sounds and materials in config!
 
Setup videos:
 
Game play:
 
Adding your own music:
For music, you'll need to download an additional plugin [NoteBlockAPI]
Restart the server and you'll get a folder in BowlingParty called music, where you drop in the NBS files.
You'll need a Note Block Studio.
If you want to see where to get those files you can watch this video:
 
 
When you have a song in Note Block Studio just export it as NBS.
 
Commands:
/bp join - Join the best game.
/bp join [name] - Join the game.
/bp leave - Leave game.
/bp create [game_name] - Create a new game.
/bp save [game_name] - Save a game.
/bp set waiting [game_name] - Set waiting location.
/bp add lane [game_name] - Add a bowling lane.
/bp remove lane [number] [game_name] - Remove a bowling lane.
/bp list lanes [game_name] - List all lanes in game.
 
PlaceholderAPI:
Player stats:
  • %bowlingparty_player_uuid%
  • %bowlingparty_player_name%
  • %bowlingparty_player_games-played%
  • %bowlingparty_player_win-streak%
  • %bowlingparty_player_wins%
  • %bowlingparty_player_score%
  • %bowlingparty_player_placement%
Top stats:
 
Structure of top placeholders:
%bowlingparty_top_games-played_1_name%
 
bowlingparty_top_ - is always the same.
games-played_ - can be (games-played, win-streak, wins or score) - represents top 10 category.
1_ - is a placement number which can be from 1 .. 10.
name - this part can be (uuid, name, games-played, win-streak, wins, score or placement) - data of the player in this placement of the top 10 category.
 
Examples:
 
  • %bowlingparty_top_games-played_5_name%
  • %bowlingparty_top_win-streak_10_score%
  • %bowlingparty_top_wins_1_win-streak%
  • %bowlingparty_top_score_3_name%
Config:
 
# BOWLING PARTY
# CREATED BY ALANDIODA
# VERSION 1.0.3

# MYSQL INFORMATION
mysql:
   enabled: false
   host: localhost
   port: 3306
   database: database
   username: username
   password: password
   tablename: BowlingPartyData

# Top 10 update rate (in seconds, 0 = disable)
top_10_update_rate: 300

# Ball materials
#
# Here are default ball blocks which will be used in the game.
#
# The layout of the config is as follows:
# MATERIAL_NAME:
#    color: COLOR_WHICH_THE_BLOCK_REPRESENTS_IN_HEX
#    name: COLOR_DISPLAY_NAME
balls:
   '2':
      name: "10 ball"
      material: PLAYER_HEAD
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDk4NDFjZTg2YmZjMzk1OTFlODg1NzkyMDNlYzRjOGVmMmM4NmEyM2FlYTA5MjQ1OTFiOTMxZWE4NWVmYSJ9fX0="
   '3':
      name: "11 ball"
      material: PLAYER_HEAD
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2IzOWMzOWM0ODQyMzg2NjVkMjI3MDQ0NDFlZDRhNDcyMjVkNTg2Mzg2NTRlNjQ4ZmNkOTNjNDc5NGM1MzAifX19"
   '4':
      name: "12 ball"
      material: PLAYER_HEAD
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2N2VkYjZhYjIxMjlhM2I0MzlkZGU5ODg2OWUwNWFmODFjODZkOTQ4MTVlMzdkMzEzNTliY2QzZGRmNDU4ZCJ9fX0="
   '5':
      name: "13 ball"
      material: PLAYER_HEAD
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzY2ZjgxZmJlYzVjMTQxMWVmNDlmOWUyODMyNTg1ZmViMjQ2MTlkYzk5MWY5MmJkZmVlY2Q2NzY5ODQxNzkifX19"
   '6':
      name: "14 ball"
      material: PLAYER_HEAD
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2NkYjk1OGJkMzE3YzkxMjRiYzA4NjRmNGNhYmRjMzNhZjlkYTMyN2UyNTE1NDdjZmQyY2EzZDEzNzEifX19"

# Pin material
pin:
   material: HONEY_BOTTLE

# Settings
# Admin permission node
permission_admin: BowlingParty.admin

# Commands
# you can use <player> when not using player mode ( give <player> gold ).
# as well as <uuid>
win:
   command: 'give <player> minecraft:gold_ingot'
   player: false
lose:
   command: ''
   player: false

# End game
# you can use <player> or <uuid> for cmd.
end:
   command:
      enabled: false
      cmd: some command
   start_new_game: false

# Game mode:
# true = the whole server is for one game.
# false = have a lobby and games in one server.
is_game_per_server: false

# if is_game_per_server is set to true ignore this
lobby:
   world: world
   x: 0.0
   y: 64.0
   z: 0.0
   yaw: 0.0
   pitch: 0.0
   return_to_lobby_after_game_ends: true

# Start
# Start the game when at least 2 players join the game
start_on_player_count: 2

# Max players count
max_players_count: 10

# Round time in seconds
round_time: 40

# Round count
round_count: 10

# Game start countdown
countdown_time: 30

# Lane length
lane_langth: 20

# Countdown sound
countdown:
   sound: BLOCK_NOTE_BLOCK_PLING
   play_per_sec: 5

# Game sounds
sounds:
   strike: ENTITY_PLAYER_LEVELUP
   spare: ENTITY_EXPERIENCE_ORB_PICKUP
   reset_in: BLOCK_PISTON_EXTEND
   reset_out: BLOCK_PISTON_CONTRACT

# Ending
# Display effects before the game ends
win_celebration_seconds: 10

# After the game ends restart the server
when_ends_shutdown: false

# Formats
formats:
   connection:
      join: '&8[&eBowlingParty&8] &fPlayer &a<player_name> &fhas joined the game! &8[&e<count_players>&8/&e<count_max>&8]'
      leave: '&8[&eBowlingParty&8] &fPlayer &a<player_name> &fhas left the game! &8[&e<count_players>&8/&e<count_max>&8]'
      everyone_left:
         title:
            format: &cEveryone left!
            sub: &cStopping the game!
      rules:
         text: "RULES: Bowling Party is a game where each player gets to play 10 rounds. In each of the rounds, you have 2 frames to hit as many pins as possible. If you manage to hit all 10 of them you get extra points. The player with the most points wins the game. (Left click on ball to throw it.)"
         color: "ffff55"
   display:
      score:
         title1: " "
         subtitle1: "&e<score1>"
         title2: " "
         subtitle2: "&e<score1> &8| &e<score2>"
         chat: "&8[&eBowlingParty&8] &fYou hit &a<score1> pins &fin the first frame and &a<score2> pins &fin the second frame."
         strike:
            title: "&eStrike!"
            subtitle: "&e<score1>"
            chat: "&8[&eBowlingParty&8] &fStrike!"
         spare:
            title: "&eSpare!"
            subtitle: "&e<score1> &8| &e<score2>"
            chat: "&8[&eBowlingParty&8] &fSpare!"
   countdown:
      chat:
         format: '&8[&eBowlingParty&8] &fStarting in &a<time>&f!'
         display_per_sec: 5
      title:
         format: '&fStarting in &e<time>'
         sub: '&aThe game will start soon!'
         display_per_sec: 5
      round:
         time_remaining: "&eRemaining: <countdown>"
         round_exceeded: "&8[&eBowlingParty&8] &cRound time exceeded!"
   winning:
      title:
         format: '&e&l<name> &f&lhas won!'
         sub: ''
   win_display:
      chat:
      - '&b&l<num_1_name> &e&lhas won the game!'
      - ''
      - '----------------------------'
      - '&a&l1th &e<num_1_name>'
      - '&a&l2nd &e<num_2_name>'
      - '&a&l3rd &e<num_3_name>'
      - '----------------------------'
   new_round:
      title: '&fRound <round_number>'
      subtitle: '&fYour color is <color><color_name>'
      chat: '&fYour color is <color><color_name>&f.'
   game:
      chat:
         waiting: '&7<player_name>: &f<message>'
         playing: '&7<player_name>: &f<message>'
         spectating: '&8[SPEC] &7<player_name>: <message>'

# Status display
status:
# This will be shown on waiting scoreboards <lobby_status>
   gamestate:
      WAITING: Waiting
      STARTING: Starting
      PLAYING: Playing
      ENDING: Ending

# Scoreboards
scoreboard:
   waiting:
      title: Bowling Party
      lines:
      - ''
      - '&7<date>'
      - '&7<time>'
      - '&eServer: &fserver_id'
      - ''
      - '&eStatus: &f<lobby_status>'
      - '&ePlayers: &f<count_players>&7/&f<count_max>'
      - ''
      - '&eplay.myserver.net'
   playing:
      title: Bowling Party
      lines:
      - ''
      - '&eTime: &f<game_time>'
      - '&eRound: &f<game_round>'
      - ''
      - '&e<player_name_1> &7- &e<points_1>'
      - '&e<player_name_2> &7- &e<points_2>'
      - '&e<player_name_3> &7- &e<points_3>'
      - '&e<player_name_4> &7- &e<points_4>'
      - '&e<player_name_5> &7- &e<points_5>'
      - ''
      - '&eplay.myserver.net'
 
Before you buy the plugin make sure to read carefully this page just so you'll understand what you're getting.
 
Terms and conditions:
This plugin cannot be refunded.
You aren't allowed to redistribute/resell this plugin.
You aren't allowed to modify or decompile the plugin.