Jump to content

Hiding Crafting Items That Can't Currently Be Crafted


Recommended Posts

Hello, eternally overhauling my mod list and am working on a relatively "small" mod (for my own use, due to assets involved, yada yada) that distributes unique weapons (such as some of the unique skins for many mod released weapons) to important NPC's/named bosses throughout the game.

 

I want to hide these weapons from the crafting menu until the player meets the requirements for them (I know I could just ignore them until I meet the conditions, but I would prefer this, not to mention it leaves a little "surprise" for my gf). I intend on modifying death items so that NPC's drop a schematic on death, but don't know how to actually hide the item from the workbench until it's gained. Did it in FO:NV but can't remember how, or even if it's the same.

 

Thank you!

Edited by JaideW
Link to comment
Share on other sites

A constructible object (COBJ - crafting recipe) record can have a condition on it (match condition) that will prevent it being displayed until the condition/requirement is met.

All NPC's have a 'death item' field that can point to a list of the items that will be added to their inventory on death.

Link to comment
Share on other sites

Yeah, I've figured out the death item bit, but am stuck on making it so that the items don't show in the crafting menu. As right now they're simply greyed out, like most items you don't have the resources and/or perks for. Is there a specific condition that I'm missing or something?

 

For example, if the condition is the player has a perk, the game will still show that item, it just won't let you craft it (IE weapon mods, items in the chemistry bench, and so on). Thus, if the check is whether or not hey have the crafting schematic (Say for a unique katana) what stops that Katana from showing up in the crafting workbench?

 

For example:

{Reference}.HasBeenRead = 1 for a condition makes it require said blueprint.

^Blueprint

 

However unless I'm overlooking something it doesn't actually hide the recipe itself.

Edited by JaideW
Link to comment
Share on other sites

Yeah, I've figured out the death item bit, but am stuck on making it so that the items don't show in the crafting menu. As right now they're simply greyed out, like most items you don't have the resources and/or perks for. Is there a specific condition that I'm missing or something?

 

For example, if the condition is the player has a perk, the game will still show that item, it just won't let you craft it (IE weapon mods, items in the chemistry bench, and so on). Thus, if the check is whether or not hey have the crafting schematic (Say for a unique katana) what stops that Katana from showing up in the crafting workbench?

 

For example:

{Reference}.HasBeenRead = 1 for a condition makes it require said blueprint.

^Blueprint

 

However unless I'm overlooking something it doesn't actually hide the recipe itself.

 

The interface can read the Condition HasPerk so the item is visible but greyed out. To hide the item completely, use GetGlobalValue instead:

 

Condition: GetGlobalValue

 

Paramater 1, Global: TrueGlobal

 

Run on: Subject

 

Comprasion: ==

 

Value: 0

Link to comment
Share on other sites

As Larannkiar says, some conditions cause the the object to be visible but greyed out, while other conditions make it not show at all.

I have always used global's to block crafting recipes appearing (like most mods do), and they work, as should most condition functions...

 

What is 'hasbeenread' btw? Is it a property of a script? I have never tried script properties in a condition so I can't help you there.

Link to comment
Share on other sites

 

What is 'hasbeenread' btw? Is it a property of a script? I have never tried script properties in a condition so I can't help you there.

 

HasBeenRead is a Condition (it's not listed in the list of Conditions though).

 

Funny - I always check the Skyrim lists as well but this one wasn't there either. Is there a more up-to-date list somewhere?

And I wonder why the Workshop system made an exception on this condition too (I can understand hasperk, but this..)?

Link to comment
Share on other sites

 

 

What is 'hasbeenread' btw? Is it a property of a script? I have never tried script properties in a condition so I can't help you there.

 

HasBeenRead is a Condition (it's not listed in the list of Conditions though).

 

Funny - I always check the Skyrim lists as well but this one wasn't there either. Is there a more up-to-date list somewhere?

 

Right click in a Condition area, click New and you'll see the full list of Conditions. :)

Link to comment
Share on other sites

 

 

 

What is 'hasbeenread' btw? Is it a property of a script? I have never tried script properties in a condition so I can't help you there.

 

HasBeenRead is a Condition (it's not listed in the list of Conditions though).

 

Funny - I always check the Skyrim lists as well but this one wasn't there either. Is there a more up-to-date list somewhere?

 

Right click in a Condition area, click New and you'll see the full list of Conditions. :smile:

 

I was thinking of documentation but good point. Thanks.

Link to comment
Share on other sites

 

Yeah, I've figured out the death item bit, but am stuck on making it so that the items don't show in the crafting menu. As right now they're simply greyed out, like most items you don't have the resources and/or perks for. Is there a specific condition that I'm missing or something?

 

For example, if the condition is the player has a perk, the game will still show that item, it just won't let you craft it (IE weapon mods, items in the chemistry bench, and so on). Thus, if the check is whether or not hey have the crafting schematic (Say for a unique katana) what stops that Katana from showing up in the crafting workbench?

 

For example:

{Reference}.HasBeenRead = 1 for a condition makes it require said blueprint.

^Blueprint

 

However unless I'm overlooking something it doesn't actually hide the recipe itself.

 

The interface can read the Condition HasPerk so the item is visible but greyed out. To hide the item completely, use GetGlobalValue instead:

 

Condition: GetGlobalValue

 

Paramater 1, Global: TrueGlobal

 

Run on: Subject

 

Comprasion: ==

 

Value: 0

 

As Larannkiar says, some conditions cause the the object to be visible but greyed out, while other conditions make it not show at all.

I have always used global's to block crafting recipes appearing (like most mods do), and they work, as should most condition functions...

Hmm, Nexus seems to only like giving me notifs part of the time, and I just stumbled across this. >.>

 

Globals will in fact do exactly what I want, thank you both for the help!

Link to comment
Share on other sites

  • Recently Browsing   0 members

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