Skip to content
This repository has been archived by the owner on Dec 6, 2020. It is now read-only.
/ papyrusjs Public archive

papyrus.js renders maps of Minecraft: Bedrock Edition worlds using node.js, LevelDB and leaflet.

License

Notifications You must be signed in to change notification settings

papyrus-mc/papyrusjs

Repository files navigation

This tool is very unstable and in it's alpha-state!

I recommend taking a look at PapyrusCS instead!


Build Status Discord

papyrus.js

Papyrus is a tool to render Minecraft: Bedrock Edition (from now on referenced as "MCBE") worlds using Leaflet. It is written in JavaScript and powered by node.js.

You can view an example here.

Please also check out papyrus.js' sister-project: papyrus.cs!

Introduction

Since MCBE worlds don't use the Anvil format like in the Java Edition, but rather a by Mojang modified version of Google's LevelDB to save, the goal of Papyrus is to read these worlds and assemble a render of every pre-generated chunk.

Features

  • Render a top-down map of every already explored chunk
Planned
  • Windows support
  • Isometric renders
  • Auto-Updating renders
  • Live-View of currently online players on map (and their respective statistics)
  • Nether/ The End support

Installation

Do you just want to use papyrus.js (or don't want to build it from scratch)? You may be looking for the pre-built binaries.

Before installing, you may also need to install additional dependencies: sudo apt install g++ zlib1g-dev

Assuming you have node.js (>= 12) already installed, simply clone this repository and run the following command in your favourite terminal: npm install

Usage

node app.js --world="./My World/" --textures="./Vanilla_Resource_Pack" --output="./output" --mode="topdown_shaded"
  • For pre-built binaries use this syntax
./papyrusjs --world="./My World/" --textures="./Vanilla_Resource_Pack" --output="./output" --mode="topdown_shaded"

You are able to define a path to the texture pack that you want to use for the final render. Vanilla textures will automatically be downloaded if no textures are found. You can also force papyrus.js to download the latest textures with the option --force-download. If you want to download the vanilla resourcepack manually, you can get it here.

Please note: Only 16x16px Bedrock Edition texture packs are supported!

In some cases, high world size and low amount of ram (example: server with 2GB of ram), it is possible that the program crashes with an 'OutOfMemory' error. In this case, you can add the --expose-gc option to the command line.

node --expose-gc app.js --world="./My World/" --textures="./Vanilla_Resource_Pack" --output="./output" --mode="topdown_shaded"

Pre-built-binaries are not using this option at the moment.

Contribute xor support

If you want to help improve papyurs.js, please consider forking the repository.

Want to buy me a coffee (I love coffee)? Donate via PayPal ♥

Special thanks to...

... DeepBlue4200, mhsjlw and all the contributors.

Disclaimer

papyrus.js, as well as papyrus.cs are in no way affiliated with Mojang or Minecraft.

Contact: clarkx86@outlook.com