Community listing page, reviews may not be monitored by the author.
M4id
No reviews yet
A kotlin library. heart of M4id Studio's mods.
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
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
Resources
External Links
About
Description
M4id Library
A Kotlin toolkit for Minecraft mods on Fabric and NeoForge.
Write commands, networking, configuration, and registration once using Kotlin DSLs, then use them across both mod loaders. M4id is a shared library dependency for my mods.
Note: M4id is currently in alpha. APIs may change between releases, and breaking changes are expected before version 1.0.
Features
| Area | Features | Entry point |
|---|---|---|
| Commands | A Brigadier DSL with nested literals, typed arguments, permission helpers, and suggestion providers. | M4id.Command · dispatcher.addCommand(...) |
| Networking | Serializable message classes with client and server handlers, without manually writing packet codecs. | M4id.Message · M4idMsg |
| Data files | Configuration and per-server data as plain Kotlin properties, with atomic saves and corrupt-file backups. | DataFile.forClient · DataFile.forServer |
| Serialization | kotlinx.serialization support for ResourceLocation, Vec3, AABB, CompoundTag, and ItemStack. |
M4id.Serial |
| Registration | Register items, blocks, entities, effects, components, and more using concise registrar APIs. | M4idAutoRegistrar |
| Text | A builder DSL for styled chat components, including click and hover events. | textLiteral { ... } |
| Input | Keybinds with modifier keys and key-down/key-up callbacks. | M4id.Input |
| Criteria | Register and trigger advancement criteria from code. | M4id.Criterion |
| Logging | Per-mod loggers and logging markers. | M4id.Logging |
| Percale | Bridges between Mojang Codec, NBT, Gson, and kotlinx.serialization. |
dev.doctorm4id.percale |
Installation
M4id is published through JitPack.
Each Minecraft version and loader combination is published as a separate artifact named <minecraft>-<loader>. For example, 1.21.1-fabric.
Gradle (Kotlin DSL)
Add JitPack to your repositories:
repositories {
maven("https://jitpack.io")
}
Then add the appropriate dependency.
Fabric
dependencies {
modImplementation(
"com.github.DoctorM4id.M4id:1.21.1-fabric:0.1.0-alpha.5"
)
}
NeoForge
dependencies {
implementation(
"com.github.DoctorM4id.M4id:1.21.1-neoforge:0.1.0-alpha.5"
)
}
The JitPack project page provides the available artifacts and build information. You can also browse the GitHub tags for published versions.
Loader requirements
- Fabric: The Kotlin standard library and
kotlinx.serializationare bundled into the M4id JAR. - NeoForge: Requires Kotlin for Forge at runtime.
Compatibility
| Minecraft version | Fabric | NeoForge | Status |
|---|---|---|---|
| 1.21.1 | Yes | Yes | Supported |
| 1.20.1 | Planned | N/A | Planned, as needed |
| 26.1 and newer | Planned | Planned | Planned |
Minecraft versions between those listed above are skipped.
For the full compatibility matrix and the latest release for each supported version, see SECURITY.md.
Java requirement: Minecraft 1.20.5 and newer requires Java 21.
Project layout
M4id/
├── build-logic/ # Convention plugins, manifests, publishing, mixins
├── build.fabric.gradle.kts # Fabric build configuration
├── build.neoforge.gradle.kts # NeoForge build configuration
├── stonecutter.properties.toml # Mod metadata and per-version dependencies
└── src/
├── fabric/ # Fabric-specific code
├── neoforge/ # NeoForge-specific code
└── main/
├── java/dev/doctorm4id/
│ ├── m4id/
│ │ ├── command/ # Command DSL
│ │ ├── message/ # Networking
│ │ ├── data/ # Configuration and data files
│ │ ├── serial/ # Serializers
│ │ ├── registration/ # Auto-registrar
│ │ ├── text/ # Text builder
│ │ ├── input/ # Keybinds
│ │ ├── ext/ # Extension functions
│ │ ├── platform/ # Platform abstractions and implementations
│ │ ├── util/ # General utilities
│ │ └── internal/ # Internal code, mixins, and tests
│ └── percale/ # Codec, NBT, and Gson bridges
└── resources/ # Mixins, access wideners, and assets
Support
- Community: Join the Discord server
- Bugs and feature requests: Open a GitHub issue
- Security issues: GitHub Security
Credits
M4id includes code derived from Kambrik and Percale. Thanks to the original authors for their work.
License
M4id is licensed under the Mozilla Public License 2.0.
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
Get it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources