Getting Started
To set up a repository, we recommend installing IntelliJ IDEA Community Edition and the Java 8 JDK (which IntelliJ can help you install). Once you do this, you can create a new IDEA project by cloning one of our repositories. In fact, there is an option for this on the IDEA launch page.
Which repository do I clone?
If you want to tweak the configurations of mods or recipes, you'll want to use our main repository, SymmetricDevs/Supersymmetry. If you instead want to work with creating new multiblocks or other more complex features, you'll want to work on the core mod, which is found at SymmetricDevs/Susy-Core. You can learn more about the various repositories that Supersymmetry developers work on in Supersymmetry Projects
In order to actually clone it, you will want to select "Project from Version Control" in IDEA.
You can then navigate to the repository you want to clone in your browser and copy this URL found under the "Code" button:
Inserting that into the URL field in IDEA and then setting the main repository folder will start the process of downloading it onto your computer.
Working with SymmetricDevs/Supersymmetry
The modpack development cycle primarily works around building the modpack through a program called packwiz. Packwiz creates the ZIP files that can be imported into modpack launchers like PrismLauncher or ATLauncher. The Supersymmetry repository wraps packwiz using Python, which you'll need if you want to use packwiz most efficiently. You may download Python here.
Once you've downloaded Python, you may now build the pack. Open any command terminal to the directory in which the Supersymmetry repository is copied, and then run the following command:
Windows:
python3 build\main.py -c
Linux:
python3 build/main.py -c
(You may need to modify the above command based on what your Python command is named. Common names include python, python3, and python3.x.)
Once you've performed this command, look in the buildOut folder to see your client.zip! You may now import this into the modpack launcher of your choice. If you want a server instance, remove the -c argument in the command.
Running a test instance of Supersymmetry on PrismLauncher
One way to test in-development versions of Supersymmetry is to create an instance of Supersymmetry on PrismLauncher and then making the following modifications to the instance's minecraft folder:
- Replacing the
groovy,resources,structuresfolders using the command (on Linux)ln -s "FOLDER LOCATION" "SYMLINK LOCATION" - Replacing the Susy-Core mod (named Supersymmetry) with a compiled version using
ln -sin the same way.
Working with SymmetricDevs/Susy-Core
Susy-Core also has a build system known as Gradle (as is used for the majority of Minecraft mods).
Once you've cloned and entered the repository in IntelliJ IDEA, look for a notification in the bottom right that tells you to "Load Gradle Project." Once you click it, it will configure a set of commands you can use to test Susy-Core in a minimal environment. You can look for some particularly common ones in the top-right corner:
Selecting any of these will override the selected top-line command "Setup Workspace," allowing you to work more efficiently. Below are some important Gradle "run configurations" for you to know.
It is also possible to interface with Gradle over the command line, either by using ./gradlew to call commands or by using a system installation. We advise using a Gradle version of 8.9 with Java 21.0.2 at the current moment. To view all tasks from the command line, use gradle tasks.
2. Run Client
This particular command starts a client instance of Minecraft including Susy-Core and a few other mods required to load it (including GregTech and JEI). If you want to debug Susy-Core, you can click the green bug icon you see here:
Careful tracing of the code in debugging mode, involving setting breakpoints, going step-by-step through each line, and looking for points before the glitch has necessarily occurred are essential for finding and fixing bugs.
6. Build Jars
This command builds a set of JAR files in the build/libs folder. After navigating there, you'll notice quite a few files:
However, the only one that can be brought into your modpack's mods folder without issue is the one that does NOT have dev at the end of the name (the first one in the picture above). The others are deobfuscated files that only work with IntelliJ IDEA, and they will crash your game if you try to use them in a real modpack instance. (Also, I recommend clearing out this folder before running the command as to not get confused about which version to pick.)