UltraxBlade's #febuilder-help FAQ

EXP gain is too high, is there anything I can do about it?

Have you applied the Mode Coefficient Fix?

(What’s a Mode Coefficient?)

The short explanation is “search the patches list for Mode Coefficient Fix and apply it”.

The longer explanation is:
In the Normal modes of FE7 and the pre-routesplit chapters of FE8, there exists a value in the EXP formula known as the Mode Coefficient. The Mode Coefficient causes overleveled units to gain more EXP, sometimes more than underleveled units and sometimes by a ludicrous amount. It promotes snowballing and juggernauting and just results in an unbalanced EXP curve. The specific mechanism of what it does is roughly that, if your level is higher than the enemy’s level, it treats your level as half of what it is. (There’s some more stuff going on with class relative power but you get the idea.) You can remove it with the Mode Coefficient Fix patch, and I highly recommend doing so.

If you still need to adjust EXP gain further after applying the Mode Coefficient Fix, you can use the Modular EXP patch, which is included with the SkillSystem. It allows you to set multipliers and divisors on EXP by source, class, chapter, etc. for detailed control of EXP gains.


How do I install the SkillSystem?

Go to Advanced Editors and click Skill Config. Builder will prompt you to install the newest version of Builder Default SkillSys.

I want this feature of the SkillSystem, but don’t want skills. Can I just install that feature by itself?

Well, you can always just install SkillSys, then remove all the character and class skills. It comes with a lot of useful features besides skills. But if you really don’t want SkillSys, a lot of its other features are available standalone if you search the patches list. The notable exception is Strength/Magic Split. Growth Display is also not available as a standalone Builder patch, but it can be installed standalone with Insert EA using the files here: Teq's Minor Assembly Shenanigans - #13 by Tequila

How do I remove all the default skills? I want the other SkillSys features but not skills, how do I disable skills entirely?

The default installation of SkillSys in Builder will automatically assign skills to every unit and every class. For what I hope would be obvious reasons, DO NOT JUST USE THESE AS IS, even for the vanilla game they’re not really tested or balanced or anything, and you’ve probably changed things from vanilla that could cuase them to make even less sense. Whether you want a blank slate to start from or you’re just installing SkillSys for the QoL and don’t want skills at all, there are two ways to remove the default skill assignments: either go through each individual character and class and clear their skills, or wipe the whole list at once. Here’s how to do the latter:

WARNING: This will also wipe core skills like Canto. Be sure to re-add them after doing this.

In the character or class editor, click “skill” to get to the skill assignment editor. You can also get there from “assign skill by unit” and “assign skill by class” in the Advanced Editors.

At the bottom of the list of units/classes, click “Data Expansion”. Set the amount of new data to allocate to 0 and press “reallocate data and repoint” to erase the list. Immediately after, click “Data Expansion” again and expand it back to what it used to be to restore the list, now with no skills in it. Make sure to do this for both characters and classes if you want to remove all skills, and make sure you re-expand back to the original length to avoid potential errors.

Woah, default SkillSys adds a bunch of other things I wasn’t expecting. How do I turn them off?

SkillSys comes with a lot of useful stuff, but the default installation also includes a bunch of extra things you may not want. Here’s how to disable some of them:

Flashy Mode (killing blow on bosses is always animated as a crit even when crit rate is 0)

Apply this patch:

Patch Name:RemoveFlashyMode(SkillSystems)

Anima Triangle (adds an additional weapon triangle between Fire, Thunder, and Wind magic)

Search “anima triangle” in the patches list to find these three editors, and in all of them, click Data Expansion and resize the list to 0.

Patch Name:AnimaTriangle_FireList SkillSystem Version
Patch Name:AnimaTriangle_ThunderList SkillSystem Version
Patch Name:AnimaTriangle_WindList SkillSystem Version

Leadership Stars (the mechanic from FE4/FE5)

Find this editor in the Patches list. Click Data Expansion and resize the list to 0.

Patch Name:Leadership SkillSystems Version

Additionally, the default configuration may have player and enemy leadership star totals display on the battle status screen instead of player and enemy unit counts. Apply this patch to return to the vanilla behavior:

Patch Name:Remove leadership star total from the MENU->Status screen(SkillSystems)

(This screen. More recent SkillSys versions may already have removed stars from displaying here in the default.)

Now, you will still see the row for leadership stars on the unit stats screen. Removing that requires a custom re-installation of ModularStatScreen, which must be configured outside of FEBuilder.

Reaver Split (reverse and double weapon triangle are now two separate item properties)

Not really a thing to remove, but depending on your SkillSys version your Reaver weapons may no longer double the weapon triangle unless you also check the new “DoubleWeaponTriangle” box in the Item Editor in addition to the “Reaver Effect” checkbox. “Reaver Effect” now only reverses the triangle, it doesn’t double it.

Pop-Up Damage Numbers in Battle Anims

Enable Global Flag 0xEE in your first chapter’s Chapter Start Event. As long as that flag is on, the damage popup is disabled and won’t appear, and as a Global Flag, it will remain on for the rest of the playthrough until you turn it off. (If you have in-progress save files, you can also stick the “turn on flag 0xEE” in other chapter start events as well, nothing bad happens if you turn on a flag that’s already on.)

Strength/Magic Split (strength and magic separated into two different stats)

Now, I personally can’t understand why people wouldn’t want this. If you don’t have hybrid units, you can just set their other stat to 0 base/0 growth, and if you do have hybrid units, having two separate stats to work with gives you way more design space to work with for differentiating them. But if you want to disable Str/Mag Split, you will need to run a SkillSys Custom Build and disable the Str/Mag Split setting in the config file.


How do I make a hybrid class? The animations get screwed up and Builder says there’s an error.

Hybrid classes require a patch to work properly. There’s two options: “melee and magic menu fix”, which makes them work but keeps Str and Mag as the same stat, or installing the SkillSystem, which comes with Str/Mag split

