Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Adventure | 548 | 3 | 9 | 15 days ago | 6 | April 17, 2020 | 84 | mit | Java | |
A user-interface library, formerly known as text, for Minecraft: Java Edition | ||||||||||
Bridge. | 305 | 6 months ago | 36 | gpl-3.0 | TypeScript | |||||
Minecraft Add-on Editor | We strive to provide the best development experience possible | ||||||||||
Editor | 102 | 3 months ago | 189 | gpl-3.0 | TypeScript | |||||
Next generation of bridge., the Minecraft Add-On editor | ||||||||||
Templateplugin | 80 | 3 months ago | gpl-3.0 | Java | ||||||
A template for creating minecraft plugin from 1.8 to 1.19 | ||||||||||
Flowupdater | 76 | 7 days ago | 13 | July 01, 2022 | 1 | gpl-3.0 | Java | |||
The free and open source solution to update Minecraft. | ||||||||||
Vscode Bedrock Development Extension | 58 | 10 days ago | 3 | bsd-3-clause | JSON | |||||
An extension that provides support for files such as: .mcfunction, .json and .lang. Features include: completion, validations, formatters, diagnostics, cheat-sheets, code-actions, generation of files, and development tools to help develop Minecraft Bedrock Addons or Minecraft Education Edition. | ||||||||||
Okaeri Configs | 53 | 3 months ago | 4 | mit | Java | |||||
Simple Java/POJO config library written with love and Lombok | ||||||||||
Modulelauncher.re | 43 | 5 months ago | 1 | mit | C# | |||||
Cross-platform Minecraft Launcher library for .NET | ||||||||||
Mcwine | 38 | a day ago | mit | JSON | ||||||
Enhances the vanilla experience with optimization, accessibility & compatibility using complex modification. | ||||||||||
Nbt2json | 32 | 2 | 2 years ago | 12 | October 22, 2021 | 3 | mit | Go | ||
A command line utitlity and module that reads NBT data and converts it to JSON or YAML for editing and then back to NBT again |
An offline tool to read and write world data from Minecraft Bedrock Edition.
The author has no affiliation with Minecraft, Mojang or Microsoft.
The go.mod and go.sum files have been added, so go build ./cmd/mcpetool
will now pull the approrpriate dependencies.
--in
or --out
parameters are available where appropriate. Some key lists only print to stdout.mcpetool [command [subcommand]] -h
- Shows help and options for commands and subcommands.MCPETOOL_WORLD
to save typing on repeated commands%MCPETOOL_WORLD%
/$MCPETOOL_WORLD
/$env:MCPETOOL_WORLD
isn't set and --path
isn't specified, mcpetool
will look in the current directory for a world"nbt":
should be an array of objects like { "name": "<name>", "tagType": <number>, "value": <varies based on type> }
, and of course sub-tags of compound tags and list tags are arrays of nbt2json objects in the value field.mcpetool leveldat get [--path <path/to/world>] [--out <file>] [--dump] [--yaml] [--base64] [--binary]
- Retrieves the contents of level.dat in JSON format, or in hex dump, YAML, base64, or binary format if one of those options is given. For JSON and YAML output, the level.dat version is put in the comment field, and the length is discarded. For hex dump, base64 and binary output, you get the unmodified contents of the file including the 8-byte header.mcpetool leveldat put [--path <path/to/world>] [--in <file>] [--ver <version>] [--yaml] [--base64] [--binary]
- Replaces the contents of level.dat with your JSON input, or YAML, base64, or binary input per the parameters. For JSON and YAML input, the header is generated using version 6 or the version number provided by --ver
(not from the JSON/YAML), and the length is calculated after conversion. For base64 or binary input, the level.dat file is written with those contents exactly, so they should include the proper 8-byte header.Most world data is stored in a modified LevelDB key/value store. The db
subcommands provide raw access to this key/value store. See docs for more info.
mcpetool db list [--path <path/to/world>]
- This will list the keys in the LevelDB world store in hex string formatmcpetool db get [--path <path/to/world>] [--json] [--dump] [--yaml] [--base64] [--binary] <hexkey>
- Returns the data for the given key in base64 or specified format
mcpetool db get --path path/to/world --yaml 7e6c6f63616c5f706c61796572
returns local player data in YAML formatmcpetool db get --path path/to/world --json 00000000000000002f00
returns overworld subchunk X=0, Z=0, Y=0 in JSON format if it existsmcpetool db put [--path <path/to/world>] -i <input file> [--json] [--yaml] [--base64] [--binary] <hexkey>
- Puts a key/value pair in the database, replacing the previous value if present or creating the key if not. They key and value are not checked for game validity; it will place any data in any key you specify. If -i is specified as "-" the value will be read from STDIN.
mcpetool db put [--path <path/to/world>] -i data.json --json 00000000000000002f00
inserts the content of data.json
as the value of subchunk X=0, Z=0, Y=0mcpetool db delete [--path <path/to/world>] <hexkey>
- Deletes the key/value pair for that key if present
mcpetool db delete [--path <path/to/world>] 7e6c6f63616c5f706c61796572
deletes the local player data including inventory and equipped items. If you do this and play the world, you will spawn at the world spawn point.To modify a parameter of an entity, you would typically do the following:
mcpetool db get --yaml 00000000000000002f00 > myworld.yaml
myworld.yaml
in your favourite editor to change parametersmcpetool db put -i myworld.yaml --yaml 00000000000000002f00
Starts a local HTTP server allowing REST API access to the MCPE world database. When done accessing the world, stop the server with control-C (or your OS'es equivalent BREAK).
The PUT request bodies should be formatted like the GET requests with base64-encoded data in "base64Data":
.
I intend to make the next API version with Swagger, and add more features and data input/output options.
mcpetool api [--path <path/to/world>]
- Starts the local REST API server
7e6c6f63616c5f706c61796572
in a JSON object with the base64-encoded value.7e6c6f63616c5f706c61796572
with request body formatted as seen with the GET requests7e6c6f63616c5f706c61796572
from LevelDB?json
to the end of the url will provide the data in nbt2json format if the whole db key is nbt. For PUT requests, ?json
will only try to use the nbt2json data to write to the db.