promotional bannermobile promotional banner

Simple Config

Provides configuration menus and commands for other mods
Showcases nested lists of arbitrary entry types.

Showcases nested lists of arbitrary entry types.

Wrapped gamerules menu, which allows you to create presets/hotkeys for gamerules (if authorized)

Wrapped gamerules menu, which allows you to create presets/hotkeys for gamerules (if authorized)

Showcases config editing server rules

Showcases config editing server rules

Showcases the config hotkey editing screen.

Showcases the config hotkey editing screen.

item image
Showcases the advanced config hotkey options

Showcases the advanced config hotkey options

Showcases config commands

Showcases config commands

Showcases preset saving feature.

Showcases preset saving feature.

Showcases pairs and triples of arbitrary entry types.

Showcases pairs and triples of arbitrary entry types.

item image
Showcases the feature to replace menus of other mods

Showcases the feature to replace menus of other mods

Showcases map and Java bean entries

Showcases map and Java bean entries

Wrapped options menu, which allows defining presets/hotkeys for Minecraft Options

Wrapped options menu, which allows defining presets/hotkeys for Minecraft Options

Showcases dropdown autocompletion.

Showcases dropdown autocompletion.

Showcases the preset loaded dialog

Showcases the preset loaded dialog

Showcases the config hotkeys menu.

Showcases the config hotkeys menu.

Example of selecting entries

Example of selecting entries

Server properties menu. Accessible by authorized players in dedicated servers.

Server properties menu. Accessible by authorized players in dedicated servers.

Description

Simple Config helps other mods provide powerful config menus

Simple Config menu

Minecraft: 1.16 - 1.20.1 Mod Loader: (Neo)Forge Side: Client/Server GitHub Join the Discord

šŸ“– About

Simple Config is a library mod that makes simple for mod developers to make their mods configurable. It also makesĀ simple for players to configure mods, by providing powerful menus and commands to edit configuration files, even remotely, and allowing them to create presets or bind hotkeys to complex config modifications.

āœ… Features for players

  • Powerful config menus for every mod (as long as they use Forge's Config API)
  • Edit Minecraft Options/Gamerules as if it was just another mod
  • Edit server config remotely (if authorized)
  • Create config presets or patches (partial presets)
  • Create hotkeys to modify any settings in-game (assign, add, toggle, cycle, multiply, ...)
  • Access config through commands
  • Share presets/hotkeys within servers
  • Search/Filter entries andĀ Undo/RedoĀ changes in menus and commands
  • Detect, preview and merge external changes in menus (made by other players or from outside the game)
  • Config files can use translated descriptions (if the mod or a resource pack provides them)
  • Replace menus from other mods (configurable per mod)

It is recommended you also useĀ Catalogue, a great upgrade for the default mod list menu.

šŸ“š Features for developers

  • Simple builder API to define config files
  • Extensible declarative API based on annotations
  • Safe declarativeĀ Kotlin API based on property delegates
  • Dependency injection to use as soft dependency (except for the Kotlin API)
  • Automatically generated menus and commands
  • Automatic baking into fields (with custom transformations)
  • Automatically mapped translation keys for entries
  • Create composite entry types with generic types (lists/maps/pairs/beans/data classes...) or custom serializable types
  • Provide multiple default presets/hotkeys for players to easily set up their config

All features for developers are documented in the guide for mod developers found at the mod's wiki.

šŸ‘ Acknowledgements

The config menus created by this mod were originally made with theĀ Cloth Config API.
Eventually, the large amount of changes I had to make led me to rewrite it entirelyĀ for this mod (about 3 times), but you should check it out if you're looking for a graphical API!

Initially, this mod was only supposed to provide config menus to mods using its config API.
I only started it because I found Forge's Config API too annoying to use in my Aerobatic Elytra mod, and Configured wasn't yet a thing.
However, inspired byĀ Configured, I decided to add a simple layer on top of my library to wrap any mods using Forge's Config system.

After that, I decided to also wrap Minecraft options as they weren't much different either. (except 1.16, the wrapper for 1.16 options is a massive hack)

šŸ“œ Fabric?

I plan to port this mod to Fabric, but it may take some time. You may follow theĀ issueĀ on GitHub for updates.

A hypothetical Fabric version would probably not be able to wrap all other mods as easily as it does in Forge, since config files in Fabric don't all share the same framework.

Of course, it'd always be possible to guess the structure of the config file from the file itself, but that can be inaccurate sometimes.

ā“ Help

This project has aĀ wiki. It includes detailed guides for both players and mod developers.

Also, if you're having any trouble, or maybe just want to say hello, feel free to drop by our Discord Server.

šŸ¤ Support this project

If you want to support this project, share it with your friends!

šŸ“· Images

Menu

Entries - Dropdown Ā Ā  Entries - Bean map

Selection Ā Ā  Search bar

Hotkeys

Hotkeys - New Ā Ā  Hotkeys - Menu

Hotkeys - Advanced options

Commands

Commands

Settings

Settings - Common settings Ā Ā  Settings - Server rules

The Simple Config Team

profile avatar
Owner
  • 8
    Followers
  • 6
    Projects
  • 771.0K
    Downloads

More from endor8View all