90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
- 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://maven.periut.com/" }
}
Modern/Architectury:
For only fabric or neoforge, replace ${project.name}
with fabric
,forge
,neoforge
dependencies {
modImplementation "com.periut.cryonicconfig:cryonicconfig-${project.name}:1.0.0+mc${rootProject.minecraft_version}"
}
b1.7.3:
dependencies {
modImplementation "com.periut.cryonicconfig: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,)"
Links
Details
Licensed MIT
Published 3 days ago
Updated 3 days ago