COWMODSКаталог модов

Matthiesen Core

A library mod for NeoForge and Fabric that enables developers to create mods with a shared common codebase.

Автор: Adammatthiesen60,5 тыс.3обновлён 30 окт. 2026 г.
ПроклятыеБиблиотекиУтилиты

Описание

Matthiesen Core

Matthiesen Core is a library mod for NeoForge and Fabric that enables developers to create mods with a shared common codebase. It provides a set of core functionalities and utilities that can be used across multiple mods, allowing for easier development and maintenance. Instead of maintaining separate implementations for each platform, you can write your mod logic once in common code and let Matthiesen core handle the platform-specific details.

Matthiesen Core does not have to be installed on the client if the mod depending on it is server-side only. However, if the mod(s) that depend on Matthiesen Core have client-side components, then Matthiesen Core must be installed on the client as well.

Note: For regular users, This library does nothing on its own aside from setting up the core functionality for other mods to utilize. If you are not a mod developer, simply drop the mod in your mods/ folder alongside the other mods that depend on it, and you are good to go.

Matthiesen Core is the successor to Matthiesen Lib and Matthiesen Lib Api, which were two separate libraries that have now been combined into a single unified library mod, that provides a more streamlined and efficient experience for mod developers.

Features

Matthiesen Core provides a unified API for:

  • Content Registration: Register blocks, items, entities, and other game content in a platform-agnostic way.
  • Event Handling: Listen to and handle game events across different platforms.
  • Networking: Send and receive network packets between the client and server.
  • Configuration Management: Manage mod configurations and settings in a consistent manner.
  • Utility Functions: Access a variety of utility functions for common tasks, such as logging, resource management, and more.
  • Client-Side Features: Includes client-specific features like HUD management, keybinding handling, and screen management.
  • Permission Management: Provides a permission system for managing access to certain features or commands.

Required Dependencies

Optional Dependencies

Version Compatibility

Minecraft VersionFabric VersionNeoForge VersionMod Version
1.21.10.17.2+21.1.182+1.x.x
1.21.10.18.4+21.1.234+2.x.x

Developer Quick Start

Matthiesen Core development versions and sources are available from Matthiesen Dev Maven.

Gradle

Step 1: Add the Maven repository to your build.gradle.kts file

repositories {
    maven("https://maven.matthiesen.dev/releases") {
        name = "devMatthiesenMaven-releases"
    }
    // For Snapshot versions, also include the snapshots repository
    maven("https://maven.matthiesen.dev/snapshots") {
        name = "devMatthiesenMaven-snapshots"
    }
}

Step 2: Add the version property to your gradle.properties file

matthiesen_core_version=2.x.x

Note: Replace 2.x.x with the latest version of Matthiesen Core. You can find the latest version on Matthiesen Dev Maven or see the table below for the latest version.

Release TypeVersion Badge
Latest ReleaseLatest Release

Step 3: Add the dependency to your build.gradle.kts file

// In common/build.gradle.kts
dependencies {
    modImplementation("dev.matthiesen:matthiesen-core-common:${property("matthiesen_core_version")}") {
        isTransitive = false
    }
}

// In fabric/build.gradle.kts
dependencies {
    modImplementation("dev.matthiesen:matthiesen-core-fabric:${property("matthiesen_core_version")}") {
        isTransitive = false
    }
}

// In neoforge/build.gradle.kts
dependencies {
    modImplementation("dev.matthiesen:matthiesen-core-neoforge:${property("matthiesen_core_version")}") {
        isTransitive = false
    }
}

Step 4: Loader-specific Dependency Setup

For Fabric and NeoForge, you will need to add the appropriate loader-specific dependency to your mod metadata file (e.g., fabric.mod.json for Fabric or neoforge.mods.toml for NeoForge). This ensures that the correct version of Matthiesen Core is loaded alongside your mod.

Fabric Example (fabric.mod.json):

{
  "depends": {
    "matthiesen_core": ">=2.x.x"
  }
}

NeoForge Example (neoforge.mods.toml):

[[dependencies.yourmodid]]
modId = "matthiesen_core"
type = "required"
versionRange = "[2.x.x,)"
ordering = "AFTER"
side = "BOTH"

Step 5: Sync your project and set up your common mod codebase to use Matthiesen Core's APIs for content registration, event handling, networking, and other features.

AbstractCommonMod: Extend the AbstractCommonMod class in your common mod codebase to leverage Matthiesen Core's core functionalities. This class provides a foundation for your mod, allowing you to focus on implementing your mod's unique features while Matthiesen Core handles the platform-specific details.

