Fire Emblem 5 Randomiser

Completely new here, so hoping there’s no etiquette I’m somehow breaching by just showing up as an unknown person with a complete project or something.

It’s probably been forgotten, but last year I made a FE5 randomiser. It used a command-line interface, was incredibly cumbersome to use, and not being aware of this forum at the time or being able to make topics on SF, I only made a post on the FE subreddit.

More recently I’ve come back to it, adding a few extra options, some QOL updates, some bugfixes, and most importantly, I’ve added a proper GUI so it should actually be more-or-less as usable as randomisers for other games I’ve used.

It should be compatible with any regular Thracia 776 rom, but I’ve specifically tested it with a vanilla untranslated rom and Lil’ Manster 1.07. As for settings, I think it’s pretty comprehensive, so rather than trying to list everything, here’re some screenshots of the settings.

While I’ve tried to find and fix bugs, chances are there’ll be some bugs still because I can only test so much and there’s a stupidly vast number of combinations of settings possible, and there’s no way for me to find things like ‘ch23 venin tome event gives Alphand a weapon he can’t use’ without actually playing the game through. Again. I’m pretty sick of playing the game by now to be honest.
Find bugs, lemme know, I’ll try and fix them.

Download links:
Python: Dropbox - Thracia 776 Randomiser (py).zip - Simplify your life
Windows executable: Dropbox - Thracia 776 Randomiser (win).zip - Simplify your life

The Python version requires you to have Python 3 installed on your machine for it to run, but also doubles as the source code download.
The windows executable should work if you don’t have python installed, and was generated using PyInstaller 4.4, with the --onefile argument.


Update History:

Fixed Prfs can appear in shops setting not working.
Changed file paths to forward slashes to hopefully work with non-windows systems.
Randomiser now assigns unused Darkness Lance as if it were a C rank weapon.
With unused weapons not in the boss pool, Darkness Lance is now swapped out for a Steel Lance instead of a potentially-unusable Silver Lance
Non-flier Mallock now starts moving on turn 6 (up from turn 2)
Fixed randomiser setting Kempf’s class to Rumei’s dismounted class.

Should now properly detect Lil’ Manster versions with optional patches applied.
Fixed detecting 1.04, 1.05 and 1.08 as 1.07.

Lil’ Manster 1.08 compatibility
Improved layout (text and pop-up windows should now be more centered)
‘Don’t show again’ option added to Randomise all settings warning + new 1.08 scroll/QoL growth display warning.

​​​​​​​Fixed bug where not randomising player character classes resulted in their class weapon bases being written into their personal weapon rank bases.

​​​​​​​Setting to start with Restore and Warp staff option now also controls the guaranteed early staff logic, allowing for a slightly more true randomised experience at the user’s choice.

Randomiser logic now guaranteed to give you a staff user by the start of chapter 8 (unless t1 class pool contains no staff-using classes)
​​​​​​​Updated tooltip of start with utility staves option.

Added option to start with a Restore staff and a Warp staff.
Remembered Thoron exists in the complimentary-normal-range-tome-for-rewarpers bit in the previous version
Fixed Marty starting with a Member Card even if items aren’t randomised and it’s available in ch18. (He’s supposed to start with it otherwise)
​​​​​​​Fixed unlocking prfs (making them all B rank) without randomising player unit classes resulting in e.g. Finn having no usable lances.

1.2.0 - Mostly aimed at addressing some more egregiously unfair enemy loadouts
Added option to forbid enemy status weapons on generic enemies until a specified chapter
Removed all status staves from ch5 & 6 Raydrik & Veld’s inventories
Recruitable enemies now respect the unused weapons/(unlocked) prfs in boss weapon pool setting for their initial equipment (defaulting to no if bosses aren’t randomised, disabling the setting)
Fixed enemies swapping a Meteor tome out for a non-siege tome due to the siege tome replacement setting swapping out for Bolganone if unused weapons enabled, even if not allowed into the relevant enemy weapon pool.
Fixed randomise all settings button being able to select a removed setting.
Fixed randomiser crash introduced last version when ch18’s dancers became a staff class.
Hard capped generic enemy status staves at 2 per chapter.
Non-poison status weapons rolled to generic enemies (Berserk Edge, Sleep Edge, Blizzard) have increasing odds of being replaced with a non-status weapon for each successive status weapon in that chapter.
Tweaked odds of dark mage types being forced to have a dark tome.
Fixed dark mage types forced to have a dark tome forgetting they also have a staff rank.
Generics who roll rewarp with a siege tome now get a complimentary 1-2 range tome.
Fixed bottom right enemy reinforcement in ch14 using the wrong character data (again).

Tooltip no longer claims Luck is capped at 30 at highest.
Fixed typos in tooltips.
Leif/Finn/Safy/Linoan’s fallback class (no valid class left in class pool after accounting for their restrictions) being Paladin rather than Cavalier.

Randomise enemies not by group option removed. It was the cause of too many problems.
Liszt’s squad in ch13 can no longer roll mages or magic swords/armourslayers/master swords/status swords/master axes/brave axes
Liszt himself is prevented from rolling certain high power classes.

These ch13 tweaks may still need further adjustment. Please let me know if it seems impossible to keep Glade alive and stop Tahra from being seized before the rest of the army can get there.

