[REL] FMO - Forge Menu Overhaul

Post » Sun Jun 09, 2013 5:41 pm

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. :smile:

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:

Spoiler

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! :D

User avatar
stevie critchley
 
Posts: 3404
Joined: Sat Oct 28, 2006 4:36 pm

Post » Sun Jun 09, 2013 9:51 pm

could you clarify what exactly this mod does some more?

Does FMO have some kind of database of various items from various mods, and renames/reorganize them according to that database?
User avatar
Lauren Graves
 
Posts: 3343
Joined: Fri Aug 04, 2006 6:03 pm

Post » Sun Jun 09, 2013 9:16 am

Will edit main post...

FMO is a set of two scripts which work with TES5Edit. One script is for recognizing and fixing invalid name forms (e.g. spelling errors) the other creates an esp "patch" file which groups the recipes at the forge based on whether or not the player has an item that corresponds to those recipes.

So, for instance:

I go to the forge and want to craft a glass sword. I go to the glass tab and find the recipe called "Glass". I craft this, and all of the "Glass" recipes become available. If I craft it again they become unavailable.

Edit: Done. See "How it Works".

User avatar
Jesus Lopez
 
Posts: 3508
Joined: Thu Aug 16, 2007 10:16 pm

Post » Sun Jun 09, 2013 8:55 am

I never realized you could make TES5edit scripts, that might come in handy lol, probably a bit more user friendly than SkyProc.

Anyways that's a very clever workaround for the Crafting Menu.
And the menu actually updates each time you craft the "glass recipe"?
Or do you need to exit and re-enter?

anyways Kudos, very creative solution to the crafting menu problem.
User avatar
RaeAnne
 
Posts: 3427
Joined: Sat Jun 24, 2006 6:40 pm

Post » Sun Jun 09, 2013 10:19 pm

Glad to see you came here. You should probably post links to the video's you have on your mod page so members can more clearly see what this does. :EDIT: NVM I see you did post them at the top but I missed them. Maybe make them a bit more noticeable.

From the video on his mod page I saw, Yes it updates automatically while in the menu. It looks really clever.

User avatar
Samantha Jane Adams
 
Posts: 3433
Joined: Mon Dec 04, 2006 4:00 pm

Post » Sun Jun 09, 2013 7:59 am

Yes, the menu updates flawlessly and cleanly. It's very nice! I've tried several other approaches to the crafting menu, and this is definitely the cleanest way to go.

The script functionality is a great way to do this because it's entirely automated, but users can make patches by hand too, for those troublesome mod files which the script can't handle (e.g. SkyRe, and any mod with corrupted data from TESVSnip/related).

I'll try to make a tutorial on implementing AActivators and DActivators manually sometime in the next week for modders. It's not that hard, and doesn't take too long, but I definitely prefer to use the script when possible.

I'll increase the font size. :smile:

User avatar
Manuela Ribeiro Pereira
 
Posts: 3423
Joined: Fri Nov 17, 2006 10:24 pm

Post » Sun Jun 09, 2013 9:17 am

Have you considered looking into SkyProc to see if it can automatically apply the script to all craftable weapons with one click rather than going through TES5Edit?

User avatar
Siobhan Wallis-McRobert
 
Posts: 3449
Joined: Fri Dec 08, 2006 4:09 pm

Post » Sun Jun 09, 2013 8:40 pm

Would it be possible to add something to make it easier to differentiate between categories and craftable items? Something like adding a '->' onto the end of category names would be very useful. Other than that, fantastic work!

User avatar
Justin Bywater
 
Posts: 3264
Joined: Tue Sep 11, 2007 10:44 pm

Post » Sun Jun 09, 2013 11:44 am

I haven't. I don't know much about SkyProc, I thought it was just for generating patches for use with SkyRe?

That'd be pretty easy, yeah.

Go to line 393 in "FMO Script v2.00":

    SetElementNativeValues(e, 'FULL', slPre[i]);

change it to:

    SetElementNativeValues(e, 'FULL', slPre[i] + '  ->');

I'll test this out myself to see how it looks.

User avatar
Isabella X
 
Posts: 3373
Joined: Sat Dec 02, 2006 3:44 am


Return to V - Skyrim