Skip to content

Convert a Minecraft resource pack between versions and editions with (relative) ease.

License

Notifications You must be signed in to change notification settings

3vorp/convert-pack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

convert-pack

npm GitHub file size in bytes Changelog
Convert a Minecraft resource pack between versions and editions with (relative) ease.

What is this project?

convert-pack is a simple set of tools that lets you convert a pack from any edition and version to any other edition and version. It's not just a simple Java to Bedrock converter—if you want to go from Bedrock to 1.12.2, or 1.8.9 to the latest version, or vice versa for either, this tool has got you covered.

This tool is optimized for pack developers trying to port their existing projects, and as such won't make any suboptimal decisions that many other converters make for the sake of filling in missing textures; instead only identical textures will ever be copied. This leaves you free to do whatever you want with version or edition-exclusive textures without worrying about them being broken or not showing up under a missing texture tool.

The program is also designed to never need updating with new versions, since it pulls all texture-related information from the Faithful API online. As such, it does require an internet connection to work, but has the benefit of being very lightweight since no data is stored on your computer.

CLI Usage

The primary use case for this project is installing the package globally for the convert-pack binary. You may need sudo or to run your terminal as administrator to install global packages.

npm i -g convert-pack

The binary uses the syntax:

convert-pack [--options] <input-dir> <output-dir>

If the package hasn't or can't been installed globally, you may need to use npx.

npx convert-pack [--options] <input-dir> <output-dir>

The flags --input-[version|edition] and --output-[version|edition] are used to specify the source and target information required to convert the pack. Abbreviated forms are also available with --iv, --ie, --ov, and --oe (note that two hyphens are still used).

Either an edition or version needs to be provided for the input and output, since otherwise there's not enough information to convert the pack. Both can be provided for additional context if needed.

These are all valid uses of the command:

convert-pack --input-edition java --output-version 1.8.9 ./input ./output
convert-pack --iv 1.12.2 --oe bedrock ./input
convert-pack . ./out --verbose --input-edition bedrock --output-edition java

If an edition is not provided, it defaults to Java (since Bedrock doesn't really have versions to choose from). If a version is not provided, it defaults to the latest version for that edition (this is why either a version or edition is needed).

You can see the man page or run convert-pack --help for more information.

JavaScript Usage

The project has two named exports: convertPack and generateConversionMap. convertPack performs all the I/O operations with file writing and generateConversionMap creates the underlying data structure used to convert a resource pack.

convertPack takes an object with essentially the same options that the CLI provides and the same underlying assumptions.

const { convertPack } = require("convert-pack");

convertPack({
	inputDir: process.cwd(),
	outputDir: process.cwd() + "./out",
	inputVersion: "1.12.2", // infers java
	outputEdition: "bedrock", // infers bedrock-latest
});

generateConversionMap only needs the input and output edition to filter relevant paths.

import { generateConversionMap } from "convert-pack";

// bedrock -> java conversion map
const conversionMap = await generateConversionMap("bedrock", "java");

Credits

This project is powered by the Faithful texture database, and would not be possible without their constantly updated, comprehensive texture data and public API (https://faithfulpack.net).

Copyright (C) 2024 Evorp. Licensed under AGPL-3.0.

About

Convert a Minecraft resource pack between versions and editions with (relative) ease.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published