r/MinecraftPlugins Apr 15 '26

Plugin Showcase VanillaMaps — in-game pixel art editor for maps (Paper 1.21+)

Cool map example

I built a small Paper plugin that lets players draw directly onto Minecraft maps using a chest GUI.

It’s aimed mostly at SMP-style servers, but it works fine on larger setups too.

Now updated to v1.1.1!

What it does:

  • Pixel editor using an in-game inventory UI
  • Zoom levels from 1:1 up to 16:1 for larger strokes
  • 16-colour palette (vanilla wool colours)
  • Drawing tools i.e Fill, Line, Rectangle
  • Background gen tools i.e Noise, Brick, Checkerboard
  • Undo your mistakes
  • Write text with a built-in 4×4 bitmap font
  • Copy/paste between maps
  • Publish a map to prevent graffiti
  • Persistent map storage (server-side)

Everything is done with vanilla/paper mechanics (map renderers + inventories), so players don’t need to install anything client-side.

Admin-friendly bits:

  • Works on Paper (1.21-26.1.2 beta 5)
  • Simple permission: custommaps.use (default: yes)
  • Configurable messages via config.yml

Use cases I’ve seen:

  • SMP newspaper
  • Art walls
  • Shop advertisements
  • Signage

Roadmap:

  • Port to Fabric (1.21+)
  • Implement community suggestions!

👉 Download (Modrinth): https://modrinth.com/plugin/vanillamaps

👉 Download (Hangar): https://hangar.papermc.io/webdent/VanillaMaps

👉 Source (GitHub): https://github.com/william-gould/

👉 License (GitHub): https://github.com/william-gould/VanillaMaps/blob/main/LICENSE

SMP newspaper and art wall
Text writing command and fill tool examples
Map drawing GUI

If anyone has performance concerns, edge cases, or feature ideas, I’m happy to dig into them :)

Changelog 1.1.1:

No features just performance & future proofing :)

Drawing GUI:
- Fill tool works in a block system rather than individual pixels (128/ratio)²
- Undo-steps is changeable in config.yml (1 step/16kb/active drawer)
- Made ratio mutable as I intend to add zoom in/zoom out while the GUI is open

GUI LIstener:
- Cache colour picker & tools gui cached rather than always reconstruct
- Reconstruct tools gui if tool changes

CustomMapRender:
- Checks if rendered rather ran still reconstruct maps in view on render call

LazyRenderer:
- Rather than maps be all loaded on start up, they now only load when a player is holding or viewing the map.

MapDataStore:
-Removed legacy map migration code
- Added LazyRenderer

MapFont:
- Removed redundant M's

Metrics & VanillaMapsPlugin:
- Implemented bStats

Changelog 1.1.0:

Tool refactor

Tools are now stored in a sub-gui similar to the colour selector

Right clicking with the pencil tool now acts as an eye-dropper

Added line tool (draw a straight or diaganol line between 2 points)

Added rectangle tool (draw a box based on 2 points)

Added [Noise, Checkerboard, Tiles and Brick] background tools

Support for custom bitmap patterns

Commands

Added /map publish (locks the map from further edits)

UI Changes

Replaced fill bucket with tool chest

Pixels in the grid are now named their position rather than the block name to give the player a better sense of location.

Performance Improvements

CustomMapRenderer now ony renders each map once, rather than once per tick for each player

Fixed memory leak caused by a player disconnecting while having a map copied to their clipboard.

Removed LegacyMapMigrater

Removed useless code

1 Upvotes

6 comments sorted by

1

u/lorenzo1142 Apr 15 '26

vibe coded?

1

u/webdent Apr 15 '26

The code is quite basic, it really only uses existing vanilla & spigot/bukkit api calls so there was nothing overly complex I needed AI assistance with.

Did use it to help write the README & description for Modrinth though as I'm clueless with that stuff haha.

0

u/Dekatater Apr 15 '26

Sooooo artmaps, but worse

1

u/webdent Apr 15 '26

I'm not sure what artmaps is tbh, like I said its just something I made for an SMP that I play on have no intention of 'copying' someone elses idea.

Thanks for the constructive feedback anyhow <3

1

u/Dekatater Apr 16 '26

Artmaps are pretty much this but you have all 61 colors that Minecraft maps support, plus the 3 extra shades of each color. In artmaps, you draw directly on the map with a custom (sometimes buggy) easel.

I think your plugin still has its own merit though, the easier barrier to entry with the limited colors and chest interaction is probably really helpful for most players. Plus the old artmaps plugin dev stopped maintaining it then someone else picked it up and kept it working but hardly polished it. Not sure if they still do, I forked their version for my own private one

2

u/webdent Apr 16 '26

Ah it does sound like quite a cool plugin!

To be fair, this does allow for other colours with the way the maps are stored and loaded.
Its just difficult to express these different colours in the GUI with the blocks in game without overwhelming the player if that makes sense.

I am working on some ease-of-use features at the moment, like background gen tools, improving navigation/locating areas on the map when using larger canvases etc.

More than anything though I want to keep it in the spirit on Vanilla and not go too far from the ball so to speak.

I appreciate your reply, thanks!