See what a filled map shows without putting it in your hand.
Vanilla only draws a map's picture while you hold it. Everywhere else it is a blank roll of parchment: in your inventory, in a chest, in an auction GUI, lying on the ground. This draws the real thing instead.
What it does

- Map icons — the slot shows the art in place of the parchment sprite, so a page full of map art reads at a glance, with no hovering.
- Tooltip preview — hover a map anywhere a tooltip appears — inventory, chest, hopper, creative menu, a shop GUI — and the picture renders under the normal lines.
- Maps you never carried — a chest full of art reads as art, not as a row of identical parchment.
- Dropped maps spin as the art itself instead of a rolled parchment.
- Shulker box tooltip — hover a box and its contents appear as a slot grid, maps included, replacing vanilla's list of item names. Steps aside automatically if you have Shulker Box Tooltip installed.
More screenshots in the gallery above.
Settings
Mod Menu opens the screen; the file is config/show_my_maps.json. Vanilla widgets only, so the mod carries no config library. Sizes, and every feature, can be turned off.
The one thing to understand
Map pixels live on the server, and the client is only ever given them. Vanilla gives them in exactly two cases: the map is in your own inventory, or it hangs in an item frame near you.
That is the whole list. A map in a chest, in an auction page, inside a shulker box or on the ground is never sent to anybody, and no client mod can draw pixels it was never given — the protocol has no way to ask for a map.
So the mod has a server half, and the answer to "why is this listing still blank" is always which half is missing.
| Where you are | What previews |
|---|---|
| Singleplayer or LAN | everything — you are running both halves |
| A server running a server half | everything |
| Any other server | maps you have carried or walked past in a frame, plus anything cached from those |
The server half
Fabric servers take the same jar in mods/. Maps in an inventory get painted without being held, and maps in an open container get sent.
Paper, Spigot and their forks cannot load a Fabric mod at all, which is most public servers. Download the Paper file from the Versions tab and drop it in plugins/ instead — it sends map colours for maps in whatever inventory a player has open, chests and auction pages included, plus shulker box contents and maps lying nearby. One jar covers 1.21.1 through 26.2. Keep the Fabric mod on your client.
Owners decide who gets previews: everyone holds showmymaps.see unless you take it away, and disabled-worlds turns whole worlds off by name. A player without it is never sent the colours, so there is nothing on their client to reveal.
Either half announces itself and its version on joining, so the mod can tell "this server sends nothing" apart from "this server is behind", and say which. Update both halves together.
Map cache
Every map you receive is saved to disk per server, so art you have seen once keeps previewing later — across relogs, dimension changes, and the other addresses the same network answers to. It cannot conjure maps you have never been sent. Nothing can.
Requirements
The mod needs Fabric Loader and Fabric API, and is client side; a client-only install works, with the limits above. The Paper plugin needs neither and goes on the server on its own.
Source, releases and issues on GitHub.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 |
Every backend behind a proxy hands out map ids from its own counter, so map 42 on one is a different picture from map 42 on the next. The cache is keyed by the address you typed, and a proxy is one address for the whole network, so a lookup on the second backend was answered with the first one's art. **Strict previews** was the only defence and it blanks everything, colliding or not.
Nothing a client can see says which backend it is on. What it can see is a contradiction: the server sends map 42, and the copy already on disk under that id cannot be the same map. A map's scale and dimension are fixed when it is made, and a locked map's colours never move again, so any of those differing is proof rather than a guess. Colours on an unlocked map prove nothing, since players are still filling it in.
A contested id is written beside the maps and the cache stops answering for it, this session and every later one. Ids that never collide are untouched. Blank on the handful that clash beats wrong on all of them.
## Removed: the world exporter
Publishing a folder of map files asked a server owner to reach the world folder of every backend on their network, which most cannot. The art source that reads it stays, so a host that does publish its maps still works.
## If your auction house still draws blank
That is the server, not this mod, and it is worth being plain about why. A map's colours are sent in exactly two cases: the map is in your own inventory, or it hangs in an item frame near you. A map in an auction or shop GUI has never been sent to anybody, and no packet exists for a client to ask for one.
Install the **Paper plugin** from the Versions tab and it fills in. Measured on a real server against a stand-in auction house: without it, zero maps sent and every slot blank; with it, all 108 listings across two pages delivered.
Every backend behind a proxy hands out map ids from its own counter, so map 42 on one is a different picture from map 42 on the next. The cache is keyed by the address you typed, and a proxy is one address for the whole network, so a lookup on the second backend was answered with the first one's art. **Strict previews** was the only defence and it blanks everything, colliding or not.
Nothing a client can see says which backend it is on. What it can see is a contradiction: the server sends map 42, and the copy already on disk under that id cannot be the same map. A map's scale and dimension are fixed when it is made, and a locked map's colours never move again, so any of those differing is proof rather than a guess. Colours on an unlocked map prove nothing, since players are still filling it in.
A contested id is written beside the maps and the cache stops answering for it, this session and every later one. Ids that never collide are untouched. Blank on the handful that clash beats wrong on all of them.
## Removed: the world exporter
Publishing a folder of map files asked a server owner to reach the world folder of every backend on their network, which most cannot. The art source that reads it stays, so a host that does publish its maps still works.
## If your auction house still draws blank
That is the server, not this mod, and it is worth being plain about why. A map's colours are sent in exactly two cases: the map is in your own inventory, or it hangs in an item frame near you. A map in an auction or shop GUI has never been sent to anybody, and no packet exists for a client to ask for one.
Install the **Paper plugin** from the Versions tab and it fills in. Measured on a real server against a stand-in auction house: without it, zero maps sent and every slot blank; with it, all 108 listings across two pages delivered.
Every backend behind a proxy hands out map ids from its own counter, so map 42 on one is a different picture from map 42 on the next. The cache is keyed by the address you typed, and a proxy is one address for the whole network, so a lookup on the second backend was answered with the first one's art. **Strict previews** was the only defence and it blanks everything, colliding or not.
Nothing a client can see says which backend it is on. What it can see is a contradiction: the server sends map 42, and the copy already on disk under that id cannot be the same map. A map's scale and dimension are fixed when it is made, and a locked map's colours never move again, so any of those differing is proof rather than a guess. Colours on an unlocked map prove nothing, since players are still filling it in.
A contested id is written beside the maps and the cache stops answering for it, this session and every later one. Ids that never collide are untouched. Blank on the handful that clash beats wrong on all of them.
## Removed: the world exporter
Publishing a folder of map files asked a server owner to reach the world folder of every backend on their network, which most cannot. The art source that reads it stays, so a host that does publish its maps still works.
## If your auction house still draws blank
That is the server, not this mod, and it is worth being plain about why. A map's colours are sent in exactly two cases: the map is in your own inventory, or it hangs in an item frame near you. A map in an auction or shop GUI has never been sent to anybody, and no packet exists for a client to ask for one.
Install the **Paper plugin** from the Versions tab and it fills in. Measured on a real server against a stand-in auction house: without it, zero maps sent and every slot blank; with it, all 108 listings across two pages delivered.
Every backend behind a proxy hands out map ids from its own counter, so map 42 on one is a different picture from map 42 on the next. The cache is keyed by the address you typed, and a proxy is one address for the whole network, so a lookup on the second backend was answered with the first one's art. **Strict previews** was the only defence and it blanks everything, colliding or not.
Nothing a client can see says which backend it is on. What it can see is a contradiction: the server sends map 42, and the copy already on disk under that id cannot be the same map. A map's scale and dimension are fixed when it is made, and a locked map's colours never move again, so any of those differing is proof rather than a guess. Colours on an unlocked map prove nothing, since players are still filling it in.
A contested id is written beside the maps and the cache stops answering for it, this session and every later one. Ids that never collide are untouched. Blank on the handful that clash beats wrong on all of them.
## Removed: the world exporter
Publishing a folder of map files asked a server owner to reach the world folder of every backend on their network, which most cannot. The art source that reads it stays, so a host that does publish its maps still works.
## If your auction house still draws blank
That is the server, not this mod, and it is worth being plain about why. A map's colours are sent in exactly two cases: the map is in your own inventory, or it hangs in an item frame near you. A map in an auction or shop GUI has never been sent to anybody, and no packet exists for a client to ask for one.
Install the **Paper plugin** from the Versions tab and it fills in. Measured on a real server against a stand-in auction house: without it, zero maps sent and every slot blank; with it, all 108 listings across two pages delivered.
- This is the server plugin, not the mod.** It goes in
plugins/. Keep the Fabric mod on your client and update both together.
Two ways this plugin could sit on a server doing nothing while looking perfectly healthy. Both are closed.
## It no longer goes silent on a fork
Every sweep was scheduled through the per-player scheduler, which is the right one for a region threaded server such as Folia or ShreddedPaper, and which not every fork carries. When that call threw, the plugin stayed loaded, stayed listening, and swept nothing at all. No error to find, no maps to see, and no way to tell that apart from a server that simply has no maps to send.
It now falls back to the main scheduler and says so once in the console. If you run ShreddedPaper, this is the release you want.
##
/showmymaps tells you whether it is working"Installed it and nothing changed" has three causes, they need three different fixes, and in game they look identical. The report separates them:
``
SHOW MY MAPS 1.1.2
sweeps run: 23
maps sent: 108
unresolvable: 0
players tracked: 1
Maps are being sent. Anything still blank is the client: install the Fabric mod.
`
- No sweeps** and players online: it is not running, so check the console.
- Sweeps but no maps sent**: it is looking and finding nothing. Check
showmymaps.see and disabled-worlds.Maps sent and still blank**: the client half is missing or on a different version. unresolvable above zero**: another plugin is showing maps this server holds no data for. Nothing on either side can fix those, and now you can see that rather than guess it.
With nobody online it says so instead of reporting a fault, because zeroes then mean nothing is wrong.
Needs showmymaps.status`, op by default.## Tested
Against a real Paper 1.21.11 server carrying a stand-in auction house: 54 listings in one double chest, filled a tick after the window opens the way a plugin querying a database does, and the page turned in place with no reopen. All 108 listings across both pages reached the client, and only the first page ever drew blank, for about a second.
- This is the server plugin, not the mod.** It goes in
plugins/. Keep using the Fabric mod on your client, and update both together.
This release is mostly server side. If players have told you that maps go blank, or that only maps they have seen before ever show up, this is the one to install.
## Fixed: maps went blank after a portal or a death
The most reported symptom, and the plugin was half the cause.
A client throws away every map it knows when its level is rebuilt, which a dimension change and a death both are. This plugin kept a record of which maps it had already sent each player, so as not to push 16 KB again on every pass, and that record was only cleared when the player quit. So for a whole
resend-seconds window after any portal or respawn it deliberately sent nothing to a client that now had nothing, and the player saw blank parchment for art they had been looking at seconds earlier. The record is now forgotten on a world change and on a respawn, and a fresh pass runs a second later.The mod had the matching hole on its side — a map that arrived just before the switch never reached the disk cache either — which is fixed in
1.1.1. **Update both halves**, or half the bug stays.## Fixed: places maps hide that were never checked
- Item frames and glow frames.** An art wall is item frames, and nothing here looked at one. Vanilla only syncs a frame's map as it enters tracking range, so a wall you were already standing at could stay blank.
- Armour stands and display entities.** Both are ordinary ways to build a shop front, and neither was ever read.
- Merchant trades.** A merchant's offers are not in its inventory — they are their own list — so a villager or wandering trader selling map art showed nothing however long you stared at it.
- Nesting now recurses.** A bundle of maps inside a shulker box used to stop at the box.
New switches in
config.yml: nearby-displays and merchant-trades, both on by default.## Also
- The sent record no longer grows for as long as a player stays connected, which on a shop server was thousands of ids nobody would look at again.
debug: true** logs every map sent, and every stack naming a map the server cannot resolve. That separates "the plugin is not looking there" from "another plugin drew that map straight to packets and there is no map data behind it" — the one case nothing on either side can fix. Turn it on before reporting a blank preview.
## Why beta
The fixes carry regression tests, including one that fails without the dimension-change fix and passes with it. It is marked beta to match the mod it pairs with, whose new art-source feature has had less time in the wild.
A map a server has never sent you has no colours on your client, and there is no packet to ask for them. That is the whole reason a shop or auction page draws blank parchment. Those colours are, however, sitting in the server's own world folder, and an owner who publishes that folder gives every player somewhere to read them from.
- No plugin, no restart, no open port.** The new
map-exporttool reads a world folder or a backup zip and writes out every filled map in it. Copy the result to any static host, and players point **Art source** at it in the settings. It is on the [GitHub release](https://github.com/DragonX1901/show-my-maps/releases/tag/v1.1.1), and read access to a world backup is all it needs.
Off by default and set per server, since a map id means a different picture on each. Three shapes are read: the mod's own cache files, a bare colour array, and a 128x128 PNG.
- Nothing fetched is believed.** Colours off a web host are a stranger's word for what a map looks like, so they are stored marked as a guess and **Strict previews** refuses them outright. If the server later sends that map for real the two are compared, and a source that gets three locked maps wrong is switched off and everything it sent is thrown away. Only https unless the address is your own machine, redirects are refused rather than followed, and an address pointing into your own network is turned down.
## Fixed: maps went blank after a portal
Walk through a portal just after opening a shop page and the art came back blank and stayed blank, leaving only maps cached from an earlier visit. Two halves of one bug, and each on its own was enough:
- The client throws away every map it knows when its level is rebuilt, which a dimension change and a death both are. The **Paper plugin** kept a record of what it had already sent so as not to resend 16 KB every pass, and that record only cleared when the player quit, so for a whole resend window it deliberately sent nothing to a client that now had nothing.
- The cache had the matching hole. Received maps were written in batches off a timer, and a batch held only the ids: by the time it ran, the level it would have read the colours from was gone, so a map that arrived in the seconds before the switch never reached disk either.
Both are fixed. **Update the plugin as well** — the server side of this is in
1.1.1+paper.## Fixed: maps the plugin was not looking for
Item frames, glow frames, armour stands and display entities are how a shop front is usually built, and none of them were read. A merchant's trade offers are not in its inventory at all, so a villager selling map art showed nothing however long you stared at it. Nested containers now recurse, since a bundle of maps inside a shulker box used to stop at the box. A new
debug toggle names every map sent, and every stack naming a map the server cannot resolve, which separates "not looking there" from "another plugin drew that map straight to packets".## Thirteen more languages
German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, Russian, Ukrainian and both written forms of Chinese, alongside the English and Turkish already there. Corrections from native speakers are welcome.
## Why beta
Art sources are new networking code, and the exporter has not yet been run against a production world outside its own tests. Everything else is covered by the usual suite, plus a client gametest that fetches over real HTTP on loopback and checks that a source handing over the wrong bytes is refused.
A map a server has never sent you has no colours on your client, and there is no packet to ask for them. That is the whole reason a shop or auction page draws blank parchment. Those colours are, however, sitting in the server's own world folder, and an owner who publishes that folder gives every player somewhere to read them from.
- No plugin, no restart, no open port.** The new
map-exporttool reads a world folder or a backup zip and writes out every filled map in it. Copy the result to any static host, and players point **Art source** at it in the settings. It is on the [GitHub release](https://github.com/DragonX1901/show-my-maps/releases/tag/v1.1.1), and read access to a world backup is all it needs.
Off by default and set per server, since a map id means a different picture on each. Three shapes are read: the mod's own cache files, a bare colour array, and a 128x128 PNG.
- Nothing fetched is believed.** Colours off a web host are a stranger's word for what a map looks like, so they are stored marked as a guess and **Strict previews** refuses them outright. If the server later sends that map for real the two are compared, and a source that gets three locked maps wrong is switched off and everything it sent is thrown away. Only https unless the address is your own machine, redirects are refused rather than followed, and an address pointing into your own network is turned down.
## Fixed: maps went blank after a portal
Walk through a portal just after opening a shop page and the art came back blank and stayed blank, leaving only maps cached from an earlier visit. Two halves of one bug, and each on its own was enough:
- The client throws away every map it knows when its level is rebuilt, which a dimension change and a death both are. The **Paper plugin** kept a record of what it had already sent so as not to resend 16 KB every pass, and that record only cleared when the player quit, so for a whole resend window it deliberately sent nothing to a client that now had nothing.
- The cache had the matching hole. Received maps were written in batches off a timer, and a batch held only the ids: by the time it ran, the level it would have read the colours from was gone, so a map that arrived in the seconds before the switch never reached disk either.
Both are fixed. **Update the plugin as well** — the server side of this is in
1.1.1+paper.## Fixed: maps the plugin was not looking for
Item frames, glow frames, armour stands and display entities are how a shop front is usually built, and none of them were read. A merchant's trade offers are not in its inventory at all, so a villager selling map art showed nothing however long you stared at it. Nested containers now recurse, since a bundle of maps inside a shulker box used to stop at the box. A new
debug toggle names every map sent, and every stack naming a map the server cannot resolve, which separates "not looking there" from "another plugin drew that map straight to packets".## Thirteen more languages
German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, Russian, Ukrainian and both written forms of Chinese, alongside the English and Turkish already there. Corrections from native speakers are welcome.
## Why beta
Art sources are new networking code, and the exporter has not yet been run against a production world outside its own tests. Everything else is covered by the usual suite, plus a client gametest that fetches over real HTTP on loopback and checks that a source handing over the wrong bytes is refused.
A map a server has never sent you has no colours on your client, and there is no packet to ask for them. That is the whole reason a shop or auction page draws blank parchment. Those colours are, however, sitting in the server's own world folder, and an owner who publishes that folder gives every player somewhere to read them from.
- No plugin, no restart, no open port.** The new
map-exporttool reads a world folder or a backup zip and writes out every filled map in it. Copy the result to any static host, and players point **Art source** at it in the settings. It is on the [GitHub release](https://github.com/DragonX1901/show-my-maps/releases/tag/v1.1.1), and read access to a world backup is all it needs.
Off by default and set per server, since a map id means a different picture on each. Three shapes are read: the mod's own cache files, a bare colour array, and a 128x128 PNG.
- Nothing fetched is believed.** Colours off a web host are a stranger's word for what a map looks like, so they are stored marked as a guess and **Strict previews** refuses them outright. If the server later sends that map for real the two are compared, and a source that gets three locked maps wrong is switched off and everything it sent is thrown away. Only https unless the address is your own machine, redirects are refused rather than followed, and an address pointing into your own network is turned down.
## Fixed: maps went blank after a portal
Walk through a portal just after opening a shop page and the art came back blank and stayed blank, leaving only maps cached from an earlier visit. Two halves of one bug, and each on its own was enough:
- The client throws away every map it knows when its level is rebuilt, which a dimension change and a death both are. The **Paper plugin** kept a record of what it had already sent so as not to resend 16 KB every pass, and that record only cleared when the player quit, so for a whole resend window it deliberately sent nothing to a client that now had nothing.
- The cache had the matching hole. Received maps were written in batches off a timer, and a batch held only the ids: by the time it ran, the level it would have read the colours from was gone, so a map that arrived in the seconds before the switch never reached disk either.
Both are fixed. **Update the plugin as well** — the server side of this is in
1.1.1+paper.## Fixed: maps the plugin was not looking for
Item frames, glow frames, armour stands and display entities are how a shop front is usually built, and none of them were read. A merchant's trade offers are not in its inventory at all, so a villager selling map art showed nothing however long you stared at it. Nested containers now recurse, since a bundle of maps inside a shulker box used to stop at the box. A new
debug toggle names every map sent, and every stack naming a map the server cannot resolve, which separates "not looking there" from "another plugin drew that map straight to packets".## Thirteen more languages
German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, Russian, Ukrainian and both written forms of Chinese, alongside the English and Turkish already there. Corrections from native speakers are welcome.
## Why beta
Art sources are new networking code, and the exporter has not yet been run against a production world outside its own tests. Everything else is covered by the usual suite, plus a client gametest that fetches over real HTTP on loopback and checks that a source handing over the wrong bytes is refused.
A map a server has never sent you has no colours on your client, and there is no packet to ask for them. That is the whole reason a shop or auction page draws blank parchment. Those colours are, however, sitting in the server's own world folder, and an owner who publishes that folder gives every player somewhere to read them from.
- No plugin, no restart, no open port.** The new
map-exporttool reads a world folder or a backup zip and writes out every filled map in it. Copy the result to any static host, and players point **Art source** at it in the settings. It is on the [GitHub release](https://github.com/DragonX1901/show-my-maps/releases/tag/v1.1.1), and read access to a world backup is all it needs.
Off by default and set per server, since a map id means a different picture on each. Three shapes are read: the mod's own cache files, a bare colour array, and a 128x128 PNG.
- Nothing fetched is believed.** Colours off a web host are a stranger's word for what a map looks like, so they are stored marked as a guess and **Strict previews** refuses them outright. If the server later sends that map for real the two are compared, and a source that gets three locked maps wrong is switched off and everything it sent is thrown away. Only https unless the address is your own machine, redirects are refused rather than followed, and an address pointing into your own network is turned down.
## Fixed: maps went blank after a portal
Walk through a portal just after opening a shop page and the art came back blank and stayed blank, leaving only maps cached from an earlier visit. Two halves of one bug, and each on its own was enough:
- The client throws away every map it knows when its level is rebuilt, which a dimension change and a death both are. The **Paper plugin** kept a record of what it had already sent so as not to resend 16 KB every pass, and that record only cleared when the player quit, so for a whole resend window it deliberately sent nothing to a client that now had nothing.
- The cache had the matching hole. Received maps were written in batches off a timer, and a batch held only the ids: by the time it ran, the level it would have read the colours from was gone, so a map that arrived in the seconds before the switch never reached disk either.
Both are fixed. **Update the plugin as well** — the server side of this is in
1.1.1+paper.## Fixed: maps the plugin was not looking for
Item frames, glow frames, armour stands and display entities are how a shop front is usually built, and none of them were read. A merchant's trade offers are not in its inventory at all, so a villager selling map art showed nothing however long you stared at it. Nested containers now recurse, since a bundle of maps inside a shulker box used to stop at the box. A new
debug toggle names every map sent, and every stack naming a map the server cannot resolve, which separates "not looking there" from "another plugin drew that map straight to packets".## Thirteen more languages
German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, Russian, Ukrainian and both written forms of Chinese, alongside the English and Turkish already there. Corrections from native speakers are welcome.
## Why beta
Art sources are new networking code, and the exporter has not yet been run against a production world outside its own tests. Everything else is covered by the usual suite, plus a client gametest that fetches over real HTTP on loopback and checks that a source handing over the wrong bytes is refused.
- A Paper server running the plugin was reported as not having the mod.** The presence check looked for a channel only the Fabric server mod registered, so the Paper plugin was invisible to it and every player on such a server got the "not installed" notice — the opposite of true.
### The server half now names itself, and this checks it
Both halves announce themselves on joining and give their version. A current pair says nothing; an older server half is named, with what to ask for; neither half gives the same notice as before.
- 1.0.3 is the minimum**, being the first version able to announce itself at all. Anything older cannot be told apart from nothing installed. If you run the plugin, update it alongside the mod.
If you are on 1.0.1 or older, note that 1.0.2 fixed the tooltip preview drawing an empty box on this version.
- A Paper server running the plugin was reported as not having the mod.** The presence check looked for a channel only the Fabric server mod registered, so the Paper plugin was invisible to it and every player on such a server got the "not installed" notice — the opposite of true.
### The server half now names itself, and this checks it
Both halves announce themselves on joining and give their version. A current pair says nothing; an older server half is named, with what to ask for; neither half gives the same notice as before.
- 1.0.3 is the minimum**, being the first version able to announce itself at all. Anything older cannot be told apart from nothing installed. If you run the plugin, update it alongside the mod.
- A Paper server running the plugin was reported as not having the mod.** The presence check looked for a channel only the Fabric server mod registered, so the Paper plugin was invisible to it and every player on such a server got the "not installed" notice — the opposite of true.
### The server half now names itself, and this checks it
Both halves announce themselves on joining and give their version. A current pair says nothing; an older server half is named, with what to ask for; neither half gives the same notice as before.
- 1.0.3 is the minimum**, being the first version able to announce itself at all. Anything older cannot be told apart from nothing installed. If you run the plugin, update it alongside the mod.
- A Paper server running the plugin was reported as not having the mod.** The presence check looked for a channel only the Fabric server mod registered, so the Paper plugin was invisible to it and every player on such a server got the "not installed" notice — the opposite of true.
### The server half now names itself, and this checks it
Both halves announce themselves on joining and give their version. Three outcomes:
| On the server | What you see |
| --- | --- |
| A current server half | nothing — it just works |
| One older than this asks for | which version is there, and to ask whoever runs it to update |
| Neither half | only carried and framed maps can preview, as before |
- 1.0.3 is the minimum**, being the first version able to announce itself at all. Anything older cannot be told apart from nothing installed, and the notice says so rather than pretending to know. If you run the plugin, update it alongside the mod.
- This is the server plugin, not the mod.** It goes in
plugins/. Keep using the Fabric mod on your client.
### The plugin now announces itself
Until now the mod's presence check only recognised the Fabric server mod, so **a Paper server running this plugin still told every player the mod was not installed** — the opposite of true. The plugin now introduces itself on join and names its version, so the client stays quiet when the pair is current, and says which version is on the server when it is behind.
Update both sides together: a mod on 1.0.3 asks for a plugin on 1.0.3 or newer, because 1.0.3 is the first version able to announce itself at all.
### Also here
- Owners decide who sees maps: everyone holds **
showmymaps.see** unless you take it away, and **disabled-worlds** turns whole worlds off by name. The gate sits on the send, so a player without it is never sent the colours. - Covers **1.21.1 through 26.2** from one jar, built against the 1.21.1 API. Paper 1.21.1, 1.21.5, 1.21.8, 26.1.2 and 26.2 were each booted with it; 1.21.1 and 1.21.11 were driven end to end with a real client, in the allowed, revoked, current and outdated cases. The versions in between were not individually tried.
### What is new in 1.0.2
- The **Paper plugin** now covers 1.21.1 through 26.2 rather than 1.21.11 alone, and lets server owners decide who gets previews: everyone holds
showmymaps.seeunless it is revoked, anddisabled-worldsturns whole worlds off. The gate sits on the send, so a player without permission is never sent the colours. Download it from the Versions tab; it goes inplugins/, notmods/.
### What is new in 1.0.2
- The **Paper plugin** now covers 1.21.1 through 26.2 rather than 1.21.11 alone, and lets server owners decide who gets previews: everyone holds
showmymaps.seeunless it is revoked, anddisabled-worldsturns whole worlds off. The gate sits on the send, so a player without permission is never sent the colours. Download it from the Versions tab; it goes inplugins/, notmods/.
### What is new in 1.0.2
- The **Paper plugin** now covers 1.21.1 through 26.2 rather than 1.21.11 alone, and lets server owners decide who gets previews: everyone holds
showmymaps.seeunless it is revoked, anddisabled-worldsturns whole worlds off. The gate sits on the send, so a player without permission is never sent the colours. Download it from the Versions tab; it goes inplugins/, notmods/.
- The tooltip preview drew an empty box on this version.** The map goes through a buffer source that is flushed on the spot, while the tooltip background is drawn on top of it afterwards, so the picture was hidden behind its own tooltip. Slot icons were unaffected, which is why it went unnoticed. This is the only jar that changes here; found by running 1.21.1 against a real Paper server rather than assuming the version worked.
### Also in 1.0.2
- The **Paper plugin** now covers 1.21.1 through 26.2 rather than 1.21.11 alone, and lets server owners decide who gets previews through the
showmymaps.seepermission and adisabled-worldslist. Download it from the Versions tab; it goes inplugins/, notmods/.
- This is the server plugin, not the mod.** It goes in
plugins/. Keep using the Fabric mod on your client.
Paper, Spigot and their forks cannot load a Fabric mod at all, so maps in an auction page, a chest or a shulker box are never sent to any player and no client can draw them. This sends them: map colours for maps in whatever inventory a player has open — chests, auction and shop pages, any plugin GUI — plus shulker box and bundle contents, and maps lying on the ground nearby.
### Owners decide who sees maps
- Everyone holds **
showmymaps.see** unless you take it away. Revoke it from default and grant it to a rank, and only that rank gets previews. disabled-worlds** inconfig.ymlturns whole worlds off by name.
The gate sits on the send, so a player without permission is never sent the colours and has nothing on their client to reveal. It is not a client setting anyone can flip back.
### Now covers 1.21.1 through 26.2
Built against the 1.21.1 API, the oldest of the range, so one jar runs across it. Paper 1.21.1, 1.21.5, 1.21.8, 26.1.2 and 26.2 were each booted with it; 1.21.1 and 1.21.11 were driven end to end with a real client and a stand-in auction GUI, in both the allowed and the revoked case. The versions between those were not individually tried.
Other settings in
config.yml: scan interval, how long before a map is sent to the same player again, and a switch per source. Work is scheduled per player rather than globally, so it stays on the owning thread under Folia and ShreddedPaper.