# Level Up Patterns (FE1-3)

This content was originally provided by Nitrodon.

This is a phenomenon that occurs in Dark Dragon and Sword of Light, Fire Emblem Gaiden and Mystery of the Emblem due a fallacy in the Random Number Generator (RNG) when continuous strings of Random Numbers (RNs) are created.

Although every character has a defined set of growth rates for each stat, which are the percentage chance of them gaining a point in that stat during a Level Up, in practice the stats gained during a Level Up fall into only a limited set of patterns.

During a Level Up, one RN (with a value from 0-99) is "rolled" for each stat; if the RN is lower than the growth rate for the stat, that stat will increase. In these three games specifically, the value of the next RN is simply the value of the previous RN plus a constant.

Normally, the game relies on the element of time to create variety in the value of RNs, but this is not the case during a Level Up where multiple RNs need to be generated in a very short time period. The close relationship between each RN in the RN string used in Level Ups leads to observable stat gain patterns.

## Dark Dragon and Sword of Light

```Next raw RN = [Previous raw RN (range: 0-255) + 55]
If the value is over 256, subtract 256 from it
```
```Next usable RN = Next raw RN * (10 / 25) rounded down <Max value 99>
```
```Order of stats during Level Up: MHP DEF LCK SPD WLV SKL STR
```

## Gaiden

```Next raw  RN = [Previous raw RN (range: 0-255) + 55]
If the value is over 256, subtract 256 from it
```
```Next usable RN = Next raw RN * (100 / 256) rounded down <Max value 99>
```
```Order of stats during Level Up: MHP DEF LCK SPD SKL STR
```

## Mystery of the Emblem

```Next raw RN = [Previous raw RN (range: 0-255) + 143]
If the value is over 256, subtract 256 from it
```
```Next usable RN = Next raw RN * (100 / 256) rounded down <Max value 99>
```
```Order of stats during Level Up: STR SKL SPD LCK DEF RES MHP WLV
```

## Examples

Using Mystery of the Emblem as an example, say the first (raw) RN is 45. The next 7 RNs can be calculated as follows:

```2nd raw RN =  45 + 143 =             188
3rd raw RN = 188 + 143 = 331 - 256 = 75
4th raw RN =  75 + 143 =             218
5th raw RN = 218 + 143 = 361 - 256 = 105
6th raw RN = 105 + 143 =             248
7th raw RN = 248 + 143 = 391 - 256 = 135
8th raw RN = 135 + 143 = 278 - 256 = 22
```

Multiplying the raw RNs by 100/256 gives us these usable RNs:

```45  -> 17
188 -> 73
75  -> 29
218 -> 85
105 -> 41
248 -> 96
135 -> 52
22  ->  8
```

Comparing with Marth's growth rates during a Level Up:

```    GROWTH RN RISE?
STR 50     17 Y
SKL 40     73
SPD 50     29 Y
LCK 70     85
DEF 20     41
RES 3      96
MHP 90     52 Y
WLV 40      8 Y
```