
Mod Sets
Control mods loading with gui. Useful for modpack and server with optional function. And also for geeks want to control mods without file operating.
I don't know my version or loader
Mod Sets
This project heavily inspired by ThatOrThis The mod is using for Minecraft Fabric/Quilt/Forge for managing mod loading in game. And useful for modpack developer
Feature
- Enable/Disable mods in game with defined mod sets/subdirectory name/mod id(Need restart)
- Using https://github.com/isXander/YetAnotherConfigLib for config screen
- Custom mod loading rules for modpack developer to make the pack with more user defined options
Usage
The rules files should be json in config/modsets/rules.
Add rule and enter the config screen through Mod Menu
Full example: https://github.com/SettingDust/ModSets/blob/main/example_rules.json
Mod Set
Mod set is entry defined in config/modsets/modsets.json that is string to set of mod id map.
Specifically, sub folder name in mods folder will be mod sets the mods in it. And mod id will be the mod set only
contains itself.
Notice, the defined mod sets by config will override the folder/mod id with the same name.
Example:
{
// The `sodium` will target the two mods here.
// If disable this mod set, the mod in list won't load if it is exist
"sodium": {
"text": "Sodium",
"description": "Performance: +++++",
"mods": [
"sodium",
"indium"
]
}
}
Rule
Every rule hold a text and description for displaying the info you want.
And a controller for YACL user interface
Example:
{
"text": {
"text": "My first rule set",
"bold": true,
"color": "green"
},
"description": "Awwww",
"rules": [
{
"text": "text",
"description": "description",
"controller": {
"type": "type" // Notice, this isn't valid type of controller. Take the type from controllers below
}
}
]
}
Controllers
Label
For displaying text on screen Example:
{
"text": "The label",
"description": "Text Text",
"controller": {
"type": "label"
}
}
Boolean
For switching a single mod set on/off Example:
{
"text": "The boolean",
"description": "Text Text",
"controller": {
"type": "boolean",
"id": "sodium"
}
}
Cycling
For switching between mod sets in a list. Useful when there is conflicting mods such as sodium and optifabric. Or switching the pack difficult Example:
{
"text": "The cycling",
"description": "Text Text",
"controller": {
"type": "cycling",
"ids": [
// Don't empty
"sodium",
"optifabric"
]
}
}
Mods Group
Assign a simple boolean controller option to every mods in the mod sets. Example:
{
"text": "The mods group",
"description": "Text Text",
"controller": {
"type": "mods_group",
// Default is true
"collapsed": false,
"ids": [
// Don't empty
"sodium",
"optifabric"
]
}
}
Rules Group
Group the rules so that it's able to collapse the rules Example:
{
"text": "The rules group",
"description": "Text Text",
"controller": {
"type": "rules_group",
// Default is true
"collapsed": true,
"rules": [ // Don't empty
{
"text": "text",
"description": "description",
"controller": {
"type": "label"
}
},
{
"text": "text",
"description": "description",
"controller": {
"type": "boolean",
"id": "sodium"
}
}
]
}
}
Notice: Every text and description is text raw json. Using https://www.minecraftjson.com/ for generating text.
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.20.1, 1.21, 1.21.1
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Modrinth — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
- Ships as mod-sets-2.1.3.jar — drop this file into the mods folder
- Download size: 209 KB
- Download link checked 27 Aug 2026 — working
These come from our own check of the pack file, not from the source page.