Skip to main content

Configuration

Embers Text API ships with sensible defaults and requires no configuration to get started. For server operators who want fine-grained control, a full config system is available.


Config File Locations

LoaderFile(s)Location
Forge / NeoForgeemberstextapi-common.toml (server)config/
Forge / NeoForgeemberstextapi-client.toml (client)config/
Fabricemberstextapi.json (all options)config/

On Forge and NeoForge, server-side options live in the common config (synced to all players), while client-side options live in the client config (per-player). On Fabric, everything is in a single JSON file.

Config files are created automatically on first launch.


General

welcomeMessageEnabled

TypeDefaultSide
BooleantrueServer

When enabled, new players see a one-time info message about ETA on first join.

immersiveMessagesEnabled

TypeDefaultSide
BooleantrueClient

Master toggle for immersive messages. When set to false, all immersive messages (from commands, API, or queues) are silently ignored on the client — nothing renders on screen.

tip

This is a client-side setting. Each player controls whether they see immersive messages. Server operators cannot force this off for other players, but players can use it to opt out of on-screen text.


Disabled Effects

disabledEffects

TypeDefaultSide
List of strings[] (empty)Client

A list of effect names to disable. Disabled effects render as plain text — the tag is still parsed, but the effect does nothing.

Forge / NeoForge example (emberstextapi-client.toml):

[effects]
disabledEffects = ["glitch", "shake", "turbulence"]

Fabric example (emberstextapi.json):

{
"disabledEffects": ["glitch", "shake", "turbulence"]
}

This disables the effects everywhere: chat markup, immersive messages, and API calls. The text content still appears — only the visual effect is suppressed.

note

Effect names are case-insensitive. Both "Rainbow" and "rainbow" work. Aliases are separate entries — disabling "rainbow" does not automatically disable "rainb". Add both if needed.

All effect names: rainbow, rainb, grad, gradient, color, col, pulse, fade, wave, bounce, swing, turb, turbulence, shake, circle, wiggle, pend, pendulum, scroll, glitch, neon, glow, shadow, typewriter, type, obfuscate, obf


Chat Markup Permissions

These settings control which players can use markup tags like <rainbow> in regular chat messages.

markupPermissionMode

TypeDefaultSide
String"NONE"Server
ValueBehavior
NONENo restrictions — all players can use markup in chat
WHITELISTOnly players listed in markupPlayerList can use markup
BLACKLISTPlayers listed in markupPlayerList cannot use markup; everyone else can

markupPlayerList

TypeDefaultSide
List of strings[] (empty)Server

Player UUIDs for the whitelist or blacklist. UUIDs are case-insensitive.

Forge / NeoForge example (emberstextapi-common.toml):

[markup]
markupPermissionMode = "BLACKLIST"
markupPlayerList = ["550e8400-e29b-41d4-a716-446655440000"]

Fabric example (emberstextapi.json):

{
"markupPermissionMode": "WHITELIST",
"markupPlayerList": [
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8"
]
}

When a player who is not allowed to use markup sends a chat message containing tags, all tags are silently stripped — the plain text content is preserved and broadcast normally.

tip

To find a player's UUID, use a site like NameMC or the /data get entity @p command in-game.


Limits

maxMessageDuration

TypeDefaultSide
Integer (ticks)0 (unlimited)Client

Maximum duration for any immersive message, in ticks (20 ticks = 1 second). Messages with longer durations are not displayed. Set to 0 for no limit.

maxActiveMessages

TypeDefaultSide
Integer0 (unlimited)Client

Maximum number of immersive messages that can be on screen simultaneously. When the limit is reached, new messages are silently dropped until an existing message expires. Set to 0 for no limit.


Full Config Examples

Forge / NeoForge

config/emberstextapi-common.toml:

[general]
welcomeMessageEnabled = true

[markup]
markupPermissionMode = "NONE"
markupPlayerList = []

config/emberstextapi-client.toml:

[general]
immersiveMessagesEnabled = true

[effects]
disabledEffects = []

[limits]
maxMessageDuration = 0
maxActiveMessages = 0

Fabric

config/emberstextapi.json:

{
"welcomeMessageEnabled": true,
"immersiveMessagesEnabled": true,
"disabledEffects": [],
"markupPermissionMode": "NONE",
"markupPlayerList": [],
"maxMessageDuration": 0,
"maxActiveMessages": 0
}