package com.example.mymod;

import dev.matthiesen.matthiesen_core.common.AbstractCommonMod;
import dev.faststats.Token;
import org.jetbrains.annotations.Nullable;

public final class ExampleModCommon extends AbstractCommonMod {
    public static final String MOD_ID = "examplemod";
    public static final String MOD_NAME = "Example Mod";
    public static final ExampleModCommon INSTANCE = new ExampleModCommon();

    private ExampleModCommon() {
        super(MOD_ID, MOD_NAME);
    }

    @Override
    public @Nullable @Token String getMetricsToken() {
        return null;
    }
    
    @Override
    public void initialize() {
        super.initialize();
        createInfoLog("Initializing Example Mod Common...");
    }
}

AbstractCommonClientMod: Extend the AbstractCommonClientMod class in your client mod codebase to leverage Matthiesen Core's client-specific features. This class provides a foundation for your client-side mod, allowing you to focus on implementing your mod's unique client-side features while Matthiesen Core handles the platform-specific details.

package com.example.mymod.client;

import dev.matthiesen.matthiesen_core.common.AbstractCommonClientMod;
import com.example.mymod.ExampleModCommon;

public final class ExampleModCommonClient extends AbstractCommonClientMod {
    public static final ExampleModCommonClient INSTANCE = new ExampleModCommonClient();
    
    private ExampleModCommonClient() {
        super(ExampleModCommon.INSTANCE);
    }

    @Override
    public void initialize() {
        createInfoLog("Initializing Example Mod Common Client logic...");
    }
}

Further Reading

Documentation for this mod can be found at mods.matthiesen.dev

FastStats Metrics

This mod uses FastStats to collect anonymous usage statistics. This helps the developer understand how this mod is being used and improve it over time. You can learn more about the data collected and how it is used by visiting FastStats: Information.

You can also view the data collected by this mod on the FastStats: Matthiesen Core page.

To opt out of this data collection, set the enabled property to false in the <game_directory>/config/faststats/config.properties file.

License

MIT - see LICENSE.

Последние версии

Все версии →
release

Matthiesen Core 2.0.0 - NeoForge

2.0.0
30 окт. 2026 г.134Minecraft: 1.21.1neoforge
Скачать
Что нового
## What's Changed * Migrate to official faststats metrics with small common compatibility layer by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/67 * Refactor and organize code, moving some logic from the Core to the API package scope by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/68 * Implement Discord webhook notification system with client and notifier instances by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/69 * Refactor event observables and improve package structure by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/70 * Update Gradle configurations and dependencies for NeoForge compatibility by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/71 * Add fabricloader dependency for compatibility with newer versions by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/72 * Update NeoForge version to 21.1.234 in configuration files by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/73 * Update README for Fabric and NeoForge version compatibility by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/75 * Add PLAYER_BLOCK_BREAK event for server-side block break actions by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/76 * Add method for generating mod-specific configuration file paths by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/77 * Enhance BuiltInEconomyProviders with type and availability checks by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/78 * Add ChatColors enum for simplified chat color management in utilities by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/79 * Refactor ChatColors enum for color codes and retrieval enhancement by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/80 * Enhance error logging in AdventureTextParser and clean up imports by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/81 * Refactor text parser to use singletons and add ModdedTextParser interface by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/82 * Refactor economy and networking management for better clarity by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/83 * Refactor mixin configuration for better organization and clarity by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/84 * Implement LuckPerms permission validator and enhance environment checks by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/85 * Refactor player data management and migrate to PlayerRecordDataV2 by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/86 * Refactor configuration management and add translatable titles by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/87 * Refactor package structure for improved organization by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/88 * Refactor exception handling and improve package structure for webhooks by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/89 ## Breaking Changes - `v1` and `v2` of Matthiesen Core are **NOT** compatible, please wait to update the core mod till the mods that use it update to support v2 - New minimum versions - Fabric: Requires `0.18.4+` - NeoForge: Requires `21.1.234+` - No longer Supported: - Matthiesen Core webhooks: Functionality has been merged into Matthiesen Core. - Faststats is no longer shadowed, it's now packaged as a jar-in-jar. **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.5...v2.0.0
release

Matthiesen Core 2.0.0 - Fabric