How do I make Strength and Magic separate stats?

Install the SkillSystem. There is no alternative (unless you code it yourself). Strength/Magic Split in its current implementation is inextricably intertwined with SkillSys core functions.


How do I download and insert a spell animation from the repo?

To insert a spell animation from the repo:

Download the files off the repo. You need the entire folder for the animation you want, since you need the script and each of the frames. Unfortunately there’s no nice download link set up like there is for battle anims, but you can download selected folders with the GitZip browser extension. For more information, see here (under “Advanced User”).

In Builder, go to “Magic Extends” under advanced editors. It’ll prompt you to install one of the two versions of the Custom Spell Animations patch. One’s older, one’s newer, the newer one’s supposed to be generally better but has issues with some specific anims. Choose one to install.

Once the patch is installed, you should be able to click “Magic Extends” to go to the custom spell anims menu. Expand the list as prompted to make space, then choose an empty slot and click “Import Animation”. Select the .txt script file from the downloaded animation folder.

From the item editor, you can get to the “indirect effects” magic/ranged/projectile anim per item editor, in which you can now set it to use the new anim.

This spell anim I want to use has different versions for melee and ranged distance, how do I set that up?

Some anims have separate versions for melee vs ranged distance. If you want it to use the appropriate version at the appropriate distance, you’ll need to install the “melee/ranged spell loader” patch:

Patch Name:Melee/Ranged Different - Spell Loader @FE8U
Author / Source:kao [FE8U][FE7U]Spell Loader

This patch adds the option to the projectile anims menu to define different anims to use for melee or ranged. If you don’t set a different ranged anim, it will use the melee anim at range, so you don’t need to worry about changing everything that already exists.

The spell anim I’m using is missing sound effects, how do I fix that? How do I fix the existing Aircalibur anim in the ROM to not break the music?

FE8 does not have every spell anim sound effect from the other GBAFE games, just like those games don’t have every sound effect that’s in FE8. Some anims in the repo use FE6 or FE7 sound effects, as does the otherwise-fully-functional FE6 Aircalibur anim that exists in FE8’s data. As these animations expect sound effects that aren’t there, playing them will cause the battle music to break, as the game tries to play a nonexistent sound. (FEBuilder will usually pop up an error warning on the main menu if you have a custom spell anim trying to use a missing sound effect.)

If you know the song IDs the game expects those sound effects to be at and where they are in the original games, you can import themwith the “import music from other ROM” tool, but that’s tricky to track down the right locations of, and uses up more memory space. The easier fix is to search the Patches list for “fix sound” and apply all the “fixed sound of ___” patches that come up, which reuse close enough sound effects from FE8 in place of the missing ones (ex. using Excalibur sounds for Aircalibur.) – much more space-efficient, and much easier to do.

If you really want to use the original sound effects instead, you can track it down in the source ROM using Builder’s Debugger. In the etc tab, you can find a display of currently-playing music and sound effects, so if you trigger the sound effect in-game with the debugger open, you can check its ID.


How do Flags work?

Flags are markers you can set in the game, to later check whether they’re on or off. Some flags are Temporary Flags, meaning they turn off after every chapter, while others are Global Flags, meaning they remember their setting throughout the playthrough.

An event can have a thing called a Completion Flag. This specifies a particular flag for the game to turn on when that event runs, as an indicator that the event has happened. If the Completion Flag is already on, the event cannot run, as the game sees it as already completed.

How do I make zone-based reinforcements?

Zone-based reinforcement triggers have two steps, since you usually want the reinforcements to appear at the start of the next player phase, not immediately upon entering the zone.

The first part is the actual trigger, a Range Event set for when a player unit enters. This event needs a Completion Flag, let’s say Temporary Flag 8, so that it only happens the first time a unit enters the area, instead of happening every time a unit enters the area.

The second part is a turn-based event to summon the reinforcements at the start of player phase. This event is set to run every turn – start turn 1, end turn 255=infinite. However, this event also has a Completion Flag, let’s say Temporary Flag 9. By itself, this would mean that the event would run only on turn 1, and then not run after that because its Completion Flag is on. But instead, what you can do is have the Completion Flag be turned on manually in the Chapter Start Event, such that the reinforcement event never runs… until you turn its Completion Flag off manually in the Range Event, after which it will run once on the following turn!


I want to have multiple bosses with battle quotes in one map, but if one of them triggers their quote, the other’s quote doesn’t trigger.

You just have to make sure that each battle quote uses a different Temporary Flag as its Completion Flag that’s not used for anything else in the chapter.

When the game would run a battle quote or any other event with a completion flag, it first checks if the completion flag is turned on. If the flag is on, it does not run. If the flag is not on, it turns the flag on and runs the battle quote/event/etc. That flag stays on for the rest of the chapter if temporary or the rest of the game if global, unless it is manually turned off in an event.

If another event has already turned on a flag, an event that uses that flag as its completion flag will not run. For example, this is how zone-based reinforcements work. The reinforcement spawn event is set to happen at the start of every player turn, but with some completion flag. That flag is turned on at the start of the chapter, then turned off by an event that triggers when you enter the zone. Therefore, the event cannot run until the flag is turned off by entering the zone, but once you enter the zone, the enemies will spawn at the start of your next turn, then the flag turns back on and it doesn’t happen again.

How do I check if a flag is already being used?

In FEBuilder, whenever you have something that interacts with flags, you can get to the flag use checking menu by clicking on the flag, then clicking the button “Check Flag Usage in Chapters”. In that menu, go to the chapter this is supposed to happen in, and it’ll show you if and where each flag is being used. Make sure your battle quote flags aren’t used anywhere else in the chapter.

If you click on one of the lines where it says the flag is being used, FEBuilder will open that event.


How do enemy stats work?

