What are you searching for?

Deimos

Deimos

Configuration and data generation library

download 706.6K Downloads · favorite 135 Followers · Updated 2 weeks ago
Fabric Forge Library Neoforge Quilt 1.18 1.18.1 1.18.2 1.19 1.19.1 +22 more

Versions

inventory_2
deimos-1.21.11-neoforge-2.5

1.21.11-neoforge-2.5 · 2 weeks ago · 48.91 KB

Release download
Neoforge 1.21.11
inventory_2
deimos-1.21.11-forge-2.5

1.21.11-forge-2.5 · 2 weeks ago · 227.39 KB

Release download
Forge 1.21.11
inventory_2
deimos-1.21.11-fabric-2.5

1.21.11-fabric-2.5 · 2 weeks ago · 48.84 KB

Release download
Fabric Quilt 1.21.11
inventory_2
deimos-1.21.8-neoforge-2.5

1.21.8-neoforge-2.5 · 2 months ago · 48.93 KB

Release download
Neoforge 1.21.6 1.21.7 1.21.8
inventory_2
deimos-1.21.8-forge-2.5

1.21.8-forge-2.5 · 2 months ago · 227.31 KB

Release download
Forge 1.21.6 1.21.7 1.21.8

About

Title

Discord Support me on Patreon CurseForge Modrinth

Deimos is a data generation and configuration Minecraft library. With it, you can generate config files and display them in-game natively on Forge and Neoforge or with the help of Mod Menu on Fabric. Deimos allows you to create new recipes when the game starts, which makes them configurable. This also means you don't have to use JSON files, and changing Minecraft versions becomes significantly easier and less painful.

The configuration part of this library is based on MidnightLib by Motschen.

I made this mod to simplify my mods' development and allow me to use just one config library across all mod loaders and Minecraft versions. So if you want to see some examples of how to use this library in the wild you can check out the mods I made.

For developers

Below are the instructions for setting up and using Deimos. For more details about this library, be sure to check out its GitHub page.

Setup

You can either use my IntelliJ templates which generate a new MultiLoader project with Deimos preconfigured, or follow these instructions to set it up manually:

In build.gradle

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

Forge and Neoforge:

dependencies {
    implementation "maven.modrinth:deimos:${project.deimos_version}"
}

Fabric:

dependencies {
    modImplementation "maven.modrinth:deimos:${project.deimos_version}"
    //if you want to use modmenu
    modCompileOnly "com.terraformersmc:modmenu:${project.modmenu_version}"
}

if you want to use the mod menu functionality you need to add a new repository:

repositories {
    maven {
        name = "Terraformers"
        url = "https://maven.terraformersmc.com/"
    }
}

You can find the specific Deimos version you need on Modrinth

How to use it

Creating configs

You can add configs in a class that extends DeimosConfig:

public class TestConfig extends DeimosConfig {
    @Entry public static int test_int = 6;
    @Entry public static List<String> test_string_list = Lists.newArrayList(
            "minecraft:acacia_planks", "minecraft:andesite");
}

And then in your initialize method you need to call DeimosConfig.init like this:

DeimosConfig.init(MOD_ID, TestConfig.class);

Adding new recipes

To add new recipes you call methods from DeimosRecipeGenerator in your initialize method. You can add shapeless crafting, shaped crafting, smelting, smoking, blasting, campfire and stone cutting recipes. Here are some examples:

DeimosRecipeGenerator.createSmeltingJson(TestConfig.test_string_list.get(0), TestConfig.test_string_list.get(1), TestConfig.test_int, 0.5F);

DeimosRecipeGenerator.createShapedRecipeJson( Lists.newArrayList('#'), Lists.newArrayList(ResourceLocation.parse("sand")), Lists.newArrayList("item"), Lists.newArrayList( "# ", " #" ), ResourceLocation.parse("stone"), 1);

Notice that you can use values from your config file. If the player changes them and restarts the game, the recipes will also change. This even works with modded items.

open_in_new View on Modrinth
Categories
Compatibility
Client: Optional Server: Optional
gavel MIT

Conversation

What are your thoughts?

Related projects

Library
Fabric API
Fabric API

by modmuss50

Lightweight and modular API providing common hooks and intercompatibility measures utilized by mods using the Fabric toolchain.

download 128.4M
favorite 27,401
Library
Cloth Config API
Cloth Config API

by shedaniel

Configuration Library for Minecraft Mods

download 94.4M
favorite 13,670
Library Management Utility
YetAnotherConfigLib (YACL)
YetAnotherConfigLib (YACL)

by isxander

A builder-based configuration library for Minecraft!

download 66.1M
favorite 7,607
Library
Architectury API
Architectury API

by shedaniel

An intermediary api aimed to ease developing multiplatform mods.

download 61.0M
favorite 6,652
lock Cookie consent

SkinMC uses cookies to provide functionality and features.