Compatibility
Minecraft: Java Edition
26.1.x
1.21.1
1.20.1
Platforms
Tags
Creators
Details
Licensed Embers Modding License
Published 8 months ago
Changelog
Changelog
v3.0.0-beta.1 — 2026-05-21
Changed
- Replaced the config system. Options are now defined by a single schema split
into two files:
emberstextapi-client.toml/.json(per-client: which effects render, performance) andemberstextapi-server.toml/.json(authoritative: player markup permissions, message limits, anvil rename length). The oldemberstextapi-common.toml,emberstextapi-client.toml(old layout) andemberstextapi.jsonare no longer read — settings must be re-applied in the new files, which generate with defaults on first run. - Player markup access is now permission-gated.
playerMarkup.modeisALL,PERMISSION(nodesemberstextapi.markup.use,.effect.<name>,.category.<cat>,.bypass, with an OP-level fallback), orNONE. Effects can be allowed/denied per-effect or per-category for both the client render gate and the server markup gate. LuckPerms and FTB Ranks back the permission nodes automatically. - Unified effect parameter naming across visual, message, and animation effects.
Every public param now has a canonical fully-spelled name and a short alias
(e.g.,
amplitude/amp,frequency/freq,duration/dur). Old ad-hoc shorts (a/f/w, etc.) no longer work — seedocs/superpowers/specs/2026-05-18-effect-parameter-refinement-design.mdfor the full rename table. - Effects now declare params via
ParamSchema; unknown params log a warning instead of being silently ignored. obfuscate'sspeedis renamed tointerval(ms per step).shatter'sspeedis renamed toduration(animation length in seconds).matrix'sresolveis renamed toduration.vibrate'sintensityis renamed toamplitude;speedtofrequency.breathe'samountis renamed toamplitude;speedtofrequency.circle'sais renamed toradius(the param was always a radius, not an amplitude).drift'srx/ryare renamed toamplitudeX/amplitudeY.gradient'sspanis renamed tolength;speedtofrequency.fade'sais renamed tominAlpha.neon'sp/fare renamed tofrequency/falloff;ctocolor.RainbowEffect.getName()now returns"rainbow"(was"rainb").GradientEffect.getName()now returns"gradient"(was"grad").TurbulenceEffect.getName()now returns"turbulence"(was"turb").PendulumEffect.getName()now returns"pendulum"(was"pend").typewriter'scursorparam is now boolean-only; usecursorCharto set the glyph. Thecursor=<char>overload is dropped.
Added
- Seven new immersive-message motion effects:
grow(continuous scale oscillation),slam(one-shot drop-in with damped bounces),float(slow sinusoidal drift),drift(independent X/Y wander),vibrate(high-frequency jitter),spin(full Z-axis rotation), andslide(one-shot slide-in or slide-out from any screen edge). All compose with the existingrock/breatheeffects and with each other. slideaccepts aneasingparam:linear,easeInCubic,easeOutCubic,easeInOutCubic. Defaults match prior behavior (easeOutCubicformode=in,easeInCubicformode=out).- Three per-character message effects:
drip(characters fall and trail downward in staggered order),shatter(characters fragment outward at a configurable trigger time), andmatrix(characters scramble via random glyph cycling then resolve in stagger order). outlinespan effect: renders a stroked outline around glyphs using a second SDF draw pass with a configurable color (c) and width (w). Requires an SDF font; logs a warning and skips the outline draw on vanilla fonts.- Per-character effect dispatch:
MessageEffectimplementations can opt in viaperCharacter()to receive anapplyToCharcall for each rendered glyph, enabling effects that vary per character. Existing whole-message effects are unaffected. [sound ...]message effect plays a Minecraft sound at a configurable time offset (at), volume, and pitch. Built-in presets (click,whoosh,static,magic,pop,thud,shatter) map to vanilla sound ids; any resource location works as well.drip,shatter,matrix, andslameach accept an inlinesoundparam that fires on their respective key moment (first drip, shatter trigger, matrix resolve, slam land).- ETA markup inside
Component.translatablestring arguments now renders.<...>tags in arguments passed totranslatable(key, args...)are parsed by the existing markup pipeline instead of being forwarded as literal strings. EffectRegistry.getSchema(name)andMessageEffectRegistry.getSchema(name)return theParamSchemafor an effect, enabling introspection and doc tooling.- The server syncs each player's effective markup policy on join; the client caches it for accurate previews and feedback.
/emberstextapi reloadreloads config from disk and re-syncs policy to online players;/emberstextapi policy [player]prints a player's resolved markup policy.- MSDF font rendering now works on MC 26.1 (NeoForge and Fabric); pipelines are registered against the 26.1 RenderPipelines API.
Files
emberstextapi-fabric-1.21.1-3.0.0-beta.1.jar(1.77 MiB) Primary
Metadata
Release channel
BetaVersion number
3.0.0-beta.1+fabric-1.21.1Loaders
Fabric
Game versions
1.21.1Environment
Unknown environment



