Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Wanted
Bounties funded with real items, on a board that floats in front of the player who asked for it.
Most bounty plugins are a number in a database. You type an amount, the killer gets that amount, and a scoreboard keeps score. Wanted works the other way round: a bounty is a pile of items. You open a window, drop in a netherite sword, two shulkers and a stack of diamonds, and whoever kills that player receives exactly those items.
That one decision changes the rest of the plugin. Bounties can be crowdfunded, because several people can pay into the same head and each stake stays theirs. Bounties can expire safely, because every funder gets their own gear back rather than a share of a number. And no economy plugin is required, because nothing is ever created or destroyed — gear simply changes hands.
What players actually do
/bounty open the board -- click "put a bounty on someone",
pick a name, drop items in, confirm. No typing needed.
/bounty offer Steve the same thing, if you'd rather skip straight to Steve
/bounty track Steve point your compass at him
/bounty poster Steve print his face on a map and nail it up
Steve now glows. Steve also gets faster, because a price on your head is worth something to the person carrying it. Someone kills him; they get the sword, the shulkers, the diamonds and Steve's head on a stick. Unless Steve got to whoever paid for him first — then that part of the pot went home with Steve.
Being wanted is a deal, not a punishment
Most bounty plugins make the board a list of people hiding. This one pays the hunted: the bigger the pot on your head, the stronger you are.
| Pot | Title | What you get |
|---|---|---|
| 25 | Marked | Speed I |
| 100 | Outlaw | Speed I, Resistance I |
| 400 | Desperado | Speed II, Resistance I, Fire Resistance |
| 1200 | Most Wanted | Speed II, Resistance II, Fire Resistance, Regeneration |
So a player can let their bounty grow on purpose and trade safety for power. The glow
means they cannot do it quietly. Tiers, thresholds and effects are all config.yml.
Two more things pull in the same direction. Revenge: kill one of the people who paid for your head and their stake is yours when you eventually fall, rather than the hunter's — chasing your client beats running from the hunter. Notoriety: every PvP kill adds a point, and past a threshold the server puts its own price on you, sized by how high the count has climbed. Dying halves it. The only real way down is to stop killing people for a while.
The board
The menu. /bounty opens the board as a paged chest of heads -- this is the
default view, because it is the one thing on this list you can actually click.
Left click a head to fund that bounty, right click to start tracking, shift-click for
who funded it and how much. A "put a bounty on someone" button sits in the corner and
opens every online player as a clickable list, so starting a new bounty never needs a
typed name either -- pick a face, drop items in, confirm.
Shift-clicking a head opens the same window as /bounty info -- everything below that
used to be a wall of chat text now opens as its own window instead: /bounty top is the
board itself sorted richest-first, /bounty hunters is a leaderboard of heads you can
click through into /bounty stats for that hunter, and /bounty mail previews what is
waiting before one button takes all of it. The offer window also grows a second button
the moment you already have a stake on that head, so pulling it back (/bounty cancel)
never needs its own screen.
The personal hologram. /bounty board spawns a panel in front of the player's eyes
that only they can see, hear and light up instead -- purely a display, nothing on it is
clickable. It springs into place, lags a little behind their head, reveals its rows one
at a time with a floating player head beside each, idles with orbiting embers, and spins
away when they sprint. Colours, distance, lifetime, sounds and particles all come from
config.yml. A server can make this the default again with board.default-view: hologram,
trading the one-click flow above for the ambient look.
The wall. /wanted board place spawn nails a permanent wanted board to the spot
you are looking at, turned to face you, visible to everyone who walks past. Placing one
still takes a typed name and your current look direction, so it stays a command; taking
one down does not -- /wanted gui opens an admin menu to browse and remove both bounties
and boards with a click.
Commands
| Command | What it does | Permission |
|---|---|---|
/bounty |
Open the board in the configured default view (a chest menu, unless changed) | wanted.use |
/bounty gui |
Open the board as a chest menu, explicitly | wanted.use |
/bounty board |
Open the personal hologram, explicitly | wanted.use |
/bounty offer <player> |
Put items on someone's head | wanted.offer |
/bounty cancel <player> |
Take your own stake back | wanted.use |
/bounty info <player> |
Who funded a bounty, and with what, as a menu | wanted.use |
/bounty top |
The board, sorted richest-first | wanted.use |
/bounty hunters |
The most successful hunters, as a menu | wanted.use |
/bounty stats [player] |
A hunter's record, as a menu | wanted.use |
/bounty track <player> |
Point your compass at a target, with a warm-cold bossbar | wanted.track |
/bounty poster <player> |
Print a wanted poster: their face on a map | wanted.poster |
/bounty mail |
Preview and collect items that came back to you | wanted.use |
/wanted reload |
Re-read config.yml and messages.yml |
wanted.admin |
/wanted add <player> |
Stake the item in your hand, funded by the server | wanted.admin |
/wanted remove <player> |
Cancel a bounty and return every stake | wanted.admin |
/wanted clear <player> |
Cancel a bounty without returning anything | wanted.admin |
/wanted purge |
Cancel every bounty, returning every stake | wanted.admin |
/wanted resetstats <player> |
Wipe a hunter's record | wanted.admin |
/wanted board place|remove|list |
Manage the permanent boards | wanted.admin |
/wanted gui |
Browse and remove bounties and boards as a menu | wanted.admin |
/bounties is an alias for /bounty, /wantedadmin for /wanted. reload, add,
purge and resetstats stay text-only: each either needs something typed that is not
already on the board, or is rare and high-blast-radius enough to want console/RCON
reach rather than one click in a menu.
Nothing gets lost
A PvP plugin that eats gear does not stay installed. Every path that could lose an item is closed:
- Closing the offer window without confirming returns everything in it.
- A refused bounty (too cheap, self-targeted, vetoed by another plugin) never takes the items in the first place.
- An expired or withdrawn bounty goes to the funder's mailbox, which waits for them to log back in. Items are never dropped in an empty world.
- Shutting the server down closes open offer windows first, so their contents are given back before the world saves.
- A payout that does not fit in the killer's inventory is dropped at their feet and they are told how much.
Who gets paid
The pot is one pile of items and it is never duplicated. Three claims compete for it, in this order:
- Revenge — the share staked by funders the victim had already killed goes to the
victim, into their
/bounty mail. - Assists — everyone who landed a hit in the last 15 seconds splits a configurable cut. Without this a bounty pays only whoever got the final blow, which teaches a team to let one member finish every kill.
- The killer — everything left, plus the victim's head, stamped with what they were worth, who collected and when. The gear gets used up; the skull is what they keep.
Keeping it fair
| Setting | What it stops |
|---|---|
anti-abuse.block-same-address |
Paying items to your own alt through a fake bounty |
anti-abuse.claim-cooldown-minutes |
Two friends farming each other's heads |
anti-abuse.min-target-playtime-hours |
Fresh joins being farmed on sight |
anti-abuse.min-combat-seconds |
Instant relog-kill setups; the fight has to have lasted |
anti-abuse.immunity-minutes |
Re-bountying a head the second it pays out, then camping the respawn |
anti-abuse.safe-worlds, protect-creative |
Bounties following players into a lobby or a creative world |
bounty.min-value, max-stake-value, max-value |
A stack of dirt outranking a netherite set |
bounty.cancel-lock-minutes |
Using the board as free storage |
Item worth comes from the value section, which is not a price list — nothing is bought
or sold. It exists so two pots can be ranked against each other and so min-value means
something. Unlisted items are worth nothing by default; set value.default to 1 if you
would rather accept everything.
Anonymous stakes
The offer window has a switch on it. An anonymous stake is still yours — it is refunded
to you, it counts towards your record — but neither the broadcast nor /bounty info
says who paid for it. Turn it off server-wide with bounty.allow-anonymous.
Wanted posters
/bounty poster <player> prints the target's own Mojang face onto a map, over their
name and their price. It goes in an item frame and keeps saying who is worth killing
after everyone has logged off — the one thing here that lives in the world rather than
in a database.
The skin is fetched from Mojang, so printing a poster is a web request. It happens off
the main thread and a failure is reported to the player rather than producing a blank
map. Posters keep the price they were printed with; going out of date is the point, and
it gives the board something to be more current than. Minecraft persists the map but not
what draws on it, so each one is noted in posters.yml and redrawn on startup.
Storage
SQLite by default: one file in the plugin folder, nothing to set up. Switch
storage.type to mysql to share one bounty list across several servers of a network.
Paper already ships both drivers, so neither costs a download.
Each server caches bounties in memory and picks up another server's changes on restart. That is enough for a survival server plus its lobby, and avoids a message bus this plugin has no need for.
the bigger the pot on your head, the stronger you are.
| Pot | Title | What you get |
|---|---|---|
| 25 | Marked | Speed I |
| 100 | Outlaw | Speed I, Resistance I |
| 400 | Desperado | Speed II, Resistance I, Fire Resistance |
| 1200 | Most Wanted | Speed II, Resistance II, Fire Resistance, Regeneration |
So a player can let their bounty grow on purpose and trade safety for power. The glow
means they cannot do it quietly. Tiers, thresholds and effects are all config.yml.
Two more things pull in the same direction. Revenge: kill one of the people who paid for your head and their stake is yours when you eventually fall, rather than the hunter's — chasing your client beats running from the hunter. Notoriety: every PvP kill adds a point, and past a threshold the server puts its own price on you, sized by how high the count has climbed. Dying halves it. The only real way down is to stop killing people for a while.
The board
The personal hologram. /bounty spawns a panel in front of the player's eyes that
only they can see, hear and light up. It springs into place, lags a little behind their
head, reveals its rows one at a time with a floating player head beside each, idles with
orbiting embers, and spins away when they sprint. Colours, distance, lifetime, sounds
and particles all come from config.yml.
The menu. /bounty gui shows the same board as a paged chest of heads. Left click
a head to fund that bounty, right click to start tracking, shift-click for who funded it
and how much. That last one opens the same window as /bounty info -- everything below
that used to be a wall of chat text now opens as its own window instead: /bounty top
is the board itself sorted richest-first, /bounty hunters is a leaderboard of heads you
can click through into /bounty stats for that hunter, and /bounty mail previews what
is waiting before one button takes all of it. The offer window also grows a second button
the moment you already have a stake on that head, so pulling it back (/bounty cancel)
never needs its own screen.
The wall. /wanted board place spawn nails a permanent wanted board to the spot
you are looking at, turned to face you, visible to everyone who walks past. Placing one
still takes a typed name and your current look direction, so it stays a command; taking
one down does not -- /wanted gui opens an admin menu to browse and remove both bounties
and boards with a click.
Commands
| Command | What it does | Permission |
|---|---|---|
/bounty |
Open the board in the configured default view | wanted.use |
/bounty gui |
Open the board as a chest menu | wanted.use |
/bounty offer <player> |
Put items on someone's head | wanted.offer |
/bounty cancel <player> |
Take your own stake back | wanted.use |
/bounty info <player> |
Who funded a bounty, and with what, as a menu | wanted.use |
/bounty top |
The board, sorted richest-first | wanted.use |
/bounty hunters |
The most successful hunters, as a menu | wanted.use |
/bounty stats [player] |
A hunter's record, as a menu | wanted.use |
/bounty track <player> |
Point your compass at a target, with a warm-cold bossbar | wanted.track |
/bounty poster <player> |
Print a wanted poster: their face on a map | wanted.poster |
/bounty mail |
Preview and collect items that came back to you | wanted.use |
/wanted reload |
Re-read config.yml and messages.yml |
wanted.admin |
/wanted add <player> |
Stake the item in your hand, funded by the server | wanted.admin |
/wanted remove <player> |
Cancel a bounty and return every stake | wanted.admin |
/wanted clear <player> |
Cancel a bounty without returning anything | wanted.admin |
/wanted purge |
Cancel every bounty, returning every stake | wanted.admin |
/wanted resetstats <player> |
Wipe a hunter's record | wanted.admin |
/wanted board place|remove|list |
Manage the permanent boards | wanted.admin |
/wanted gui |
Browse and remove bounties and boards as a menu | wanted.admin |
/bounties is an alias for /bounty, /wantedadmin for /wanted. reload, add,
purge and resetstats stay text-only: each either needs something typed that is not
already on the board, or is rare and high-blast-radius enough to want console/RCON
reach rather than one click in a menu.
Nothing gets lost
A PvP plugin that eats gear does not stay installed. Every path that could lose an item is closed:
- Closing the offer window without confirming returns everything in it.
- A refused bounty (too cheap, self-targeted, vetoed by another plugin) never takes the items in the first place.
- An expired or withdrawn bounty goes to the funder's mailbox, which waits for them to log back in. Items are never dropped in an empty world.
- Shutting the server down closes open offer windows first, so their contents are given back before the world saves.
- A payout that does not fit in the killer's inventory is dropped at their feet and they are told how much.
Who gets paid
The pot is one pile of items and it is never duplicated. Three claims compete for it, in this order:
- Revenge — the share staked by funders the victim had already killed goes to the
victim, into their
/bounty mail. - Assists — everyone who landed a hit in the last 15 seconds splits a configurable cut. Without this a bounty pays only whoever got the final blow, which teaches a team to let one member finish every kill.
- The killer — everything left, plus the victim's head, stamped with what they were worth, who collected and when. The gear gets used up; the skull is what they keep.
Keeping it fair
| Setting | What it stops |
|---|---|
anti-abuse.block-same-address |
Paying items to your own alt through a fake bounty |
anti-abuse.claim-cooldown-minutes |
Two friends farming each other's heads |
anti-abuse.min-target-playtime-hours |
Fresh joins being farmed on sight |
anti-abuse.min-combat-seconds |
Instant relog-kill setups; the fight has to have lasted |
anti-abuse.immunity-minutes |
Re-bountying a head the second it pays out, then camping the respawn |
anti-abuse.safe-worlds, protect-creative |
Bounties following players into a lobby or a creative world |
bounty.min-value, max-stake-value, max-value |
A stack of dirt outranking a netherite set |
bounty.cancel-lock-minutes |
Using the board as free storage |
Item worth comes from the value section, which is not a price list — nothing is bought
or sold. It exists so two pots can be ranked against each other and so min-value means
something. Unlisted items are worth nothing by default; set value.default to 1 if you
would rather accept everything.
Anonymous stakes
The offer window has a switch on it. An anonymous stake is still yours — it is refunded
to you, it counts towards your record — but neither the broadcast nor /bounty info
says who paid for it. Turn it off server-wide with bounty.allow-anonymous.
Wanted posters
/bounty poster <player> prints the target's own Mojang face onto a map, over their
name and their price. It goes in an item frame and keeps saying who is worth killing
after everyone has logged off — the one thing here that lives in the world rather than
in a database.
The skin is fetched from Mojang, so printing a poster is a web request. It happens off
the main thread and a failure is reported to the player rather than producing a blank
map. Posters keep the price they were printed with; going out of date is the point, and
it gives the board something to be more current than. Minecraft persists the map but not
what draws on it, so each one is noted in posters.yml and redrawn on startup.
Storage
SQLite by default: one file in the plugin folder, nothing to set up. Switch
storage.type to mysql to share one bounty list across several servers of a network.
Paper already ships both drivers, so neither costs a download.
Each server caches bounties in memory and picks up another server's changes on restart. That is enough for a survival server plus its lobby, and avoids a message bus this plugin has no need for.


