Skip to content
Tweak your minecraft experience
Java
Branch: 1.14
Clone or download
Latest commit f3b595a Jan 11, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml May 31, 2019
Crafttweaker_Annotation_Processors make YAML output be in folders Jan 10, 2020
Crafttweaker_Annotations
ZenCode @ a96a0f4 Updated ZC Jan 11, 2020
gradle/wrapper made ZenCode a submodule, not perfect but it runs Jun 16, 2019
src/main Added IIngredient#asIData Jan 10, 2020
.gitignore ignore docsOut and src/generated Jan 10, 2020
.gitmodules
CodeStyle.xml update codestyle Jun 20, 2019
Jenkinsfile re-enable curseforge pushing Nov 1, 2019
LICENSE Move to MIT license, close #679 Jan 1, 2019
build.gradle
common.gradle
gradle.properties
gradlew base project Jun 16, 2019
gradlew.bat
readme.md update readme to reflect the recent license change Feb 27, 2018
settings.gradle
wrappedClasses.csv Added some advancements as being wrapped Jan 1, 2020

readme.md

CraftTweaker

Welcome to the Crafttweaker source! Crafttweaker is the official continuation of Minetweaker 3 and plans on staying updated for the latest Minecraft versions.

License and contributions

You are free to distribute the mod by itself and in modpacks as long as it is not being sold or redistributed on advertisement sponsored sites. You may create derivative works, but you may not redistribute it under an identical name.

Want to contribute? That's great! Contact me if you want to propose or discuss new features. Adding new mods is definitely welcome and doesn't need prior permission (just follow the existing structure, add it & make a pull request). Credit will be granted appropriately.

Project structure and building

The CraftTweaker 2 source is setup as a multi-project Gradle project:

  • ZenScript is the custom scripting engine
  • CraftTweaker2-API is the shared API for all CraftTweaker versions
  • CraftTweaker2-MCXYZ-Main are the main CraftTweaker implementations for Minecraft X.Y.Z
  • CraftTweaker2-MCXYZ-Mod-XXX are the mod support projects. They are compiled and obfuscated independently and then assembled later

Developing and running CraftTweaker from source

Configuration settings are stored in configuration.gradle.

In order to use the project, you have to execute the setupDecompWorkspaceAll. It will prepare all the subprojects for you. After that, you can simply run minecraft with the runClient task in CraftTweaker2-XYZ-Main project, which will run CraftTweaker (without mod support). Likewise, you can use the runClient task on any of its mod support library subprojects, which will run CraftTweaker with only the mod support for that specific mod.

The following global tasks are available:

  • setupDecompWorkspaceAll: sets up all workspaces in all subprojects
  • assembleAll: builds all versions of CraftTweaker

Adding mod support

When starting a new mod support library, it is best to start from an existing one. For instance, copy the NEI support library, and remove the source files inside the src/java/main directory. Then you can work with it like any other support library. Make sure to update configuration.gradle to add the projects in there.

Building a release

Use the assembleAll task to build all versions, or assembleMCxxx tasks to build a specific version. The files will be output in /build/libs .

Customized builds

You may modify and redistribute your own customized version of CraftTweaker as long as you mark your own version of CraftTweaker as CUSTOMIZED (that is, put CUSTOMIZED in both the jar and mod name) and as long as you make the modified source code publicly available. Obviously, I cannot offer support for customized builds. Just be so kind to mention the original source and author (Stan) ;)

You can’t perform that action at this time.