Dead simple world management tool for Minecraft Bedrock
Haze follows
Regolith's philosophy
of keeping your project files outside of com.mojang
, and further extends it to
include worlds too. This can be particularly useful for source control when
working within a team.
An example workflow could be like this:
- You pull in some changes from a git repository
- You run
haze export some_wip_world
to export the world tocom.mojang
- You modify the world in Minecraft
- After you're done, you run
haze import some_wip_world
to import the world into your project - You commit and push the changes you made
Additionally, this workflow allows for operations such as quick
reloading/reverting of a world state to a previous one by running
haze export --overwrite some_existing_world
.
A Powershell installation script is available. I'd recommend taking a good look at this script before running it.
irm https://raw.githubusercontent.com/arexon/haze/main/scripts/install.ps1 | iex
Alternatively, you can download a pre-built binary from the releases page.
There's no installation scripts for either OSs, but pre-built binaries are available in the releases page. From there you can try to install Haze manually.
# Try out with
nix run github:arexon/haze
# ..or create a devshell
nix shell github:arexon/haze
If you're using flakes:
# flake.nix
{
inputs = {
haze.url = "github:arexon/haze";
};
}
Depending on which OS you're on, make sure you either have rustup
or cargo
installed.
- Clone the repository:
git clone https://github.com/arexon/haze.git --depth 1
cd haze
- Build and install
cargo install --path .
Refer to
cargo install
docs
for more info.
You must have a config.json
file at the root of your project and it must
follow the
Project Config Standard.
If you're using Regolith,
bridge., or
Dash compiler you should
already be familiar with it.
Define where Haze should look for your worlds. This can be a glob pattern or a direct path.
// config.json
{
{
"name": "my-project",
+ "worlds": [
+ "./worlds/*",
+ "./testing_worlds/playground"
+ ],
"packs": {
"behaviorPack": "./packs/BP",
"resourcePack": "./packs/RP"
}
}
}
If you're on Windows, Haze will try to look for the com.mojang
directory for
stable versions of Minecraft by default. You can change this with
haze --minecraft-version [VERSION]
and then supplying preview
or
education
.
You can also define an arbitrary path to com.mojang
by setting the
COM_MOJANG
environment variable. Doing so will override the
--minecraft-version
option.
On Unix systems, the --minecraft-version
option isn't available and you must
set COM_MOJANG
instead.
Let's say your project has the following directory structure:
my-project
|-- config.json
|-- packs/
`-- worlds
|-- bar/
`-- foo/
You can export foo
like so:
haze export foo
And then import it back:
haze import foo
If foo
is also present in com.mojang
, you'll have to overwrite it:
haze export --overwrite foo
You can operate on multiple worlds as well:
haze export --overwrite foo bar
haze import foo bar
And lastly, you can list all worlds stored locally in your project and in
com.mojang
:
haze list
You can refer to haze help
for more info.
Haze is licensed under MIT. Check the license file for more info.