All versions
2.2.1
Release
Chat Utilities 2.2.03 months ago 10
Compatibility
Minecraft: Java Edition
1.21.11
Platform
Fabric
Supported environments
Client-side
Required content
Any compatible version
Changes
Chat Utilities 2.2.1
š¢ New | š” Changed | š“ Fixed
š¢ New ā Rendering & Performance
- š¢ Render cache for wrapped message lines ā chat windows now only rebuild their wrapped lines on actual changes instead of every frame; on a cache hit, only fade-alpha gets updated per line
- š¢ Render limit of 3000 messages per window ā all messages still stay in memory, but only up to 3000 get rendered (newest or oldest depending on newestOnTop), plenty for normal scrolling while saving performance on large chat histories
- š¢ New
renderVersionfield onChatWindowā bumped on every relevant change to invalidate the render cache
š” Changed
- š” Toast messages (closed chat) now break out early once a message is older than TOAST_DURATION_MS (10s), instead of always looping through all 3000 messages ā down to ~50 messages processed per frame instead of 3000
- š” Toast rendering extracted into its own
renderToastLinemethod for cleaner code and correct yOffset handling - š” Highlight background now spans the full window width and uses global opacity instead of a hardcoded alpha value
- š”
MessageLine.fadeAlphais no longer final ā allows in-place updates on cache hits without creating new objects
š“ Fixed
- š“ Cache invalidation from
setSearchQueryfixed ā previously bumped every frame sincerenderFullcalledsetSearchQuerycontinuously, even with an unchanged query string, making the cache effectively useless - š“ Same issue fixed for
setSearchActiveā now only invalidates the cache on an actual state change
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:X0Lnj8M8:apVobsif"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:X0Lnj8M8:apVobsif"
}

