BL Coding How to remove crafted items from the game?

Users who are viewing this thread

Monkey

Regular
M&BWBWF&SNWVC
Once an item is crafted, it looks like its blueprints are saved somewhere since it starts being produced and sold by cities.
I find it very, very untidy that exact "copies" (technically not copies since I actually crafted the same blueprint twice) do not stack.
Is it possible to remove those items so they stop being produced by cities?
Is there a way to not only remove them from the game (its internal hard "memory"/save file) but also remove existing copies of them from cities' and heroes' inventories?
Is there documentation anywhere on how smithing works and how and where things are stored in the game save?
 

builder of the gods

Sergeant at Arms
Smithed weapons exist as weapons but also as parts, if you want to remove them you need to at least get rid of their referencing in templates, you probably need to remove the parts and the item to (spitems in sandboxcore, templates and parts in native) this needs editing of xml files

A quick fix for your problem would be just disabling the merchandisable option.
 
Upvote 0

Monkey

Regular
M&BWBWF&SNWVC
But I'm talking about the weapons I, as player, craft in the game through the smithing feature. I assume those aren't saved in XMLs?
 
Upvote 0

Monkey

Regular
M&BWBWF&SNWVC
(spitems in sandboxcore, templates and parts in native) this needs editing of xml files
Since you say the weapons I craft with the smithing skill in a game are stored in an XML, does that mean other save games will have that same weapon too?

Just to clarify, what I want to do is not to remove wepon/item parts from the game (Bannerlord), but rather to remove weapons that I created through crafting/smithing from my game (the save file, where I assumed my custom crafted items are stored) so they stop being produced/sold by the cities' artisans.
 
Upvote 0
There's a misunderstanding here. The items you craft during your campaign are not stored as templates in any XML file. From what I can tell in SandBox.CampaignBehaviors.CraftingCampaignBehavior the items you create are stored in a dictionary called _craftedItemDictionary. I haven't dug into it enough to see if the game accidentally looks in there as well when populating shops, but that's just my assumption.

EDIT: Looking into it further, the item is also, of course, stored as a traditional item with an ID. Maybe the id assigned, as it's a random int, falls into a range looked for by the script that populates shops, not knowing it's a player creation.
 
Last edited:
Upvote 0

Monkey

Regular
M&BWBWF&SNWVC
There's a misunderstanding here. The items you craft during your campaign are not stored as templates in any XML file. From what I can tell in SandBox.CampaignBehaviors.CraftingCampaignBehavior the items you create are stored in a dictionary called _craftedItemDictionary. I haven't dug into it enough to see if the game accidentally looks in there as well when populating shops, but that's just my assumption.

EDIT: Looking into it further, the item is also, of course, stored as a traditional item with an ID. Maybe the id assigned, as it's a random int, falls into a range looked for by the script that populates shops, not knowing it's a player creation.
Is there a command I could use to remove those items?
 
Upvote 0
Top Bottom