Useage
// >= 1.21.11
public static ConfigClassHandler<Config> HANDLER = ConfigClassHandler.createBuilder(Config.class)
.id(Identifier.fromNamespaceAndPath(MOD_ID, "config"))
.serializer(config -> FastJsonConfigSerializerBuilder.create(config)
.setPath(YACLPlatform.getConfigDir().resolve("modid.json"))
.build())
.build();
// <= 1.21.10
public static ConfigClassHandler<Config> HANDLER = ConfigClassHandler.createBuilder(Config.class)
.id(ResourceLoccation.fromNamespaceAndPath(MOD_ID, "config"))
.serializer(config -> FastJsonConfigSerializerBuilder.create(config)
.setPath(YACLPlatform.getConfigDir().resolve("modid.json"))
.build())
.build();
JSON5
FastJSON2 doesn't offer any support for JSON5. If you need/want JSON5 for any reason, I would suggest continuing to use YACL's built-in Gson serializer. If you are migrating from a Json5 config back to a regular Json here is an example of how to auto migrate your user's configs from my mod Am I Up To Date?:
Example
// Replace file & field names with your mod's
public class ConfigMigration {
public static void migrate(){
try {
if (Files.exists(Path.of(YACLPlatform.getConfigDir() + "/aiutd.json5"))){
AIUTD.LOG.info("Pre-2.5.0 config found. Migrating...!");
String JSONContent = Files.readString(Path.of(YACLPlatform.getConfigDir() + "/aiutd.json5"));
JSONObject oldConfig = JSON.parseObject(JSONContent, JSONReader.Feature.AllowUnQuotedFieldNames);
Config.HANDLER.load();
Config.menuAlert = Boolean.parseBoolean(oldConfig.getString("menuAlert"));
Config.chatAlert = Boolean.parseBoolean(oldConfig.getString("chatAlert"));
Config.multiLoaderBool = Boolean.parseBoolean(oldConfig.getString("multiLoaderBool"));
Config.multiLoader = Config.LoaderEnum.valueOf(oldConfig.getString("multiLoader"));
Config.localVersion = oldConfig.getString("localVersion");
Config.modpackId = oldConfig.getString("versionAPI");
Config.multiVersion = Boolean.parseBoolean(oldConfig.getString("multiVersion"));
Config.useModpackName = Boolean.parseBoolean(oldConfig.getString("useModpackName"));
Config.modpackName = oldConfig.getString("modpackName");
Config.useCustomMessage = Boolean.parseBoolean(oldConfig.getString("useCustomMessage"));
Config.customMessage = oldConfig.getString("customMessage");
Config.linkChangelog = Boolean.parseBoolean(oldConfig.getString("linkChangelog"));
Config.ignoreColor = Config.colorEnum.valueOf(oldConfig.getString("ignoreColor"));
Config.messageColor = Config.colorEnum.valueOf(oldConfig.getString("messageColor"));
Config.changelogColor = Config.colorEnum.valueOf(oldConfig.getString("changelogColor"));
Config.HANDLER.save();
AIUTD.LOG.info("Config migrated, please double check it for accuracy!");
Files.deleteIfExists(Path.of(YACLPlatform.getConfigDir() + "/aiutd.json5"));
AIUTD.LOG.info("Old config has been deleted");
}
} catch (IOException e) {
AIUTD.LOG.error("Failed to migrate config! Please do so manually!", e);
}
try {
if (Files.exists(Path.of(YACLPlatform.getConfigDir() + "/aiutd-enduser.json5"))){
AIUTD.LOG.info("Pre-2.5.0 end user config found. Migrating...!");
String JSONContent = Files.readString(Path.of(YACLPlatform.getConfigDir() + "/aiutd-enduser.json5"));
JSONObject oldUserConfig = JSON.parseObject(JSONContent, JSONReader.Feature.AllowUnQuotedFieldNames);
EndUserConfig.USERCONFIG.load();
EndUserConfig.shouldIgnore = Boolean.parseBoolean(oldUserConfig.getString("shouldIgnore"));
Config.HANDLER.save();
AIUTD.LOG.info("End user config migrated, please double check it for accuracy!");
Files.deleteIfExists(Path.of(YACLPlatform.getConfigDir() + "/aiutd.json5"));
AIUTD.LOG.info("Old end user config has been deleted");
}
} catch (IOException e) {
AIUTD.LOG.error("Failed to migrate end user config! Please do so manually!", e);
}
}
}
FAQ
- Is this faster than using the built-in Gson serializer?
- In a word, yes. In a few more words, based on pure library performance, yes. In practice it's a bit harder to say and will likely depend on the size of the config in question. Will it make a massive difference in anything when used in a single mod? Not noticeably; if you get several using it, you may start to see something a bit more tangible.
- Why make it if it wont improve performance much?
- IDK, becuse I can? Free will and what not.
- WAST has a better score on 3/4 of the tests, why not use it?†
- Becuse I was already familiar with FastJSON and didn't need to learn anything new to make it. If I need (or want) to learn WAST one day maybe I'll make something for it then.
*Until I set up another maven
†As of June 28th, 2026
No gallery available for this project.
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
FASTJSON2 Serializer for YACL 1.0.8 Fabric 26.1 1.0.8-fabric+26.1 |
26.1, 26.1.1, 26.1.2, 26.2, 26.3
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.8 Neoforge 26.1 1.0.8-neoforge+26.1 |
26.1, 26.1.1, 26.1.2, 26.2, 26.3
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.8 Fabric 1.21.5 1.0.8-fabric+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.8 Neoforge 1.21.5 1.0.8-neoforge+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.8 Fabric 1.21.1 1.0.8-fabric+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.8 Neoforge 1.21.1 1.0.8-neoforge+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.8 Forge 1.20.1 1.0.8-forge+1.20.1 |
1.20.1
|
forge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.8 Fabric 1.20.1 1.0.8-fabric+1.20.1 |
1.20.1
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Fabric 26.1 1.0.7-fabric+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Neoforge 26.1 1.0.7-neoforge+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Fabric 1.21.5 1.0.7-fabric+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Neoforge 1.21.5 1.0.7-neoforge+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Fabric 1.21.1 1.0.7-fabric+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Neoforge 1.21.1 1.0.7-neoforge+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Fabric 1.20.1 1.0.7-fabric+1.20.1 |
1.20.1
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.7 Forge 1.20.1 1.0.7-forge+1.20.1 |
1.20.1
|
forge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Fabric 26.1 1.0.6-fabric+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Neoforge 26.1 1.0.6-neoforge+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Fabric 1.21.5 1.0.6-fabric+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Neoforge 1.21.5 1.0.6-neoforge+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Fabric 1.21.1 1.0.6-fabric+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Neoforge 1.21.1 1.0.6-neoforge+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Forge 1.20.1 1.0.6-forge+1.20.1 |
1.20.1
|
forge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.6 Fabric 1.20.1 1.0.6-fabric+1.20.1 |
1.20.1
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Neoforge 26.1 1.0.5-neoforge+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Fabric 26.1 1.0.5-fabric+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Neoforge 1.21.5 1.0.5-neoforge+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Fabric 1.21.5 1.0.5-fabric+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Fabric 1.21.1 1.0.5-fabric+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Neoforge 1.21.1 1.0.5-neoforge+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Fabric 1.20.1 1.0.5-fabric+1.20.1 |
1.20.1
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.5 Forge 1.20.1 1.0.5-forge+1.20.1 |
1.20.1
|
forge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Fabric 26.1 1.0.4-fabric+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Neoforge 26.1 1.0.4-neoforge+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Fabric 1.21.5 1.0.4-fabric+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Neoforge 1.21.5 1.0.4-neoforge+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Fabric 1.21.1 1.0.4-fabric+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Neoforge 1.21.1 1.0.4-neoforge+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Fabric 1.20.1 1.0.4-fabric+1.20.1 |
1.20.1
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.4 Forge 1.20.1 1.0.4-forge+1.20.1 |
1.20.1
|
forge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Neoforge 1.21.1 1.0.3-neoforge+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Fabric 1.21.5 1.0.3-fabric+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Fabric 1.20.1 1.0.3-fabric+1.20.1 |
1.20.1
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Fabric 1.21.1 1.0.3-fabric+1.21.1 |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Fabric 26.1 1.0.3-fabric+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Forge 1.20.1 1.0.3-forge+1.20.1 |
1.20.1
|
forge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Neoforge 1.21.5 1.0.3-neoforge+1.21.5 |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.3 Neoforge 26.1 1.0.3-neoforge+26.1 |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.2 for 26.1 Neoforge 1.0.2+26.1-neoforge |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.2 for 26.1 Fabric 1.0.2+26.1-fabric |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.2 for 1.21.5 Neoforge 1.0.2+1.21.5-neoforge |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.2 for 1.21.5 Fabric 1.0.2+1.21.5-fabric |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.2 for 1.21.1 Neoforge 1.0.2+1.21.1-neoforge |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.2 for 1.21.1 Fabric 1.0.2+1.21.1-fabric |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.2 for 1.20.1 Fabric 1.0.2+1.20.1-fabric |
1.20.1
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.1 for 26.1 Neoforge 1.0.1+26.1-neoforge |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.1 for 26.1 Fabric 1.0.1+26.1-fabric |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.1 for 1.21.5 Neoforge 1.0.1+1.21.5-neoforge |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.1 for 1.21.5 Fabric 1.0.1+1.21.5-fabric |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.1 for 1.21.1 Neoforge 1.0.1+1.21.1-neoforge |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.1 for 1.21.1 Fabric 1.0.1+1.21.1-fabric |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric, quilt
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.1 for 1.20.1 Fabric 1.0.1+1.20.1-fabric |
1.20.1
|
fabric, quilt
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0 for 26.1 Neoforge 1.0.0+26.1-neoforge |
26.1, 26.1.1, 26.1.2, 26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0 for 26.1 Fabric 1.0.0+26.1-fabric |
26.1, 26.1.1, 26.1.2, 26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0 for 1.21.5 Neoforge 1.0.0+1.21.5-neoforge |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0 for 1.21.5 Fabric 1.0.0+1.21.5-fabric |
1.21.10, 1.21.11, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0 for 1.21.1 Neoforge 1.0.0+1.21.1-neoforge |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0 for 1.21.1 Fabric 1.0.0+1.21.1-fabric |
1.21.1, 1.21.2, 1.21.3, 1.21.4
|
fabric, quilt
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0 for 1.20.1 Fabric 1.0.0+1.20.1-fabric |
1.20.1
|
fabric, quilt
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 26.2 Neoforge 1.0.0-beta.1+26.2-neoforge |
26.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 26.2 Fabric 1.0.0-beta.1+26.2-fabric |
26.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 26.1 Neoforge 1.0.0-beta.1+26.1-neoforge |
26.1, 26.1.1, 26.1.2
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 26.1 Fabric 1.0.0-beta.1+26.1-fabric |
26.1, 26.1.1, 26.1.2
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.11 Neoforge 1.0.0-beta.1+1.21.11-neoforge |
1.21.11
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.11 Fabric 1.0.0-beta.1+1.21.11-fabric |
1.21.11
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.9 Neoforge 1.0.0-beta.1+1.21.9-neoforge |
1.21.10, 1.21.9
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.9 Fabric 1.0.0-beta.1+1.21.9-fabric |
1.21.10, 1.21.9
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.6 Neoforge 1.0.0-beta.1+1.21.6-neoforge |
1.21.6, 1.21.7, 1.21.8
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.6 Fabric 1.0.0-beta.1+1.21.6-fabric |
1.21.6, 1.21.7, 1.21.8
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.5 Neoforge 1.0.0-beta.1+1.21.5-neoforge |
1.21.5
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.5 Fabric 1.0.0-beta.1+1.21.5-fabric |
1.21.5
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.4 Neoforge 1.0.0-beta.1+1.21.4-neoforge |
1.21.4
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.4 Fabric 1.0.0-beta.1+1.21.4-fabric |
1.21.4
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.2 Neoforge 1.0.0-beta.1+1.21.2-neoforge |
1.21.2, 1.21.3
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.2 Fabric 1.0.0-beta.1+1.21.2-fabric |
1.21.2, 1.21.3
|
fabric
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.1 Neoforge 1.0.0-beta.1+1.21.1-neoforge |
1.21.1
|
neoforge
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.21.1 Fabric 1.0.0-beta.1+1.21.1-fabric |
1.21.1
|
fabric, quilt
|
Download |
|
FASTJSON2 Serializer for YACL 1.0.0-beta.1 for 1.20.1 Fabric 1.0.0-beta.1+1.20.1-fabric |
1.20.1
|
fabric, quilt
|
Download |