Tags
Creators
Details
All versions
3.0.4+forge-1.20.1
Release
Ember's Text API 3.0.4 (Forge 1.20.1)last week 13.7K
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Client and server
Changes
Changelog
v3.0.4 (2026-09-16)
- Markup renders in text that mods draw as a plain string, such as Better Advancements
titles, which come from
getString()and never reached the component parser.Font.drawInBatch(String),Font.prepareText(String)andFont.width(String)route strings with real markup through the component path. Plain text with a stray<or>is untouched.Font.split(String)andwordWrapHeight(String)still measure the raw string, so a wrapped plain-string label may wrap early. <neon>halos now follow every drawn quad of a glyph: they rotate with<pendulum>and<swing>, clip to each<glitch>slice, use the fill colour and grow by the border width with<outline>, and match the random glyph drawn by<obfuscate>.- SDF fonts render with a cleaner edge. The text shader now measures the pixel
footprint of each glyph from the atlas mapping itself, so rotated text (
<pendulum>,<swing>) gets the same one pixel edge as straight text, the old edge sharpening that thinned every stroke is gone, and small text gets a light stem darkening that fades out above roughly GUI scale 4.<bold>on an SDF font that has no_boldvariant now emboldens instead of drawing nothing extra, and a custompx_rangein a font manifest is honoured by the shader rather than assumed to be 8. Glyph bearings now use the real margin of each baked glyph instead of a fixed pad, so wide and narrow letters no longer sit up to half a unit apart from where the font places them. The on-disk SDF cache format bumped to version 2 and rebuilds itself on first launch. - Unknown or out-of-range effect params log one warning per effect and param per session, with a pointer to the docs.
- The KubeJS binding now ships on Forge 1.20.1, Fabric 1.20.1 and NeoForge 26.1 as well
as NeoForge 1.21.1. The
EmbersTextglobal and theEmbersTextEvents.itemTooltipclient event are the same on all four. The remaining targets have no KubeJS release to bind to. EmbersText.effects()returns a sorted list of every registered effect name, so a script can see what the installed version accepts.EmbersText.clearItemNames()drops every rule registered withitemName, so a startup script can reload from a clean rule set.
Optional dependencies
Any compatible version
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:OVSg4uGN:XEnMrO48"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:OVSg4uGN:XEnMrO48"
}

