FE_Builder_GBA -- If you have any questions, attach report7z

It was already set to default, so nothing changed. Plus, what about the Soldiers and Cavaliers?

I’m going to assume that you checked the animation palette and made sure that the enemy palette is set for the animations that you are using? If you have them then yeah just wait for 7743 unless someone else can give anything better to provide.

The application rules for the palette are as follows.

  1. Custom Palette

  2. General-purpose Palette

This enemy soldier does not have a Custom Palette, so the General-purpose Palette is used.

Let’s take a look at the general-purpose palette.

Enemy


NPC

NPCs look redder than Enemy.
I think you can make it a little red by swapping the NPC and Enemy palettes.

When the NPC palette is set as Enenmy
1

If you have the right palette, you can set the right colors by importing that setting.

Fan-made animations often don’t have enemy colors.
In many cases, it is only supposed to be used as player.
In that case, FEBuilderGBA will automatically create the enemy’s color according to certain rules, but it may not work.
In that case, set it manually or import the palette if the animation creator has distributed it.

Alternatively, you can use the features of FEBuilderGBA to create different colors.

Select the main color you want to make red and right-click.

Select the color you want to change in conjunction and make the color red.

When you’re done, press the Write Pallete button to write.

I think it turned red.
2

I will attach the color data I made, so if you want to use it, please import it.
Battle Animation Palette Lehran's Medallion FE8 (THE RIGHT ONE).gba_26

1 Like

Is there a way to port soundtables between 2 games ex. say I wanted fe8 with fe7’s soundtable. I know it’s possible to manually do it by porting individual tracks but is there an easier way?

Try this feature.

7743, is it possible to add a “text ignore code” into FEBuilder text files?

For example, to add comments to text files, making it clear which characters are talking and so on. For ease of reading and revising.

For example:

[09BC]
[OpenMidLeft][LoadFace][0x134][OpenMidRight][LoadFace][0x14B][OpenMidRight]Captain Saar of the Serafew Border
Guard. How fare you?[A]
I bring orders from His Majesty.[A]
Rumor has it that Princess Eirika of
Renais is making her way to Grado.[A]
You are to find her and to place
her in custody immediately.[.][A][OpenMidLeft]Yes, sir![.][A][OpenMidRight]One more thing[ToggleMouthMove]...[.][ToggleMouthMove][A]
A traitor to the empire has fled
Castle Grado.[.][A]
We've received reports she is hiding
somewhere here in Serafew.[A]
I don't care if you have to tear this[.]
town apart. Find the turncoat.[A][OpenMidLeft]Yes, sir, General Glen![.][A]
If she resists, do we have
permission to execute her?[A][OpenMidRight][ToggleMouthMove]...[.][ToggleMouthMove]Yes. Permission granted.[A][OpenMidLeft]Understood! Grado's will be done.[.][A]
The Grado Empire will repay the[.]
debt of betrayal with blood![A][OpenMidRight][ToggleMouthMove]...[.][ToggleMouthMove]His Majesty relies upon you, Captain.[.]
Be sure his trust is not misplaced.[.][A]
That is all.[A][OpenMidLeft]Yes, sir![.][A]

This is a scene from FE8. I would like to be able to add comments to it and reformat it to be much more readable for other people editing the text.

[09BC]
#Conversation between Glenn and Saar.
[OpenMidLeft][LoadFace][0x134][OpenMidRight][LoadFace][0x14B][OpenMidRight]
#Glenn speaks.
Captain Saar of the Serafew Border
Guard. How fare you?[A]
I bring orders from His Majesty.[A]
Rumor has it that Princess Eirika of
Renais is making her way to Grado.[A]
You are to find her and to place
her in custody immediately.[.][A]
[OpenMidLeft]
#Saar speaks
Yes, sir![.][A]
[OpenMidRight]
#Glenn speaks
One more thing[ToggleMouthMove]...[.][ToggleMouthMove][A]
A traitor to the empire has fled
Castle Grado.[.][A]
We've received reports she is hiding
somewhere here in Serafew.[A]
I don't care if you have to tear this[.]
town apart. Find the turncoat.[A]
[OpenMidLeft]
#Saar speaks
Yes, sir, General Glen![.][A]
If she resists, do we have
permission to execute her?[A]
[OpenMidRight]
#Glenn speaks
[ToggleMouthMove]...[.][ToggleMouthMove]Yes. Permission granted.[A]
[OpenMidLeft]
Understood! Grado's will be done.[.][A]
The Grado Empire will repay the[.]
debt of betrayal with blood![A]
[OpenMidRight]
#Saar speaks
[ToggleMouthMove]...[.][ToggleMouthMove]His Majesty relies upon you, Captain.[.]
Be sure his trust is not misplaced.[.][A]
That is all.[A][OpenMidLeft]Yes, sir![.][A]

In the above example, I used the ‘pound sign’ # as a comment code, but I don’t know if that is what FEBuilder uses, or if it uses some other method. Can you tell me what the comment code is, assuming it exists?

Hiya, so I’m having issues with my win/loss conditions.