When you place a unit in the Unit Placer, there’s a setting for autoleveling, with two options: Class Dependent and Do Not Grow. Generic enemies with generated stats should generally use Class Dependent, while player units/bosses/other units with fixed stats should use Do Not Grow and be loaded at the same level they’re listed to start at in the Character Editor.

Class dependent autoleveling means the unit is loaded with additional stats based on their Class Growths times their level*. Generic enemies usually start with nothing but their Class Bases, sometimes with small Personal Bases added on top, with most of their stats calculated from autoleveling. So, a level 10 enemy with 5 class base Strength, 2 personal base Strength, and a 50% class Strength growth would have, on average, 5+2+(0.5*(10-1))=7+(0.5*9)=11.5 Strength on average (assuming no difficulty modifier to their level). There’s some variance involved by default, so enemies can sometimes roll a point or two above or below average on any given stat.

*(There is a cutoff, by default 0x3F, at or below which units will use their Personal Growths instead of their Class Growths for autoleveling. This can be changed with a patch. It is meant to mark the divide between playable units and enemies, so playable units can gain personal growths-based autoleveling.)

Patch Name:Units after this Unit ID will Class Grow @FE8U
Author / Source:fe8 decomp project. Autolevel Function - #2 by HyperGammaSpaces

Promoted enemies gain additional autolevels for being promoted, based on the difficulty level. By default in FE8, they gain 9 extra levels on Easy and Normal, and 19 extra levels on Hard. These numbers can be changed from the patches list.

Patch Name:Change Lv bonus value to be given to the enemy’s promoted at normal difficulty @FE8U
Author / Source:7743
Patch Name:Change Lv bonus value to be given to the enemy’s promoted at hard-mode difficulty @FE8U
Author / Source:7743

Bosses, on the other hand, usually have fixed personal stats equal to their Class Bases plus their Personal Bases. Turning on autoleveling for a boss that’s not meant to have it means that boss, whose stats were already designed for a boss of their level, now gets that many extra levels on top of their personal stats. Ever wondered why that random Paladin miniboss in Battle Before Dawn, Maxime, is so ridiculously busted on HHM? They forgot to turn off autoleveling for him, so he gets like 30 extra levels worth of stats (because promoted).

What about enemy weapon ranks?

Enemies set to Class Dependent Autoleveling will also autolevel their weapon ranks to be able to use any weapons in their inventory that can be used by their class. Enemies set to Do Not Grow will not, but as those are generally units with fixed personal stats, you can give them personal weapon ranks as needed.

Of note: weapons with weapon locks or the “show prf” checkbox are ignored by weapon rank autoleveling by default, there is a patch to fix this:

Patch Name:Autoleveling Prf Weapons @FE8U
Author / Source:Datagne [FE8] PSA: Autoleveling Prf Weapons

How do Hard Mode Bonuses work?

Hard Mode Bonuses are a slightly different thing. All enemies, regardless of being set to Class Dependent or Do Not Grow, get a few additional invisible autolevels on hard mode, set from the Chapter Editor. There are actually also level adjustments for Easy and Normal, which in FE8 are both negative by default – FE8 easy and normal enemies have lower-leveled stats than their displayed level, though it can’t go below 0 autolevels. Generic enemies autolevel these bonuses based on their class growths as described above, while bosses autolevel these bonuses based on their personal growths.

There’s some catches to that when it comes to recruitable enemies:

  • FE6 doesn’t give hard mode bonuses to recruitable units who start on the map, but does give them to those who spawn as reinforcements. Coincidentally, most enemy recruitables in FE6 appear as reinforcements, hence why it seems like a mostly-standardized thing instead of the glitch it originally was.
  • FE7 I think gives them to all enemies, recruitable or no, reinforcement or no? But I’m not sure.
  • FE8 doesn’t give hard mode bonuses to recruitable units by default. It’s based on a unit ID cutoff, default 0x3B. Units with IDs below the cutoff don’t get hard mode bonuses, units with IDs above the cutoff do get hard mode bonuses. You can enable hard mode bonuses on recruitables with a patch.

As stated above, promoted enemies gain additional autolevels for being promoted, based on the difficulty level. By default in FE8, they gain 9 extra levels on Easy and Normal, and 19 extra levels on Hard. These numbers can be changed from the patches list.

Patch Name:Change Lv bonus value to be given to the enemy’s promoted at normal difficulty @FE8U
Author / Source:7743
Patch Name:Change Lv bonus value to be given to the enemy’s promoted at hard-mode difficulty @FE8U
Author / Source:7743


How do I remove the randomness from enemy autoleveling? I want enemies of the same level to always have the same stats.

The patch for non-random enemy growths is:

Patch Name:Change formula of automatic growth auto level of enemy. @FE8U
Author / Source:stan

It’s flagged as incompatible with the SkillSystem, but this is incorrect. The conflict is flagged because it overrides an option included in Custom Build that’s not even used with the default installation – specifically, an option that makes the Fixed Growths Mode flag also apply to enemies, and if you enabled that option you’d have an alternative workaround in just toggling that flag on and off before and after each enemy load.

To ignore the false conflict and install the patch anyway, do the following (Warning: most other conflicts Builder identifies are very real, do not do this with random patches!):

Find the patch in the patches list, and click “open patch file” to open the patch’s definition file.

In that file, delete these lines at the bottom, which FEBuilder uses to detect the SkillSys “conflict”:

Save your changes, then go back to the patch in FEBuilder and click “reload patch”:

The patch should now be accessible. Ignore the fact that the dropdown shows a blank selection, change it to “((growth * level_count) + 50) / 100)”, then click Write.


How do I make it so this dialogue only plays if this character is alive?
How do I make a village check who’s visiting?
How do I make a gaiden chapter with a turn limit to unlock?
How do I make it so X happens when Y is the case?

How do conditionals in events work?

