Simple Config

Simple Config

Mod

Simple Config is a Kotlin Fabric Minecraft mod that allows you to easily manage your mod's configuration. It provides a simple and intuitive API to read and write configuration data. The data will be serialized with the JSON format.

Client or server Utility

65 downloads
0 followers
Created5 months ago
Updated5 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

Simple Config

Simple Config is a Kotlin Fabric Minecraft mod that allows you to easily manage your mod's configuration. It provides a simple and intuitive API to read and write configuration data. The data will be serialized with the JSONformat.

Usage

Here's a basic example of how to use Simple Config:

object TutorialMod : ModInitializer {
  private val logger = LoggerFactory.getLogger("tutorialmod")

  override fun onInitialize() {
  
    //Access Data
    MyConfig.data.someNestedObject.someData
    MyConfig.data.someString // returns "hello"
    
    //write Data
    MyConfig.patch {
      someString = "Hello World!"
      someNumber = 0.07
    }
    
    MyConfig.data.someString // returns "Hello World!"
    
    logger.info("Hello I am using Simple Config!")
  }
}

When you write data using the patch method, it will automatically be written to the file.

Command

You can also reload your config with /simpleconfig [fileName] command or you can reload all Simple Config's with the /simpleconfig all command.

Configuration

To create a config, you need to create an object that extends SimpleConfig<T>. T can be any class as long as it has the @Serializable annotation. You must override fileName!

Here's an example:

object MyConfig: SimpleConfig<SomeDataClass>(defaultValue = SomeDataClass()) {
  override var fileName = "tutorialmod_config"
}

@Serializable
data class SomeDataClass(
  var someNumber: Double = 2.0,
  var someString: String = "hello",
  var someNestedObject: SomeNestedClass = SomeNestedClass()
)

@Serializable
class SomeNestedClass {
  var someData = LocalDate.parse("2024-01-01")
}

Optional values you can override:

Options Description default
fileEnding The file extension that should be used ".json"
path The path the config will be written to FabricLoader.getInstance().configDir
createReloadCommand Should Simple Config register a reload command true
json The Json settings used for the serialization Json { prettyPrint = true; encodeDefaults = true }

Gradle Setup

To set up Simple Config via Gradle, add the following to your build.gradle file:


plugins {
  [...]
  id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.22'
}

repositories {
  [...]
  maven { url 'https://jitpack.io' }
}

dependencies {
  [...]
  modImplementation 'com.github.JonasSeifried:SimpleConfig:1623553e8f'
}

Troubleshooting

If you encounter any issues while using Simple Config, please check the GitHub issues page. If your issue is not listed there, feel free to open a new issue.

License

Simple Config is licensed under the MIT License.


Project members

Tondoa

Member


Technical information

License
Client side
optional
Server side
optional
Project ID