Jump to content

Skill-tree Shuffler


Recommended Posts

So here is a thing I made just for kicks and giggles: a randomizer for the class "skill trees" (learnsets) in Fire Emblem Fates!

How to use it:


Pick your desired settings and hit the "Shuffle!" button, and the program will output a table mapping each class's skill-learning level milestone to a random skill in the game! Whenever one of your characters learns a new skill, replace it with the corresponding skill from the table. (A save editor or ROM hacking capabilities are necessary.)

Detailed instructions:


Surprise Mode--If you check this option, then each skill in the table will be hidden until you click to view it. Use this to simulate a "blind" run, where you only find out what each skill is once you attain the class/level milestone to earn it.

DLC--There are 3 options here:

None: No DLC skills or classes will appear in the shuffle results.

Skills: The DLC skills (any skill from a DLC, Path Bonus, and/or Amiibo class [like Aether] and any skill that requires an item to learn [like Point Blank]) may appear in the shuffle results. However, the DLC classes will not appear.

Skills & Classes: The DLC skills may appear and the DLC classes will appear (so they will be randomly assigned skills). Note that the shuffler doesn't care whether a skill is standard or DLC when it's assigning it so you'll see some DLC skills assigned to standard classes and vice-versa.

Include Stattaker Skills--These are the skills like Magictaker and Lucktaker that increase a given stat by 2 when the wielder attacks and defeats an enemy. You have to check this box to enable them; they're enabled or disabled independently of the other DLC skills. (I figured that some players might not like to see these skills cluttering up the shuffle results since they're all so similar.)

An exception: Strengthtaker and Speedtaker may appear if you enabled DLC Skills & Classes and didn't enable this option, as without them there would not be enough skills to fill all the skill milestones.

Enemy Skills--Since enemy skills work properly if applied to player characters (provided you don't try to use them online, of course), this option lets you throw some of them into the shuffle. This option enables some skills that are enemy-only in the base game but available as current/future DLC, and some that are fully enemy-only. There are 4 settings, so you can enable the weaker ones without the stronger ones if you so choose:

None: No enemy skills will appear.

Fair: Bold Stance, Point Blank, Winged Shield, Hit/Avo +10, Resist Status, and Inevitable End may appear.

Powerful: The above plus Hit/Avo +20 and Immune Status may appear.

Broken: The above plus Dragonskin, Divine Shield, and Immobilize may appear.

Staff Savant--This enemy-only skill is insanely powerful and deserves to be in the "Broken" tier, but it's arguably more fun to use than Dragonskin and friends, so it gets its own separate option. It will be enabled if and only if this box is checked; the setting above has no effect on it. Just remember, first of all, selecting this option is no guarantee that it will appear in the table, and secondly, if you use this skill, you might want to set some limits on what you allow yourself to do with it!

Exclude Weak Skills--If checked, this removes 6 of the less-exciting standard skills from the shuffle (Golembane, Future Sight, Swap, Shove, Skill +2, Luck +4). Note that this option has no effect unless enemy skills, DLC skills, and/or Stattaker skills are enabled, as otherwise there won't be enough skills to fill all the slots.

Once you've chosen your settings, press the Shuffle! button to generate a random skill table!

The table will appear below the settings.

The "skill tree key" is actually all the data from the table compressed into one big string of incomprehensible gobbledygook. You can copy the string down and save it somewhere...

...then, on a later visit to the site, paste it in the box and press the Load from Key button to view the same table again! This way you don't have to keep your browser open for however many days/weeks/months it takes you to complete the game.

The table that shows the results of the shuffle looks something like this:


...and so on.

To see how it works, let's look at the Oni Savage class. Normally they'd learn Seal Resistance at level 1 and Shove at level 10, but according to the shuffle, they now learn Life and Death at level 1 and Rally Magic at level 10. So if you get a Level 8 Oni Savage added to your party, replace Seal Resistance with Life and Death at the first opportunity. When the Oni Savage reaches level 10 and learns Shove, replace Shove with Rally Magic at the first opportunity. If you reclass a unit and they start to learn skills from the new class, replace them according to this table. Child units keep whatever skills they inherited from their parents; replace the rest according to this table.

If you capture a unit, modify their current-class and base-class skills according to this table, but leave their other skills the same. If the unit had an enemy-only skill that was eligible to appear in the table based on the settings you chose, you may put that skill back on after the game takes it off.

If you earn "Gentilhomme/Demoiselle", apply the skill that matches your character's gender. So males get Gentilhomme and females get Demoiselle.

If you want to de-equip a skill from a unit, that's fine, just remember that you'll need to use your save editor to re-apply it.

Note that Powersaves can only edit the skills of the first character in the top-left save file, so to edit a character other than Corrin, you have to enter a battle where deploying Corrin is not mandatory, then on Select Units de-select all except the one you want to edit, then save the game without starting the battle. The most reliable way to do this--which works at any time on any route starting at Chapter 7--is to go to your castle's crystal ball and choose StreetPass Team -> Check Defenses. (You do not need to, and shouldn't, enable StreetPass before doing this.)