I’ve explained conditionals so many times that I almost want to make a video on it, but I don’t know how to make videos and don’t quite have the energy. So I’ll grab one of my more in-depth examples from Discord, answering “Does anyone know how to write it so an event happens only if a certain unit visits a house?”

Alright, so, let’s start with the general idea. What you want to do is:

Check if the visiting unit is that specific unit
If they are, do the special thing
If they aren’t, do something else

This kind of thing, where what happens depends on some condition, is done in events with conditional branches, which generally take the following form:

Get the value of something
Compare the resulting value to something else, if the comparison holds true skip to a Label
    If the comparison was not true, this part will run
Label to skip to

Or, when you have two different cases instead of just "do the thing or don’t do the thing:

Get the value of something
Compare the resulting value to something else, if the comparison holds true skip to First Label
    If the comparison was not true, this part will run
    Skip ahead to Second Label
First Label to skip to
    If the comparison was true, this part will run
Second Label to skip to

In this case, the value you want to check is the ID of the active unit. There’s a command for “Check if active unit matches specified ID”. This command, like any other “get this value” or “check this condition” command, will store its result in Memory Slot C – specifically, it will store a 0 there if the active unit does not match, or a 1 if the active unit does match. All yes/no “check” commands should return 1 if the check is true, or 0 if the check is false. If you’re ever unsure, Builder includes notes on each such command detailing its return cases when you hover over its description in the event editor:

Next, you need a branch command to check the result and determine whether or not to skip ahead. There are a lot of these – BEQ (branch if equal) and BNE (branch if not equal) are the most common. These commands compare the values in two different Memory Slots. Most often, you will compare Slot C, the result of the previous get/check function, with Slot 0, which always has the value 0. So, if Slot C equals Slot 0, the result was 0, and the active unit does not match. When you need to compare Slot C with a nonzero value, you can use the “Imm” variants of these commands, Imm BEQ, Imm BNE, and so on, which directly compare Slot C to a specified value.

Finally, you use Labels to mark where in the event to skip to. Each label must be unique within the event – you can only have one Label 0, Label 1, and so on in each event, but multiple separate events can each have their own Label 0.

In addition to skipping to a label when a certain condition is true, you can also unconditionally skip to a label with GOTO, the command to go to a label.

So, with that, we have:

Check if active unit matches [Unit ID of the special unit]
BEQ if [Slot C] == [Slot 0] go to [Label 0], else execute following
    [Whatever happens if that unit is the one visiting]
Label [0]

Or, if you want it to do something different when another unit visits instead of doing nothing:

Check if active unit matches [Unit ID of the special unit]
BEQ if [Slot C] == [Slot 0] go to [Label 0], else execute following
    [Whatever happens if that unit is the one visiting]
    GOTO [Label 1]
Label [0]
    [Whatever happens if that unit is NOT the one visiting]
Label [1]

This example I screenshotted from my hack, doing exactly the situation described above, also sets and checks a Flag to make sure it doesn’t give the item twice by putting a conditional block inside a conditional block, since it’s in a house that can be visited multiple times. You can also reference the village in Chapter 2 of vanilla FE8, which has a different result if Eirika visits it vs if anyone else visits it.

Here’s another example from my hack: a yes/no branch for a gaiden chapter, requiring a certain character to be alive and a certain flag to have been set during the chapter.

When Caitlyn is alive and Flag 10 is on, it gives you a choice to go to the gaiden chapter, displaying a textbox with the [Yes] command in it.
[Yes] and [No] are largely interchangeable commands for putting a yes/no choice in text, the only difference being that [Yes] has the cursor start on the “yes” option while [No] does the opposite. In this event, when the player says yes, it sends them to the gaiden chapter without the world map. When the player says no, or if they didn’t meet the requirements to get the option in the first place, it sends them to the next main chapter, with the world map. Note that they can’t both use the world map, as once you send the player back to the world map, the actual next chapter they enter is determined by the next World Map Node, not by the “goto next chapter” command.

In general, it is often worth looking for and referencing places in vanilla that you know have a similar condition to what you want. FEBuilder also has a set of Event Templates that include various simple conditional structures. If you have more questions, stop by the Discord and I’ll probably be around.


How do I change music (or run other events) in the middle of a conversation? The heck is a [LoadOverworldFaces]?

In Builder’s Event Templates, you should be able to find “execute events side-by-side during a conversation to change music”, which is the most basic such structure. Just start typing it out to search the list.

It should give you something that looks like this:

To make a conversation where the music changes once, use that template. Set the text entry to the one you’re using, set the music to what you want before the change and after the change, and in the conversation text, add [LoadOverworldFaces] where you want the music to change.

To change music more than once in the same conversation, here’s a more detailed explanation of how it works.

[LoadOverworldFaces] is a text command, included in text, like [A] or [ToggleSmile]. What it basically means is “stop the conversation here and continue the running event”. You combine it with certain structures in the event, such as the one in the template, to make things happen during the conversation.

The normal dialogue command is actually multiple commands in one: TEXTSTART, TEXTSHOW, TEXTEND, and REMA, in that order.
TEXTSTART tells the game “get ready to start a dialogue conversation” (as opposed to a textbox with TUTORIALTEXTBOXSTART or other text display)
TEXTSHOW makes the text actually appear.
TEXTEND is where the text stops and the event resumes.
And REMA is what clears the text/portraits/etc from the screen.

There is, however, one other command: TEXTCONT, continue/resume text, which resumes an active conversation that was paused by [LoadOverworldFaces].

The general structure of an event with a conversation using [LoadOverworldFaces] is as follows:

events before conversation
event after first [LoadOverworldFaces]
event after second [LoadOverworldFaces]
events after conversation

Each time you hit a [LoadOverworldFaces] in the conversation, it returns to the event at the next TEXTEND, and then goes back to the conversation at the next TEXTCONT
When the conversation’s finally over, you put REMA after the last TEXTEND as always to clear the conversation from the screen.

