Latest Version: v1.1.0
Link: https://github.com/l...ases/tag/v1.1.0
Changelog:
v1.1.0
- Added the ability to generate a changelog when randomizing. It always generates a file called Changelog.html in a directory you specify. The changelog includes your settings and the updated characters/classes/items tables. Mostly for convenience so that you don't have to open up Nightmare if you're curious as to what everything changed to. Note that all strings are pulled directly from the game data, so in theory this will display ROM hacks properly. (But the current logic doesn't look in the right place for chapter units, so don't try that yet. That will happen later.) The downside is that IS decided to not use the Female flag for classes, so figuring out which class is the female variant is slightly odd. Know that if two classes with the same name show up, the first one is usually the male variant and the second is usually the female variant. They look something like this:

- Updated weapon rank logic to attempt to transfer a character's highest rank when changing classes as opposed to randomly upping weapon ranks based on appearance. This fixes the issue where everybody starts with A rank because I didn't realize that characters would appear multiple times throughout chapters, so they got bumped several times, which almost guarantees them to be A rank by the end of it.
v1.0.1
- Added logic to make sure legendary weapons don't show up prematurely.
- Updated logic for movement costs to only update them for classes of units that need them (FE6: Miledy and Gale, FE7: Fiora and Farina, FE8: Glen and Valter).
- Removed Enemy Buff: At least Amount.
- Added Cross Gender option when randomizing classes.
- Fixed an issue where FE8 monster weapons were getting 1-2 range causing crashes.
- Fixed an issue where FE8 wasn't determining an appropriate promoted class for trainees (should only affect random recruitment).
v1.0.0
- Initial Release.
So a few weeks back, after talking about randomizers and other things we could potentially randomize, I decided to start a project to roll all of the possible randomizers into one easy-to-use package. The most well known randomizer is probably the class randomizer, for which there exists apps/scripts to randomize FE7 and FE8, I believe (not sure about FE6). I think there's a weapon stat randomizer somewhere as well for FE7, though I'm not sure about the other ones. Finally, one of my buddies on /r/fireemblem came up with an idea to randomize growths for a character as well, which I thought was a neat idea, though at the time, one person had to randomly generate it by hand.
The purpose of this project was to give the user as much control as they wanted to randomize their game in the most accessible way possible.
In any case, the fruits of that project were recently borne with the v1.0 release that I put up on /r/fireemblem and would like to share here as well. The project is open source on github and is written in Visual Basic for the Windows platforms. I have plans to do a mac one at some point in Cocoa right after I get my new macbook, so in the meantime, this is Windows only. (Somebody suggested an Android version as well, which might be a reality if I can remember how to do android programming (did it a couple of years back, but my forte is in iOS development.)
Github link: https://github.com/l...domizer-Windows
Link to Randomizer: https://github.com/l... Randomizer.zip
The zip file includes the executable as well as Arch's Tutorial Slayer patch, which is necessary for FE7.
Run the executable and you'll be greeted with a scroll that looks like this.

Everything is grayed out initially until you select a valid file using the Browse... button. Assuming you fed it a valid file (determined by the header, assuming it's a GBA header and has either game code AFEJ (FE6 JP), AE7E (FE7 NA), or BE8E (FE8 NA), all of the options will re-enable themselves and the game you fed it should show up properly underneath. Feeding it something invalid will let you know the game code it detected.
Most options are self explanatory, but if you need help on any of them, a tooltip will show up if you hover your mouse over the checkboxes or numeric controls.
As a reference, here's a quick rundown:
Randomize Growths: For every important character (i.e. has a character entry), it takes the total amount of growths that unit has and redistributes it across all growth areas.
For example, FE7 Eliwood has 80% + 45% + 50% + 40% + 45% + 30% + 35% = 325%. This option will take that 325% and randomly assign growths so that it still totals up to 325%.
Maybe you'll get an Eliwood that's 100% HP, 50% STR, 25% SKL, 25% SPD, 100% LCK, 15% DEF, and 10% RES.
Or you may get an Eliwood that's 10% HP, 10% STR, 10% SKL, 150% SPD, 45% DEF, and 100% RES.
Growth variance adds or subtracts a random amount up to the specified number to their totals. So if you set a variance of 20, then Eliwood could start with anywhere between 305% and 345% to distribute.
Force minimum growths will ensure that every growth has at least 5%. Without it, 0% growths are a (very real) possibility.
Use weighted HP growths tries to lean more heavily on HP (since that's true most of the time).
Randomize Bases: Same as growths, except with your personal bases. You may know this, but a character's base stats are determined by the sum of their personal base and their class base. This option only redistributes their personal bases.
Base Variance is the same as above. It adds or subtracts a random amount up to the specified base from the total bases a character has before redistributing.
Randomize CON: Exactly as it sounds like, but this works differently than above. There is no redistribution here, just a random number up to the variance specified that is added or subtracted from a character's personal CON.
For example, FE7 Eliwood starts with 7 CON. With a variance of 1, he could start with 6 - 8 CON. With a variance of 2, he could start with 5 - 9 CON. With a variance of 3, he could start with 4 - 10 CON. And so on.
A minimum CON value is also an option in case you really don't want to deal with anything lower than 3 CON, for example. Any CON that ends up less than this value is brought up to this value.
Randomize MOV: Unlike the above, this operates on a class level, and is strictly determined by the range given. Note that male and female variants of a class are considered different classes. The range is determined by the minimum and maximum specified.
Randomize Affinity: So straightforward it doesn't even have any options. It just assigns a random affinity to every major character (bosses included, though I don't think that matters much unless you're one of the desert bandits).
Randomize Items: So many options... This gives you the ability to make random tweaks to weapons. They mostly operate with the same pattern. The variance is the amount of change you want to allow for a weapon's stat. For example, let's say you have an FE7 Iron Sword. It has 5 MT by default. If you set the Might variance to 5, then it could end up anywhere between 0 and 10 MT. If you don't want any low might weapons, you can set the Minimum Might to a desirable value and it will make sure weapons never go below that value. Every other stat works the same. Weight also allows you to set a maximum in case you don't want anything weighing more than 20 WT, for example.
The final, and in my opinion, most interesting option is the ability to randomize traits. What this does is give every weapon in the game an additional random trait on top of it's normal version. The potential traits include Brave Effect, Unbreakable, Devil, Poison, Reverse weapon triangle, Eclipse effect, Magical Damage, Negates Defense (in supported games only), effectiveness to a group of classes (limited to the existing ones), or a random stat bonus (limited to the existing ones). So, for example, maybe all Iron Swords become brave in your game, or all iron axes are actually good against swords, or all iron bows halve your HP (this one is particularly annoying).
Randomize Classes: The meat of it all. Takes all characters and gives them a random class. The options here are straightforward, but without any additional options, Lords, Thieves, and Bosses are not randomized. This is mostly so that the game is more stable (i.e. less issues with lords getting force promoted, or lacking a thief when you need one, etc.). The options re-enable them as desired.
Allow Unique Classes will add more exotic classes to the pool. This includes Dancers, Soldiers, and Manaketes (in supported games). In FE8, this also adds monster classes to the pool.
Buff Enemy Growths: You may know that most basic enemies get their stats from an autoleveling routine in the game based on class growths. This allows you to increase those values for a harder game. The options do exactly as they sound like: Up To Amount is 0 up to X, Exactly amount is exactly X, and At Least Amount is X up to 255. I recommend not doing that last one. I may just remove it because it's not really practical, IMO.
Also Buff Bosses will give every boss character a somewhat matching buff so that they don't end up significantly weaker than the regular enemies on the map.
Recruitment: This is probably the buggiest piece of the entire thing. You know those Reverse Recruitment patches that are floating around out there? This attempts to do it programmatically, with varying degrees of success. If you want to play reverse recruitment, you should probably just use one of the patches. Randomized recruitment might still have some use though if you want to experiment around with it. It does exactly as it sounds: re-arrange when each character joins the party. Does not affect scenes though, so there's some disconnect, story-wise.
Some Screenshots:



Additional Notes:
- Soldiers can actually promote if you randomize classes. I added logic to allow Soldiers to promote with the use of a Knight's Crest. In FE6 and FE7, they promote to General, while in FE8, they get the choice of General or Paladin.
- Lords can also promote with less exotic items, in case you're stuck with 5 Eliwood Lords. Most use a Knight's Crest, but Lyn Lord uses a Hero Crest instead.
- Monsters in FE8 are also given promotions if you randomize classes. They use the item you'd expect them to, that is: Mogalls use Guiding Rings, Revenant, Mauthe doogs, and Bonewalkers use Hero Crest, Baels and Tarvos use Knight's Crest, Bow Bonewalkers use Orion's Bolt, and Gargoyles use Elysian Whips.
- Note that random item effects are additive. Brave Bow will always be Brave, but may also get, say, magical damage.
- Magical weapons (except axes) will automatically get 1-2 range if they weren't already (this is the only reason why Magic Weapons are a thing in FE6). In addition, Magic Swords and Lances will be assigned a random spell animation if they do not already have one.
- Some item effects are mutually exclusive. Namely, Devil, Eclipse Effect, and Poison, because they cannot be combined with each other from a technical standpoint.
- Some characters are always exempt from class randomization. Mostly final bosses and some big name NPCs.
- The randomizer *potentially* works with other hacks/patches, depending on how involved they are. Repointed tables are ok, but obviously, the number of items or characters the randomizer thinks there are will be off, not to mention, it no longer knows who's a boss and who's a playable character. Patches that don't modify the game too much should be ok, but full on hacks probably won't work.
- For FE6, please use the translation patch here: http://serenesforest...showtopic=41095 before feeding it to the randomizer. I may do this automatically in the future for you (like Arch's tutorial slayer patch), but it doesn't do it right now.
There are some other things, but you'll find them as you play around with it.
I make no guarantees about this being bugfree. It went through v0.33, v0.66, and v0.99 before finally being good enough for a v1.0 release, so most major issues should be ironed out. However, there can still be other issues nobody has found yet. Please report them so that I can get them fixed.
Edited by lushen124, 03 October 2015 - 11:02 AM.