If you selected Surprise Mode, you'll see a table like this:


All skills will be hidden at first, but you can reveal a skill by clicking the checkbox next to it. The "skill tree key" keeps track of which skills are revealed and updates automatically, so after you earn and reveal some skills, copy the key string and it will remember that you revealed those skills when you load from that string!

Some more details:


The shuffler isn't truly random:

  • For flavor reasons, all the Nohr Prince(ss) and its promotions' skills other than Nobility are fixed in place. (I can change this if people don't like it, though.)
  • Aptitude is fixed in place at Villager Lv 1 because without it, Mozu loses a ton of usefulness.
  • Locktouch is fixed as the Lv 1 skill of Ninjas and Outlaws because without it, you can't open some chests.
  • Inspiring Song, if it appears, will always be one of the Songstress skills since it's useless to other classes. Similarly, all the Ballistician skills that appear will only be assigned to the Ballistician class.
  • Winged Shield, if it appears, will always appear in a flying class. Beast Shield and Armor Shield will also only appear in classes that have the weaknesses they cover.
  • The following skills, if they appear, will only appear in classes whose weapon proficiencies allow them to be useful: All Weaponfaire skills, Beastbane, Strength +2, Magic +2, Malefic Aura, Live to Serve, Point Blank, Inevitable End, Staff Savant, Shadowgift, and Heavy Blade.
  • No single class or base->promoted class pair will ever contain the same skill twice, or contain both Resist Status and Immune Status, as that would be redundant. But if a skill appears twice in the standard non-shuffled class tree (like Beastbane, Grisly Wound, or Aether), it has a chance to appear up to that many times in separate class lines.

I will probably add the option to shuffle in DLC/path bonus classes and skills in the near future; I just wanted to get something basic working first. EDIT: It's working, you can now shuffle in both the DLC classes and skills, or just the skills if you so desire, or not use DLC at all. The Stattaker skills have their own independent option.

If you have any feedback (you found a bug, or I put your favorite skill in the "weak" category, or you believe I horribly mis-tiered the enemy skills, or you have any other suggestions), please let me know!

And finally a friendly reminder: Modifying your characters this way is playing according to an alternate set of rules. Fine when you're offline, but using these characters against other people online would be cheating. So if you do a randomized run, don't put any of these characters on your wireless battle teams, and on that particular save file, make sure NOT to activate StreetPass or update data using your castle's crystal ball.

Edited by ajmiam
Updated link
Link to comment
Share on other sites

Wait. You made this? And this works with the game???? Wow! That's amazing! You realize you created something that will potentially change how the game is played (for people that use power saves). Someone needs to do a shuffle run on Lunatic classic.

If I could use power saves, I'd try it.

I think adding DLC skills would only add to the fun. Not my call though.

[spoiler=Thought]If you managed to play with the skill set, you could manipulate a majority of the units too, doesn't it? I'm thinking a stat growth changer would be an interesting project. But enough about my ramblings. You deserve a pat on the back.

Link to comment
Share on other sites

Wait. You made this? And this works with the game???? Wow! That's amazing! You realize you created something that will potentially change how the game is played (for people that use power saves). Someone needs to do a shuffle run on Lunatic classic.

If I could use power saves, I'd try it.

I think adding DLC skills would only add to the fun. Not my call though.

[spoiler=Thought]If you managed to play with the skill set, you could manipulate a majority of the units too, doesn't it? I'm thinking a stat growth changer would be an interesting project. But enough about my ramblings. You deserve a pat on the back.

From what I understand it's a tool to keep track of stuff. Not a tool that does game modification. You have to do the latter yourself.

Programming an actual randomizer to deal with the very sensitive Gamedata.bin would be a bigger project.

Using FEFTwiddler to manually set skills as the OP suggests would be easy enough.

Personal skills are set in the ROM, so that'd harder to implement. Unless you set a personal skill in one of the regular skill slots in addition to their regular personal skill.

Edited by shadowofchaos
Link to comment
Share on other sites

I'll definitely add DLC skills and classes as optional includes. I didn't add them at the start because..well...I haven't downloaded any DLC myself yet :P: (aside from Revelation itself). Since all the DLC skills and classes are listed on this site it would be no problem to add them. I'll probably make the changes sometime before the end of this upcoming weekend.

Yes, as shadowofchaos said, this randomizer just produces a table for display purposes, telling the player which changes to make. I can definitely see why hacking the ROM to make it give out skills at the appropriate levels would make the gameplay for a skill-randomized run a lot smoother (no need for swapping the game in and out of Powersaves to edit skills, and earning the proper skill mid-chapter). However, I don't have any ROM hacking experience yet, and am, admittedly, slightly apprehensive about betting the life of my 3DS on everything going right. But Powersaves is relatively simple and apparently safe to use, so I figured I'd at least start by making a randomizer that'd be used with Powersaves.

