F M O
Forge Menu Overhaul
by matortheeternal
http://skyrim.nexusmods.com/mods/37003
http://www.youtube.com/watch?v=3Bs7oTAqi8w -|- http://www.youtube.com/watch?v=fKgTNnXfvqo
//===============================================================================
Description:
How many armor mods do you have? Have you ever gone to the smithing forge to forge something,
and found yourself scrolling down a list of recipes A MILE LONG to find it? Have you ever gotten LOST
in the forge menu looking for a recipe?
WELL SUFFER NO MORE!
This mod categorizes recipes into a second level of groups. For instance, all the GLASS armor and
weapon recipes are categorized into a new section called "GLASS". You might be thinking, "But that's
making more work for me!" You'd be right... if you weren't using a mod like MULTIGLASS, which adds
7 different colored glass armor and weapons sets to the forge. That's 104 recipes in one tab. With
this mod you'd have 8 "category" recipes in the tab instead, one for each color of glass and one for
the vanilla Glass armor and weapons. You can expand these categories by "crafting" the category title
(which is free). Then you can contract them again by crafting the category title again. BAM!
Secondary categories! I know you love me.
Now you can get every armor mod on the nexus (ok, maybe not that many) and still craft armors and
weapons in a timely manner! For the win.
Please see http://skyrim.nexusmods.com/mods/37003 for more information...
//===============================================================================
How it works:
At first I was approaching FMO by going into mods individually and categorizing recipes by hand in the
creation kit. However, I quickly realized that this took too long, required me to get into contact with
too many people, and made this idea ineffective at best. Thus I began to pursue writing a script for
use with TES5Edit to completely automate the process. After several months of code writing, testing,
and compatibility checking I have two scripts that should allow you to group recipes from the majority
of mods.
Below is an elaboration on how the scripts do this:
To see the list of mods which I have tested with FMO and the results of my testing, please see the
document https://dl.dropboxusercontent.com/u/62976555/FMO%20compatibility.rtf, as the list is too long to include here. 76% of the mods I've tested
are compatible with FMO. If you test a mod feel free to let me know so I can add it to the list.
I'm willing to review mods upon request, though this may change in the future. If a mod is
incompatible with FMO due to the unexpected subrecord issue I can't do anything about it - the mod
author needs to rebuild their entire mod from scratch.
//===============================================================================
Areas for Improvement:
FMO functions on a great idea, a second level of categorization at the forge, but there are several
areas for improvement for this approach.
The most major area for improvement is in regards to the experience gain from crafting these
categories. Skyrim is coded such that crafting any item gives you experience by the following
formula:
ΔXP = 3 × item value0.65 + 25
This means that even if you craft an item that's worth nothing (e.g. you craft air) you still get 25
points of experience. This is a problem because the categories used with FMO can be crafted for
free and give experience, thus essentially giving a player free experience.
I'd like to fix this problem, but I lack the knowledge of papyrus/Skyrim's code to do so. I've tried
modifying the CraftSmithing.psc script, but it turns out that it is part of the games engine and cannot
be modified? It's all really confusing, but all I really need to do is find a way to make it so AActivators
and DActivators (the items used by FMO to manage categories) don't give experience when crafted.
A simple (GetGoldValue() > 0) check would be able to tell you if you were crafting an
AActivator/DActivator. From there it's just a matter of finding a way to stop the game from giving the
player experience.
If anyone has an idea about how to go about doing this let me know.
//===============================================================================
Thanks:
These scripts wouldn't have been possible without the help of Zilav. He helped me get started with
coding Pascal for TES5Edit, provided a draft of the first part of the script, reviewed my code, and
answered my endless questions along the way. Thanks Zilav. You're the best!