Fire Emblem Three Houses Randomizer

Fire Emblem Three Houses Randomizer
Link (V1.0.1) for FE3H V1.2.0: click me!

Contact Me & Bug Reports

  • If you encounter any bugs or have issues using the Randomizer, or even just questions, please DM me on this website. If you don’t have an account, then feel free to message me on Discord at bly#0003.
  • Please only message me about the Randomizer itself or how to use the Randomizer’s file via LayeredFS.

Example Screenshot
w/ my personal suggestions for settings.

Usage:

  1. Ensure you are on V1.2.0 of Fire Emblem: Three Houses.
  2. Get the fixed_persondata.bin, fixed_classdata.bin, and fixed_data.bin files located in the patch4\nx\data folder. You can use nxdumptool (linked in the Links section of this post) to dump the patch4 romfs.
  3. Back them up in case you need to revert to the vanilla game. I usually just add “old_” to the beginning.
  4. Load the files into the randomizer, select your options, and click Randomize and Save to save your files. See the Options & Settings section of this post for more details.
  5. Use your preferred method of loading the files. Personally, I use LayeredFS, which is built into Atmosphere. The other option I know of is Aldebaran.
    a. If you’re using LayeredFS, simply put the files the randomizer outputs in the SD:\atmosphere\contents[FE3H Title ID]\romfs\patch4\nx\data folder. Make sure they are named fixed_persondata.bin, fixed_classdata.bin, and fixed_data.bin.
    b. If you’re using Albedaran, I suggest reading more on its Github page, which is in the FE3h Throne of Knowledge linked in the Links section of this post. Please do not ask me for help with Albedaran, I don’t use it.

Options & Settings:
Randomization Options: Affects only Character Base Stats, Stat Caps, and Stat Growths.

  • Normal - Chooses a random number in the given range.
  • Redistribution - Adds up all of the numbers in the given file before redistributing them.

Output Changelog: The Randomizer will prompt you to save a changelog (log.txt) after saving all of your randomized files. This contains almost all values randomized (it does not list model modifiers), as well as your seed and options selected.

Character Base Stats, Stat Caps, and Stat Growths: Concerns all playable characters, including update/DLC characters.

  • Include HP/Move - Includes HP/Mov in the pool for randomization.
  • Weight - Dictates the weight for HP/Mov. All normal stats are given a weight of 1. Only applicable for Normal randomization.
  • Restricted Ranges - Ensures that the resulting values are within the given ranges. Must be used if using redistribution.

Character Classes: Also randomizes starting weapons, weapon ranks, and default character goals.

  • Enable Beginner/Intermediate Classes: Allows classes underneath the given tiers to become these classes at the start of the game.
  • Randomize Post-Timeskip Classes: Randomizes which classes are considered this character’s main post-timeskip classes.
  • Include Adv. DLC Classes: Includes Trickster, War Monk/Cleric, Dark Flier, Valkyrie, and Death Knight as possible classes in the pool.

Training:

  • Proficiencies/Faculty - Randomizes strengths, weaknesses, and Faculty Training specialties (which are dictated by strengths). Boon preference is given to their highest starting weapon ranks.
  • Seminar - Randomizes which stats each characters are interested in for Seminars. Preference is given to their highest starting weapon ranks.

Personal Skills: If a character’s pre-timeskip skill has a direct upgrade, they will be given that upgrade after the timeskip.

  • Allow Different Post-Timeskip Skills - If this is selected, they instead will receive a different random skill post-timeskip.

Character Magic: Randomizes the magic lists for all playable characters.

  • Include Enemy-Only Dark Magic - There is a small chance that a unit can gain Bohr or Quake.

Crests: Randomizes which crests each playable character has.

  • Minimum 1 Crest - If enabled, all units have at least one crest.
  • Maximum 1 Crest - If enabled, all unit will have no more than one crest.

Personal Attributes: These are the attributes which show up on a character’s roster card and their status screen. Some of them are non-functional, or partially so. For example, edited birthdays do not actually impact when their birthday appears on the calendar, and randomized height values are not always reflected.

  • Age/Gender/Birthday - Randomizes the values.
  • Height/Model Values - Randomizes the values of each character’s height, chest modifier, and model scaler.
  • Height/Model Values Higher Post-Timeskip - Gives a chance for said values to be higher post-timeskip.

