Minecraft Java Edition – How to Create Custom Symbols on Maps?

minecraft-commandsminecraft-java-edition

While browsing the Minecraft Wiki, I've stumbled upon a very interesting feature: it states (specifically here) that it is possible to add custom symbols (called "decorations") to maps – this looks very, very promising, especially for map-making, but lacks so many important details! What exactly the format of the type field? Do x and y fields relate to global (per-world) or local (per-map) coordinates? And if the latter, then what are their limits? This raises so many questions, and, obviously, it also lacks any examples…

I've tried to google it, but in vain: results are mostly about fancy map decorations, furniture and the staff. Could someone please explain this topic or link to someplace where it is already explained?

Best Answer

The available symbols (which type changes between) can be found in textures/map/map_icons.png:

1.10-                          16w39a+
Map icons 1.10 Map icons

type is an integer ranging from 0 (white arrow marker) to 6 (white circle) in 1.10, or to 9 (ocean monument) as of 16w39a.


x and z are world coordinates, showing decorations that have absolute x and z values being within a certain range of the map's center (dependent on scale). Each scale value increases the range by 63 blocks in each direction.

For example, a map with a scale of 0 created at (0,0) will show decorations with absolute coordinates between -63.0 and 63.0. A scale-0 map created at (512,512) will show decorations between 449.0 and 575.0 (as they are within 63 blocks of the map's center). The same map at a scale of 1 will show decorations between 386.0 and 638.0 (within the 126-block range).

As maps face North, the bottom right corner is the most positive of the two coordinates.


id must simply be a unique string, to identify the marker by.


There's also rot, which is clockwise rotation of the symbol in degrees. There does not appear to be a limit on this; -45 is the same as 315 or 1035.


Here's an example command, provided the map was created at (0,0) and has a scale of 0, with markers at each corner, all facing inwards:

/give @p filled_map 1 100 {Decorations:[{id:"7",type:0,x:63,z:63,rot:135},{id:"31",type:1,x:-63,z:63,rot:225},{id:"03",type:2,x:63,z:-63,rot:45},{id:"1",type:3,x:-63,z:-63,rot:-45}]}

Expanded data:

{
    Decorations:
    [
        {
            id:"7",
            type:0,
            x:63,
            z:63,
            rot:135
        },

        {
            id:"31",
            type:1,
            x:-63,
            z:63,
            rot:225
        },

        {
            id:"03",
            type:2,
            x:63,
            z:-63,
            rot:45
        },

        {
            id:"1",
            type:3,
            x:-63,
            z:-63,
            rot:-45
        }
    ]
}