Minecraft mods, but easier
  • Kotlin 77.1%
  • Java 22.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-18 13:43:21 +02:00
branding new readme & branding 2026-10-18 02:01:36 +02:00
gradle/wrapper Initial Commit 2026-04-20 18:19:24 +02:00
gradle-plugin testing fixes 2026-10-17 22:51:44 +02:00
src/main major refactoring & CrimsonPlayer 2026-10-18 13:43:21 +02:00
.gitignore Initial Commit 2026-04-20 18:19:24 +02:00
build.gradle.kts crimson to mod 2026-10-17 20:07:42 +02:00
gradle.properties major refactoring & CrimsonPlayer 2026-10-18 13:43:21 +02:00
LICENSE new readme & branding 2026-10-18 02:01:36 +02:00
README.md remove extra hr in readme 2026-10-18 02:04:42 +02:00
settings.gradle.kts Initial Commit 2026-04-20 18:19:24 +02:00

Crimson

What is this?

Zohiu's personal Fabric library mod. It contains many shared functions but does not do anything by itself.

I do not remember where the name originally comes from, but I used to call my private Spigot plugin library for commissions I did "Crimson". I kept that name for this project when I mostly transitioned to making mods instead of plugins.

Goal

My goal is to make crimson handle all interactions with the game. That way I can make my mod codebases only consist of the mod's actual logic. I want to abstract Minecraft in a way that maximizes the readability of my mod's codebases.

I plan to keep backward-compatibility for as long as feasible, which means there are some version-specific implementations in here and there will be more over time.


Internal stuff

Gradle Plugin

I build all my mods using the gradle plugin in this repo. It handles all the common build logic and includes easy ways to shadow & relocate dependencies without the added boilerplate in my mod repos.

Another big feature of this plugin is running a Docker Minecraft server as a replacement for Fabric loom's runServer because I've had many issues with dependencies in the Docker server which most server hosts use.

Versioning

This project mostly follows semantic versioning, except I do not specify the public API as this is mostly a personal project not intended for external use (you're allowed to use it if you want to, of course. There's just no guarantee for anything.)

That means: MAJOR.MINOR.PATCH, e.g. 1.0.0

  • Major: Anything that changes existing API or could break mods
  • Minor: Anything that adds new features
  • Patch: Anything that fixes bugs / minor refactoring

Testing

I made a small testing framework specifically for server-side mods. It uses a real server environment that I can actually join. That way I can see the tests taking place and identify issues more effectively than if I were to use Mojang's GameTest framework.

At the moment it uses fake players, but I plan to extend it to use real player connections in the future to test real scenarios.


License

All source code is licensed under The Unlicense

All artwork is licensed under CC BY-SA 4.0