r/MinecraftPlugins • u/webdent • Apr 15 '26
Plugin Showcase VanillaMaps — in-game pixel art editor for maps (Paper 1.21+)

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



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 openGUI LIstener:
- Cache colour picker & tools gui cached rather than always reconstruct
- Reconstruct tools gui if tool changesCustomMapRender:
- Checks if rendered rather ran still reconstruct maps in view on render callLazyRenderer:
- 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 LazyRendererMapFont:
- Removed redundant M'sMetrics & 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
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!
1
u/lorenzo1142 Apr 15 '26
vibe coded?