Show and hide letters dynamically
You can use a Typewriter to show and hide letters dynamically, choosing different pauses for any kind of characters (punctuation, letters, […]), trigger events and more.
Showing Text
The typewriter contains general settings and events listeners, and allows for different pauses/timing modes:
By Character: shows one letter after the other.
By Word: progresses text word after word.
This new architecture (from 3.0) allows you to change typewriter timings during development (for whatever reason) while keeping event references and settings intact! <3
Your typewriter should look like this:
From the TypewriterComponent in the Inspector:

From the AnimatedLabel in the the UI Builder:

Make sure to assign the timings scriptable object, or the typewriter will show the entire text instantly!
You can start the typewriter in two main ways:
A) Via Code (Recommended)
If you want to use the typewriter, it is recommended that you set the text directly to that component via code.
If you are using TextMeshPro, please replace scripts that reference TMPro or Text Animator (Setting up texts) and reference Febucci.TextAnimatorForUnity.TypewriterComponent instead.
❌ Don't: “
tmproText.text = textValue;” , or "textAnimator.SetText(textValue);"✅ Do:
typewriter.ShowText(textValue);
Via UI Toolkit, the AnimatedLabel already has a "Typewriter" value that you can interact with!
You don't need to do anything else, except for making sure you have assigned typewriter delays.
B) Automatic recognition
In case you haven't followed the step above, TextAnimator will still try to start the typewriter automatically if you have added a Typewriter component or have set up "Timings" through the AnimatedLabel in UI Toolkit.
Easy Integration might happen one frame behind (as it has to discover that something has changed first, which usually was done on the previous frame, and then start the typewriter). If this is an issue, either follow the step A) Via Code (Recommended), or see When I set the text, I see the previous one for one frame before showing the new one
Controlling Letters
Start and Stop Typing
Inside the component’s Inspector you’ll find some options to control how the typewriter start should be triggered:
Start Typewriter Mode: tells the typewriter when to start showing letters.
From Script Only
The typerwiter can only be started by invoking TextAnimatorPlayer.StartShowingText()
OnEnable
The typewriter starts every time the gameObject is set active
OnShowText
The typewriter starts as soon as a new text is set (as explained in the “Showing Text” section)
Automatically From All Events
All of the above
Reset Typing Speed At Startup: true if you want the typewriter’s speed to reset back to 1 every time a new text is show, otherwise it will save the last one used.
You can pause the typewriter at any time by invoking typewriter.StopShowingText(), and you can start/resume it by invoking typewriter.StartShowingText().
Skip the Entire Text
To Skip the entire typewriter, you can invoke the typewriter.SkipTypewriter() method.
You can also find a few options to control how it behaves:
Hide Appearances On Skip: true if you want to prevent appearance effects from playing whenever the typewriter skips (meaning that the text will be shown instantly).Trigger Events On Skip: true if you want to trigger all remaining events once the typewriter skips (be careful with that if you’re running some game logic with them, as everything will be run at once). Read more about events here: Trigger Events when typing
Skip Specific Parts of the Text
This feature is under testing for 3.0 and will be restored from the next version very soon! Thanks for your understanding!
Hiding Text
You can hide letters dynamically via script, by invoking typewriter.StartDisappearingText(), and you can also stop it at any time by invoking typewriter.StopDisappearingText().
Options
Typewriters might share the same settings and also have specific ones, so be sure to hover the mouse cursor above its fields in the Inspector to show the tooltips for each one.
Here is a quick overview of the most important/common ones:
Callbacks (Unity Events)
You can use Unity Events that will be triggered based on the typewriter activity (example: when it just ended showing text).

OnTextShowed
Event called after the entire text has been shown (if you’ve set “Use Typewriter” to true, it will wait until all letters are shown)
OnTextDisappeared
Called as soon as the script starts hiding the last letter
The following below only work if the “use typewriter” is set to true:
OnTypewriterStart
Called right before the typewriter starts showing its first letter. It doesn’t work if the typewriter is off, since it would coincide with the “OnTextShowed” event (in this case you can use that one instead)
OnCharacterVisible(Char)
Called each time a character became visible
OnMessage(EventMarker)
Invoked every time the typewriter meets a message/event in text. Read more about events here