Jump to content

[LE] Using Hearthfires Workbenches To Add New Items


Allannaa

Recommended Posts

Yeah, totally makes sense. Create a custom object that your recipe will give to the player. Then have a script on that object using the OnContainerChanged event to add a formlist to the player containing all the result items that the corresponding Hearthfires recipes would have given. Doing it this way will allow the Hearthfires system to kick in and enable all the separate things but at one time instead of individually as created. And it should also allow the Hearthfires system to prevent showing the individual recipes as the conditioning system should kick in too.

 

At least that is the theory.

Link to comment
Share on other sites

I should maybe mention I already have the NIF for the three floor plans (Alla Basic, Alla Towers, Alla Porches are their working names) so the game would only have to add and place one thing at a time for exterior and one for interior, kinda like each of the infinite "build this piece" clicks do for the vanilla house and its insides.

 

It's always seemed to me that whoever coded HF went a little stupid. I mean good gods, "Build Small House foundation, wall support, walls, roof beams, roof, partridge in pear tree, and stuff" versus "Build Foundation, Walls, and Roof". And it's always irritated the living daylights out of me that the stuff is called "BYOHHouseInteriorThingPart0001000101010" instead of "BYOHInteriorCornerShelfwithStuff" and numbered 01,02,03 instead of Room01Plan99Piece47OtherDesignator55, without ever telling you what the heck it is, which means you have to open every dang thing in the CK before you can see if it's the bit you thought you wanted, because it's probably not that corner shelf, it's probably the pear tree for that partridge.

Link to comment
Share on other sites

Didn't see your answer, Ishara... That'll teach me to hit Refresh Page first.

Okay, what I have so far is

AllaBYOHInteriorPart023ShelfCorner - MiscItem, with the BYOHBuildingObjectInteriorScript and my own keyword

AllaBYOHBuildingInteriorPart023ShelfCornerKW in their proper spots (Basically, I duplicated the corner shelf item, then added my keword and deleted its original keyword)

 

Recipe (COBJ) - Created Object = AllaBYOHHouseInteriorPart023ShelfCorner, Workbench Keyword AllaBYOHBuildingInteriorPart023ShelfCornerKW and

Conditions are Target = PL (player), Function name = GetItemCount, FunctionInfo = MiscItem AllaBYOH...Shelf, Compare is == , value 0, variable AND

 

I added mine to the same formlists as the one I duplicated (there were like 6 of them)

 

annnnd I'm still getting nothing in the workbench menu in game.

Now, that could possibly be because I need to do something to the script itself. I'm a bit antsy about doing that, because I can't compile scripts.

 