Status weapons can no longer appear at all in chapter 3, as inflicted status aren’t cleared on the units that leave your party.

Crusader scrolls can no longer be assigned to both Olwen visits and Not-Olwen visits the ch12 village if they’re all supposed to appear once each.

Fixed randomising generic enemies but not by group causing them to not respect whether they should be a promoted unit or not.

Fixed randomising generic enemies not by group causing ch5 pitfighter reinforcements, Mareeta, Galzus to all appear on enemy phase 1.(13/08/2021)
Randomised prf locks can no longer give Eyvel Kia prf.
Fixed randomiser crash trying to update item descriptions of prfs to reflect randomised locks when nobody got assigned that prf due to no-one using that weapon type.

Minor Update (

Added message window to clarify that Randomise All Settings button isn’t expected to result in playable settings without manual tweaking.
Randomise all settings button now generates zero leadership/movement star weightings for above 5 stars.
ASM extension to cap Miracle activation at 90% is applied if main stat cap is set above 20 at all (from 30), due to weapons with +10 Luck making that relevant with lower caps.
Clarified and added some tooltips.


Yooo, how did I miss this?! Somehow it slipped right under my radar for two weeks!

Dude, this is awesome. I am like the guy who started making randomizers popular, so every new one is a great thing!

It seems like you have a lot of options, too. I’ll give some detailed feedback when I have time to play :eyes:

Same for me, I completely missed this post before. This is amazing! I’m very happy that the best Fire Emblem can be enjoyed even more broken. Will hopefully be able to do a run soon. Thanks for the effort spent on this.

1 Like

oh wow :o never knew there was Thracia Rnadomizer on here. I’m down to give a try.

Thanks for the positive words! I pretty much just made this to the designs in my head with very little input from other people, so I’d be glad to take in any sort of feedback, be it bug reports, opinions or anything else (but hopefully not too much of the former).

Now updated to 1.3, bringing most importantly compatibility with Lil’ Manster 1.08, along with minor layout improvements and the ability to permanently suppress the Randomise All warning message.

With thanks to Miacis for their assistance with accounting for the changes in the new Lil’ Manster version.

(I’ve been quietly updating the version history in the second post rather than making a new reply with each version because just replying to myself feels silly, but there’ve been a fair few updates between the initial post and now, notably removing the basically broken ‘randomise enemies not by group’ option, preventing entire squads of enemies all having status staves and sleeping your entire army, and the option to be guaranteed a staffer by chapter 8 along with starting with a Warp and Restore staff.)


Thank you for the swift update! I’ve enjoyed a couple of runs using this randomizer - I appreciate the breadth of options and fine-tuning thereof, and the measures taken to prevent softlocks or frustrating enemy setups.

If there’s anything I can think of to add, it would be to set weights for the number of skills a unit receives, similarly to Leadership and Vigor stars, so that you can have the occasional character with four skills without them being as common as 1-skillers.

I also want to say thank you for this again, I’ve had quite some fun with this as well! I have a suggestion for a change to make it work on Mac/Linus as well, as I had to change all the backslashes to forward slashes in the code in order for it to work on my laptop. That should be enough to make it platform agnostic with the paths.

Again, great work!

Thanks, I’m always glad to see people enjoying it.

Unfortunately I’ve really not felt like working on it in a long while now. I feel obliged to do maintenance updates like the recent one and various bugfixes, but I’m not sure when I’m likely to look at adding features again.
Which is a shame, because that’s a very good suggestion, probably how I should’ve done it in the first place, and I feel a bit dumb for not thinking of it myself despite all the times I thought it felt bad that even 0-3 skills felt like it gave you too many overall.
(It’s pretty much a holdover from the old Command Line version of the randomiser, where typing in weightings one at a time got old fast so I tried to avoid it where possible, which is why enemy skill randomisation has that weird zero weighting setting followed by even weightings for everything else.)

I never even knew that was a thing; all this time I assumed the .py file would just work on other systems. Thanks for letting me know, that sounds like something that I should fix sooner rather than later.

1 Like

No worries, the script works just fine on other systems, it’s just that the path to the other files is what’s not working. But it also takes 2 minutes for anyone to fix, so it’s not really a big deal :slight_smile:

Been using this for a couple days and really been enjoying it - thank you for your work!

I realize this is complete and thus may not be worked on anymore, but I do have a very minor bug to report - it appears that randomizing PRF locks but allowing them to appear in shops doesn’t work. I’ve tried a dozen or so times with both those options ticked and looked through the spoilers file and never seen a PRF pop up in a shop. If “no guarantees” is chosen they still appear via events / villages (and there can be duplicates), and if inventory of related character is chosen they’ll still appear there, just never in a shop as far as I’ve seen. As soon as I untick PRF locks and re-randomise it works though.

Oh hey, that was a really stupid bug, turns out I forgot to cast a Tcl object as a string and the setting was always evaluating as disabled when passing parameters to the randomiser logic. I’ve fixed that now, as well as a couple of other minor things.

It’s a complete project in the sense of I don’t want to add any more features to it, I’ll still fix bugs as they come up. (Though frankly at this point I’d be happy to never have to look at the code again, it’s an unstructured mess and half the names aren’t particularly useful or accurate - would you believe generate_boss_weapon() is not in fact the function used to generate weapons for bosses?)

In any case, thanks for the bug report and for giving it a go.

1 Like