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_worldto export the world tocom.mojang - You modify the world in Minecraft
- After you're done, you run
haze import some_wip_worldto 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 | iexAlternatively, 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/hazeIf 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 fooAnd then import it back:
haze import fooIf foo is also present in com.mojang, you'll have to overwrite it:
haze export --overwrite fooYou can operate on multiple worlds as well:
haze export --overwrite foo bar
haze import foo barAnd lastly, you can list all worlds stored locally in your project and in
com.mojang:
haze listYou can refer to haze help for more info.
Haze is licensed under MIT. Check the license file for more info.