No matter what I do (and I've tried every solution there is), my Windows10 won't enable the .Net Framework 3.5, which is what every dang compiler, including the CK's own, uses to work. Heck I've even tried reinstalling Win10 and letting it update or play with anything it wants, and it STILL won't let me enable that thing. It always says it can't find the files, and so I download them and then it says it can't find the files so I give up and scream.

Edited by Allannaa
Link to comment
Share on other sites

If you want your recipe to show up at the HF workbench, the recipe needs the HF workbench keyword and not your own keyword. Unless you add your keyword to the HF workbench, or place a separate workbench with your keyword.

 

If you still have my contact info, I know we shared files in the past, I could take a look at what you've got and see if I can get it going.

Link to comment
Share on other sites

You know, I'm almost to the point where I would do my own workbenches, provided I could have a way of doing "Enable Alla's Bench OR Enable Vanilla Bench". Let me try redoing the KW , and then if it still dun't play fair, I'll pop you the esp (it's boring at the moment, no fun textures, just . the . dang . shelf and my NIF for the main hall.

Link to comment
Share on other sites

holy crap it worked finally! LOL well, onward now....

 

ETA --

 

Now, if I remember from the first time I almost got this right, what I do now is....

Place all the stuff in that room, such as the shelf, a static bowl, a chair and table, a retextured bed, a bookshelf, and a non-respawning strongbox (just for examples)

Set all those things to "initially disabled"

Make the shelf the "Enable object" by clicking on it in the render window for each thing

And if possible, change the name from "Corner Shelf" to "Furnish Small House"

 

Right?

Edited by Allannaa
Link to comment
Share on other sites

Hmm okay something still is going wrong for me.

If I duplicate the corner shelf, etc, everything works great, BUT --

It always has the existing rusty tankard and bowl on it, no matter what else I parent to it. And if I get rid of the rusty tankard and bowl for MINE, they're also gotten rid of for the vanilla.

 

I tried making my own workbench keyword "AllaFurnishSmallHouseKW"

I added that to the workbenches for that room (primarily because I couldn't actually figure out which was the "House" and which was the "Entryway", but anyway...) and everywhere else the keyword from the duplicated item had been, such as the form lists

The item no longer showed up in the crafting menu

 

So I put back the vanilla keyword, and it showed up, and I could one-click furnish the house, BUT I still had to leave the tankard and bowl alone, or they didn't show up in vanilla either.

 

Then I tried duplicating the corner shelf in the render window, parenting only my stuff to it -- same result. Either the tankard and bowl were gone for everything, or present for everything.

 

I tried placing a "NobleCornerShelf" in the right spot and -- CK wouldn't allow me to "select reference in render window" or any other way.

 

What super-obvious thing am I missing? (Other than my mind, but I lost that about three saves in to this mod attempt.)

 

EDIT -- The trouble seems to be, no matter what I do, MY object is not the one created at the workbench. My "misc item" shows up in the crafting window, but what it creates is the vanilla version with the cup, bowl, snowberries, and wall basket. The bench insists on creating the BYOH noble shelf, NOT the AllaNobleShelf. Why?

Edited by Allannaa
Link to comment
Share on other sites

So we got two things going on here.

1. Build a set of options in one go rather than crafting as multiple things

2. Build a different object instead of an existing object

 

I gather that #1 has finally gotten to work.

 

#2 requires re-doing what you did to make the tankard and bowl disappear but instead of changing the stock you make it a duplicate. Then you create yet another recipe that will craft a custom object that when added to the player inventory will enable your version of the shelf. Then add a global variable to toggle when your version is enabled that you use as a condition on your recipe and as an added condition on the stock recipe. That way after yours is crafted the stock recipe along with yours won't show up any more. And make sure your recipe also has the conditions that the stock recipe has so that it won't show up either when the stock version is crafted.

 

To save hassle on yourself, keep any such deviations outside of the combined groups, just leave them separate.

 

Hope that helps...

Link to comment
Share on other sites

So we got two things going on here.

1. Build a set of options in one go rather than crafting as multiple things

2. Build a different object instead of an existing object

 

I gather that #1 has finally gotten to work.

Yes, thanks be to Zenithar. Or Sheogorath, maybe. Seriously, all this requires is something to parent the bed, table, dresser, yellow rug, and yellow dishes TO. My trouble has been being able to make my item the Parent.

 

 

#2 requires re-doing what you did to make the tankard and bowl disappear but instead of changing the stock you make it a duplicate. Then you create yet another recipe that will craft a custom object that when added to the player inventory will enable your version of the shelf. Then add a global variable to toggle when your version is enabled that you use as a condition on your recipe and as an added condition on the stock recipe. That way after yours is crafted the stock recipe along with yours won't show up any more. And make sure your recipe also has the conditions that the stock recipe has so that it won't show up either when the stock version is crafted.

 

To save hassle on yourself, keep any such deviations outside of the combined groups, just leave them separate.

 

Hope that helps...

I'm not sure I understand.

Originally I used "search replace" to turn the goblet (okay, so it wasn't a tankard, my brain is goo), bowl, wallbasket into "gemAmethyst", because deleting them entirely made Skyrim blow up (sort of.)

 

So what I *should* do is duplicate the corner shelf in the render window, along with the goblet, bowl, and basket....?

Then I replace the goblet, bowl, and basket with MY goblet and bowl, and turn the wallbasket into a gem (since I don't want the basket; the gem drops to the floor like any other item and you can pick it up. LOL I should replace it with "Nails" actually, since those are more useful than a gem)

Then I make "AllaMyShelfWithStuff" recipe, the Created Object of which is AllaNobleShelf, with the conditions having the global you outlined, plus the condition copied from the actual BYOH...whateverPart023ShelfCorner recipe

Then I parent my goblet, bowl, and box of nails to the AllaNobleShelf

 

or am I *still* being dense?

 

Edited by Allannaa
Link to comment
Share on other sites

  • Recently Browsing   0 members

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