UMG Text Effects

Tag syntax

Effects, presets and typewriter actions are written as tags in the text. There are three forms. All three go through the same parser, so effects nest, stack, and cross Epic’s style tags in every form.

Form Where it works Example
Short tags UTE Text Block <wave>Hello</>, <shake a=2>no!</shake>
Brace tags Anywhere: UTE Text Block, or Epic’s Rich Text Block with the UTE decorator {wave}Hello{/}, {shake a=2}no!{/shake}
Epic syntax Epic’s Rich Text Block with the UTE decorator <wave a="2">Hello</>, <pause t="0.5"/>

Names are case-insensitive: <Wave> and <wave> are the same tag.

Short tags (UTE Text Block)

Brace tags (everywhere)

Epic syntax (stock Rich Text Block)

Roles

Each effect has up to three roles. A tag without a role uses the effect’s natural role (listed per effect in the effect reference).

Role Prefix Short form (brace tags) When it plays
Appear in. {+pop} Once, when a letter is revealed by the typewriter (or when the text appears, if the typewriter is off)
Loop loop. {~fade} All the time
Disappear out. {-fade} Once, when Hide Text is called, or by itself after after= seconds

Examples: <in.pop>Level up!</>, <out.fade>gone soon</>, <loop.fade>breathing</>, <in.drop><out.drop after=2>Bye</></> (drops in, then falls away two seconds later).

A role the effect does not have falls back to its natural role, so <loop.stamp> plays the stamp’s appear.

Without the typewriter, appear effects cascade through their tag’s letters (0.03 s x w per letter, squeezed to about 1.2 s for long spans), so <drop>Title</> drops in letter by letter. Set w=0 to make every letter start together.

Common parameters

Every effect accepts these. Defaults depend on the effect (see the effect reference).

Parameter Aliases Meaning
a amp, bare value Amplitude. Motion in em (1 em = the font size, so effects scale with the text); rotation in units of 15 degrees; color effects use it as intensity from 0 to 1. Default 1
f freq, speed Speed multiplier for loops. Default 1. f=0 freezes a loop; a frozen Tint or Glow (and a Gradient with scroll=0) also stops repainting, so it costs nothing per frame
w wave Phase step between letters for loops; stagger between letters for appear and disappear without a typewriter
t dur Duration of an appear or disappear in seconds
d delay Delay in seconds before an appear or disappear starts
ease   linear, in, out, inout, back, elastic, bounce. Default: the effect’s own curve
unit   letter (default), word or line: what moves together. Words and lines also rotate and scale around their own center
steps   0 = smooth. For loops, the number of updates per second (steps=8 gives a stepped, retro look); for appear and disappear, the number of stages
seed   Changes the random pattern of random effects (shake, wiggle, scatter, glitch, …)
dir   up, down, left, right, side, or a vector x,y (y points down). Used by wave, slide, wipe and roll
color colors, c One color, or up to three for a gradient: colors=#ff5f6d,#ffc371
after   Disappear only: start the disappear this many seconds after the letter was revealed (the text vanishes by itself)

Colors are #RRGGBB, #RRGGBBAA (sRGB, as in a color picker) or a name: red, green, blue, cyan, yellow, orange, pink, purple, magenta, gold, white, black, gray/grey.

Effect-specific parameters (for example height for bounce, charset for decoder) are listed per effect in the effect reference. Named values can be written as words or numbers: charset=binary or charset=3.

Typewriter actions

These tags only matter when the typewriter is on. In a UTE Text Block they are written <pause=0.5>; on a stock Rich Text Block, {pause=0.5} or <pause t="0.5"/>.

Tag Meaning
<pause=0.5> (also <wait=0.5>) Wait 0.5 seconds before the next letter
<speed=2>...</speed> Type the enclosed text 2 times faster (0.5 = half speed). Close with </speed> or </>
<waitinput> Stop until Continue Typewriter is called. On Waiting For Input fires
<event=Name:Argument> Fires On Inline Event (Name, Argument) when the typewriter reaches this point. Also <event name=sfx p=creak>
<voice=Robot> Fires On Inline Event with Name voice and Argument Robot (switch your blip sound here)
<skip> Reveals the rest of the text at once

See Typewriter for the settings and Blueprint events.

Effects without tags (localization)

Translators should not have to keep effect tags intact. Two options:

Attaching effects to existing style rows (so a <Bold> row also waves) is not in 1.0.

Effect lists use the same names and parameters as tags, separated by ;: shake a=1.3; tint color=#ff3b30 f=0.

Presets

A preset is a named stack of effects used like an effect: <angry>...</>. There are 32 built in (see the preset reference), and you can add your own in Custom Presets (tag name to effect list) or with UTE Text Effect Preset data assets.