Mod
SolLib
No reviews yet
Lets mods shine by bringing a constellation of (mostly) data utilities.
Forge is a popular mod loader for versions 1.1+ of Minecraft.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description

This is a core library for Minecraft mods. Yes, we know, very original.
Believe it or not, copy-pasting a bunch of classes across every project is neither the most efficient nor the most stable idea.
Sol offers a whole constellation of common code for mod developpement.
Most of them orbit around data, multiloader and rendering helpers. A few key highlights being:
Easy config system.
Loaded as soon as you want it, easy to setup and accessible from other mods without the need for hard dependencies.
SolConfig config = MOD.createConfig("sollib/test", 1.0, builder -> builder
.addObject("category", category -> category
.comment("This is a comment")
.add("hello", "world")
.add("easyconfig", true)
)
);
MOD.getLogger().info(config.get("category.hello", ""));
// world
Runtime data, controlled by code.
This lets you edit datapack files at runtime, potentially allowing to change recipes depending on config values, edit or disable compat recipes if their target mods are not loaded, automatically generate models for dynamically defined items, and much more.
SolRegistries.Data.RUNTIME.addJson(Identifier.of("minecraft", "recipe/dropper"), json -> {
if (json == null) return null;
if (!config.get("recipe.copper_dropper", false)) return null;
json.getAsJsonObject("key")
.getAsJsonObject("#")
.addProperty("item", "minecraft:copper_ingot");
return json;
});
Rendering helpers.
Centralized and loader agnostic. No need to make more mixins, either.
ResourceLocation TEXTURE = MOD.makeID("textures/models/sword_overlay.png");
SolClientRegistries.Render.ITEM.register(stack -> stack.is(Items.DIAMOND_SWORD) && stack.isEnchanted(),
(stack, context, matrices, bufferSource, light, overlay) -> {
matrices.scale(1.005f, 1.005f, 1.005f);
matrices.translate(0, 0.995, 0.4975);
matrices.mulPose(Axis.XP.rotationDegrees(180));
MockItemRenderer.renderItem(matrices, bufferSource, light, TEXTURE);
});
Simplified registry.
That you can call in the common code, complete with all the syntax sugar you need: define models, burn time, stripping results and everything about a feature at the same time.
MOD.register(BlockHolder.class, "block_block", () -> new Block(BlockBehaviour.Properties.of()))
.withItem(item -> item.withFuel(200)).dropsSelf()
.withSlab().withStairs().withWall()
.withFlammability(20, 5);
For the average user, making this page as flashy as we can won't really matter. It's only a library after all.
But if you are a developer and are curious about it, the best way to learn is to read the (wip) Wiki or join the Discord.

This is a core library for Minecraft mods. Yes, we know, very original.
Believe it or not, copy-pasting a bunch of classes across every project is neither the most efficient nor the most stable idea.
Sol offers a whole constellation of common code for mod developpement.
Most of them orbit around data, multiloader and rendering helpers. A few key highlights being:
Easy config system.
Loaded as soon as you want it, easy to setup and accessible from other mods without the need for hard dependencies.
SolConfig config = MOD.createConfig("sollib/test", 1.0, builder -> builder
.addObject("category", category -> category
.comment("This is a comment")
.add("hello", "world")
.add("easyconfig", true)
)
);
MOD.getLogger().info(config.get("category.hello", ""));
// world
Runtime data, controlled by code.
This lets you edit datapack files at runtime, potentially allowing to change recipes depending on config values, edit or disable compat recipes if their target mods are not loaded, automatically generate models for dynamically defined items, and much more.
SolRegistries.Data.RUNTIME.addJson(Identifier.of("minecraft", "recipe/dropper"), json -> {
if (json == null) return null;
if (!config.get("recipe.copper_dropper", false)) return null;
json.getAsJsonObject("key")
.getAsJsonObject("#")
.addProperty("item", "minecraft:copper_ingot");
return json;
});
Rendering helpers.
Centralized and loader agnostic. No need to make more mixins, either.
ResourceLocation TEXTURE = MOD.makeID("textures/models/sword_overlay.png");
SolClientRegistries.Render.ITEM.register(stack -> stack.is(Items.DIAMOND_SWORD) && stack.isEnchanted(),
(stack, context, matrices, bufferSource, light, overlay) -> {
matrices.scale(1.005f, 1.005f, 1.005f);
matrices.translate(0, 0.995, 0.4975);
matrices.mulPose(Axis.XP.rotationDegrees(180));
MockItemRenderer.renderItem(matrices, bufferSource, light, TEXTURE);
});
Simplified registry.
That you can call in the common code, complete with all the syntax sugar you need: define models, burn time, stripping results and everything about a feature at the same time.
MOD.register(BlockHolder.class, "block_block", () -> new Block(BlockBehaviour.Properties.of()))
.withItem(item -> item.withFuel(200)).dropsSelf()
.withSlab().withStairs().withWall()
.withFlammability(20, 5);
For the average user, making this page as flashy as we can won't really matter. It's only a library after all.
But if you are a developer and are curious about it, the best way to learn is to read the (wip) Wiki or join the Discord.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers