Carbon-Config-Project / CarbonConfig

Apache License 2.0
3 stars 2 forks source link

CarbonConfig

Carbon Config is the GUI implementation of the Carbon Config Library.
This project started as a IC2Classic exclusive library that later on was also installed into Chunk Pregenerator and now is a standalone library/mod.

Motivation (For Devs)

MinecraftForge/NeoForge has its own Config System that works somewhat fine.
But sadly as Neoforge recently admitted the Config Library could self nuke at random.
Or simply when a value was invalid reset irrelevant settings when a different setting was broken.

Being fed up by this we (Meduris/Speiger) decided to make our own config system.

Here is a list of what features we append when compared to forge.

Developer Guide

A Developer Guide can be found Here

The GUI

Carbon Config isn't just a Config Library it is also a GUI implementation for other Config Libraries.

Simple Config

This example shows you a basic button config layout.
Where all the valid types are displayed.

File Selector

If there is multiple config files inside the mod it also automatically allows you which one you want to edit.

Which also supports Editing of ALL Multiplayer files if you are on a server.
Not just "server specific configs".

Compound Configs

If a config needs multiple datapoints. Instead of using a String, Compounds can be used instead.
These are much nicer to edit/read.
Instead of: "Testing;2000;512.2423;0x00FF00FF" you have this:

Suggestions

Carbon Config also comes with Selectors for config settings.
These for most cases have to be implemented by the dev via "suggestions".
But some config types like Registry Lists come with them as default.

This for example is a Item Selector example where it also shows you which item is what.

Supported Special Types

The following supported types by default are:

Background Skin System

Carbon Config also comes with a Background Selector system.
if you don't like the current look, simply change it.

Forge Config Support

Carbon Config also supports Forge Configs for its GUI interface

As can be seen the One Probe Config works just fine.
The GUI also supports Configured configurations regarding backgrounds.

Game Rule Support

Carbon Config also supports Minecrafts game rules.
Simply select the minecrafts config in the "ModList" and it will allow you to choose either your existing worlds or your currently played world/server.

FAQ

Q: Is this mod client or server sided?
A: It will detect if either side has the mod not installed and will adjust to the situation.
While not necessary that both sides have it, it is suggested to do so.

Q: Does it support editing shared forge configs on the server too?
A: Yes