Interactive online map for Minecraft Bedrock servers
๐บ๏ธ Real-time rendering โข ๐จ Depth shading โข ๐ฅ Player tracking
MipMap transforms your Minecraft Bedrock server into a living, breathing web map. As players explore, the world renders itself automatically โ no commands, no waiting, just pure real-time magic.
Two parts. One vision:
๐ฎ Plugin โ Captures chunk data as your world loads and streams it to the web
๐ Web Server โ Generates beautiful map tiles and serves an interactive interface
๐ The map that grows with your world.
No manual rendering. No restarts. Just exploration.
|
Chunks appear on the map instantly as they load in-game. Watch your world expand as players explore. Navigate between Overworld, Nether, and The End with a single click. Each dimension, beautifully rendered. See who's online, where they are, and even their Minecraft skins โ all live on the map. |
Blocks rendered with depth-aware shading, ambient occlusion, and custom color palettes. Your world never looked this good. Pre-render entire regions with One command. One container. Your map is live in seconds. |
Download the latest plugin file from Releases and place it in your server's plugins folder. Restart the server.
For LeviLamina: You need to have LeviStone installed.
cd webmap
docker build -t mipmap-webmap .
docker run -d --name mipmap-webmap -p 8000:8000 mipmap-webmapโ
Done! Visit http://localhost:8000
cd webmap
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000โ
Done! Visit http://localhost:8000
| Command | Description |
|---|---|
/loadmap |
Start loading with default area from config |
/loadmap <minX> <minZ> <maxX> <maxZ> |
Start loading with custom coordinates |
/loadmap status |
Check current loading progress and remaining areas |
/loadmap help |
Display command usage |
Edit plugins/mipmap/config.toml:
| Key | Type | Default | Description |
|---|---|---|---|
sendPlayers |
boolean |
true |
Enable player position tracking |
api.chunks |
string |
"http://localhost:8000/api/chunks-data" |
Chunks data endpoint |
api.players |
string |
"http://localhost:8000/api/players-data" |
Players data endpoint |
mapLoading.batchSize |
int |
100 |
Number of chunks to process per batch |
mapLoading.maxAreas |
int |
10 |
Maximum concurrent loading areas |
blacklist.blocks |
array |
["air", "water", ...] |
Blocks to skip when finding surface |
Edit webmap/core/config.py:
| Key | Type | Default | Description |
|---|---|---|---|
MAP_SIZE |
int |
2000 |
Map viewport size in pixels (width/height) |
MAP_UPDATE_INTERVAL |
int |
5000 |
Player position update interval (milliseconds) |
MAP_DEFAULT_WORLD |
string |
"Overworld" |
Default dimension to display on load |
GENERATE_ZOOM_INTERVAL |
int |
300 |
Zoom level generation interval (seconds) |
Example:
MAP_SIZE = 3000 # Larger viewport for bigger screens
MAP_UPDATE_INTERVAL = 3000 # Update players every 3 seconds
MAP_DEFAULT_WORLD = "Nether" # Start in the Netherwebmap/data/
โโโ worlds/ # ๐ World data organized by dimension
โ โโโ Overworld/
โ โ โโโ tiles/ # ๐ผ๏ธ Generated PNG tiles
โ โ โโโ zoom-0/
โ โ โโโ zoom-1/
โ โ โโโ zoom-2/
โ โโโ Nether/
โ โ โโโ tiles/
โ โโโ TheEnd/
โ โโโ tiles/
โโโ skins/ # ๐ค Player skin cache
โ โโโ default.png
โโโ failedTextures.json # ๐ซ Failed texture loading log
Receives chunk data from the plugin.
Request Body:
{
"chunk": {
"dimension": "Overworld",
"blocks": [
{
"name": "minecraft:grass_block",
"coordinates": [64, 72, -32]
},
{
"name": "minecraft:stone",
"coordinates": [64, 71, -32]
}
]
}
}Receives player position data.
Request Body:
{
"players": [
{
"name": "Steve",
"skin": "89504e47...", // Hex-encoded PNG
"skinShape": [64, 64, 4],
"dimension": "Overworld",
"x": 123.45,
"y": 64.0,
"z": -67.89
}
]
}- ๐ Overworld rendering
- โก Real-time chunk updates
- ๐ฅ Player tracking with skins
- ๐ฆ Batch loading command
- ๐ณ Docker deployment
- ๐ The End dimension support
- ๐ฅ Nether dimension support
- ๐จ Custom dimension API
Contributions are welcome! Fork the repo, make your changes, and open a Pull Request.
This project is licensed under the MIT License. See LICENSE for details.
โจ MipMap - where each block finds its place. โจ
