{"id":111269,"date":"2026-06-06T16:03:45","date_gmt":"2026-06-06T13:03:45","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/"},"modified":"2026-06-06T16:03:45","modified_gmt":"2026-06-06T13:03:45","slug":"nminimap","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/","title":{"rendered":"NMinimap"},"content":{"rendered":"<div align=\"center\">\n<p># NMinimap<\/p>\n<p>Serverside minimap based on core shaders<\/p>\n<p>![](https:\/\/raw.githubusercontent.com\/NezuShin\/NMinimap\/refs\/heads\/master\/images\/example_5.png)<\/p>\n<\/div>\n<p>### Features<\/p>\n<p>&#8211; Round and square minimap<br \/>\n&#8211; Unlimited amount of custom markers<br \/>\n&#8211; Side of the screen selection (left or right)<br \/>\n&#8211; Scale of map from 1x (1 pixel = 1 block) to 8x (1 pixel = 8&#215;8 blocks)<br \/>\n&#8211; Async work as much as possible<br \/>\n&#8211; Map size up to 127 x 127 pixels<br \/>\n&#8211; Automatic resource pack build<\/p>\n<p>### Supported server platforms<br \/>\n&#8211; Papermc<br \/>\n&#8211; Folia<br \/>\n&#8211; Spigot with a [lot of limitations](#running-on-spigot)<\/p>\n<p>### Showcase<\/p>\n<p>![](https:\/\/raw.githubusercontent.com\/NezuShin\/NMinimap\/refs\/heads\/master\/images\/example_1.gif)<br \/>\n![](https:\/\/raw.githubusercontent.com\/NezuShin\/NMinimap\/refs\/heads\/master\/images\/example_2.gif)<br \/>\n![](https:\/\/raw.githubusercontent.com\/NezuShin\/NMinimap\/refs\/heads\/master\/images\/example_3.gif)<\/p>\n<p>### Dependencies<\/p>\n<p>&#8211; AnvilORM<br \/>\n&#8211; Packet events<br \/>\n&#8211; PassengerAPI (Optional; Needed for compatibility with another plugins)<br \/>\n&#8211; PlaceholderAPI (Optional; If you need placeholders)<\/p>\n<p>### Installation<\/p>\n<p>&#8211; Install all [dependencies](#dependencies)<br \/>\n&#8211; Download jar from releases and put it to the server&#8217;s plugins directory.<br \/>\n&#8211; Restart the server<\/p>\n<p>Also, you can configure PackMerger<br \/>\nor Resource Pack Manager for resource pack merge and distribution<\/p>\n<p>### Permissions<\/p>\n<p>&#8211; `nminimap.admin` &#8211; access for `\/minimap admin` command<br \/>\n&#8211; `nminimap.scale.1\/2\/4\/8` &#8211; access for `\/minimap scale` command (if enabled in config)<br \/>\n&#8211; Another minimap commands can be accessed without any premissions<\/p>\n<p>### Admin commands<br \/>\n&#8211; `\/minimap admin reload` &#8211; reload config<br \/>\n&#8211; `\/minimap admin stats` &#8211; get statistics info <\/p>\n<p>### User commands<\/p>\n<p>&#8211; `\/minimap scale 1\/2\/4\/8` &#8211; set map scale. 1 &#8211; one block per pixel, 2 &#8211; four blocks per pixel (2&#215;2 zone), etc<br \/>\n&#8211; `\/minimap side left\/right` &#8211; set side of the screen where map will be displayed<br \/>\n&#8211; `\/minimap style round\/square` &#8211; set map round or square<br \/>\n&#8211; `\/minmap disable\/enable` &#8211; disable or enable map<\/p>\n<p>### PlaceholderAPI Placeholders<\/p>\n<p>#### Player related:<br \/>\n&#8211; `nminimap_enabled` &#8211; true or false<br \/>\n&#8211; `nminimap_scale` &#8211; 1, 2, 4, 8<br \/>\n&#8211; `nminimap_side` &#8211; right or left<br \/>\n&#8211; `nminimap_style` &#8211; round or square<\/p>\n<p>#### Statistics related:<br \/>\n&#8211; `nminimap_stats_loaded_tiles` &#8211; count of tiles in ram, number<br \/>\n&#8211; `nminimap_stats_cache_size` &#8211; total count of all cached chunks, number<br \/>\n&#8211; `nminimap_stats_enabled_maps` &#8211; how many players use map right now, number<br \/>\n&#8211; `nminimap_stats_threads` &#8211; how many plugin&#8217;s threads running right now, number<br \/>\n&#8211; `nminimap_stats_disk_total_space_g` &#8211; total available disk space in gigabytes, number (double)<br \/>\n&#8211; `nminimap_stats_disk_free_space_g` &#8211; free space on disk in gigabytes, number (double)<br \/>\n&#8211; `nminimap_stats_disk_total_space` &#8211; total available disk space in bytes, number<br \/>\n&#8211; `nminimap_stats_disk_free_space` &#8211; free space on disk in bytes, number<\/p>\n<p>### Markers<\/p>\n<p>Markers are just font images with special marks on texture, so they have same limitations:<br \/>\n&#8211; No animations. But you can replace the icon to another one every AsyncMarkerRenderEvent call using API.<br \/>\n&#8211; Texture size is limited to 256 x 254 pixels (two extra columns used for marks)<br \/>\n&#8211; Note that large amount of big images can significantly slow down resource pack loading. <\/p>\n<p>To add marker, drop your image to `markers` directory and type `\/minimap admin reload`. New resourcepack will be generated.<br \/>\nYou can make images smaller by increasing image size with same texture. Like in `player_small` default marker.<\/p>\n<p>### Compatibility <\/p>\n<p>#### Core shaders and another plugins<br \/>\nPlugin uses `rendertype_text` shader, so shaders for hud or text decorations may not be compatible. In most plugins you must<br \/>\ndisable text decorations for NMinimap work.<br \/>\nPatched shader for BetterHUD is already provided. If you are developer you can add compatibility with your plugin using this example easily<\/p>\n<p>#### Mods<\/p>\n<p>Plugin can turn off some mod-driven minimaps at all or while serverside minimap enabled:<\/p>\n<p>![](https:\/\/raw.githubusercontent.com\/NezuShin\/NMinimap\/refs\/heads\/master\/images\/example_4.gif)<\/p>\n<p>Supported mods:<br \/>\n&#8211; Xaero&#8217;s Minimap<br \/>\n&#8211; VoxelMap-Updated<br \/>\n&#8211; JourneyMap<br \/>\n&#8211; Another mods do not have such functionality, or it is not documented. <\/p>\n<p>#### Known incompatibilities<br \/>\n&#8211; ImmediatelyFast &#8211; Stores all maps to one atlas, which breaks shader logic<\/p>\n<p>### How does it work?<\/p>\n<p>#### Maps<br \/>\nPlugin spawns packet-based invisible item frames with a map in it and renders the map with special sequence on first row.<br \/>\nShader detects this row and places the map at corner of the screen. Vanilla maps still works (Except one map id used for display. Id is configurable).<br \/>\nThe first map column is also disabled for symmetry.<\/p>\n<p>#### Markers<\/p>\n<p>Marker images have for pixels with specific color on then&#8217;s corners. For every combination of map style and screen corner image is being created. Four images in total<br \/>\nAlso color of image is used. Red is X position on map. Green is Y position on map. Blue is marker rotation.<\/p>\n<p>### API<\/p>\n<p>Change player&#8217;s map settings<br \/>\n&#8220;`java<br \/>\npublic void changeSettings(Player p) {<br \/>\n    var player = NMinimap.getInstance().getPlayersWithMap().stream().filter(i -> i.getPlayer().equals(p)).findFirst().orElse(null);<\/p>\n<p>    player.setEnabled(true);<br \/>\n    player.setScale(8);<br \/>\n    player.getRight(true);<br \/>\n    player.setRound(true);<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Draw on map and add markers. Both events being called on every map redraw. <\/p>\n<p>&#8220;`java<br \/>\n@EventHandler<br \/>\npublic void drawDot(AsyncMapRenderEvent event){<br \/>\n    byte[] mapData = event.getMapData();<\/p>\n<p>    \/\/middle of the map<br \/>\n    int x = 64;<br \/>\n    int y = 64;<\/p>\n<p>    \/\/Accepts only colors from ColorUtil.colors. Another values will result transparent color<br \/>\n    mapData[x + (y * 128)] = ColorUtil.exactColor(ColorUtil.colors[10]);<\/p>\n<p>    int anotherX = 1;\/\/first row is reserved for internal use. First **column** is disalbed for symmetry.  Displayed map has resolution 127 x 127<br \/>\n    int anotherY = 1;<\/p>\n<p>    \/\/Similar to deprecated MapPalette.matchColor(). Will find most nearest color.<br \/>\n    mapData[anotherX + (anotherY * 128)] = ColorUtil.getNearestColor(Color.fromRGB(255, 0, 0));<br \/>\n}<\/p>\n<p>@EventHandler<br \/>\npublic void drawMarker(AsyncMarkerRenderEvent e){<br \/>\n    List<NMapMarker> markers = e.getMarkers();<\/p>\n<p>    String markerIcon = &#8220;player&#8221;;\/\/Icon from NMinimap\/markers directory<\/p>\n<p>    \/\/Add marker with fixed location<br \/>\n    markers.add(new LocationMarker(markerIcon, new Location(e.getPlayer().getPlayer().getWorld(), 1, 1, 1)));<\/p>\n<p>    int positionMarkerX = 0;\/\/Accepts values from -127 to 127. -127 &#8211; left. 127 &#8211; right<br \/>\n    int positionMarkerY = 0;\/\/-127 &#8211; top. 127 &#8211; bottom<br \/>\n    int positionMarkerRotation = 0;\/\/from 0 to 256. 0 points top, 128 points bottom<\/p>\n<p>    \/\/Add marker with relative position on map.<br \/>\n    markers.add(new PositionMarker(markerIcon, positionMarkerX, positionMarkerY, positionMarkerRotation));<\/p>\n<p>}<br \/>\n&#8220;`<\/p>\n<p>### Inspirations<br \/>\n&#8211; VanillaMinimaps<br \/>\n&#8211; Cartographer2<br \/>\n&#8211; Minimap control<\/p>\n<p>### Credits<br \/>\n&#8211; NezuShin &#8211; Plugin development<br \/>\n&#8211; DartCat25 &#8211; Shader development<br \/>\n&#8211; DEMEMZEA &#8211; Help with readme<\/p>\n<p>### Help and support<\/p>\n<p>If you have questions, want ask for a feature or report a bug &#8211; feel free to open issue,<br \/>\nAlso you can ask a question in the discord server.<\/p>\n<p>### Running on spigot<\/p>\n<p>Spigot is outdated server software and should not be used in production. However, it is possible to run NMinimap on Spigot.<br \/>\nMain problem is that spigot, unlike paper, cannot load chunks asynchronously. To run on spigot, you need to set `max-render-threads` config property to `1`. Otherwise, the server will freeze on chunck generation.<br \/>\nAlso recommended to set `max-scale` to 1 or 2 to reduce server load.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Papermc plugin to display Minimap on vanilla client<\/p>\n","protected":false},"featured_media":111270,"template":"","meta":{"_minecraft_slug":"nminimap","_minecraft_project_id":"lBBekvEQ","_minecraft_author":"NezuShin","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":597,"_minecraft_follows":5,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"nminimap.zip","_minecraft_size_bytes":739266,"_minecraft_version_count":6,"_minecraft_updated_at":"2026-05-16T10:26:37.378104Z","_minecraft_date_created":"2026-04-11T22:08:42.791865Z","_minecraft_date_modified":"2026-05-13T02:35:33.187286Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/nminimap","_minecraft_icon_attachment_id":111270,"_minecraft_imported_at":"2026-06-06T13:03:45+00:00","_minecraft_import_hash":"bebb307b8e8945160df414d05104b78c","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[87,125,127,128,129,92],"mod_loader":[131,132,133,134],"minecraft_version":[62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-111269","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-adventure","mod_category-folia","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-utility","mod_loader-folia","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>NMinimap - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NMinimap - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Papermc plugin to display Minimap on vanilla client\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/\",\"name\":\"NMinimap - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/nminimap-icon-e392c246c079044ca6cf7779d25409c2a82a7eb9_96.webp\",\"datePublished\":\"2026-06-06T13:03:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/nminimap-icon-e392c246c079044ca6cf7779d25409c2a82a7eb9_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/nminimap-icon-e392c246c079044ca6cf7779d25409c2a82a7eb9_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/nminimap\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"NMinimap\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NMinimap - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/","og_locale":"en_US","og_type":"article","og_title":"NMinimap - Minecraft","og_description":"Papermc plugin to display Minimap on vanilla client","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/","name":"NMinimap - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/nminimap-icon-e392c246c079044ca6cf7779d25409c2a82a7eb9_96.webp","datePublished":"2026-06-06T13:03:45+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/nminimap-icon-e392c246c079044ca6cf7779d25409c2a82a7eb9_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/nminimap-icon-e392c246c079044ca6cf7779d25409c2a82a7eb9_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/nminimap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"NMinimap"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/111269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/111270"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=111269"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=111269"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=111269"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=111269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}