My goals for the level:
-Win condition = 3/5 NPCs reach escape point
-Game Over = 3/5 NPCs are killed

I have coded events to win/lose this way via a thief escape patch/death quote event respectively. They have worked, however I have seen anomalies.

One being that I had 1 NPC die, while 2 escaped, and the chapter was cleared. Another being that only 1 NPC escaped, and the chapter was cleared near the end of their turn. Neither of which make sense to me.

Any help to clear up this confusion would be amazing!
https://drive.google.com/file/d/1sCcgWPpdX2cHg0GnQAv3Ta6aZ6d-suxI/view?usp=sharing

If you write that text in a textfile and load it from Texteditor’s Data Importer, comments are available.
Comments can be “#” or “//”.
FEBuilderGBA will ignore the line with the comment and import the data.

1 Like

Why did you create such a troublesome event?
In GBAFE, dealing with numbers greater than 1 is quite a challenge.
I think it would be easier if the game was over if even one NPC was defeated.

Oh, I wasn’t aware it was so difficult. I thought it would work with some boolean logic events depending on how many times the event was passed.

Is it not possible to do then?

From what I can tell, your escape point sets flag C, which triggers the check for how many escaped, but then you do not unset C in the event, so it can just repeatedly trigger.

If you really want to make this very tedious event, you can make event happen when each NPC dies, and record the death of that NPC with a counter or flag.
You can check the number of surviving NPCs on the map with CHECK_OTHERS.

Once you know the number of surviving NPCs and the number of dead NPCs, you can use subtraction.
The difference is the NPCs that have escaped.

If you understand this much, I think you can write the code.
However, this event is quite tedious and I think would not want to create it.

Doesn’t sound like it should trigger multiple times to me, but thanks I’ll look into it! Would a similar thing occur with the Death trigger or do those events not have the same issue?

Haha, thanks for the tips! I think I’ll try a little longer but may take your advice if it takes too long ~

No, because each death causes the event to fire individually. But the escape’s firing is tied to the flag being set, and since the flag just remains set, it sounds like it would trigger after every action after the first NPC escapes.

1 Like

The problem with that patch is that it tells you that someone Escaped, but it doesn’t tell you who Escaped.
If there is only one bandit on the map, you can tell that it was the bandit who did the Escape, but if there are multiple bandits, you can’t do this.

Therefore, I think it is easier to count the number of dead NPCs and subtract them instead of checking at Escape.

You need to keep track of who has died with a flag.
This would be a little easier if we could make the UnitID of the NPC unique.
Currently, we all share the UnitID 0xCF Soldier, which makes things more complicated.

For example, if you can assign UnitIDs up to 0xCF to 0xD4 to each NPC, it will be easier to set the flag in the death quote.

When 0xCF dies, set Flag 0x11.
When 0xD0 dies, set Flag 0x12.
When 0xD1 dies, set Flag 0x13.
When 0xD2 dies, set Flag 0x14.
When 0xD3 dies, set Flag 0x15.

Then, by checking and counting whether the flags 0x11 to 0x15 are set, the total number of deaths can be found.

If you write it in C language-like pseudo code, it will look like this.

dead_count = 0;
if (checkFlag(0x11)) dead_count++;
if (checkFlag(0x12)) dead_count++;
if (checkFlag(0x13)) dead_count++;
if (checkFlag(0x14)) dead_count++;
if (checkFlag(0x15)) dead_count++;

escape_count = 5 - dead_count;

if (escape_count >= 3)
{//Win if 3 people have escaped.
	call EndEvent();
}
else if (dead_count >= 3)
{//GameOver if 3 people have dead
	call GameOver();
}

I think it will probably be an event like this.
However, it is hard to make and hard to test.
I recommend changing the event prerequisites.
I think simpler conditions are sufficient.

If i think about it, we don’t need CHECK_OTHERS.
The total number is fixed at 5, so all I had to do was subtract from it.

In the start event, set counters 0 and 1 to 3.

Win condition: Range event, when one of the NPCs reaches the escape point, decrement counter 0. If counter 0 is equal to 0, clear the chapter.

Defeat condition: Have the NPCs’ death quotes trigger flag A (for example). Have an always event triggered by flag A which unsets flag A and decrements counter 1. If counter 1 is equal to 0, cause a game over.

This is not the only way to do this, but I think it’s simpler and you don’t have to use multiple unit IDs/flags for this.

2 Likes

Thanks for all the attention and effort being put into my issue! ^^

I tested the small correction that @knabepicer suggested (turning off flagC when fired) and from some quick testing it seems to be already working as intended. Though based on the continued discussions I assume there’s easily potential for more bugs that I’ve not triggered yet…

There are no enemies set to escape, so I don’t think there should be an issue with who escaped, as @7743 suggested. Unless I misunderstood your point.

With it currently looking like the chapter is working, I’ll probably just continue for now. When I get more playtesters later I’ll definitely be keeping a close eye on this chapter, and will refer to all the help you guys offered to tinker further if needed. Failing a permanent fix I’ll opt for a simpler solution, though between both your answers and the suggestion @Shuusuke offered I’m confident I can get it working!

Thanks again for all the help!

1 Like