Download Mod Sets — Minecraft Mods — MetaMods
Mod Sets

Mod Sets

Active

Downloads

20

Last update

8 months ago

Versions

1.19.2 — 1.21.1
Client
Fabric
Forge
Quilt
Control
Utils

Mod Sets

This project was heavily inspired by ThatOrThis and is designed for managing mod loading directly within Minecraft game on Fabric, Quilt, and Forge platforms. Particularly useful for modpack developers.

Key Features

  • Enabling and disabling mods through in-game interface using predefined mod sets, subfolder names, or mod identifiers (requires game restart)
  • Integration with YetAnotherConfigLib for creating convenient configuration screens
  • Flexible mod loading rules system for creating modpacks with customizable options

How to Use

Rule files must be in JSON format and located in the config/modsets/rules folder. Add rules and open the configuration screen through Mod Menu.

Mod Sets

A mod set is an entry in the config/modsets/modsets.json file that maps a string to a set of mod identifiers. A subfolder name in the mods directory automatically becomes a mod set containing all mods inside that folder. Also, a single mod identifier becomes a set containing only that mod.

Configuration example:

{
    // The 'sodium' set will include the two specified mods
    // When this set is disabled, the listed mods will not load
    "sodium": {
        "text": "Sodium",
        "description": "Performance: +++++",
        "mods": [
            "sodium",
            "indium"
        ]
    }
}

Rules

Interface example

Each rule contains text and description for displaying information, as well as a controller for the YACL user interface.

Rule example:

{
    "text": {
        "text": "My first rules set",
        "bold": true,
        "color": "green"
    },
    "description": "Excellent!",
    "rules": [
        {
            "text": "text",
            "description": "description",
            "controller": {
                "type": "type" // Note: this is not a valid controller type
            }
        }
    ]
}

Controller Types

Label

For displaying text on screen

{
    "text": "Label",
    "description": "Text Text",
    "controller": {
        "type": "label"
    }
}

Boolean

For switching a single mod set on/off

{
    "text": "Boolean",
    "description": "Text Text",
    "controller": {
        "type": "boolean",
        "id": "sodium"
    }
}

Cycling

For switching between mod sets in a list. Useful when there are conflicting mods such as sodium and optifabric, or for changing modpack difficulty

{
    "text": "Cycling",
    "description": "Text Text",
    "controller": {
        "type": "cycling",
        "ids": [
            // Don't leave empty
            "sodium",
            "optifabric"
        ]
    }
}

Mods Group

Assigns a simple boolean controller option to every mod in the mod sets

{
    "text": "Mods Group",
    "description": "Text Text",
    "controller": {
        "type": "mods_group",
        // Default is true
        "collapsed": false,
        "ids": [
            // Don't leave empty
            "sodium",
            "optifabric"
        ]
    }
}

Rules Group

Groups rules so they can be collapsed

{
    "text": "Rules Group",
    "description": "Text Text",
    "controller": {
        "type": "rules_group",
        // Default is true
        "collapsed": true,
        "rules": [ // Don't leave empty
            {
                "text": "text",
                "description": "description",
                "controller": {
                    "type": "label"
                }
            },
            {
                "text": "text",
                "description": "description",
                "controller": {
                    "type": "boolean",
                    "id": "sodium"
                }
            }
        ]
    }
}

Note: All texts and descriptions use Minecraft text JSON format.

Project members
settingdust

settingdust

Developer

Created: 15 Jul 2023

ID: 1984