This is documentation for EmbersTextAPI 2.9.4. View the latest version

Getting Started

Embers Text API is published to a public Maven repository. Add it as a dependency in your Gradle build to get access to the full Java API.


https://maven.tysontheember.dev
build.gradle
repositories {
maven { url = 'https://maven.tysontheember.dev' }
}

Replace VERSION with the release you want (e.g. 2.9.0).

Group ID: net.tysontheember.emberstextapi

LoaderMinecraftArtifact ID
Fabric1.20.1emberstextapi-fabric-1.20.1
Fabric1.21.1emberstextapi-fabric-1.21.1
NeoForge1.21.1emberstextapi-neoforge-1.21.1
Forge1.20.1emberstextapi-forge-1.20.1
build.gradle
dependencies {
modImplementation "net.tysontheember.emberstextapi:emberstextapi-fabric-1.21.1:VERSION"
}

Every artifact ships a sources JAR (classifier sources). Your IDE picks it up automatically — no extra configuration needed.


Use the artifact matching your loader and Minecraft version. The Fabric and NeoForge artifacts include all shared API code.

If you’re writing a multiloader mod with your own common module, depend on the loader-specific artifact in the appropriate loader subproject only.


Versions follow MAJOR.MINOR.PATCH (e.g., 2.4.0). The mod version is separate from the Minecraft version — the MC version is part of the artifact ID.

Only release versions are published. There are no snapshot builds.


Embers Text API is distributed under Ember’s Modding Licence (EML) v1.2.

If your project includes forks/derivative code, redistribution, or commercial usage, review the licence terms before publishing.


Forge 1.20.1 — Mixin crash on launch (InvalidInjectionException)

Section titled “Forge 1.20.1 — Mixin crash on launch (InvalidInjectionException)”

If your dev client crashes on startup with an error like:

Critical injection failure: @Inject annotation on emberstextapi$visit could not find any
targets matching '...TranslatableContents;m_213724_(...)'

this is a mixin refmap remapping issue. The published Forge jar embeds an SRG-mapped refmap (required for production), but in your dev environment fg.deobf() remaps the bytecode to Parchment/Mojang names without touching the refmap JSON. The mixin system then looks for SRG names in a class where the methods are now Parchment-named, and fails.

Fix: add these JVM args to every run configuration in your build.gradle:

build.gradle
minecraft {
runs {
configureEach {
jvmArgs(
"-Dmixin.env.remapRefMap=true",
"-Dmixin.env.refMapRemappingFile=${projectDir}/build/createSrgToMcp/output.srg"
)
}
// ... your client / server run blocks
}
}

output.srg is the SRG→Parchment mapping file that ForgeGradle generates automatically for your project (via the createSrgToMcp task). With remapRefMap=true, the mixin system translates EmbersTextAPI’s refmap entries at load time so they match your deobfed classpath.

After adding this, re-run ./gradlew genIntellijRuns (or your equivalent IDE setup task) to pick up the updated JVM args.