The game is played as follows:
You begin at a track and aim to guide your ball into the hole using the fewest strokes possible. The ball travels in the direction you're facing and moves at the speed you've set.
Features:
The plugin is highly configurable, allowing you to customize nearly every aspect. Some notable features of this game mode include:
- Design Your Own Tracks: Unleash your creativity by designing 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.
- Custom Models: Immerse players with support for custom models.
(You can get the map on the picture here: Golf Party Default Map)
Setup:
- Get the plugin and put it in the plugins folder. Start the server and let the plugin generate the folders.
- 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.
- 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 "/gp create [game_name]" command.
- Set up the game. Your inventory will now have tools.
- First, set the lobby location (waiting location before the game starts) using the blue terracotta.
- Next, go to your track and set the start and end positions with the stone and iron swords by pressing on the blocks.
- Next, you'll want to set the collider locations, which you set with a gold sword. Colliders are boxes that are used to define an edge for the track. They can be straight or diagonal. You set them by starting in one corner and then selecting the other corner. In the chat, you'll see two messages: "Location 1 set" and then "Placed!" (If this is confusing, I suggest watching a video.)
- Then you have two more tools for visual additions. The diamond sword is for making the edge, and you place it the same way as colliders. The goal display is to make the hole for the end smaller looking; you set it just by clicking on the hole.
- When you're done with one track, you can click on the yellow terracotta to start setting up the new track. If you keep clicking on the yellow block, you'll loop around the tracks.
- When you're done, save the game by clicking the green terracotta.
- 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 GolfParty 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:
/gp join - Join the best game.
/gp join [name] - Join the game.
/gp leave - Leave game.
/gp create [game_name] - Create a new game.
/gp edit [game_name] - Edit a game.
Permissions:
Permissions for balls follow this pattern:
This is permission for material BLACK_CONCRETE -> GolfParty.ball.BLACK_CONCRETE
This is permission for material PURPLE_CONCRETE -> GolfParty.ball.PURPLE_CONCRETE
PlaceholderAPI:
Player stats:
- %golfparty_player_uuid%
- %golfparty_player_name%
- %golfparty_player_games-played%
- %golfparty_player_win-streak%
- %golfparty_player_wins%
- %golfparty_player_score%
- %golfparty_player_placement%
Game stats:
- %golfparty_game-count_<game_name>%
- %golfparty_game-state_<game_name>%
Scoreboard:
- %golfparty_scoreboard_waiting_date%
- %golfparty_scoreboard_waiting_time%
- %golfparty_scoreboard_waiting_status%
- %golfparty_scoreboard_waiting_count-players%
- %golfparty_scoreboard_waiting_count-max%
- %golfparty_scoreboard_playing_game-time%
- %golfparty_scoreboard_playing_round-time%
- %golfparty_scoreboard_playing_strokes%
- %golfparty_scoreboard_playing_n_1%
- %golfparty_scoreboard_playing_n_2%
- %golfparty_scoreboard_playing_n_3%
- %golfparty_scoreboard_playing_n_4%
- %golfparty_scoreboard_playing_n_5%
- %golfparty_scoreboard_playing_color_1%
- %golfparty_scoreboard_playing_color_2%
- %golfparty_scoreboard_playing_color_3%
- %golfparty_scoreboard_playing_color_4%
- %golfparty_scoreboard_playing_color_5%
- %golfparty_scoreboard_playing_name_1%
- %golfparty_scoreboard_playing_name_2%
- %golfparty_scoreboard_playing_name_3%
- %golfparty_scoreboard_playing_name_4%
- %golfparty_scoreboard_playing_name_5%
Top stats:
Structure of top placeholders:
%golfparty_top_games-played_1_name%
golfparty_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:
- %golfparty_top_games-played_5_name%
- %golfparty_top_win-streak_10_score%
- %golfparty_top_wins_1_win-streak%
- %golfparty_top_score_3_name%
Config:
# GOLF PARTY
# CREATED BY ALANDIODA
# VERSION 2.0.6
# MYSQL INFORMATION
mysql:
enabled: false
host: localhost
port: 3306
database: database
username: username
password: password
tablename: GolfPartyData
# 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
# custom_model_data: NUMBER_CUSTOM_MODEL_DATA
#
# For older versions you can add data number to change the variant.
# MATERIAL_NAME-4:
# color: COLOR_WHICH_THE_BLOCK_REPRESENTS_IN_HEX
# name: COLOR_DISPLAY_NAME
# custom_model_data: NUMBER_CUSTOM_MODEL_DATA
#
balls:
RED_CONCRETE:
color: 8c2020
name: red
ORANGE_CONCRETE:
color: de6101
name: orange
YELLOW_CONCRETE:
color: eead15
name: yellow
LIME_CONCRETE:
color: 5ca618
name: lime
GREEN_CONCRETE:
color: 485a23
name: green
CYAN_CONCRETE:
color: 167687
name: cyan
LIGHT_BLUE_CONCRETE:
color: 2287c4
name: blue
BLUE_CONCRETE:
color: 2b2d8d
name: blue
PURPLE_CONCRETE:
color: 631f9a
name: purple
MAGENTA_CONCRETE:
color: a72f9d
name: magenta
PINK_CONCRETE:
color: d3658e
name: pink
WHITE_CONCRETE:
color: ccd2d3
name: white
LIGHT_GRAY_CONCRETE:
color: 7b7b71
name: light gray
GRAY_CONCRETE:
color: 35383c
name: gray
BLACK_CONCRETE:
color: 090b10
name: black
BROWN_CONCRETE:
color: 5f3a1f
name: brown
# Materials for display
# not_reset_blocks are surfaces where the ball won't be reset if it lands on them.
# for this you don't have to specify the exact block you can just add a part of the material.
materials:
edge: GRAY_CONCRETE
floor: LIME_TERRACOTTA
not_reset_blocks:
- HARD_CLAY
- STAINED_CLAY
- TERRACOTTA
- CONCRETE
- _SLAB
# Settings
# Admin permission node
permission_admin: GolfParty.admin
permission_ball: GolfParty.ball
# Enable ball permissions
enable_ball_permissions: false
# 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
# Scoreboard settings
scoreboard_enabled: true
# 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: 120
# Game start countdown
countdown_time: 30
# Countdown sound
countdown:
sound: BLOCK_NOTE_BLOCK_PLING
play_per_sec: 5
# Ending
# Display effects before the game ends
win_celebration_seconds: 10
# After the game ends restart the server
when_ends_shutdown: false
# Effects
effects:
enable_players_vanishing: true
balls: true
end:
fireworks:
enabled: true
color: ff1778
# Formats
formats:
commands:
no_games_for_player: '&8[&aGolfParty&8] &cThere is no games you can join!'
already_in_game: '&8[&aGolfParty&8] &cYou are already in a game!'
not_in_game: '&8[&aGolfParty&8] &cYou are not in a game!'
game_not_exist: '&8[&aGolfParty&8] &cA game with this name does not exist!'
game_already_playing: '&8[&aGolfParty&8] &cThe game is already running!'
connection:
join: '&8[&aGolfParty&8] &fPlayer &a<player_name> &fhas joined the game! &8[&a<count_players>&8/&a<count_max>&8]'
leave: '&8[&aGolfParty&8] &fPlayer &a<player_name> &fhas left the game! &8[&a<count_players>&8/&a<count_max>&8]'
everyone_left:
title:
format: &cEveryone left!
sub: &cStopping the game!
rules:
text: "RULES: Golf Party is a game where each player tries to get their own ball in to the hole with the least possible strokes. There are around 10 tracks (rounds) and you have 2 minutes to get the ball in to the hole. You're also limited to 12 strokes per track."
color: "79BC53"
display:
score:
title: "&a<score_name>"
subtitle: "&7(&aYou scored with <track_strokes> strokes&7)"
chat: "&8[&aGolfParty&8] &fYou scored with &a<track_strokes> &fstrokes!"
help_buttons: "&aQ - Fly &7| &aClick - Throw &7| &aScroll - Change speed"
speed: "&aSpeed: <speed>"
fly_time_left: "&aFly time left: <time>"
all_time_used: "&8[&aGolfParty&8] &cYou already used all of your fly time!"
ball: "&8Ball"
stroke: "<number> strokes"
stroke1:
title: "Hole in one"
sub: "&8(&aYou scored whith 1 stroke&8)"
stroke2:
title: "Par"
sub: "&8(&aYou scored whith 2 strokes&8)"
stroke3:
title: "Bogey"
sub: "&8(&aYou scored whith 3 strokes&8)"
stroke4:
title: "Double bogey"
sub: "&8(&aYou scored whith 4 strokes&8)"
stroke5:
title: "5 strokes"
sub: "&8(&aYou scored whith 5 strokes&8)"
stroke6:
title: "6 strokes"
sub: "&8(&aYou scored whith 6 strokes&8)"
stroke7:
title: "7 strokes"
sub: "&8(&aYou scored whith 7 strokes&8)"
stroke8:
title: "8 strokes"
sub: "&8(&aYou scored whith 8 strokes&8)"
stroke9:
title: "9 strokes"
sub: "&8(&aYou scored whith 9 strokes&8)"
stroke10:
title: "10 strokes"
sub: "&8(&aYou scored whith 10 strokes&8)"
stroke11:
title: "11 strokes"
sub: "&8(&aYou scored whith 11 strokes&8)"
stroke12:
title: "12 strokes"
sub: "&8(You scored whith 12 strokes&8)"
stroke_ran_out:
title: "Ran out of shots"
sub: "&8(&aYou ran out of shots&8)"
countdown:
chat:
format: '&8[&aGolfParty&8] &fStarting in &a<time>&f!'
display_per_sec: 5
title:
format: '&fStarting in &a<time>'
sub: '&aThe game will start soon!'
display_per_sec: 5
winning:
title:
format: '&a&l<name> &f&lhas won!'
sub: ''
win_display:
chat:
- '&e&l<num_1_name> &f&lhas won the game!'
- ''
- '----------------------------'
- '&6&l1th &f<num_1_name>'
- '&6&l2nd &f<num_2_name>'
- '&6&l3rd &f<num_3_name>'
- '----------------------------'
new_round:
title: '&fRound <round_number>'
subtitle: '&fYour color is <color><color_name>'
chat: '&8[&aGolfParty&8] &fYour color is <color><color_name>&f.'
ball_reset: "&8[&aGolfParty&8] &cBall reset!"
game:
chat:
enabled: true
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: Golf Party
lines:
- ''
- '&7<date>'
- '&7<time>'
- '&aServer: &fserver_id'
- ''
- '&aStatus: &f<lobby_status>'
- '&aPlayers: &f<count_players>&7/&f<count_max>'
- ''
- '&eplay.myserver.net'
playing:
title: Golf Party
lines:
- ''
- '&aTime: &f<game_time>'
- '&aRound: &f<game_round_time>'
- ''
- '&a<n_1>. <player_color_1><player_name_1>'
- '&a<n_2>. <player_color_2><player_name_2>'
- '&a<n_3>. <player_color_3><player_name_3>'
- '&a<n_4>. <player_color_4><player_name_4>'
- '&a<n_5>. <player_color_5><player_name_5>'
- ''
- '&aStrokes: &f<player_strokes>'
- ''
- '&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.