BlueMap - A 3d-map of your Minecraft worlds view-able in your browser using three.js (WebGL)

This is a discussion topic for the Ore project, BlueMap. View the full project on Ore for downloads and more information.


title-banner

create 3D-maps of your Minecraft worlds and display them in your browser

>> DEMO MAP <<

GitHub issues GitHub all releases GitHub release (latest by date) Discord

What is BlueMap

BlueMap is a program that reads your Minecraft world files and generates not only a map, but also 3D-models of the whole surface.
With the web-app you then can look at those in your browser and basically view the world as if you were ingame!
Or just look at it from far away to get an overview.

screenshot

BlueMap comes as a Spigot/Paper or Sponge Plugin, as a Fabric or Forge-Mod and you can also use BlueMap without any Server
from the Command-Line as a standalone tool.

If installed as a Plugin/Mod, BlueMap renders asynchronously to your MinecraftServer-Thread.
This means at no time it will block your server-thread directly.
So as long as your CPU is not fully utilized, your server should not be slowed down while BlueMap is rendering.

Using BlueMap

You can download BlueMap from here.
Read the installation instructions to get started!

Here you can see how many servers are using BlueMap:

BlueMap Graph

If you need help with the setup, feel free to join the Discord-server, we’ll be happy to help you there!

Metrics and Webserver

BlueMap uses bStats and an own metrics-system and is hosting a web-server!

Metrics are really useful to keep track of how the plugin is used and helps me stay motivated! Please turn them on :slight_smile:

bStats: All data collected by bStats can be viewed here: bStats - BlueMap. bStats data-collection is controlled by the metrics-setting set in sponges configuration! (Turned off by default)

own metrics: Additionally to bStats, BlueMap is sending a super small report, containing only the implementation-name and the version of the BlueMap-plugin to my server. I do this, because there are some other implementations for BlueMap (Fabric, Forge, CLI) that are not supported by bStats. Here is an example report:

{
    "implementation": "sponge",
    "version": "0.0.0"
}

This data-collection is also controlled by the metrics-setting set in sponges configuration! (Turned off by default)

web-server: The web-server is a core-functionality of this plugin. So it is enabled by default but can be disabled in the plugin-config. By default the web-server is bound to all network-interfaces (‘0.0.0.0’) on port 8100 and is hosting the content of the ./bluemap/web/-folder.

Todo / planned features

Here is a todo-list ordered by what i right now think is the priority, but might always change or be reordered at my discretion. (I develop BlueMap in my free-time, so nothing here is a promise and there are no ETA’s)

Issues / Suggestions

You found a bug, have another issue or a suggestion?
You are very welcome to to join the discord-server and the reddit and share your thoughts!

5 Likes

A new version has been released for BlueMap, it is available for download here.


Targets:

  • SpongeAPI: 7.1.0

Notes:

This is the first pre-release with absolute basic functionality and currently only as Sponge-Plugin.

Changelog:

1 Like

Just saw the demo and it seems pretty epic to me. Is this available for non Sponge too?

Not yet, but the CLI is almost ready to use… Give me a week or so ^^
With that you will be able to render any world-folder from the command-line or start the integrated web-server. The CLI will also support 1.13/1.14 worlds :slight_smile:

Just tried your demo, and especially for an alpha, this is a very cool plugin. So fast.

The biggest problem with world viewers or map generators I’ve had in the past (think: dynmap) is with custom blocks from other mods. Will this accurately display, say, ComputerCraft computers, etc?

Thanks.

Currently: no. :smiley:
In the future: depends on the mod and if the mod is supported…

Basically, to render a block BlueMap needs the full resource for that block, formatted like in a resource pack (…blockstates/block_id.json, …models/block/model_id.json, …/textures/block/texture_id.json) … and for 1.12 BlueMap also needs a mapping (like this) between the numeric block id and meta and the blockstate.

So for 1.13+ BlueMap might be able to extract all the information it needs from the mod.jar in the mods folder of the server if it includes those assets (computercraft does).
For 1.12 however the mapping will have to be added somehow to read those blocks correctly. I will probably add the possibility to configure that mappings in a config or similar.

Also, if the mod does something fancy with it’s blocks that is not represented in those resource-files, BlueMap will not (and most likely never) render that block correctly.

I hope that answers your question :slight_smile:

1 Like

Im gonna try it on my 1.12.2 server

1 Like

So i am very interested in this project! though i have a question.

I use multiple “worlds” as sort of “zones” for my players.
does this have multi/custom word support?

Yes! You can define as much maps for as much worlds as you like in the configuration file :slight_smile:
In the browser application you can then choose between the different maps with a drop-down menu.

1 Like

That is great to know!

Thank you :slight_smile:

1 Like

A new version has been released for BlueMap, it is available for download here.


Targets:

  • CLI
  • SpongeAPI: 7.1.0

Notes:

Added CLI-support! Render your 1.12-1.14 worlds simply from the command-line: java -jar BlueMap-0.1.0.jar.

Improved resource-loading. The SpongePlugin now loads it’s resources async to the server-thread so your server won’t freeze while reloading.

BlueMap also now loads resourcepacks from a specific folder. This is experimental, expect things to go wrong if you use a resourcepack! Also if you change resourcepacks you will very likely need to delete your web-data folder and re-render the whole maps!

Changelog:

  • Added CLI-support
  • Changed some config-keys (v0.0.0 configs should be compatible)
    • Moved web.data to web.web-data
    • Added data
  • Moved the scheduled tiles and tasks save-file to the folder defined by the new data config
  • Moved the downloaded client.jar to the folder defined by the new data config and renamed it to minecraft-client-1.14.4.jar
  • Moved loading the BlueMap-Sponge plugin off the server-thread
  • Fixed a bug where vines were always generated with the block-property top=true on 1.12 worlds
2 Likes

My resource pack is a 64x64 pack.
Is it compatible; and or will it have a large impact on performance?

For the map-rendering the resolution of the resource-pack has no impact on performance at all, except some more ram usage. In the browser there might be a performance impact, but i guess it’s not more than if you have high-resolution textures in minecraft.
If it is compatible i can not tell you, you’ll have to install it, render the map and see if it works.
Don’t forget to remove any existing renders and clear your browser cache if possible :slight_smile:
Since i am working on resourcepacks in this moment, you could also tell me what resource-pack you are using and ill try it myself ^^

1 Like

My resource pack is a custom pack that i am working on.
Here is the (very much incomplete) pack

Aah, wait! Sorry! I completely forgot to mention that resource-packs currently have to be compatible with the Minecraft 1.14 format for resource-packs!
So this one will unfortunately not load right now… :slightly_frowning_face: sorry

Oh is this a 1.14 plugin??? I had no idea there was even a sponge for 1.14

No, there is no sponge for 1.14 yet, but BlueMap is already designed with 1.13+ in mind and made backwards-compatible for 1.12 worlds. That’s why a lot of things already work “the 1.13+” way. ^^

Good to know! I will be porting to 1.14 once my RPG-API (and Sponge of course) update; until then it’ll be default resources!

1 Like

Hi, I followed the instructions and installed bluemap. I activated the downloaded and completed a render task of the main world but the webpage only shows a black screen with a “loading” sign in the center. what have i done incorrectly and how can i fix it? any ideas?

thanks.

Hmm, I need to add some error handling to the web-app …
Can you open the browser-console and give me any output / errors when loading the webpage?