2.0.0
30 окт. 2026 г.293Minecraft: 1.21.1fabric
Скачать
Что нового
## What's Changed * Migrate to official faststats metrics with small common compatibility layer by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/67 * Refactor and organize code, moving some logic from the Core to the API package scope by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/68 * Implement Discord webhook notification system with client and notifier instances by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/69 * Refactor event observables and improve package structure by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/70 * Update Gradle configurations and dependencies for NeoForge compatibility by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/71 * Add fabricloader dependency for compatibility with newer versions by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/72 * Update NeoForge version to 21.1.234 in configuration files by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/73 * Update README for Fabric and NeoForge version compatibility by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/75 * Add PLAYER_BLOCK_BREAK event for server-side block break actions by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/76 * Add method for generating mod-specific configuration file paths by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/77 * Enhance BuiltInEconomyProviders with type and availability checks by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/78 * Add ChatColors enum for simplified chat color management in utilities by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/79 * Refactor ChatColors enum for color codes and retrieval enhancement by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/80 * Enhance error logging in AdventureTextParser and clean up imports by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/81 * Refactor text parser to use singletons and add ModdedTextParser interface by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/82 * Refactor economy and networking management for better clarity by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/83 * Refactor mixin configuration for better organization and clarity by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/84 * Implement LuckPerms permission validator and enhance environment checks by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/85 * Refactor player data management and migrate to PlayerRecordDataV2 by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/86 * Refactor configuration management and add translatable titles by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/87 * Refactor package structure for improved organization by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/88 * Refactor exception handling and improve package structure for webhooks by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/89 ## Breaking Changes - `v1` and `v2` of Matthiesen Core are **NOT** compatible, please wait to update the core mod till the mods that use it update to support v2 - New minimum versions - Fabric: Requires `0.18.4+` - NeoForge: Requires `21.1.234+` - No longer Supported: - Matthiesen Core webhooks: Functionality has been merged into Matthiesen Core. - Faststats is no longer shadowed, it's now packaged as a jar-in-jar. **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.5...v2.0.0
release

Matthiesen Core 1.3.5 - Fabric

1.3.5
22 окт. 2026 г.2,3 тыс.Minecraft: 1.21.1fabric
Скачать
Что нового
## What's Changed * Deprecate ConfigFolderManager and introduce ConfigFolderLoader by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/66 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.4...v1.3.5
release

Matthiesen Core 1.3.5 - NeoForge

1.3.5
22 окт. 2026 г.997Minecraft: 1.21.1neoforge
Скачать
Что нового
## What's Changed * Deprecate ConfigFolderManager and introduce ConfigFolderLoader by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/66 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.4...v1.3.5
release

Matthiesen Core 1.3.4 - Fabric

1.3.4
21 окт. 2026 г.701Minecraft: 1.21.1fabric
Скачать
Что нового
## What's Changed * Enhance ItemDecoder with serialization methods and fallback constants by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/65 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.3...v1.3.4
release

Matthiesen Core 1.3.4 - NeoForge

1.3.4
21 окт. 2026 г.146Minecraft: 1.21.1neoforge
Скачать
Что нового
## What's Changed * Enhance ItemDecoder with serialization methods and fallback constants by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/65 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.3...v1.3.4
release

Matthiesen Core 1.3.3 - Fabric

1.3.3
18 окт. 2026 г.1,1 тыс.Minecraft: 1.21.1fabric
Скачать
Что нового
## What's Changed * Simplify VirtualBookContainer and enforce maxium page count by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/63 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.2...v1.3.3
release

Matthiesen Core 1.3.3 - NeoForge

1.3.3
18 окт. 2026 г.429Minecraft: 1.21.1neoforge
Скачать
Что нового
## What's Changed * Simplify VirtualBookContainer and enforce maxium page count by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/63 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.2...v1.3.3
release

Matthiesen Core 1.3.2 - Fabric

1.3.2
18 окт. 2026 г.79Minecraft: 1.21.1fabric
Скачать
Что нового
## What's Changed * Add support for removable books in VirtualBookContainer and VirtualLecternMenu by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/62 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.1...v1.3.2
release

Matthiesen Core 1.3.2 - NeoForge

1.3.2
18 окт. 2026 г.54Minecraft: 1.21.1neoforge
Скачать
Что нового
## What's Changed * Add support for removable books in VirtualBookContainer and VirtualLecternMenu by @Adammatthiesen in https://github.com/Matthiesen-dev/matthiesen-core/pull/62 **Full Changelog**: https://github.com/Matthiesen-dev/matthiesen-core/compare/v1.3.1...v1.3.2