Modpack Developer Tips

Last updated on 18th August 2017.

Taming modules.cfg

Due to the amount of content, granularity of content Charset provides, as well as my hesitancy to keep ideas which don't meet my standards around for very long, a fairly complex (relative to other mods) configuration system had to be built to faciliate all of this while not harming the experience for modpack developers and end users.

Charset's module configuration system is based around profiles. These provide a sane set of default settings for modpacks. There are four profiles:

The difference between TESTING and UNSTABLE really comes down to the level of initial testing/refinement a feature has received - UNSTABLE is far more likely to include features I consider unpolished. Which one you choose is up to you.

By the way - If you're unsure which profile to pick, you can always ask me!

But wait - there's more! There's also a category system. Certain modules have categories for them, such as "overhaul" - if you know your modpack doesn't want a specific type of content, you can disable the category to make sure it won't appear in the pack with future updates!

In addition, you can manually force each module to be enabled or disabled in the "overrides" list - this is especially important as a few "niche" modules are off by default. They are marked as such, but their profile is still visible. The default setting for each override is DEFAULT, which means that Charset will decide whether or not to load the module itself, based on your profile configuration and whether the dependencies for a given module are present.

Taming module/lib.cfg

Another important configuration file is module/lib.cfg. It contains the functionalityRegistry, allowing you to whitelist and/or blacklist certain blocks or tile entities from given functionality.

The format for entries is "[functionality]:[registry name]", for example "carry:minecraft:stone". You may also use "carry:minecraft:*" to list an entire mod ID at a time, though I urge you to use this sparingly and with caution.

Available functionalities (DevTips also contains a list):