The “execute events side-by-side during a conversation to change music” template is this, set up for one [LoadOverworldFaces]. The first time the conversation stops, it changes the music then resumes it. The next time it stops, it ends the conversation and clears the text.

If you don’t get all that, just stick to using the template. All you have to know with the template is “put [LoadOverworldFaces] in the conversation where you want the music to change”.


How do I import music from the Music Repo?

First, you’ll need to install two patches: Native Instrument Map 2 (NIMAP) and Drumfix. Once you’ve installed those patches, download the .s file of the song you want from the repo (not the .ogg, that’s just a preview for you to listen to, you want the .s). Then, in Builder, go to Song Table → Song Track Editor, and find either an empty track or a song you’re willing to replace. Select it, then click “import music”, and select the .s file. Builder will ask you what instrument set to use, and if NIMAP is installed will offer that as the default. All music in the repo is formatted for the NIMAP, so just click the confirmation button, and the song is imported!

To add it to the Sound Room in-game and change the song’s name, you then go to Song Table → Sound Room Editor and add it as an entry in the list.

What about the “import music from another ROM” tool?

It is generally advised not to use this for actual music, as importing music with this function will copy over the entire instrument set of that song along with it, eating up large amounts of memory space. (It is, however, useful if you need to import sound effects that don’t have a close enough equivalent in the base ROM.) Repo music using the NIMAP takes up much less space as the NIMAP instruments are already in the ROM. But if you must, it’s found in “tools”, and the way it works is fairly simple: it’ll show you the sound table of your ROM and the ROM you’re importing from. You select which entry to import from the other ROM, and which entry to replace in your ROM, and click “import”. You’ll have to check the sound table of the other ROM yourself to figure out what’s what.

Note: DO NOT USE THIS TO RIP MUSIC FROM HACKS. Directly taking assets from other people’s hacks without their permission is art theft.


What FEBuilder patches are considered quality-of-life?

First of all, my honest recommendation is to install the SkillSystem and remove skills, as SkillSys comes with so much quality-of-life built in that I honestly can’t even remember all of it off the top of my head until I notice it’s missing in a non-SkillSys hack. While most of it is available standalone, not all of it is, and tracking down the individual patches can be annoying. But aside from that:

General QoL:

  • ModularMinimugBox – Allows you to add information like stats and inventory to the minimug box display when hovering over a unit. The exact information it shows can be customized by editing the installation files, and you’re encouraged to do so, but there are a handful of solid defaults in Builder.
  • HP Bars with Warnings (included in SkillSys)
  • Battle Stats with Anims Off (included in SkillSys)
  • Check danger zone with Select (included in SkillSys)
  • Show how much HP is healed with staves
  • Nullify move range of units with stationary AI is included with SkillSys, but is not available as a standalone Builder patch. Its standalone non-SkillSys version can be found here and installed manually with Insert EA.
  • Set default text speed to fast
  • Turn off autocursor by default
  • OPENING_CUT – disables everything before the title screen (health and safety warning, Nintendo/IS logos, and opening animation). These can also be disabled individually if you for some reason want to keep part of this.
  • Various patches to reduce lag and fix bugs
  • Check growths on statscreen isn’t a standalone patch in Builder outside of SkillSys, but it can be installed standalone if you want to, you just have to install it yourself with Insert EA. This is also bundled with being able to see who a unit can talk to on the stat screen.
  • Adding Casual Mode as an option – I advocate strongly for designing around Classic Mode, but support adding Casual Mode as an option for casual players. Giving the option is as easy as installing the patch and it doesn’t take away anything to include it for the people who want it.
  • Add a game option to disable staff and dance animations
  • Show weapon stats of monster weapons
  • Not a patch, but including in item descriptions actual numbers for things like how much a Vulnerary heals for
  • Hold A to speed up battle animations (warning: one version of this patch is known to be a bit glitchy, test it out and see if it causes any unwanted side effects in your ROM like jank in spell animations or slowing base animation speed)
  • Hold L to skip battle animations
  • While not inherently a quality-of-life bonus just by installing it, the “display multiple escape markers on map” patch can be used to create visual indicators for all sorts of things on maps (including but very much not limited to actual thief escape points), which in the right situations can be very helpful for communicating information to the player.

Typing #ESSENTIAL in the patch list search bar will also come up with a bunch of useful and important fixes.

There’s a handful of other things that are mechanical changes, but people usually like and generally don’t hurt:

  • Convoy expansion to 200 (this is part of ExModularSave, and therefore included with SkillSys)
  • Talk doesn’t use your action
  • Support doesn’t use your action
  • Stealing with a full inventory
  • If you have supports, changing how supports work in some way, such as increasing the support gain range or changing it to FE9-style per-chapter gains or just making them grow faster. There’s a lot of different ways you can go, but most people agree vanilla GBA support gains are too slow/restrictive and could use improvement. (To do FE9-style, find the patch to set support gain range and set it to “whole map”, it will change it to trigger once at the start of the chapter for being deployed together.)

And others that are more significant changes, which some people could consider to be QoL but have serious design implications you have to build around:

  • Thracia trading, being able to trade multiple times in one action - makes item management more flexible. Too flexible, potentially, one unit can completely rearrange and swap around the inventories of everyone adjacent to them all at the same time.
  • Moving force-deployed units, instead of them always being in the same place – a nice feature for more “normal” levels where the lord/forced units are just grouped with everyone else, but it prevents you from designing levels around certain units starting in specific places, ex. the lord getting separated from the main army. (Well, it doesn’t make it impossible, but you have to do some shenanigans where you prevent them from being deployed and then load them onto the map after preps. There’s a more updated version of move force-deployed units that lets you toggle it per-unit, but that version’s not available as a Builder patch, you’d have to insert it yourself.)