Class Attributes: Edits attributes for all playable classes.

  • Remove Gender Lock - Removes gender restrictions on all classes.
  • Randomize Weapon Rank Requirements - Randomizes the required weapon ranks to change classes.
  • Constrain Highest Requirements - If this is selected, when the above option is randomized, this ensures that the new set of requirements will have the same amount of requirements as the original (or less). Additionally, no one requirement ever surpasses the original (e.g., if a class requires C swords and D lances, the class will not require above a C for anything).
  • Playable Adv. Pegasus Knight/Dancer - Includes the Dancer (as an Intermediate class) and the originally enemy-only Advanced Pegasus Knight (as an Advanced class) as options for players. If Randomize Classes is selected, this also adds the classes to the pool for randomization.

Weapon/Magic Attributes: Randomizes attributes for weapons and magic.

  • Skip Broken, Unarmed, Rusted Weapons - Skips these weapons in the randomization process.
  • Durability - Randomizes durability within the given range.
  • Unbreakable Chance - Dictates the chance that a weapon/spell becomes unbreakable.
  • Might - Randomizes might within the given range.
  • Hit - Randomizes hit chance within the given range.
  • Critical - Randomizes critical chance within the given range.
  • Chance for No Crit - Dictates the chance that a weapon/spell has 0 critical.

Character Assets: Randomizes character assets. When in the pool, MByleth will always become a male character and FByleth will always become a female character.

  • Within House - Randomizes the assets of the Eagles, Lions, Deer, Church (includes Faculty), and Wolves within their own houses. Byleth is not included.
  • All Playable Characters - Randomizes the assets of all aforementioned characters, Byleth included.
  • All Characters - Randomizes the assets of all named characters, Byleth included.
  • Include DLC Units - When selected, DLC Units (the Ashen Wolves + Anna) are included in the pool. (Jeritza is part of a free update, and is included regardless.) See Notes for more information.
  • Include Constance - If this is not selected, Constance is NOT included in Character Asset Randomization. See Bugs & Warnings for more information.
  • Include Constance - If this is not selected, Anna is NOT included in Character Asset Randomization. See Bugs & Warnings for more information.
  • Include Flame Emperor - If this is not selected, the Flame Emperor is NOT included in Character Asset Randomization.See Bugs & Warnings for more information.
  • Include Monastery Staff - If this is selected, the monastery staff (Gatekeeper, Online Liason, Blacksmith, etc.) are included in Character Asset Randomization.

Notes:

  • DLC Units in Character Asset Randomization: Enabling this option can cause the arena to crash if you do not have the DLC installed. This can be fixed by temporarily loading your vanilla files just for the arena. DO NOT enable the “Include DLC Units” option for Character Asset Randomization if you do not already have the DLC installed or do not want to deal with this.
  • Model Loading and Softlocks: If the game hangs while trying to load models, first try to save as close as possible to where the softlock happens, then reload and try to play through. If that doesn’t work, load your vanilla files to get past the softlock. Either way, please let me know (either here or through Discord). This seems to happen often in the beginning of Chapter 1 in particular.
  • Monastery Staff in Character Asset Randomization: While these characters work fine, please note that their portraits can be buggy and not match up exactly.
  • Intermediate Classes: When Playable Dancer (which turns the Dancer class into an Intermediate Class) is enabled, there is a bug where you cannot view the description for the Dancer on the status screen for Edelgard, Dimitri, or Claude. This does NOT affect anything else.

Bugs & Warnings:

  • Constance’s portrait gimmick can cause problems if she is included in character asset randomization. The problem is purely with her portrait not being correct, but do note this.
  • Similarly, the Flame Emperor has an issue where in Chapter 6 (and potentially elsewhere in the game), rather than showing up as whichever person he was randomized to, he will show up as himself. Please let me know if you find any other instances of this.
  • Anna’s portrait also seems to be bugged in a similar fashion to Constance’s, where it does not change. (A new toggle for her was added in V1.0.1.)

Credits:

  • 010 Binary Templates - DeathChaos25, TildeHat, Moonling, Puddles
  • Analysis - MCSunshine

Links:

Planned Options
Short-Term:

  • Fixing problems with Constance’s and Flame Emperor’s portraits.
  • Adding new options for Weapons and Magic - Weight, Effects/Flags, Associated Crests, and Gauntlet Modifiers.
  • Adding options for Battalions, Gambits, and Crests.
  • Hidden Talents and Learned Skills.
  • Saving and loading configurations.
  • Toggle for “Broken Skills.”

