Skip to content

Random Fairy Selection

There are two situations in the game where random fairies is chosen: for wild fairy encounters and for certain NPC's. Of course there is a strict set of rules as to still ensure a balanced games.

Fairy groups

There are 33 sets of fairies which are identified by their index number. This id is used for the script command W (defaultWizform) and can also be found as second parameter of the NpcAttackPosition triggers. The group also defines the level range (with the LevelRangeId) the fairies can spawn at.

These are the groups (if a fairy is listed twice, it is twice as likely to spawn):

GroupId FairyId FairyName LRId LevelRange
0 9 Worgot 5 3-3
26 Blumella
1 10 Corgot 13 9-11
75 Lana
2 57 Tinefol 36 26-34
1 Viteria
0 Silia
3 50 Pfoe 24 17-22
57 Tinefol
4 18 Abery 13 9-11
10 Corgot
5 9 Worgot 24 17-22
19 Abnobery
6 18 Abery 24 17-22
0 Silia
7 23 Cera 13 9-11
8 64 Goop 24 17-22
23 Cera
9 64 Goop 36 26-34
6 Tadana
10 6 Tadana 42 31-40
6 Tadana
24 Amnis
25 Ceramnis
11 20 Vesbat 5 3-3
20 Vesbat
12 62 Jumjum 13 9-11
20 Vesbat
13 4 Gremor 24 17-22
21 Stobat
14 3 Boneria 42 31-40
62 Jumjum
15 27 Mencre 13 9-11
28 Mensec
16 27 Mencre 24 17-22
47 Mentaur
17 27 Mencre 36 26-34
47 Mentaur
18 46 Beltaur 42 31-40
46 Beltaur
27 Mencre
19 12 Airia 36 26-34
13 Luria
20 41 Gorael 36 26-34
40 Sirael
21 54 Sirella 42 31-40
40 Sirael
22 55 Dracwin 42 31-40
55 Dracwin
23 31 Pix 54 40-52
31 Pix
32 Ferix
24 34 Feez 36 26-34
35 Greez
25 36 Greezloc 42 31-40
52 Glacess
26 15 Rasrow 24 17-22
37 Skelbo
27 15 Rasrow 36 26-34
37 Skelbo
28 15 Rasrow 42 31-40
53 Akrita
69 Manox
29 69 Manox 54 40-52
70 Turnox
29 Violectra
30 65 Minari 36 26-34
31 65 Minari 42 31-40
32 65 Minari 54 40-52
66 Megari
29 Violectra
33 72 Lighane 54 40-52
72 Lighane
73 Driane
43 Darbue

Spells

For selecting the spells a fairies gets, the game first determines the maximum spell cost for attack and support based on a level rank. Then it gets all spells of the same element type (ignoring the fairy's capabilities) and chooses at random.

Level Rank

The level rank is calculated with an integer division (always round down) by 5, so examples: - Level = 4 | Rank = 4 / 5 = 0 - Level = 9 | Rank = 9 / 5 = 1 - Level = 10 | Rank = 10 / 5 = 2

Then the maximum costs can be figured out by this table:

Rank Maximum Attack Cost Maximum Support Cost
0 1 n/a
1 1 n/a
2 1 1
3 2 1
4 2 2
5 2 2
6 3 2
7+ 3 3

LevelRangeId

The level selection based on the LevelRangeId follows this pseudocode:

int ampl = levelRangeId / 4;
int base = levelRangeId - ampl - 1;
int newLevel = base + rand() % ampl;