Oh, and if you’re willing to do a bit more work to install it and set it up, give Danger Radius and Droppable Item Marker a look. But it requires installing it with Insert EA, as it’s not a Builder patch, and you have to edit the fog palettes of all your tilesets. (Well, you don’t have to, but highlighted enemy ranges showing up fog-colored is weird. It comes with a script to process palettes easily for Buildfile users, but it doesn’t work nicely for FEBuilder.) Vesly has also made a version that adds a stealable item indicator as well, which can be found here – if you want Danger Radius alsongside it, you’ll have to install Danger Radius first, then change the Installter.event file for DisplayObtainableItem to have True instead of False towards the bottom for using Danger Radius.

Another non-Builder patch: Convoy Partition and Item Combination by Tequila, which allows you to merge uses of duplicate items by holding L while depositing them in the convoy. (It also comes with functions to partition the convoy between multiple parties if you need that, but the QoL feature is the item merging.) To use it, you do need to change some values in the .event config file, particularly if you’re using SkillSys, to make sure it has the proper address for the convoy and the correct number of items in it.

Some notes on installing Convoy Item Combination in Builder

If you’ve installed EMS or anything else that messes with save structure, you’ll need to make sure to change the address in the .event file for where the convoy is to match where it is in your ROM. If you have the wrong address, your convoy will end up getting wiped.

To find the correct address, run your ROM from Builder to open it with the debugger. Go into the game, then in the debugger, under the “Etc” tab, find “Supply”, and check the address on the upper-right of the list. That’s the address you need to have in the .event file.

If you’ve installed a version of EMS that expands the convoy, you’ll also need to change the values for how many items can go in the convoy. (Note: installing the convoy partition hack won’t change the amount of things in the convoy can be saved, so you’ll need EMS first to go above 100 total.) If you’re just using the hack for item combining, just specify a single full-convoy partition like this:

You may find that the colors for the “L+R: Combine” graphic on the convoy screen get screwed up. To fix this, at the end of the .event file, comment out the #incbin s and uncomment the #incext s, like this:

Once that’s all set up correctly, in Builder, go to “Insert EA” under the advanced editors, select the .event file, install it, and test to make sure it’s all functional. (Make sure your convoy doesn’t disappear after you do things in-game!)


My Chapter Start Event is acting weird. It’s not showing units moving, the camera’s jumping around instead of scrolling, and it’s skipping things.

You probably have the chapter set to start faded to black in the Chapter Editor, and forgot to include a “fade screen in from black” at the start of the event where you want it to start showing things happening.

But the screen isn’t black?

Some things in events can force the screen to show while the game still thinks it’s faded out, resulting in this issue as the game tries to skip through the “faded-to-black” event.


How do I go to the next chapter WITHOUT the World Map? The game’s freezing when I try!

To go to the next chapter without the world map, all you have to do is use the “go to next chapter without world map” command in the previous chapter’s End Event, and specify the chapter ID to go to. However, the vanilla game is hardcoded to only allow going to specific chapters without the world map. Luckily, as you might expect, there’s a patch to fix it. Search for “MNC2 Fix” in the patches list. There are two versions, one that disables skirmishes and one that doesn’t.

How do I go to the next chapter WITH the World Map? It’s not going to the chapter I want!

To go to the next chapter with the world map, use the “go to next chapter with world map” command. However, while this command takes a chapter ID, that chapter ID doesn’t actually determine what the next chapter is. When using the world map, the next chapter is determined by the chapter ID set for the World Map Node you enter. In the World Map Nodes editor, you’ll find that each node has two chapter IDs. The first is used for pre-routesplit and Eirika Route, the second is used for Ephraim Route.

If the current chapter was entered without the world map, you will likely need to use the version “go to next chapter with world map based on designated base”, which specifies which world map node the player appears at when returning to the world map.

I have a gaiden branch set up, but it’s going to the wrong chapter.

Both versions of the “go to next chapter” command do not actually end the event and go to the next chapter, they only tell the game what to do once the event ends. Therefore, if the game sees one “go to next chapter” and then another “go to next chapter”, it will go to whatever is specified by the last one it saw. You need to make sure that your conditionals for the gaiden branch are skipping the alternative chapter’s “go to next chapter” command, for example:

BEQ if [slot C result]==[slot 0 always 0] goto label A, else:
    [result if flag is on]
    go to next chapter without world map [gaiden]
    goto label B
label A
    [result if flag is off]
    go to next chapter with world map [main chapter]
label B

This would go to the gaiden chapter if the flag is on, or the main chapter if the flag is off. The “goto label B” here is the important part, causing it to skip past the other “go to next chapter” after the command to go to the gaiden.

It is also worth noting that, as mentioned above, when going to a chapter with the world map, the chapter is determined by the next World Map Node and not the command, so barring complex world map eventing that I’d rather not get into, you cannot go to different chapters with the world map based on the end event’s conditional, so you will usually have to have at least one side of the branch (usually the gaiden) go to the chapter without the world map.


Units in my event aren’t loading, aren’t moving where I tell them to move, and/or have weird duplicates appearing when they move.

You’re probably missing an ENUN command after one of your move or load commands. ENUN is the command that tells the game to wait until units finish moving before continuing the event. If units start moving, or load in with a movement path, and the game tries to keep doing other things before they finish, weird things can happen and your events will not work. FEBuilder has an option for “move+ENUN” as one combined command, and similar for various loads, or you can put in ENUN by itself.

How do I make multiple units move at once in a cutscene?

So, this is basically the opposite of the above issue. You’re using Move+ENUN for each individual move, so the game waits for each individual move to finish before starting the next one. To move multiple units at once, put multiple Move commands in a row without ENUN, then put a single ENUN at the end. There is a limit of 4 units moving at once. Any more should begin moving after one of the previous ones stops, but can sometimes have issues, so it’s better to only move 4 at a time and put ENUNs in between.


Is it OK to use this asset I found in someone else’s hack? (ANSWER: Not without permission!)

See here for the full FEU credits policy.

See here for the full FEU usage permissions and plagiarism policy.

To rip assets from someone else’s hack, whether it be art, music, maps, code, anything, without their permission is art theft and violates FEU’s plagiarism policy. If you see something in someone else’s hack that you want to use, check the Resource Repository. Anything in the Repo is Free to Use (F2U) so long as you credit its creator. If it is not in the Repo, you can try asking the artist/the creator of the hack, but until you receive permission to use it, all assets you see must be assumed not allowed.

Is it OK to edit this asset I found in the Repo? (ANSWER: It depends.)

See here for the full FEU credits policy.

See here for the full FEU usage permissions and plagiarism policy.

All assets in the Repo are Free to Use (F2U), but cannot be assumed Free to Edit (F2E). There are, however, exceptions:

  • A F2U asset that is not F2E can still be freely recolored, so long as you are not making changes beyond the colors.
  • All Animations in the Repo are Free to Edit by default.

For other resources, as before, ask the artists. Many are, in fact, openly F2E or willing to give permission by request, but simply aren’t labeled. You just can’t assume as such without asking.

How should I credit the creators of art and code assets in my WIP project? I don’t have end credits yet!

See here for the full FEU credits policy.

See here for the full FEU usage permissions and plagiarism policy.

Don’t worry, you don’t need to add credits in your hack itself before the end credits are reached. A credits document linked from your hack’s page alongside the download link is perfectly sufficient. The important part is that you credit everyone whose work you used. It’s also nice to credit people who helped you with the process, even if they didn’t directly make things. Like someone who helped you with a design issue, or who showed you how to do basic ASM. Or maybe the guy who answered all those FEBuilder questions for you on Discord, he seems pretty cool.

How do I check what patches I have installed in FEBuilder? I realized I’ve been forgetting to credit their creators!

See here for the full FEU credits policy.

See here for the full FEU usage permissions and plagiarism policy.

While people give more attention to crediting art, code assets should be credited too, including all of the many patches you install through FEBuilder. I highly recommend keeping your credits document up to date as you go, so you don’t need to go back and dig up every patch you’ve installed to compile it later. But if you’ve been forgetting, typing an exclamation point ! in the patch list search bar will show all the patches you’ve installed.

Do note: FEBuilder’s check for whether a patch is installed searches for a particular signature at a certain place in the code of your ROM. That signature is often the same for different versions of the same patch, so all the versions read as “installed” even though you only installed one of them. So don’t be surprised if you see multiple versions of the same patch pop up as “installed” when searching this way.


My character’s portrait is getting cut off at the edges when I import it.

Your portrait is likely getting cut off by what’s known as the hackbox, an area of the portrait image that isn’t actually usable normally. Here’s some standard templates that show it:

correct portrait alignments image portrait template

Those areas in the upper-left and upper-right of the portrait box can’t actually be used in vanilla. But if needed, there is a patch to allow you to exceed the hackbox by a bit:

Patch Name:Exceed The Portrait Hackbox By 4 Tiles @FE8U
Author / Source:tiki [FE7] Exceed the Portrait Hackbox Compatability:aera

How does the Exceed Portrait Hackbox patch work?

The exceed hackbox patch doesn’t fully eliminate the hackbox, but it allows you to go a bit outside of it. Specifically, it gives you two extra 16x16 squares you can position outside its bounds. Here’s how you set it up, using an example from my hack.

(Note: installing this patch does not have any negative effects on preexisting portraits, nor does it require making any changes to their settings. There is a field you have to enable on a given portrait for it to use the exceed tiles in the first place, which defaults to off.)

You have to break the area that clips out of the hackbox into two 16x16 tiles aligning to an 8x8 grid, much like how mouth and eye frames do. You know how there’s an unused space in the bottom-right of a portrait image? You put those two tiles there.


Once you import the portrait, set “mug_exceed” to 1 to make them appear and access the settings to move them around. Set the coordinates so they align as needed.

And there you go! Your portrait now fits where it previously couldn’t.

Worth noting: you can extend a portrait to the right with this! It won’t show in Builder’s preview, but you can place the tiles out of bounds to extend a portrait to the right of the hackbox.

Also, an exciting piece of tech: the coordinates the patch uses are actually read as signed values in 2’s complement. What that means is 255 is -1, 254 is -2, 253 is -3, and so on. This means you can actually extend up and left too!

Hair extension added with two tiles at Y=254, aka Y=-2


Thank you so so much for this. I could kiss you right now. This is a godsend.


I’m having trouble understanding the AI settings in the Unit Placer. How do I make an enemy rush you, wait until you’re in range, not move at all, steal treasure, run to escape, etc.?

In the Unit Placer, you’ve probably noticed how each unit has multiple different components to their AI.
AI1 and AI2 define how a unit will attack and move. Usually, AI1 controls attacking, and AI2 controls moving. AI1 will always take priority over AI2, so if you have AI1 set such that the unit will attack anything in their range, they will move to attack something in their range even if AI2 says “do not move”. If AI1 does nothing, the game then defaults to AI2.
AI3 has two components: healing AI, which controls when an enemy will switch to healing mode and seek out healing, and targeting AI, which determines how a unit chooses who to attack.
AI4 has to do with whether or not enemies are fully stationary, and determines whether a unit in healing mode will run away or not.

Now, I won’t go over every single AI setting here, but generally speaking, the important ones are:

“chance of action 100%” means they’ll move to attack anything in their range, or take other actions available like using staves. This is the most common AI1 setting.
“chance of action 100% attack only if adjacent” means they’ll only attack if they can do so without moving. This is mainly used for stationary enemies. If you put it on an enemy with a moving AI2, the result will be that they either move OR attack, but not both.
“do not act (move only)” means they won’t attack at all. Use this for units who are moving towards objectives without attacking, like running thieves.

