Toggle Background Color

Game Mechanics: Action Speed

One thing that's important to keep in playing these games is how fast your party members are. Being able to act before the enemy is a pretty huge advantage in these games. The last thing you want to happen is something like a monster killing one of your front liners, and then having your healer waste their time healing a dead guy. Action Speed is primarily determined by the AGI stat, but it can be adjusted by a few other things. In EO1 speed was only determined by a character's AGI stat, and the speed modifier on their skills, which were multipliers in that game. The system remained mostly the same in EO2, with one big change. The weapons a class could equip now had speed modifiers of their own. However, they had extreme multipliers affecting speed a lot, almost making it so that the turn order would play out the same way every time.

While the devs realized that while giving weapons different speed modifiers could be an interesting idea to spice things up, making speed modifiers that extreme wasn't ideal. The idea stuck around, but the speed system pretty much got reworked. Speed modifiers were changed from multipliers to be additive values in EO3. (While equipment speed modifiers stayed as additive values in the Untold games, skill speed modifiers reverted back to multipliers.) And all pieces of equipment affected your character's action speed, not just weapons.

The speed formula is as follows:

Action Speed Formula posted:

Speed = AGI + Total Equipment Speed + Skill Action Speed + Priority Modifier + SPD Forge Power + A Random Number From 0 to 4 + 2000

If Speed is less than 1, then Speed = 1.

If Speed is greater than 32767, then Speed = 32767.
Skill Action Speed is the Action Speed modifier within skills, and SPD Forge Power is dependent upon how many SPD Forges your character has on their equipment, with a value of +2 being added for each SPD Forge. Equipment speed is determined by these values:

Weapons:
Equipment:
*While the Summer Tweed and Bikini Armor are classified as Clothing, they actually give an action speed bonus of +0 and +10, respectively.

The equipment speed modifiers on a character are then added up and applied to the formula. It can be worth it just to give a Knife to a slow character who barely makes use of their regular attacks (i.e. a Hoplite or a Zodiac) just to ensure that they move faster. Boots are pretty much the best way to increase a character's action speed, which is why people like putting those on their characters, despite the fact they don't provide as much defense as other pieces of equipment. Speeds are then randomized a bit by adding a random number from 0 to 5. And then a constant of 2000 is added on to prevent negative numbers, as the function that determines speed cannot handle those. In the event that your speed is still negative after that, it's just set to 1. There's also another cap in case you go over 32767 speed, but it's impossible to reach that in normal gameplay.

There's also another aspect to Action Speed, Priority Modifiers. To ensure that some skills go first or last, they are given priority over other skills. However, the game handles this a bit weirdly compared to the previous games. Instead of a hard priority bracket, it opts to add or subtract a ton of action speed instead. The exception to this are Limit Skills, and certain skills that go at the end of the turn. They will always go first or last, but if two or more people are using the hardcoded priority skills in the same priority bracket, then the game simply just runs the speed code again to determine the turn order in those brackets.

As for the Priority Modifiers themselves, they are as follows:
**While Cloudbuster's damage component has a negative priority modifier, it actually sets the user's speed to 1 in practice due to being factored in after the speed formula has finished running.

The same priority bracket cannot apply to a given action more than once. So while Quick Draw can stack with Knighthood, it cannot stack with Fore Honor.

If units somehow actually get into a speed tie, which will likely go unnoticed unless everyone has the Rear Dignity buff, the tie is broken in a bit of a weird way. For one thing, it's not entirely random, as the order is set due to how the game handles sorting in its code, but the order will not differ unless the number of party members or enemies in the battle change. I will not be documenting this, as there are far too many possible combinations of tiebreakers to humanly keep track of.

Enemies don't have access to priority... normally. However, you may have noticed that in some cases, enemies can get a priority modifier applied to them. This is due to a rather nasty bug that can cause enemies to benefit from Knighthood, or get set back by Rear Dignity.

Remaster notes: The bugs with Knighthood and Rear Dignity no longer apply in the HD version. They all function properly.



If you cast Knighthood or Rear Dignity on the top left and top center slots, it works like normal. Nothing to worry about. However, if you cast Knighthood or Rear Dignity on the character in slot number 1, the character will still be granted the massive action speed bonus and go first. But then the enemy in their slot 1 will be granted +1000 action speed if Knighthood was cast, or -10000 action speed if Rear Dignity was cast. In Knighthood's case, that can screw you over, and mess up your strategy depending on the situation. Using it on party slot number 2 affects enemy slot number 2 and so on. The rest of the turn proceeds as normal.



However, if there's no matching enemy slot, like if there's no enemy in slot number 4, those skills are completely safe to cast on the corresponding party slot. So if you're fighting one enemy, like most FOEs and bosses, then the back row is completely safe to use those skills on. Oh, and the bug depends on which slot you cast it on, not how many party members are in the row. So if you've arranged your party that the 2 backrow members are in slots 2 and 4, you can't ever get enemy slot number 3 to be affected by the bug.

As for why this bug exists and how it works, here's the speed code dug out by user violentlycar. Just a warning, you're about to witness a very big mess.

EO3's Speed Code posted:

Turn order:
The Limit skill checks are never used in the previous code because the previous code only checks skills being used through standard skill use. Limit skills are checked in separate code which check only for the Limit-specific act first or act last subheaders, and then it pushes the limits to either the front or the back of the skill queue depending on which they have.

The bug with Knighthood and Rear Dignity is caused due to mistakes in memory addressing. Initially, the game allocates 56 bytes (14 integers) for storing the temporary values which correspond to these skills. This is meant to be one integer for each potential unit a battle can have - 7 player characters (this is what's supported by code despite being impossible) and 7 monsters. However, the way these values are accessed is completely wrong. Here is a chart of each character slot and which bytes they are supposed to match up with:
The correct way to do it would be to take the character's position and multiply it by 4, then add 28 to it if the character is a monster. For example, a monster in slot 2 would have the math (2 * 4) + 28, leading us correctly to bytes 36-39. EO3, instead, adds only 8 if it's a monster, meaning in this case, we would get bytes 16-19, which instead correspond to the data for a player character in slot 4. This is what creates the staggered effect, where player slot 2 corresponds to monster 0, and player slot 3 corresponds to monster 1, and so on. The way these values are originally stored in memory are also wrong for monsters but in a different way, but that is irrelevant here because no monster skills store values in memory this way.
So to sum this... monstrosity up, it honestly reeks of them putting in a different speed system in place initially, and then changed their minds later. As evidenced by the fact that there are 2 functions that add 0. Which likely had something else in there and they just opted to dummy those out. And then there's the entire mess with the game memory. So instead of opting to create new code from scratch, they decided to try to edit the old codebase to fix it up, resulting in this mess, and causing those glitches with Knighthood and Rear Dignity.