Beyond:

  • DLC/Side-Story class randomization.
  • Adding new options for Classes - Strengths, Ability to use Gauntlets/Faith/Reason, Stat Changes.
  • Relic randomization.
  • Chest randomization.
  • Expanding existing options to enemies and ally NPCs.
V0.2.3 Post

Fire Emblem Three Houses Randomizer
Link (V0.2.3): https://cdn.discordapp.com/attachments/589686684317122610/632048607310381056/Fire_Emblem_Three_Houses_Randomizer_V0.2.3.exe

Character Attribute Options:

  • Base Stats
  • Stat Caps
  • Stat Growths
  • Faculty Training
  • Personal Skills
  • Seminar Stats
  • Crests
  • Classes
  • Character Assets (Model, Name, Voice)
  • Learned Magic
  • Misc. Options (Age, Birthday, Gender, Height, Chest)

Class Attribute Options:

  • Remove Gender Locks
  • Weapon Requirements
  • Include Advanced Pegasus Knight Class
  • Include Dancer Class

Weapon Attribute Options:

  • Skipping Randomization for Broken, Rusted, and Unarmed Weapons
  • Durability
  • Might
  • Hit
  • Crit

Notes:

  • If you are only randomizing the Character Attributes, Class Attributes, or Weapon Attributes, then you only need to open persondata.bin, classdata.bin, or item.bin, respectively. However, if you enable the inclusion of the Pegasus Knight Advanced Class and/or Dancer class, they will be included in the pool of possible classes if Classes are selected to be randomized, even if classdata.bin is not loaded.
  • Apparently some crashes of the application relating to the randomizing of stats, caps, and growths can be solved by running the application as an administrator. Although I wasn’t able to replicate this bug, please let me know if you have this problem, and if this solves it. (Thanks to Rab for finding this while testing for me!)
  • Updated from 0.2.1 to 0.2.2: fixed potential problems with including dancer class and including enemy only magic. Also added option to include Byleth in asset randomization. If chosen, both Byleths (m and f) are added to the pools for named and playable characters, as well as the Church/Knights of Seiros “House” if the house option is selected.
  • Updated from 0.2.2 to 0.2.3: fixed problem where not using min/max options for the stats/caps/growths would result in every stat being 0… yikes! Should work properly now. Also fixed a potential problem where a character with more than 255 stats/caps/growths total (everyone, I think, for the latter two) could’ve potentially broken the stat distribution when not using min/max options.

Using the Randomizer:
The Randomizer edits persondata.bin, classdata.bin and data.bin. This tutorial (link) shows you how to load the edited files with one method, and on the sidebar you can find two more methods.

How I do it is simply going to root:/atmosphere/titles/[title id of fe3h]/romfs/patch2/nx/data/ and putting the edited files in there.

Planned Options: (in no particular order)

  • Learned Skills
  • Budding Talents
  • Strengths and Weaknesses
  • More Item Options (Weight, Crests, Effects)
  • More Class Options (Class Growths, Class Proficiencies)
  • More Randomization Options

Credits:

  • 010 Binary Templates - DeathChaos25, TildeHat, Moonling, Puddles

Other Links:

V0.1 Post

Fire Emblem Three Houses Randomizer
Link (V0.1): https://cdn.discordapp.com/attachments/206646029326483456/613718766953693185/Fire_Emblem_Three_Houses_Randomizer.exe

Options:

  • Base Stats
  • Stat Caps
  • Growths (including Mov Growth)
  • Misc. Options (Age, Birthday, Gender, Height) (Note that Birthday does not change the actual day their birthday event is triggered in-game)
  • Crests
  • Classes
  • Seeds (Note that only numeric seeds works, anything else is ignored)

Currently the randomizer generates stats/caps/growths by adding together the character’s original stats/etc. (not including mov growth) then redistributing them, but I want to add more options later on.

I’ll be working on it more when I finish more of the game (haven’t even finished my first route yet!). Sorry if smth is really buggy lol

Planned Options:

  • Skills
  • Magic/Spells
  • Budding Talents
  • More Randomization Methods for Stats/Caps/Growths
  • A Ton More Stuff I Hope™

