First thing’s first, download FEditor if you don’t already have it! This tutorial will cover text editing, from the basics to the variety of commands. Hopefully newcomers will find the tutorial helpful. Without any further delay, let’s begin.
The Text Editor
This is the text editor. It’s used to write…well, it’s for text. Dialogue uses a special formatting that relies on combining text commands and script. In this tutorial, we’ll cover all of the text commands, as well as the way text is formatted. Before that, though, we’ll cover the basic functions of the text editor.
The highlighted bit of numbers is the “Input index.” Each piece of text occupies a slot, which is identified by its input index. This index is how you’ll reference the text during event construction.
Find, Find Next, and Find Previous are all pretty self-explanatory. Type the text into the “Input text to find” box, and away you go!
Apply is an important button. When you modify the a slot’s text, you’ll need to apply the change before moving onto another slot. You apply changes, then save (with a simple ctrl+s, in case you weren’t aware). Revert simply puts the text back the way it was originally (based on the last saved version).
Dump and Insert handle the game’s entire script. You can dump a text file containing all of the game’s text, and import the script into another ROM.
These are the six slots in which one can place a portrait. In general, when having two portraits on either side, the two portraits will be in the Left/Right and FarLeft/FarRight, positions (using the Mid position creates a cramped look on the screen). There are also off-screen slots, FarFarLeft and FarFarRight. Portraits loaded in these positions aren’t seen, but can be moved onto the screen via other commands to create an “entering” effect. The slots also are used for text bubbles for characters speaking from off-screen.
In FEditor, you’ll write this line of text to load a portrait in the MidRight slot: [OpenMidRight][LoadFace][0x01][0x01].
The first 0x01 corresponds to the portrait that will be loaded. The second 0x01 is static, and will always be entered as 0x01 (except in one special circumstance that I’ll mention in a bit). To reference portraits, use FEditor’s Portrait Editor.
For generic village/house conversations, to load the active unit, simply use [LoadFace][0xFF][0xFF] on the desired slot.
When you aren’t loading a portrait, simply use [Open______] to make the unit in that slot speak (no need to use [LoadPortrait] for every line).
[A] is used to insert a break in the text, which requires the user to press A to continue. In the GBAFE games, there is a break every two lines. Well-formatted text will fit the size of the bubble (which varies based on how many words are on the longest line) and adhere to that two line rule. After each line, the game will automatically start a new line. If you’d like to skip two lines, you can use the [0x02] command.
When it’s time for a character to leave the conversation, while their slot is open, using the command [ClearFace] to remove their portrait.
Oops. My apologies. I’ve forgotten
that I have somewhere to be![A][ClearFace]
That was bizarre.[A]
The [X] command is used at the end of each text entry.
Remember the slot-based commands from earlier? Scenario, I have a portrait in the Left slot, and I want it to move back slightly mid-conversation: [MoveMidLeft]. You can move any portrait to any slot. If, say, I have a unit in the Left slot and use [MoveLeft], the portrait will bounce in place.
Want a character to close their eyes mid-conversation? [CloseEyes] is the command for you, then. After applying that command, you can use [OpenEyes] to, well, open the character’s eyes. When a character’s eyes are normal, you can use either [CloseEyes] or [HalfCloseEyes]. These command apply specifically to the slot they’re used on. If you use [CloseEyes] while under [OpenMidLeft], only the unit in the MidLeft slot will close their eyes. The [Wink] command will close only the character’s outside eye.
You’re also able to control a character’s blinking with text commands. [DisableBlinking] does exactly what you think it does. Once disabled, you can use [EnableBlinking] to have the character resume blinkery. [DelayBlinking] disables blinking for a fixed amount of time, [PauseBlinking] disables it for a shorter amount of time (these commands do not queue properly).
[ToggleSmile] does exactly what it sounds like it’d do. If smiling is off, it’ll toggle it on (and vice versa). When smiling is turned on, any unit slot that is opened will use their smiling frames. The smile isn’t locked to the specific slot you use the command on.
[SendToBack] functions similarly, in terms of scope. When used, it’ll turn the effect on. If used while on, it’ll turn the effect off. When you normally use [Open______], the portrait comes out in front of other portraits. This effect makes portraits do the opposite.
Sometimes, you’ll want to have a pause mid-line for dramatic effect. […], […], […], and […] are all recognized by the game. The more dots in the command, the longer the pause will be. Pauses are typically used in conjunction with ellipses in text, but can be applied to a variety of situations.
[ToggleMouthMove] will toggle whether characters’ mouths move while speaking. Generally, you’ll use this command for ellipses (like when a line consists of only ellipses to indicate silence).
[ToggleColorInvert] will change the color of the text bubble, from a black font on a white bubble to a white font on a black bubble (which lacks the tail pointing to a specific face). This is generally used for ominous voices, ghosts, and other sorts of special dialogue. [ToggleRed] will just change the font color to red.
Want to change songs in the middle of dialogue? This can be accomplished in FEditor as well, albeit with a bit of help from the Event Assembler. The command [LoadOverworldFaces] is pretty self-explanatory in the realm of world map events. In conversational text, however, it’s used as a command to tell the game to continue reading events. The game will continue reading until the SCRO event command is used. After [LoadOverworldFaces], the game would read a MUS1 event command that changes the song mid-dialogue. Thank FE6 for teaching me this little trick. You can also use this trick to move things on the map, change the weather, or create a variety of effects mid-conversation.
In FE7, the [Tact] command loads the tactician’s name.
In FE6, you can hasten the speed of text with the [FastPrint] command. After using it, to return text to normal simply use the [NormalPrint] command. [FastPrint] also works in FE8, but apparently there is no equivalent for [NormalPrint].