The Hardcore Alchemy Mod Suite is a collection of mods for Minecraft 1.10.2 with a focus on cross-mod compatibility in a hardcore/magic/survival setting.
For more information about the Hardcore Alchemy modpack, visit the wiki.
The Hardcore Alchemy mod suite is released under different licenses depending on the mod:
- core, tweaks, creatures, magic, survival - GNU LGPL v3 or later
- capstone - GNU GPL v3
In short: You are allowed to use any of these listed mods in your own modpack.
The Hardcore Alchemy mod suite is tested to work with specific mods. Below are the recommended mods and config settings that work best.
- Changeling - This powers Hardcore Alchemy's balanced morphing features. If you are using the
creatures
submod, you must have Changeling installed.- The following config options should be set in Changeling:
acquire_immediately=false
,disable_morph_disguise=true
, andkeep_morphs=false
- The following config options should be set in Changeling:
- Iberia HcA edition - The Hardcore Alchemy mod suite is designed around hardcore respawn, which this mod will implement for you.
- Nutrition HcA Edition and/or Spice of Life - For nutrition.
- The official version of the Nutrition mod will not work, and HcA assumes the default 5 nutrients
- Pam's Harvestcraft - Right-click harvesting and food support
- Tough as Nails - Thirst
- Reduced starting health should be disabled, to prevent feature overlap with the heart upgrade mechanic in the
tweaks
submod - Temperature should be disabled, as it does not play well with the instinct system in the
creatures
submod
- Reduced starting health should be disabled, to prevent feature overlap with the heart upgrade mechanic in the
- Minecraft Comes Alive and/or Village Box - Villager alternatives
- Various magic mods according to one's personal tastes
There is a lot more in terms of mod selection, configuration, and tweaking, in order for a hardcore modpack to work well. Please exercise discretion when selecting punishing mechanics for your modpack and be mindful of the player's time.
Also, since these mods were built for the Hardcore Alchemy modpack, config options are not planned, except as needed for compatibility with vanilla hardcore mode and serious accessibility concerns.
This branch targets the 0.8.1+ version of the modpack. Download the file compilelibs-0.8.1.zip
from the link below and be ready to add its contents to compilelibs/
in the Hardcore Alchemy repository folder:
http://www.mediafire.com/folder/grwn2vsjr2lce/Hardcore_Alchemy_Libs
The SHA-256 checksum of compilelibs-0.8.1.zip
is: 8fd451e5ddd4df2e276c1fe3d7c23eed9f1b820ef51d81ac32db654d563b552a
Please note: The following mods included in the HcA_compilelibs zip file above are custom forks:
- Nutrition: https://github.com/asanetargoss/Nutrition
- Changeling: https://github.com/asanetargoss/Changeling
- Dissolution (permission)
- Iberia: https://github.com/asanetargoss/iberia
- Guide-API (Custom build for development use only. Do not distribute.)
- AppleCore: https://github.com/asanetargoss/AppleCore
compilelibs/
- The place to put third-party mods that the various projects depend on. For example, files incompilelibs/core/
are depended on by the core project and any mods which depend on the core project.translations/
- Unlike most mod projects, translation files are stored in this folder, separately from other resources. Most of the translations are intranslations/core/
, but this may change in the future.core/
- A mod project which contains shared code required by the other projects.tweaks/
- A mod project containing magic and survival tweaks, aiming for a minimal number of dependencies.creatures/
- A mod project for balanced morphing mechanics and tweaks to mob mods. It requires Changeling.magic/
- A mod project containing features which make magic mods work better in a hardcore respawn gameplay context. It also contains various tweaks and fixes for magic mods.survival/
- A mod project containing various features related to nutrition, thirst, and crop growth. It interacts with various survival and crop mods.capstone/
- A mod project which handles magic/survival cross-mod compatibility for GPLv3-licensed mods. It also adds guidebooks and integration tests for the Hardcore Alchemy modpack.
The commands in the instructions below assume your command line is a unix-style shell (ex: bash, zsh) and that Eclipse is used as the IDE. If you're not in that situation, you may have to make adjustments.
- Windows Users - When you type
echo $SHELL
in your command line of choice, do you see a path with forward slashes, like/bin/bash
?- If you answered no, to this question, then wherever you see
./gradlew
, you should instead typegradle.bat
- If you answered yes, then proceed as normal
- If you answered no, to this question, then wherever you see
- IntelliJ Users - Unfortunately, I haven't tested this gradle setup with IntelliJ, so I don't know if it works or not. If you figure out how to get it working, please report back! That being said, it most likely involves the command
./gradlew idea
To develop for the hca mod suite, you will need Java 8 (OpenJDK). You can install a FOSS version of Java 8 from Adoptium, or alternatively your package manager may have a package available.
There are tools to allow using a different Java version per path. If you are using a unix-y command line, jenv is a good choice.
Regardless of the method used, the goal is to have Java 8 on your $PATH
(or equivalent), so that when you use the Gradle wrapper, and that wrapper calls java
, it uses the Java 8 version.
You can verify you are using the correct version of Java by typing java -version
. The version given should start with "1.8". See the example below. Note that later versions of Java use different version conventions.
> java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-8u362-ga-0ubuntu1~22.04-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)
Later on, when you are using the Gradle wrapper (./gradlew
), you can also verify directly that it's calling the right Java version, by typing ./gradlew --version
. Note the JVM line in the output below:
> ./gradlew --version
------------------------------------------------------------
Gradle 2.14
------------------------------------------------------------
Build time: 2016-06-14 07:16:37 UTC
Revision: cba5fea19f1e0c6a00cc904828a6ec4e11739abc
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_362 (Private Build 25.362-b09)
OS: Linux 5.15.0-71-generic amd64
Your IDE may already provide a different version of Java 8 internally. If it does, there is no reason to change the Java version that your IDE uses, as that version is likely optimized for debugging with that particular IDE.
- Clone this repository into a folder. If you are using Eclipse, it is recommended that you create this folder inside of another folder, so the higher-up folder can be used as your multi-project workspace.
- Navigate into the folder of your new personal copy of this repository. Create the folder
compilelibs/
. In that folder, you should copy the mod dependencies you have downloaded from the Dependencies step - Run
./gradlew setupDecompWorkspace eclipse
setupDecompWorkspace
sets up dependencies for Minecraft, Forge, etc; and updates access transformers for all projectseclipse
sets up files for all projects that can be imported into the Eclipse IDE- During the very first setup, you may encounter an error where the forge jar is missing from your Eclipse classpath. To fix this, re-run
./gradlew eclipse
(this is a known bug with the gradle scripts)
- Create an Eclipse workspace in a folder of your choice (a higher-up folder containing this one is recommended)
- Import the
core
project, and any other projects you want to work with - When testing any open project, the
core
project should stay open to provide the necessary dependencies
- To compile all mods, run
./gradlew build
. Outputs will be in[PROJECT_NAME]/build/libs
[PROJECT_NAME]
is the name of each project that was built- The outputted release jar name will be
hardcorealchemy-[PROJECT_NAME]-[PROJECT_VERSION].jar
where[PROJECT_VERSION]
is defined in[PROJECT_NAME]/build.gradle
.
- To bundle all the mods into one convenient .zip file (excluding the modpack mod), run
./gradlew buildModSuite
. The output will be inmodpack/build/distributions
- If you add new files to a project, you will likely need to add licenses to the files, or you will get errors. To fix this, run
./gradlew [PROJECT_NAME]:updateLicenses
for each project you have added files to.
- Internet down? Already ran gradle commands before? No problem! Just add the
-offline
flag to your gradle command and it should work normally again. ./gradlew setupDecompWorkspace eclipse
may need to be re-run under the following circumstances:- Adding/changing mods in
compilelibs/
- Updating dependencies in other places like a
build.gradle
file - Updating the access transformers (found at "core/src/main/resources/META-INF/hardcorealchemy_at.cfg")
- On rare occasions, when encountering unexplained crashes involving missing classes or methods. This is a bug with CodeChickenCore when used in a development environment.
- Adding/changing mods in
- If you want to work with a specific project only, there are several ways to do this
- If you only want to set up a certain
[PROJECT_NAME]
, you can run./gradlew [PROJECT_NAME]:setupDecompWorkspace [PROJECT_NAME]:eclipse
- If you only want to build a certain
[PROJECT_NAME]
, you can run./gradlew [PROJECT_NAME]:build
- You can comment out a project in the top-level
settings.gradle
andbuild.gradle
to completely ignore it
- If you only want to set up a certain
- Assertions are enabled in all
targoss.hardcorealchemy...
packages. To debug assertions, addAssertionError
as an exception breakpoint
- Decompiler plugin: http://jd.benow.ca/ (Why: Required to view source code for all the mods in
libs/
, since most do not have dev builds) - MCP Mapping Viewer: https://github.com/bspkrs/MCPMappingViewer/ (Why: To figure out the meaning of
func_12345
and their ilk, and translate to them when needed in a release environment) - Bytecode outline for Eclipse: http://andrei.gmxhome.de/bytecode/index.html (Why: Only if you need to coremod. It will help you understand the Java bytecode better. Do not trust the stack feature.)