Hmm...based on what I found on gbatemp.net, there is a specific location in each class's data where there are references to the ID numbers of the skills it awards at the level milestones, so at the very least I could possibly make a program that, given an unedited Gamedata.bin file, outputs the file with changes that implement the shuffle results. Thus, anyone who wants their shuffle results turned into a ROM hack would be saved the trouble of changing all those IDs themselves. EDIT: Not quite that simple--I'd also have to edit the skills the various characters have when they join. But still theoretically doable.

Edited by ajmiam
Link to comment
Share on other sites

The latter doesn't seem that hard to implement, given that data locations are fixed.

Working under the assumptions that the player can compress/decompress and reinsert the file themselves, I think the project wouldn't be too ambitious and would be within reach.

Do you want a fresh Gamedata.bin? I have them for both JP and EN versions.

And I can test it (since I have successfully modified a GameData.bin to allow to Kamuis to marry each other)

While, like you said, it doesn't modify the skills characters get loaded with, I think the players can tweak that.

Edited by shadowofchaos
Link to comment
Share on other sites

I already grabbed a copy of GameData.bin from this repository: https://github.com/RainThunder/fefates-tools

If I'm understanding Nightmare correctly, it's basically a GUI for editing the GameData.bin...which means I can use it to check my work as I modify said file. I'll start looking at that sometime soon (but probably won't get much done for a couple of weeks, as I'm leaving on a vacation the middle of next week).

Thanks for your help and support! :)

Link to comment
Share on other sites

Just wanted to give everyone a heads-up that the skillt-tree shuffler has been updated to include DLC skills and classes. The URL is the same as in my first post.

Note that by "DLC class" I mean collectively all classes that come on an Amiibo character and/or require a special item to change into. That is, Dread Fighter, Dark Flier, Ballistician, Witch, Lodestar, Great Lord, Vanguard, Grandmaster, and Pegasus Knight. By "DLC Skill" I mean any skill that appears on one of those classes or must be learned through an item. (This includes unreleased items like the ones for Bold Stance and Beast Shield.)

You can choose not to use DLC at all, or you can choose to include DLC skills in the shuffle but not the classes (so each DLC skill has a chance to be assigned to a standard class), or you can include DLC skills and DLC classes. (Many DLC skills will probably end up assigned to standard classes, and vice-versa. The shuffler doesn't treat them any differently.) The three options appear in the drop-down list next to "Include DLC?"

The exception is the "Stattaker" skills (Speedtaker, Lucktaker, etc.) which have their own checkbox option and can be enabled or disabled independently of the other DLC skills. (I figured that they're so similar that some people might not want them cluttering up the skill table.)

All other settings function the same except that you can now enable the "Exclude Weak Skills" option if you enabled at least one of the following:

  • DLC skills (with or without classes)
  • Stattaker skills
  • Enemy skills (Fair tier or up)

Any skill tree keys that you saved before the update should still work.

Please let me know if you run into any bugs or have any questions/suggestions!

UPDATE: There was a bug where some skills that appear twice in DLC classes were only being included once in the shuffle, so there weren't enough skills to go around if the Exclude Weak Skills option was chosen. This has now been fixed. Also, thanks to Valolaire for pointing out that I accidentally used Shadowgift's image for Witch's Brew; this has been fixed as well. (You may need to clear your browser's cache to see the correct image.)

Edited by ajmiam
Link to comment
Share on other sites

Someone needs to do a shuffle run on Lunatic classic.

Just a bump to say you got your wish! I'll be starting a shuffle run on Revelation Lunatic Classic sometime next week. Read about it here (and there's a 1-question poll for you to vote on, if you're so inclined).

Link to comment
Share on other sites

  • 3 years later...
  • 3 months later...

I've contacted @ajmiam through Reddit, hopefully they can rehost it.

I believe it's possible to edit in any changes to the skill tree with thane98's Paragon tool. It would just take a minute to edit everything manually, not to mention that it seems kind of unwieldy for a simple edit like this, but hey, if it works it works.

Link to comment
Share on other sites

The tool has been moved to github:  https://ajmiam.github.io/ to use it, and https://github.com/ajmiam/ajmiam.github.io if you want to view/fork the source code.

Note although the repository has a .csproj file that's just because I was using Visual Studio to compile the typescript.  In actuality the tool is a single web page with all of the JS in the same folder so you could directly open it on your machine without a server if you choose.  Just double-click index.html.

I realize the output format is inconvenient for ROM hacking, (notably the skill IDs and class IDs don't match the actual game's) so I can work on outputting it into a more convenient format if people would like.  (I don't currently have the knowledge or the hardware to do ROM hacking of my own, so I'm limited in how I can help, but if you can give me the exact format of the results that would be most convenient to work with, I can make it happen.)

Edited by ajmiam
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...