Back to mods
Lexiconfig project artwork

Modrinth · Minecraft mod

Lexiconfig

This is a config API that aims to provide many integrations alongside other libraries, and to be as easy as possible to use, for both developers and users alike.

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Lexiconfig release should I use?

Updated last month
Latest stable file 1.4.21-novel
Game version 1.21, 1.21.1, 1.21.2
Loader NeoForge

Lexiconfig 1.4.21-novel targets 1.21, 1.21.1, 1.21.2 with NeoForge. Installation on the client is optional. Installation on the dedicated server is optional. No extra mods listed for this file.

Where it goes

Is Lexiconfig required on the client, server, or both?

Installation on the client is optional. Installation on the dedicated server is optional.

Client Optional
Dedicated server Optional
Loader for this release NeoForge
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source marks this as usable on both the client and server.

What else does Lexiconfig 1.4.21-novel need?

1.4.21-novel. Change the file and its required mods may change too.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

Configured Optional for Lexiconfig 1.4.21-novel
optional
No matching file

We only count dependency files that match this setup. A file for another loader does not fill the gap.

Before you install it

Add Lexiconfig without breaking your instance.

Built for Lexiconfig 1.4.21-novel. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use 1.4.21-novel. It targets 1.21, 1.21.1, 1.21.2 with NeoForge; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    Installation on the client is optional. Installation on the dedicated server is optional.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside 1.4.21-novel. It opens that exact file at the source.

About this project

What does Lexiconfig add?

Overview

This is a config API meant to provide compatibility across multiple different other config libraries as well as be easy to use in a multiloader project setup, mainly for use in my mods.

It features a simple to use annotation-based syntax, to make creating new configuration files as easy as possible.

If you are a mod user, this information is likely not very useful to you. If you are a mod developer however, and you would like to use Lexiconfig in your own projects, scroll further to the Development section.

It currently does not have support for other configuration libraries, but as I continue to update it, I will add more compatibilities to each one to ensure that it does not conflict with others and can instead seamlessly integrate between them.

Here is a list of current as well as planned integrations across different config libraries/api:

❌ - Unintegrated
✅ - Integrated
❓ - In Progress

Status Mod
Cloth Config
oωo config
Configured
Forge Config Screens

Development

This mod contains an api that can be used to shelve new lexicons, listen to events, etc.

Depending

build.gradle

repositories {
  maven { url 'https://maven.codinglitch.com/repository/releases' }
}

dependencies {
  implementation "com.codinglitch.lexiconfig:lexiconfig-api:API_VERSION_HERE"
}

You can go to https://versions.codinglitch.com to view the latest api version.

Usage

To shelve your own lexicons, you first have to your own Library. This can be done by simply creating a new class extending the Library class, and annotating it with the LexiconLibrary annotation.

@LexiconLibrary
public class MyNewLibrary extends Library {
  @Override
  public void shelveLexicons() {
      
  }
}

In a Forge setup, no further changes need to be made. However, if you are developing for Fabric, you will have to add this class as an entrypoint in your fabric.mod.json.

fabric.mod.json

//...
"entrypoints": {
  "lexiconfig": [
    "com.path.to.MyNewLibrary"
  ]
}
//...

The next step is to finally create and shelve your lexicons. You can do this by simply creating another class for the lexicon, and providing it with the proper annotations, like as follows:

@Lexicon(name = MY_LEXICON_TITLE) // preferably use your mod id as a name
public class MyLexicon extends LexiconData {
  @LexiconEntry(comment = "This is a comment for a simple field!")
  public String mySimpleField = "content";

  @LexiconPage(comment = "This is a fancy new comment on the fancy new category!")
  public MyNewPage myNewPage = new MyNewPage();

  public static class MyNewPage extends LexiconPageData {
    @LexiconEntry(comment = "This field is inside a lexicon page!")
    public Boolean myPageField = true;
  }
}

The next and last step is to shelve the lexicon, which can be done by simply adding an instance of it as a field in the library and shelving it in the given method.

@LexiconLibrary
public class MyNewLibrary extends Library {
  public static MyLexicon MY_LEXICON = new MyLexicon();
  
  @Override
  public void shelveLexicons() {
    LexiconfigApi.shelveLexicon(MY_LEXICON);
  }
}

Project description from Modrinth.

Pick your setup

Lexiconfig by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

65 available setups

Showing the newest 12 of 27 game versions. Older files are in the list below.

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Lexiconfig versions and loaders

26 of 26 releases match

Looking for an older file? The official Modrinth project page is in Resources.