Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Cryonic Config

Cryonic Config

Chill Minimal Config API

126.8k
18
Library
AboutGalleryChangelogVersions

Cryonic Config

  • Cross-version easy to port config tool with minimal dependencies
  • Specifically targeting ease of use and portability
  • Cryonic because it's cool as hell

Explanation of Functionality

  • This will store jsons in {minecraft_dir}/config as "mod_id.json"
  • All config files will be read by dictionary in "cryonicconfig.json" on early init
  • Configs are only configurable by editing the jsons directly, no plans of GUI config
  • For ease of portability, synced variables are sent directly to a player in chat, and intercepted
  • Hashmaps are used to look up Str to ConfigStorage and Str to Obj (variable)

API

Groovy (build.gradle) Add Dependency

Add Maven:

repositories {
    maven { url "https://api.modrinth.com/maven" }
}

Modern/Architectury:
For only fabric or neoforge, replace ${project.name} with fabric,forge,neoforge

dependencies {
    modImplementation "maven.modrinth:cryonicconfig:fabric-${project.name}:1.0.0+mc${rootProject.minecraft_version}"
}

b1.7.3:

dependencies {
    modImplementation "maven.modrinth:cryonicconfig:babric:1.0.0+mcb1.7.3"
}

Simple Usage:

// You can store or use on the fly, this can be called anywhere
ConfigStorage config = CryonicConfig.getConfig("mod_id");

// You can store ints, doubles, booleans, and strings
// By getting them, you are setting their default value too
// getter format (variable name, default value)
// You cannot reuse variable names! They will be overridden.
config.getInt("varName", 3);
config.getDouble("name", 3.3);
config.getBoolean("var", true);
config.getString("str", "Geronimo!")

// The variable will exist locally on client and server
// If you want a connected server player to use a server config
// You must call, making client use the server's value 
config.sync("varName", playerEntity);

// Feel free to use this format:
CryonicConfig.getConfig("mod_id").getInt("varName", 3);

// You can set variables manually, instead of letting get generate them
// This is also useful for overriding old values
config.setInt("varName", 3);
config.setDouble("name", 3.3);
config.setBoolean("var", true);
config.setString("str", "Geronimo!");

Mark Dependency

In fabric.mod.json:

{
  "depends": {
    "cryonicconfig": "*"
  }
}

In mods.toml/neoforge.mods.toml:

[[dependencies.cryonicconfig]]
modId = "cryonicconfig"
type = "required"
versionRange = "[0,)"

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Compatibility

Minecraft: Java Edition

1.21.x
1.20.x
1.19.x
1.18.x
b1.7.3

Platforms

Fabric
Forge
NeoForge
Quilt

Links

Report issues View source

Creators

Slainlight
Slainlight Member

Details

Licensed MIT
Published 4 months ago
Updated yesterday

Modrinth is open source.

main@aaf125c

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.