Taking Questions about Mixintos and Overrides

Hi,
i have overrided some qb files (both breastplates for both genders) but it’s not fully working…
i had also mixintoed the jsons to change transparency settings to true.
the item changes as expected when equipped but it goes back to the original ones when i reload the game
transparency keeps “true” so the issue is only with the qb files
i’m doing something wrong?

if of any use, i changed this in the manifest of a mod inside a mod, calling it from my main mod client.lua

thanks and sorry for bumping this up again

For some reason I can’t find the user_settings.json. Has this changed again or can you still use this method to make smaller worlds for testing?

Still works.
The user_settings.json are not part of any mod, they’re in the same folder than the Stonehearth.exe.
If you play via Steam, that would be in C:\Program Files (x86)\Steam\steamapps\common\Stonehearth

The “mods” : { “stonehearth” : {} } section will already exist, there are some game settings that are saved there.

Thanks again @Relyss, there it was, staring me in the face…

My mod is throwing errors at me, so: how do I properly remove an entry from a ["a","b","c"] list?

In that case you need to override the array. Mixintypes

I was hoping something changed about that :forlorn:

Just made the saddest discovery ever: if one override fails, all overrides listed after it in the manifest are ignored as well (there must be a loop break somewhere in the code).

what do you even mean fails? how would an override fail?

That only happens with json errors though, like a missing or extra comma, brackets, etc…

1 Like

My example: large stone pine files don’t exist, small and medium do. In game the small ones are overridden but medium are not. While it is hard for me to imagine situations where the right side (value) purposefully doesn’t exist, lack of the left side (key) is actually a major part of the tandem injection cross-mod support idea.

	"overrides": {
		"/stonehearth/entities/trees/oak_tree/small_oak_tree/small_oak_tree.qb": "file(small_stone_pine.qb)",
		"/stonehearth/entities/trees/oak_tree/small_oak_tree/small_oak_tree_2.qb": "file(small_stone_pine_2.qb)",
		"/stonehearth/entities/trees/oak_tree/small_oak_tree/small_oak_tree_3.qb": "file(small_stone_pine_3.qb)",
		"/stonehearth/entities/trees/oak_tree/large_oak_tree/large_oak_tree.qb": "file(large_stone_pine.qb)",
		"/stonehearth/entities/trees/oak_tree/medium_oak_tree/medium_oak_tree.qb": "file(medium_stone_pine.qb)",
		"/stonehearth/entities/trees/oak_tree/medium_oak_tree/medium_oak_tree_2.qb": "file(medium_stone_pine_2.qb)",
		"/stonehearth/entities/trees/oak_tree/medium_oak_tree/medium_oak_tree_3.qb": "file(medium_stone_pine_3.qb)",
		"/stonehearth/entities/trees/oak_tree/large_oak_tree/large_oak_tree_2.qb": "file(large_stone_pine_2.qb)",
		"/stonehearth/entities/trees/oak_tree/large_oak_tree/large_oak_tree_3.qb": "file(large_stone_pine_3.qb)",
	}

It is for rather sophisticated concepts but lack of the right side can happen if more than two mods are involved. I can imagine situation where modA wants to override files in modB with files from modC (e.g. modA adds a resource and wants to remove a recipe for job in modB if modC is enabled because modA adds its own modified version of the recipe using modA and modC ingredients) . If modC is disabled, the override and everything below it is ignored. Similar situation would happen if someone tried to make a double tandem injection to add separate content in modA for modB only, modC only and both modB and modC.

Uhm, maybe because they are .qb files, or maybe because that last line has a trailing comma.