Anything with chance of action less than 100% and greater than 0% should probably be avoided, it causes the enemy to have a random chance to do something or not do something and is very frustrating to the player as a result. (“Why did that enemy not attack me last turn but attack me this turn?!”)

For the love of Naga do not use “attack if in half range”, it’s extremely deceptive. Enemies on this AI will only attack if there is a target reachable within half their movement range – HOWEVER, if there is such a target, they will move to attack anyone within their full movement, not just the unit(s) within half range. There is no way for a player to naturally tell that an enemy will only move once you’re within half their range, and even if they know that, they likely won’t know that getting within that range will cause the enemy to move full move to attack.

“move towards enemy” is aggressive AI, and will rush towards you.
“do not move” is “wait in place until AI1 tells me to do something”. Combining it with attack-only-when-adjacent AI1 is how you make stationary enemies, while pairing it with the normal “chance of action 100%” is how you get enemies that wait until you’re in range.
“if possible to attack in 2 actions, move towards enemy” will cause them to only become aggressive once they can reach a target in 2 turns from their starting position.
“wait one turn, then set AI2 to 00” will stand still for one turn (unless AI1 says to do something), then switch to rushing the player.
Most of the rest here are self-explanatory – go after villages and chests, move to destroy walls and snags, run to the escape point, etc. Remember that AI1 takes priority, so an enemy set to attack will prioritize attacking the player over breaking walls or stealing treasure.

A note on “move to escape point”: this obviously requires an escape point on the map. Escape points for enemy units and NPCs are set separately on a per-chapter basis. You can find the escape points editor linked from the Chapter Editor, in the bottom-left corner.

AI3 Healing AI
The thresholds you set here determine when healing AI activates and deactivating. Each setting has an recovery mode activation threshold and a return/deactivation threshold, with healing mode activating once a unit falls below the activation threshold and deactivating once they’ve regained enough HP to be above the deactivation threshold. Enemy healers will only heal targets who have activated their healing AI, and enemies will only use Vulneraries if their own healing AI is activated. Enemies with activated healing AI will run away towards sources of healing, or run away to use their healing items, only if they can get out of the player’s range while doing so.

AI3 Target AI
These change how the enemy prioritizes who to target when they have multiple targets in range. The parameters can be tweaked if you know what you’re doing, but my honest recommendation if you don’t have a specific reason for messing with this to just use the standard one, setting 08 “PrioritizeLowHP” (formerly labeled as “PrioritizeDamage (Standard)”), which is the typical “target the unit I can do the most damage to” behavior you’re used to in the GBA games. There’s more detailed documentation out there if you want to get into the details.

In short: use “Retreat” if the enemy can move, use “Don’t Retreat/Boss AI” if the enemy can’t move.

“Retreat” is used for normally-moving enemies, and will cause them to retreat towards healing when AI3 healing AI activates. They will retreat towards healing tiles or enemy healers, or simply run away while trying to use a vuln. However, they only retreat if they can get out of the player’s range while doing so, hence why you don’t see enemies constantly running away when on low health.

“Don’t Retreat/Boss AI” is for stationary enemies ONLY. It causes enemies to not retreat towards healing when their healing AI activates, but still be targeted by healers and use healing items without running away. It’s also what’s used to nullify movement range display with SkillSys – setting AI4 to this setting with SkillSys installed makes an enemy entirely unable to move or be moved, and will display as such when checking their range. Without SkillSys, it doesn’t fully prevent moving, but setting it for a moving enemy has weird and unpredictable results including not attacking, so you should not to set it for an enemy that isn’t stationary.

Common combinations:
“Rush the player”: AI1 chance of action 100%, AI2 move towards enemy, AI4 retreat
“Wait until something’s in my range”: AI1 chance of action 100%, AI2 do not move, AI4 retreat
“Stationary, never move, attack things that get close”: AI1 chance of action 100% attack only if adjacent, AI2 do not move, AI4 Boss AI
“Steal treasure then run away, no attacking”: AI1 do not act, AI2 attack villages/treasure then move to escape, AI4 retreat
“Attempt to destroy villages, but attack if there’s a target”: AI1 chance of action 100%, AI2 attack villages/treasure then move towards enemy, AI4 retreat
“Escape without doing anything”: AI1 do not act, AI2 move to escape point, AI4 retreat
“Stand still and do nothing”: AI1 do not act, AI2 do not move, AI4 Boss AI


The text box in this conversation is glitching out. It’s extending off the edge of the screen and wrapping around, and the text isn’t all showing up. What’s wrong?

This kind of error is usually caused by exceeding the maximum text width. Usually, Builder will give you a warning when your text is getting too long, so please, as with any warning Builder gives you, listen to those warnings when they show up. However, actually exceeding the maximum width on one line isn’t the only way to exceed the maximum width. My most likely guess for what’s actually happening for you is that you have a character talking twice back to back from the same position, without closing the text box in between. What does that mean? Here’s an example:

In this edited version of FE8’s opening, Seth speaks twice in a row from the same portrait position in two separate “character talks” commands, resulting in the screenshot above. The game doesn’t actually close the text box in between, and instead tries to continue the next text right where it left off, exceeding the maximum width in the process. The game looks ahead to calculate the text box width based on the longest line before it closes, and this doubled-up line spills over.

You may be thinking “well, I don’t have anything like that going on. Why would I ever split it into two text blocks like that?” Well, it’s a little trickier than that. These all produce the same result:

Gilliam’s portrait here is being loaded in the same position as Seth’s.

None of these actually close the active text box. Only having a different position speak or erasing the active position’s portrait (not moving to a different position, not loading a new portrait in that slot, specifically erasing that position with the erase command) will do it inherently. However, there is something you can do to tell the game to close the text box: [CloseSpeechSlow]. The [CloseSpeechSlow] command can be inserted in text, usually at the end after the [A] wait for button press, to close the active text box, like so:

And now it works properly!