Arabic & RTL text
First-class Arabic shaping and right-to-left text, plus the Set Text action.
MTA's dxDrawText doesn't shape or reorder Arabic on its own — feed it Arabic and it renders as disconnected, left-to-right letters. Easelt Builder fixes this for you at export time, so any Arabic you type in your GUI comes out connected, correctly ordered, and correct in-game. This page explains exactly what happens and how to work with it.
Why Arabic needs special handling
In-game, MTA:SA's dxDrawText is a plain text drawer. It doesn't apply the two things Arabic requires: shaping (choosing the connected letter form for each position — initial, medial, final, or isolated) and bidi (laying the script out right-to-left). Left alone, dxDrawText prints Arabic as a run of isolated, disconnected glyphs flowing left-to-right — unreadable to an Arabic speaker.
Easelt Builder solves this so you never touch the low-level detail. You type Arabic the way you'd type it anywhere else, and the exported Lua carries the fully prepared text that dxDrawText can render correctly.
Preview vs. export
There are two moments where Arabic is rendered, and they work differently. Understanding the split explains why the editor always looks right — even before Easelt does its work.
The browser gives you a correct preview for free, but the game engine can't — so the real work happens at export, where the prepared text is written into your Lua.
What Easelt does on export
At export time, Easelt runs two transformations over every piece of text before writing it into the Lua.
- Reshaping — each Arabic letter is converted to its correct Unicode presentation form (connected form) based on its position in the word, so neighbouring letters join up the way Arabic is meant to.
- Simplified bidi — the text is reordered right-to-left, while any Latin and number runs inside it are kept left-to-right so they stay readable.
The output of both steps is baked into the exported Lua. The in-game GUI then shows correct, connected, correctly ordered Arabic without any runtime shaping code on your side.
Where Arabic is handled
Reshaping and bidi apply to any text you type into an element — there's no special "Arabic mode" to switch on. Every text-bearing control is covered:
| Element / field | Arabic support |
|---|---|
| Text labels | Reshaped and reordered on export |
| Buttons | Reshaped and reordered on export |
| Editboxes | Reshaped and reordered on export |
| Checkboxes | Reshaped and reordered on export |
| Group titles | Reshaped and reordered on export |
| Progress labels | Reshaped and reordered on export |
| Dropdown items | Reshaped and reordered on export |
Mixed Latin and numbers
You don't need to isolate Latin words or digits from your Arabic. When Easelt applies bidi, it keeps Latin and number runs left-to-right inside an otherwise right-to-left string, so labels like an Arabic caption with an embedded English name or a numeric value read correctly in-game.
Just type mixed strings naturally — Arabic with an English word or a number in the middle comes out with each run flowing the right way.
Lam-alef ligatures
The lam-alef ligature — the combined form of لا that Arabic requires rather than two separate letters — is handled automatically during reshaping. You don't need to type any special character or ligature; Easelt produces the correct combined form for you.
Runtime text changes with Blueprint
Static text isn't the only thing that gets reshaped. The Blueprint Set Text action also supports Arabic: when your GUI changes an element's text at runtime through Set Text, that new text is reshaped too, so dynamic updates stay as correct as the text you designed.
Both design-time text and runtime Set Text changes go through the same reshaping and bidi, so your GUI stays consistent whether text is fixed or updated live.
How to use it
There's no configuration and no workflow to learn. The whole feature comes down to a single practice:
- Type Arabic normallyEnter your Arabic into any text field — label, button, editbox, checkbox, group title, progress label, or dropdown item — exactly as you'd write it anywhere.
- Check the previewThe editor shows correct, connected, right-to-left Arabic immediately, because the browser shapes it for you.
- ExportEaselt reshapes to presentation forms and applies simplified bidi, baking the result into the Lua so the in-game GUI matches.
The one thing to remember: just type Arabic normally. Easelt handles shaping and direction for you.
These very docs are available in Arabic too — so you can read this page in the same language your GUIs speak.