|
| 1 | +--- |
| 2 | +layout: page |
| 3 | +title: Render-Masks |
| 4 | +parent: Advanced Customization |
| 5 | +grand_parent: Wiki |
| 6 | +nav_order: 1 |
| 7 | +--- |
| 8 | + |
| 9 | +# Render-Masks |
| 10 | +{: .no_toc } |
| 11 | + |
| 12 | +BlueMap supports **render masks** that allow you to control which parts of your Minecraft world are rendered to the map. |
| 13 | +By default, BlueMap renders the entire (generated) world. With masks, you can define custom mask shapes to **include** or **exclude** specific areas. |
| 14 | + |
| 15 | +This can be useful to make sure the map only renders **inside** your world-border, or if you want to hide a specific area from the map. |
| 16 | +In the nether the default config uses masks to remove the nethers ceiling so you can see below the top bedrock-layer. |
| 17 | + |
| 18 | +Render masks are configured in the **map config file**: |
| 19 | + |
| 20 | +```hocon |
| 21 | +render-mask: [ |
| 22 | + // mask definitions go here |
| 23 | +] |
| 24 | +``` |
| 25 | + |
| 26 | +## How Render Masks Work |
| 27 | + |
| 28 | +* The `render-mask` setting is a **list** of one or more **mask objects**. |
| 29 | +* Each mask defines a shape in the world that will either be: |
| 30 | + * **Included** in the rendered map (default). |
| 31 | + * **Excluded** using the `subtract: true` property. |
| 32 | +* Masks are applied in **top-to-bottom order**. |
| 33 | + |
| 34 | +BlueMap automatically updates the rendered map when masks are changed, and deletes tiles outside the defined area. |
| 35 | +To fix any potential issues after changing masks, you can use: `/bluemap fix-edges <map>` |
| 36 | + |
| 37 | +## Available Mask Types |
| 38 | + |
| 39 | +### Box Mask |
| 40 | + |
| 41 | +Defines a rectangular 3D area (Axis-Aligned Bounding Box). |
| 42 | +You can **omit** properties like `min-x`, `max-y`, etc., to make masks **unbounded** in that axis. |
| 43 | + |
| 44 | +```hocon |
| 45 | +{ |
| 46 | + type: box |
| 47 | + subtract: false |
| 48 | + |
| 49 | + # Optional: |
| 50 | + min-x: -4000 |
| 51 | + max-x: 4000 |
| 52 | + min-z: -4000 |
| 53 | + max-z: 4000 |
| 54 | + min-y: 50 |
| 55 | + max-y: 100 |
| 56 | +} |
| 57 | +``` |
| 58 | + |
| 59 | +### Circle Mask |
| 60 | + |
| 61 | +Defines a **circular** area in the XZ plane. Optionally limited in height with `min-y` and `max-y`. |
| 62 | + |
| 63 | +```hocon |
| 64 | +{ |
| 65 | + type: circle |
| 66 | + subtract: false |
| 67 | + center-x: 0 |
| 68 | + center-y: 0 |
| 69 | + radius: 4000 |
| 70 | + |
| 71 | + # Optional: |
| 72 | + min-y: 50 |
| 73 | + max-y: 100 |
| 74 | +} |
| 75 | +``` |
| 76 | + |
| 77 | +### Ellipse Mask |
| 78 | + |
| 79 | +Like the circle mask, but allows different radii for X and Z axes. |
| 80 | + |
| 81 | +```hocon |
| 82 | +{ |
| 83 | + type: ellipse |
| 84 | + subtract: false |
| 85 | + center-x: 0 |
| 86 | + center-y: 0 |
| 87 | + radius-x: 4000 |
| 88 | + radius-z: 2000 |
| 89 | + |
| 90 | + # Optional: |
| 91 | + min-y: 50 |
| 92 | + max-y: 100 |
| 93 | +} |
| 94 | +``` |
| 95 | + |
| 96 | +### Polygon Mask |
| 97 | + |
| 98 | +Defines a custom polygon shape with 3 or more points. Optionally limited in height with `min-y` and `max-y`. |
| 99 | + |
| 100 | +```hocon |
| 101 | +{ |
| 102 | + type: polygon |
| 103 | + subtract: false |
| 104 | + shape: [ |
| 105 | + { x: 1, z: -23 }, |
| 106 | + { x: 1, z: -24 }, |
| 107 | + { x: 1, z: -25 }, |
| 108 | + { x: 2, z: -25 }, |
| 109 | + { x: 3, z: -25 } |
| 110 | + ] |
| 111 | +
|
| 112 | + # Optional: |
| 113 | + min-y: 50 |
| 114 | + max-y: 100 |
| 115 | +} |
| 116 | +``` |
| 117 | + |
| 118 | +## Combining Multiple Masks |
| 119 | + |
| 120 | +You can combine multiple masks together by adding more mask objects in the `render-mask` list. |
| 121 | +Each mask can be **additive** (default) or **subtractive** by setting `subtract: true`. |
| 122 | + |
| 123 | +Example: Render everything inside a box, except a smaller circle in the center. |
| 124 | + |
| 125 | +```hocon |
| 126 | +render-mask: [ |
| 127 | + { |
| 128 | + type: box |
| 129 | + subtract: false |
| 130 | + min-x: -1000 |
| 131 | + max-x: 1000 |
| 132 | + min-z: -1000 |
| 133 | + max-z: 1000 |
| 134 | + } |
| 135 | + { |
| 136 | + type: circle |
| 137 | + subtract: true |
| 138 | + center-x: 0 |
| 139 | + center-y: 0 |
| 140 | + radius: 200 |
| 141 | + } |
| 142 | +] |
| 143 | +``` |
0 commit comments