AT-PinataParty | Pinata Party 1.10.0
Smash the llama pinata with friends and earn coins, rewards, and rare items!
Hit counts that remember, so a quest can ask for ten hits and mean it.
📊 The Plugin Now Counts Hits
Every hit a player lands is remembered. The count keeps going up across piñatas, across parties and across restarts, and never resets on its own.
That is the piece that was missing for quests. "Hit the piñata 10 times" can now be spread over a whole evening, or a whole week, instead of having to happen before one piñata breaks.
Counting happens whether or not you have PlaceholderAPI installed, so the numbers are already there waiting if you add it later.
🔗 Placeholders
The counts are read back through PlaceholderAPI, which is what quest, scoreboard and menu plugins use to pull numbers out of other plugins.
| Placeholder | What it gives you |
%pinataparty_hits% |
Every hit the player has ever landed |
%pinataparty_hits_24h% |
Hits in the last 24 hours |
%pinataparty_hits_current% |
Hits on the piñatas that are up right now |
%pinataparty_progress_10% |
Reads 7/10 |
%pinataparty_progress_10_24h% |
The same, counting only the last 24 hours |
%pinataparty_remaining_10% |
How many hits are still needed to reach 10 |
%pinataparty_active% |
true while a party is running |
%pinataparty_pinatas% |
How many piñatas are up |
progress is the one for a quest line. It stops at the goal, so a player who has landed thirteen hits still reads 10/10 rather than 13/10. remaining is the same idea counting down, and stops at 0.
⏱ Any Time Window You Like
Anywhere you see 24h above, write your own: a number followed by a letter.
| Letter | Means | Example |
s |
seconds | %pinataparty_hits_90s% |
m |
minutes | %pinataparty_hits_30m% |
h |
hours | %pinataparty_hits_24h% |
d |
days | %pinataparty_hits_3d% |
w |
weeks | %pinataparty_hits_2w% |
A bare number means hours, so %pinataparty_hits_12% is the last twelve hours. progress and remaining take one on the end too:
%pinataparty_progress_10_24h% # 10 hits, today
%pinataparty_remaining_50_1w% # 50 hits, this week
%pinataparty_progress_5_current% # 5 hits, on the piñatas up right now
Hits are filed under the hour they happened in, which is what keeps the stats file small. A window can therefore reach up to an hour further back than you asked for. For anything counted in hours or days you will never notice; a window of a few minutes will behave like an hour.
⚙️ New Settings
stats:
enabled: true
retention-days: 30
save-interval-seconds: 300
| Key | What it does | Default |
enabled |
false stops counting entirely. Counts already on disk are left alone, and every placeholder reports 0 |
true |
retention-days |
How far back the recent-hit windows can reach. Older hits are dropped to keep the file small. The lifetime total is never reduced | 30 |
save-interval-seconds |
How often the counts are written to disk, in the background. Minimum 30 | 300 |
Set retention-days a little higher than the longest window you actually use. Asking for 30d on a seven day retention gives you seven days of hits, not thirty.
💾 The New stats.yml
A stats.yml now appears in the plugin folder. It holds the hit counts and there is nothing in it you need to edit by hand. Deleting it resets everyone to zero, which is the quickest way to start a fresh event.
It is written when the server shuts down, so a clean stop never loses anything. A crash can lose up to save-interval-seconds worth of hits.
📦 Install
Drop AT-PinataParty-1.10.0.jar into your plugins folder and restart. You need Spigot or Paper 1.19.4 or newer, on Java 17 or newer. PlaceholderAPI is optional, without it hits are still counted, there is just nowhere to show them yet.
Your config.yml gains the stats section on first start, with your own settings untouched.
Read the documentation | Join the Discord
Enjoying the plugin? A ⭐ review goes a long way!
Three languages out of the box, commands you can run when a party starts, a much bigger set of colour options, and every setting that quietly did nothing now works.
🛠 Parties No Longer End Early
The piñata could be killed by things that were not a player's swing: arrows, a wandering skeleton, fire, lava, a fall, drowning. Enough of that and it died with plenty of hits left, the party ended on the spot, and nobody got a reward.
It is now immune to every kind of damage, so a party only ends when the hit count runs out or you run /pp stop.
⚡ Commands When a Party Starts
A new party-start-commands section fires the moment the piñata spawns:
party-start-commands:
once:
- "broadcast &d&lPINATA PARTY &fhas started at &e%location%&f!"
per-player:
- "effect give %player% speed 30 1"
onceruns a single time, however many players are onlineper-playerruns once for every player online at that moment, with%player%filled in
%location% works in both and gives you the name of the spawn point. Both lists are empty out of the box, so nothing changes until you fill them in.
Two things worth knowing. A broadcast line in either list is sent by the plugin itself, so it arrives without another plugin's label in front of it. And per-player repeats for every player online, so on a forty player server that is forty commands at once. Keep them cheap.
🌍 Three Languages Built Inmessages.yml has moved into a lang folder, and English, French and Spanish now ship with the plugin:
# en_US, fr_FR, es_ES, or your own
language: en_US
plugins/AT-PinataParty/
├── config.yml
└── lang/
├── en_US.yml
├── fr_FR.yml
└── es_ES.yml
Plain names (english, french, spanish) and bare codes (en, fr, es) work too. Add your own file for any other language.
Language files carry a lang-version and are kept up to date the same way config.yml is, so new messages appear in your file when you update instead of turning up as "Message not found".
🎨 A Lot More Colour Options
Everywhere text can be coloured: messages, hologram lines, and the piñata's name.
| Format | Example |
| Legacy codes | &aGreen &lBold |
| Hex | &#FF8800, #FF8800, #{FF8800}, <SOLID:FF8800> |
| Gradient | <gradient:#FF0000:#0000FF>fade</gradient> |
| Gradient, second style | <GRADIENT:FF0000>fade</GRADIENT:0000FF> |
| Rainbow | <RAINBOW>party time</RAINBOW> |
| Named palette | &t7 coral, &u0 crimson, 125 in total |
prefix: "<gradient:#005bff:#00fbff>&lPinata</gradient> &7»"
pinata-hit: "%prefix% <RAINBOW>You hit the Pinata!</RAINBOW>"
Everything that worked before still works exactly the same.
⚙️ Settings That Now Do Something
Most of this release is settings that looked real, were documented as real, and did nothing at all:
| Setting | What it does now |
fireworks.effects |
Each firework picks a random entry from your list. Every firework used to be the same lime green ball |
pinata.knockback.sound |
Plays to the player when a hit knocks them back |
sounds.death |
Plays where the piñata was standing the moment it breaks, so only players nearby hear it. sounds.end still plays to everyone after the fireworks |
sounds.countdown |
Behaves like every other sound now. Leaving it empty turns it off, and a bad name is skipped with a warning instead of quietly swapping one in |
pinata.knockback.particle.type |
A name the server does not recognise is now reported in the console, instead of silently giving you no particles and no clue why |
unknown-command |
Sent when someone types a subcommand that does not exist |
summon-success |
Sent to whoever summoned the piñata |
pinata-despawned |
Sent to everyone when /pp stop ends a party |
no-permission |
Sent by the plugin, in your language. The server's own English refusal used to come out instead, so translating this line did nothing |
%prefix% in help-message |
Fills in your prefix instead of printing as literal text |
A bad sound name in config.yml also no longer breaks a party. Invalid names are skipped with a single console warning, which is what the config always claimed happened.
✨ Also New
- Update notice. The plugin checks for a newer version in the background at startup and tells the console, plus any admin who joins. It runs off the main thread, times out quickly, and stays quiet if the check fails. Turn it off with
update-notifier: false - Announce every hit. Set
pinata.broadcast-hits: trueto announce each successful hit in chat, which finally gives thepinata-hit-broadcastmessage a job. Off by default, because a busy party is a lot of chat
🧹 Removedpinata-already-active is gone. It stopped meaning anything once several piñatas at once became possible. Use max-pinatas-reached instead.
📝 Upgrade Notes
Drop AT-PinataParty-1.9.1.jar into your plugins folder and restart. You need Spigot or Paper 1.19.4 or newer, on Java 17 or newer.
Your messages.yml is moved into lang/en_US.yml on first start with all your wording kept, and the old file is left behind as messages.yml.old. There is nothing you need to do.
📋 Version Breakdown
| Version | Focus |
1.9.1 |
Commands you can run when a party starts, and the piñata can no longer be killed early by arrows, mobs, fire or falls. Plus fixes to sounds.countdown, the knockback particle name check, and %prefix% in the help text. |
1.9.0 |
English, French and Spanish language files, a much larger set of colour formats, an update notice, hit broadcasts, and every setting that previously did nothing. |
Join the Discord
Enjoying the plugin? A ⭐ review goes a long way!
A new reward pool for the last hit, plus random reward counts with weighted odds on any pool.
🎯 Last-Hit Rewards
There is a new rewards.last-hit pool alongside the existing hit and death pools, so you can pay out something extra for the last hit on a piñata. It is added to your config automatically and is set up ready to use.
Out of the box it hands out between one and three different rewards, using the random count system below. Change the entries, the counts, or the odds to whatever suits your server.
🎲 Random Reward Counts
Any reward pool can take min-rewards and max-rewards. With either key present, the pool hands out a random number of rewards between the two, and never gives the same reward twice in one draw.
In that mode, chance becomes a weight rather than a percentage. It is measured against the other entries in the pool, so an entry on 50 comes up twice as often as one on 25. The numbers do not need to add up to 100.
Pools without those keys are untouched and keep rolling each entry's chance as a straight percentage, so your hit and death pools behave exactly as they always have.
📈 Metrics
AT-PinataParty now reports anonymous usage stats to ArrowStats, nothing about your players.
📦 Install
Stop the server, replace the old jar in plugins/, and start it again. Your arenas, your custom hit and death rewards, and the rest of your settings all carry over, and the new last-hit pool is added automatically.
Join the Discord
Enjoying the plugin? A ⭐ review goes a long way!
Reward broadcasts now appear in chat exactly as you wrote them, with no prefix added in front.
📣 Broadcasts Without the Prefix
A reward line like broadcast &6%player% &ewon the grand prize! used to reach chat with EssentialsX's [Broadcast] label in front of it. The plugin can now send those messages itself, so they show up exactly as you wrote them.
There is a new broadcast section in config.yml:
handle-internallyon by default, sends the message through the plugin. Set it tofalseto keep the old behaviour and let whichever plugin owns the command handle itcommandswhich command names count as a broadcast, withbroadcast,bcast,bcandshoutset by default. Remove one to send it back through its own pluginprefixoptional text in front of every message the plugin broadcasts, with%prefix%pulling the prefix frommessages.yml
🛠 Fixes
Steadier memory use across long uptimes. The hit cooldown list now only holds players who are currently online, instead of keeping an entry for everyone who has ever hit a piñata.
📦 Install
Stop the server, replace the old jar in plugins/ with AT-PinataParty-1.7.0.jar, and start it again. The new broadcast section is added to your existing config on first start, and your own values are kept.
Join the Discord
Enjoying the plugin? A ⭐ review goes a long way!
Llama piñatas now strut a color-cycling rainbow carpet.
✦ New: Rainbow Carpet
When your piñata is a llama, it now wears a carpet on its back that flashes through a list of colors like a rainbow. A fun little touch to make the party pop.
Configure it under pinata.carpet:
- colors the carpet colors to cycle through, in order (it loops back to the first after the last).
- interval the gap between color switches, in server ticks (20 = 1 second). Lower is faster.
Only works with pinata.type: LLAMA, since other mobs can't wear carpets.
✦ Upgrade Notes
Drop-in upgrade. The config schema auto-migrates to version 2 on first load, your existing values are preserved.
Enjoying the plugin? A ⭐ review keeps the Free Plugin Series going!
Built-In Holograms + FancyHolograms v3 Notes
Combined 1.4.0 → 1.5.0 drop.
✦ New: Built-In Hologram Styles
No more juggling hologram plugins just to get floating text on the piñata.
Two new options for pinata.hologram.provider:
- native floating text on invisible armor stands. Follows the piñata smoothly and works on any server (1.19.4+, Java 17+).
- native-display floating text on a modern text-display entity for a crisper look. Glides smoothly on 1.20.2+, and still follows (without the glide) on older versions.
Pick either one and you're set, no DecentHolograms or FancyHolograms install required.
✦ FancyHolograms v3 marked Experimental
- FH3 is driven against a moving pre-release API, so it's now flagged as experimental in the config and code comments.
- The text glides in step with the piñata on 1.20.2+ instead of snapping a tick behind, but for a stable smooth result, prefer DecentHolograms or one of the new native styles above.
✦ Quick Setup
pinata:
hologram:
provider: native # or: native-display, decentholograms, fancyholograms, none
Existing configs auto-migrate, your current provider choice is kept.
✦ Version Breakdown
| Version | Focus |
1.4.0 |
FancyHolograms v3 support with auto-detection between v2 and v3 backends |
1.4.1 |
Hologram no longer doubles the piñata name; FH2/FH3 follow updates pushed immediately |
1.4.2 |
FH3 text now follows the piñata in the same tick instead of trailing |
1.5.0 |
Two built-in hologram styles (native, native-display). FH3 marked experimental. |
Existing setups keep their current provider, switch to
native or native-display whenever you want.Enjoying the plugin? A review helps a lot!