How to Use: (w/ Atmosphere CFW and layeredFS)

  1. You will need the following files: person.bin, info0.bin, info2.bin.

    • person.bin can be obtained by extracting it from data1.bin (it will be the 12th file), or by simply copying 0x1CD74 bytes of data from data1.bin, starting at 0x10EA800, into a new file
    • info0.bin and info2.bin is found within the patch1 folder of the V1.1 update
    • both data1.bin and the files from the patch1 folder can be dumped using nxdumptool
  2. Open person.bin in the randomizer, choose the options you like, and Randomize and Save the file.

  3. On your microSD card, navigate to the atmosphere/titles/ folder, and create a new folder with the title ID of FE3h if you don’t already have one.

  4. Within the new folder, create a folder titled romfs. Within that folder, create a folder titled patch1.

  5. In the patch1 folder, put your person.bin, info0.bin, and info2.bin files.

  6. Open up info2.bin, and add 0x01 to the first byte. (If this is the first time editing it, it will go from 0x4A to 0x4B.)

  7. Next, create an entry in info0.bin. To do this, find the entry for 0x0D (the 13th file). Each entry is 0x120 bytes long. On an unedited info0.bin this will be at 0x5A0. Download this file (link) and copy the whole thing. At the offset for entry 0x0D (normally, 0x5A0), paste-insert what you copied - make sure not to paste-write.

  8. You should now have a person.bin file (output from the randomizer), an info0.bin file (edited in step 8), and an info2.bin file (edited in step 6), all within the folder root:/atmosphere/titles//romfs/patch1/.

  9. Load up the game while running CFW, and atmosphere/layeredFS should load your files in!

  10. If you want to re-randomize, just replace the person.bin file in the patch1 folder you made.

I learned this from the folks at the 3DS FE Romhacking Discord and, if you need any help that’s the best place to go, probably.

Apologies if there are some terms that are wrong. I don’t know much here lol

Credits:

  • DeathChaos25 for creating the 010 binary template for the person.bin file and general help
  • HeartHero for creating the Three Houses Editor, which helped immensely because I could easily check whether the game was being randomized properly

Other Links:

23 Likes

Very, very, cool Bly! Good to see awesome tools already out for this game. Can’t wait for more.

2 Likes

“B-But she was legal in the randomizer, officer!”

14 Likes

Very confused on how to add the values to info0.bin

2 Likes

I really want to try this, but I’ll probably fuck up and corrupt all my files…

1 Like

can you post a pre edited info0.bin and info2.bin to make me and probably others lives easier i would appreciate it

2 Likes

Are you opening the files in HxD / some other hex editor?

I’d suggest creating an emunand and backing up your saves for the game. That should minimize any risk as much as possible, I think.

Just as we can’t post ROMs, I can’t post the info files here. The Rules

If both of you would like help I’d suggest joining the discord mentioned in the OP or the FEUniverse discord and pinging me, but I can continue to help here too.

1 Like

Can you show how to edit INFO0.bin in like a program? I’ve been trying to get this for days now and I would be really grateful if you helped.

1 Like

Another question can this randomizer change which units look like which i.e. claude being shown as Nemesis or not?

You will have to open it in a hex editor! I suggest HxD (that’s what I’m most comfortable with, and it’s pretty easy to use).
It might be easier for you to contact me on Discord, if possible, since we can talk 1-1 and I’ll be able to respond quicker.

In the next update you will be able to randomize recruitment! Currently I am planning 3 options: (1) randomize recruitment within houses; (2) randomize playable units (3) randomize all units (named/portrait’d enemies and players). If you’re interested in that I suggest waiting a bit longer for the next version.

Sounds great! i cant wait.Excited to see how far this randomizer will go thanks!

P.S. whats your discord?

My discord is currently bly#0420

1 Like

Tried adding you, didn’t work. :frowning:

I think you gotta share at least one server with me. You can join the FE Universe discord or the one I have linked in the OP

So, is this project gonna get anymore updates, or is it dead?

It’s been two weeks since the last reply, my dude. Hacking takes time, I’m sure Blyvern is hard at work. Three Houses is relatively unexplored hacking-wise, so I’d imagine it’s difficult

2 Likes

Yeah! Besides it taking time, I should note that I had the next update ready to go, but I had taken a trip right when the second patch came out, so I’m working on making it work with the second patch + making it easier to use (a lot of people have had trouble with the tutorial, so I wanna simplify it), and juggling that with school (I need to put in transfer requests for university, in addition to classes themselves)!

4 Likes

The OP has been updated with V0.2.1 and a link to a good tutorial (far better than what I had written out)!

1 Like

2 Likes

Quick update to V0.2.2 to add an include byleth option for randomizing assets. Also fixed potential bugs with including the dancer class and including enemy only magic. Link in OP updated.

2 Likes