BlockParty 3 is the modernized BlockParty line for current Minecraft servers, built on a Java 21 baseline with a Paper-first compatibility target.
BlockParty 3.xsupportsMinecraft 1.20.6+and1.21.xJava 21is required to build and run this line- Legacy support for
1.8through1.19.xbelongs on the2.xline
See COMPATIBILITY.md for the runtime matrix and release split.
Download the jar file and place it into your plugins folder. A new folder is created (named BlockParty) after the server is started. A few file and sub-folders should be located there.
Requires JDK 21 and Maven.
mvn clean verifyThe distributable plugin jar is produced at target/BlockParty-<version>.jar.
Git hooks are versioned in .githooks/ and install themselves on your
first Maven build (mvn sets core.hooksPath via the git-build-hook plugin).
To enable them without building, run once:
git config core.hooksPath .githooks| Hook | When | What it does |
|---|---|---|
pre-commit |
git commit |
Blocks conflict markers, whitespace errors, and >5 MiB files (instant). |
commit-msg |
git commit |
Enforces Conventional Commits. |
pre-push |
git push |
Runs mvn clean verify so red never reaches the remote. |
The commit-msg rule is defined once in scripts/lint-commit-msg.sh
and reused by CI's commit-lint job, so local and CI checks can never drift apart.
Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, security.
Bypass a hook only when you must: git commit --no-verify, git push --no-verify
(or SKIP_HOOKS=1 git push). CI re-checks everything regardless, and the build
status check must be green before a PR can merge.
# BlockParty configuration
# Locale file located in plugins/BlockParty/Locale/*.yml
LocaleFileName: locale_en.yml
# Saves all data on plugin shutdown. Not necessary
SaveOnDisable: false
# Disables listed sub commands, example:
# DisabledSubCommands: ["help", "reload", "join"]
DisabledSubCommands: []
# Enables command shortcuts
# Command shortcuts: /start <arenaName> - /stop
EnableCommandShortcuts: false
Chat:
# Chat format when in arena
# Placeholders:
# %ARENA%: Arena player is in
# %NAME%: Player name without formatting (e.g. rank, colors)
# %DISPLAY%: Name with formatting
# %MESSAGE%: Message sent
ArenaChatFormat: "&8[&7%ARENA%&8] &7%DISPLAY% &8> &r%MESSAGE%"
# Separates normal from arena chat
# Useful for non-bungee servers
ArenaPrivateChat: True
# How to use join signs:
# Line 1: [BlockParty]
# Line 2: Arena name (case sensitive)
JoinSigns:
# Enable join signs
Enabled: True
# Update signs every x milliseconds
UpdateMillis: 1000
Lines:
Disabled:
1: "&4[Off-%ARENA%]"
2: "Not available"
3: "&8&l%PLAYERS%/%MAX_PLAYERS%"
4: "&4• Stopped •"
Lobby:
1: "&5[Join-%ARENA%]"
2: "Voting..."
3: "&8&l%PLAYERS%/%MAX_PLAYERS%"
4: "&5• Lobby •"
LobbyFull:
1: "&4[Full-%ARENA%]"
2: "Voting..."
3: "&8&l%PLAYERS%/%MAX_PLAYERS%"
4: "&5• Lobby •"
Ingame:
1: "&8[Ingame-%ARENA%]"
2: "%ALIVE% players alive"
3: "&8&l%PLAYERS%/%MAX_PLAYERS%"
4: "&8• Ingame •"
Ending:
2: "&8&lLobby"
3: "&8&lrestarting..."
BungeeCord:
# When set to "True", players will automatically connect to DefaultArena (see below)
# and will be kicked from the server when leaving the arena.
# This is mostly useful for BungeeCord servers
Enabled: False
# Arena players will connect to when BungeeCord is enabled. Please note the spelling and case sensitivity
DefaultArena: Arena
Audio:
# Enables external web audio playback providers
Enabled: False
# Available providers: "openaudiomc", "central_hub"
Provider: central_hub
# Public base URL where your audio files are hosted
CdnBaseUrl: "https://cdn.example.com/blockparty/"
Database:
# Use "MySQL" to enable MySQL, "SQL" to store data locally
Method: SQL
# Tables will have this prefix in front of the name
TablePrefix: "bp_"
SQLOptions:
# File to save database to when using SQL
FileName: "database.db"
# MySQL credentials
MySQLOptions:
Host: localhost
Port: 3306
Database: database
Username: username
Password: password
# End of configuration- Create an arena
- Use the /bp create <arenaName>
- Replace <arenaName> with the name of your arena
- Set the lobby spawn
- Place yourself where you want to have your lobby spawn. Use /bp setspawn <arenaName> lobby
- Players get teleported to this position when they enter the lobby
- Set the boundaries of the arena floor
- Use /bp pos <1|2> to set the positions to your current positions. OR:
- Use /bp wand to get a stick to set the positions via left and right click
- Finally use /bp setfloor <arenaName> to set the floor boundaries for you arena
- Set the game spawn
- Place yourself where you want to have your game spawn. Use /bp setspawn <arenaName> game
- Players get teleported to this position when the game starts
- Enable your arena
- To be able to play in an arena you need to enable it first. Use /bp enable <arenaName>
Thats it for the arena setup. To customize your arena, use ingame commands or head to the <arenaName>.yml located in your plugins/BlockParty/Arenas/ folder. Here you can find an example arena config:
Example arena config
Settings:
DistanceToOutArea: 5
TimeToSearch: 8
LevelAmount: 15
MinPlayers: 2
MaxPlayers: 20
LobbyCountdown: 30
TimeReductionPerLevel: 0.5
TimeModifier: 0.1
Enabled: true
EnableParticles: true
EnableLightnings: true
AutoRestart: false
AutoKick: false
EnableBoosts: true
EnableFallingBlocks: false
UseAutoGeneratedFloors: true
UsePatternFloors: true
EnableActionbarInfo: true
UseNoteBlockSongs: false
UseWebSongs: true
EnableFireworksOnWin: true
TimerResetOnPlayerJoin: false
AllowJoinDuringGame: true
EnableScoreboard: false
Name: example
SongManager:
- examplesong.mp3
Signs: []
LobbySpawn:
World: world1.13
X: 119.96556415260845
Y: 64.0
Z: 26.73431969945681
Yaw: -57.567917
Pitch: 35.83339
GameSpawn:
World: world1.13
X: 126.06898491630506
Y: 63.0
Z: 30.055373974750374
Yaw: -57.567917
Pitch: 35.83339
Floor:
A:
World: world1.13
X: 124.0
Y: 62.0
Z: 28.0
Yaw: 0.0
Pitch: 0.0
B:
World: world1.13
X: 127.0
Y: 62.0
Z: 31.0
Yaw: 0.0
Pitch: 0.0
Patterns:
- exampleFloor
Width: 4.0
Length: 4.0In BlockParty we are using our own format to save block data. We are making use of the Run-length encoding to keep the file as small as possible. You can create your own floors, save and use them.
- Build a two dimensional pattern using terracotta, wool and/or glass (all blocks supported in > 1.13)
- Set the boundaries of pattern
- Use /bp pos <1|2> to set the positions to your current positions. OR:
- Use /bp wand to get a stick to set the positions via left and right click
- Save your pattern
- Finally use /bp save <patternName> to save your pattern to the
/plugins/BlockParty/Floors/folder
- Finally use /bp save <patternName> to save your pattern to the
- Test your pattern
- This is optional but you may want to test your floor
- Use /bp placepattern <patternName> to test it
- Activate UsePatternFloors
- Make sure you set
UsePatternFloors: truein your arena config - You can also add patterns in your arena config
- Reload with /bp reload if you have just changed a value
- Make sure you set
- Selecting an initial pattern
- If you name a pattern start it will load first
- Selecting the game over pattern
- If you name a pattern end it will load when the game is over
- List the active patterns
- Use /bp listpatterns <arenaName> to list all active patterns for this arena
- Remove a paattern
- Use /bp removepattern <arenaName> <patternName> to list all active patterns for this arena
Music playback is handled by an external audio provider. Two providers are supported:
- OpenAudioMc — requires the OpenAudioMc plugin on the same server. Audio files are served from your
CdnBaseUrl. - Central Hub (Aura) — connects to a hosted Aura instance. Configure
ApiBaseUrlandFrontendBaseUrl; aServerKeyis generated automatically on first startup. Both URLs must usehttps://.
Enable and choose a provider in the Audio section of config.yml, then:
- Add songs to your arena
- Ingame: /bp addsong <arenaName> <trackName> (with the Central Hub provider, track names are validated against the synced catalog — use /bp songs to browse it)
- Or add them to the
SongManagerlist in your arena config
- Enable the use of web songs
- Make sure
UseWebSongs: trueis set in your arena config
- Make sure
You can also use signs to let players join to the arena. Your sign should look something like this:
| Line | Text |
|---|---|
| 1 | [BlockParty] |
| 2 | <arenaName> |
| 3 | |
| 4 |
Head over to your config.yml in the plugins/BlockParty/ folder. You can edit the used text that is displayed on the sign right there.
- blockparty.admin.*
- This provides access to all BlockParty commands (/bp admin)
- blockparty.user.*
- This provides access to basic BlockParty commands (/bp help)