Hello! I wanted to ask smth: how do you think, is it possible to somehow add a turn on/turn off sound feature to the objects that we can toggle?
Right now we can add a sound to such objects and it's great! But if we add not just a sound but a music track, you can't stop it then. Being able to turn off the track would've given an opportunity to create music boxes :')
If it's too complicated then just let's forget it, because it's a small thing not worth wasting too much time on it
That's an interesting idea, I took a look at the code and it seems to be possible, but it looks like it would be a lot of work to remember which Furniture is playing what sound/music so that it can be stopped, and I don't think I'll be able to make it work in multiplayer... I'm adding it to the todo list but I don't think I'll do it myself, maybe someone else will have the courage to implement it one day.
Man, I hope someone figures out how to make a standalone kitchen counter with this so I can add back my missing counter after the dining room upgrade! ToT So many beautiful counters... Just gone! (Also, awesome framework. Thank you so much for your work!)
Which mod were you using? Happy to go ask the modder if they are interested, or if not, will let me port it. I need a cute kitchen counter too now you mention it~
I personally use Cozy Farmhouse Kitchen for my kitchen! That would be awesome if you could! I'm sure I'm not the only one who misses my long counter after adding the dining room upgrade. <3
thank you SO much! i had a mod which depended on CF so i had to find another way to make it work again. your instructions were very clear and easy to follow even for someone like me, who's not very smart with codes lol~
Thanks for adding the custom fish tank! This opens up another possibility for me!
I have a few things to discuss with you... Is it possible to specify the path of the image that can be used in “Source Image”, such as “\Stardew Valley\Content\TileSheets”? //ContentPatcher content.json { "Action": "Load", "Target": "TileSheets/Test", "FromFile": "assets/Test.png" }, (For example, I want to use a tile sheet added by CP like this.) I would like to be able to use a content patcher or ModConfig to allow the user to change the textures of the furniture added by this mod at will. //FurnitureFramework content.json "Source Image": "TileSheets/Test.png",
One more thing, is it possible to remove the light function by default in the fish tank? The fish tank emits light at night.
Another thing is that I can't seem to get rid of the furniture I added as “FishTank” because I can't throw it away or put it in a shipping box. Is there any way to make it possible to dispose of this?
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- I use translation tools to read and write English. I apologize if the meaning is not understood or if there are strange expressions.
To allow the player to choose between 2 textures, you can make 2 fish-tanks (with texture variants) and let the player choose which one to use. It is also possible to use the new Includes feature:
And then have 2 files named "fish_tank_1.json" and "fish_tank_2.json", each one with the proper file path:
{ "Furniture": { "{{modID}}.my_fish_tank": { "Source Image": "fish_tank_1.png"// change to fish_tank_2 in fish_tank_2.json ... // other furniture properties } } }
It is not possible (for now) to access the game's base sprite-sheets, I don't really know how to do it without breaking the "Source Image" field.
About the light: I didn't notice it was doing this, I'll take care of it when I'll work on light-sources.
I don't know why you can't throw your furniture in the trash, I just tried it with my example Fish Tank and it worked. Are you using the trash-can in the inventory menu?
I was wrong about not being able to get rid of the fish tank, sorry about that! (It was a fish tank with fish in it, so he could not throw it away.
As for the lights, thank you in advance! Looking forward to your updates!
I tried “Included” and got an error. I don't know what is wrong! Please help! // [FF] content.json { "Format": 2, "Included": { "Fish Tank 1": { "Path": "fish_tank_1.json", "Enabled": true }, "Fish Tank 2": { "Path: "fish_tank_2.json", "Enabled": false } } } Below are the details of the error. (It is long, so I will fold it up.)
Spoiler:
Show
[Furniture Framework] Could not load content.json for Tikamin557.FF.RecessedFishTank_NEW: StardewModdingAPI.Framework.Exceptions.SContentLoadException: Failed loading asset 'content.json' from SMAPI\tikamin557.ff.recessedfishtank_new: an unexpected error occurred. ---> Newtonsoft.Json.JsonReaderException: Can't parse JSON file at C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods\[BBB] Editing MOD\Recessed Fish Tank (SDV1.6)\[FF] Recessed Fish Tank\content.json. This doesn't seem to be valid JSON. Technical details: Invalid property identifier character: . Path 'Included', line 5, position 0. at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in E:\source\_Stardew\SMAPI\src\SMAPI.Toolkit\Serialization\JsonHelper.cs:line 86 at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadDataFile[T](IAssetName assetName, FileInfo file) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 180 at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 120 --- End of inner exception stack trace --- at StardewModdingAPI.Framework.ContentManagers.ModContentManager.ThrowLoadError(IAssetName assetName, ContentLoadErrorType errorType, String reasonPhrase, Exception exception) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 319 at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 132 at StardewModdingAPI.Framework.ModHelpers.ModContentHelper.Load[T](String relativePath) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ModHelpers\ModContentHelper.cs:line 57 at FurnitureFramework.FurniturePack.load(String path) in /mnt/data/Code/SV Mods/Furniture Framework/FurnitureFramework/FurniturePack.cs:line 175
I tried to remove the (“Format”: 2,) part and followed what you pasted as code and got a similar error.
Spoiler:
Show
// [FF] content.json { "Included": { "Fish Tank 1": { "Path": "fish_tank_1.json", "Enabled": true }, "Fish Tank 2": { "Path: "fish_tank_2.json", "Enabled": false } } } [Furniture Framework] Could not load content.json for Tikamin557.FF.RecessedFishTank_NEW: StardewModdingAPI.Framework.Exceptions.SContentLoadException: Failed loading asset 'content.json' from SMAPI\tikamin557.ff.recessedfishtank_new: an unexpected error occurred. ---> Newtonsoft.Json.JsonReaderException: Can't parse JSON file at C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods\[BBB] Editing MOD\Recessed Fish Tank (SDV1.6)\[FF] Recessed Fish Tank\content.json. This doesn't seem to be valid JSON. Technical details: Invalid property identifier character: . Path 'Included', line 3, position 0. at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in E:\source\_Stardew\SMAPI\src\SMAPI.Toolkit\Serialization\JsonHelper.cs:line 86 at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadDataFile[T](IAssetName assetName, FileInfo file) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 180 at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 120 --- End of inner exception stack trace --- at StardewModdingAPI.Framework.ContentManagers.ModContentManager.ThrowLoadError(IAssetName assetName, ContentLoadErrorType errorType, String reasonPhrase, Exception exception) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 319 at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 132 at StardewModdingAPI.Framework.ModHelpers.ModContentHelper.Load[T](String relativePath) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ModHelpers\ModContentHelper.cs:line 57 at FurnitureFramework.FurniturePack.load(String path) in /mnt/data/Code/SV Mods/Furniture Framework/FurnitureFramework/FurniturePack.cs:line 175
There was a missing quotation mark " ("Path: instead of "Path": ), I just fixed it in my original answer. I recommend using this validator to check if a json file is correct, it will tell you which lines have mistakes.
Oh! Sorry, I checked the whole thing and didn't notice that part... “validator”! This is incredibly useful! I didn't know such a tool existed...thanks for telling us about it! It helped me a lot!
There seems to be another problem, Why doesn't an item appear in the Generic Mod Config Menu even if I set “Enabled” in the “Included” section? I used the above code for “Included” as it is, but the json loading is working correctly according to “Enabled” true/false, but the item is not displayed in the Generic Mod Config Menu.
I think I understand the issue, you need to add an empty "Furniture" dictionary in the content.json, like this: { "Format": 2, "Furniture: {}, "Includes": { ...// keep what was already here } }
That's on me, I forgot to remove the requirement for Furniture definitions.
Thank you! So “Included” itself will work, but it does not show up in the Generic Mod Config Menu even if I set it to “Enabled”.Can you help me with this problem?
Setting "Enabled" will only change the default state of the config option, can you share your log through this site so I can help? A screenshot of the config menu will help too.
Shouldn't the [My Mod] settings appear in ModConfig?
In the meantime, I will also share the status of the "FurnitureFramework" setup. "slot_place_key": "MouseRight", "slot_take_key": "MouseRight", "disable_AT_warning": false, "enable_slot_debug": false, "slot_debug_alpha": 0.5, "slot_debug_default_color": { "B": 147, "G": 20, "R": 255, "A": 255
I have no idea why it doesn't work... Your mod's name should appear in the config menu but it's not. Can you try deleting the "config.json" file of your mod and restart the game? If it still doesn't work, I think I will only be able to help if you send me your Furniture Pack so I can try to figure our what's wrong.
I deleted “config.json” and restarted. The new “config.json” shows the text representing the item, but the item still does not appear in ModConfig. { ".FishTank1": true, ".FishTank2": false }I share the file for this mod that I am creating! [Mod file. Google Drive link]
Ok, so there were multiple issues: - your Furniture in the included files should have the same ID (the key in the "Furniture" dictionary) so that the game knows that they are the same but with different definitions - I made a mistake in my code causing an issue when a Furniture pack defines the same Furniture multiple times (even with included files)
I'll fix the code and upload the new version shortly. I'll also send you a correction of your pack so you don't have to worry about it.
I just uploaded the fix, here's a "fixed" version of the pack you sent me, please note that the IDs need to be the same over every definition of your Furniture so that the game knows it's the same Furniture with a different definition: https://drive.google.com/file/d/1vMVypTbAxzeavNaqVY9UivUMuLgf3a1d/view?usp=sharing
Oh! I see, that's how you used “Included”. (I thought it was used to turn on/off furniture to be added...) Thank you for the correction of the file and also the new version!
However, I am sorry to keep repeating this, but that setting still does not appear on the ModConfig screen, and I cannot toggle true/false in ModConfig.(´;ω;`) (If you open “config.json” and rewrite true/false directly, the change itself will be applied.) [SMAPI log parser] (We are using the latest version of the Furniture Framework and the mod files that you modified for us.)
I would like to confirm that I may have misunderstood the fundamental point, If I use the “Enabled” property of “Included”, the user can freely change its true/false value in the “Generic Mod Config Menu”, right?
-------------------------------------------------------------------------------------------------------------------------------------------- I use translation tools to read and write English. I apologize if the meaning is not understood or if there are strange expressions.
The "Enabled" value in the Furniture Pack only sets the default value for the config option, it should appear anyway, it works fine for me. I have no idea why it won't appear in your game, the only thing I can imagine is the game's language but I don't understand why it would break the config menu. Anyway, it's always possible to change the config by editing the mod's config.json.
I see, so if everything is normal, the item should appear in ModConfig just by using “Included” … If we learn anything, we will let you know! I understand it for now! Thank you for the lengthy discussion!
I don't see what downloading Furniture Framework can do at all. I just want a MOD that can be used as soon as I download it. This is very difficult for a novice who can't read English.
This mod is a Framework, it is made so that mod authors can create their own Furniture more easily and with more freedom. If you are not planning on making a mod with this Framework, I can't help you much.
If you're looking for some lovely living room furniture, check out Lynn's Livingroom. If you just want an extendable table that works great with Market Town, try (CP) Combination Table
Hello! I've been wandering around pitifully, trying to figure out how to add custom furniture to the game, the easy way. And your mod was like a sudden blessing. Very excited to use it. It's so easy to understand and your template file is just a chef's kiss. Absolutely amazing work.
About i18n translations for Display Names, I don't know how i18n works for now, but I will add this to the todo list. In the game, Furniture descriptions are hard-coded and only depend on the placement rules (inside/outside), but I think that I wouldn't be too hard to change this.
About stores, it is already possible to set stores in which each Furniture will show up, see this part of the documentation. The price you give for a Furniture will be the same in all shops. If you want more control over how your Furniture shows up in shops, you have to make a Content Patcher (CP) Pack, see this part of the documentation to learn how to make a "mixed content pack". If you do this, you'll be able to define a "ConfigSchema" in the CP Pack, which will create config options for the Generic Mod Config Menu and allow players to configure your shops.
I actually never noticed it was hard coded descriptions for furniture. O_o; The game itself should take care of translations for that part then. (For the translation stuff from the wiki: Translations API)
re: User Configuration Aha so that's how you do that! I've done just Content Patcher stuff before but never a mixed content pack. Excited to dive into this part now that I've got my custom furniture working.
Thank you so much for your hard work on the resource.
Hello! I just found out about this mod today and I want to thank you so much for creating this wonderful mod! There were many restrictions on furniture added using CP in SDV1.6, and I was frustrated that I could not create the furniture I wanted, but thanks to this mod, I will be able to create what I want to create! I've only looked through a few of them, but I was even impressed with the github guide, which is very detailed and easy to understand! Again, thank you so much!!!!! A new wind blew in the mod creation process, which had been a bit stuck in a rut! ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ I use translation tools to read and write English. I apologize if the meaning is not understood or if there are strange expressions.
If you're making a mod, absolutely! Everything you'll need is in the documentation. If you have a mod that requires Custom Furniture, no. The author of the mod would have to port their mod for the Furniture Framework.
Following the development of this mod with interest! I recently ported StarAmy's bakery furniture mod. It uses a 1.6 update of Aedenthorn's FDF that's frankly on life support it's bugged so bad. What I WANT is a set of shop display furniture that I can functionally use to create an actual storefront via HaPyke's Market Town. This is an incredibly talented and collaborative community so I have faith that we can make this happen eventually! :)
Hi, thank you for your interest. From what I know about the game's code, having multiple slots per Furniture to store objects is a challenging feature because it requires storing these new slots in the game's save data (it only has a single slot per Furniture hardcoded into it). Also I don't really know how to make such a feature compatible with HaPyke's Market Town, but I'll take a look. Long story short, this is something I thought about adding to this Framework, but it's not a priority because of the complexity of the task, I've contacted the author of the updated FDF mod to learn how they did it, hoping that I could learn how to do it from them.
Thanks for being willing to look into it! Re interacting with Market Town, the fastest way is likely to ask HaPyke. I'm a total novice but even I can tell that guy has got to be an absolute coding titan to make a mod that does everything his does.
I see that slot functionality has now been included. I'll be attempting conversion to your mod this afternoon. My compliments, your modder instructions on Github are extremely well written so that even a novice like myself can follow along. :)
Thanks for your compliments, it means a lot! I'm currently working on a 2.0 version that will change some stuff in the format, so you might have to convert your mods again when it releases... I'm also in contact with HaPyke to plan out how to make this mod compatible with Market Town, I'm confident that we can work it out!
I'm so delighted to hear this! I'm running through your example pack, and I don't see an analogous option for a wall shelf. The way my mod is doing it currently is load the wall shelf sprite as a painting-type object with CP, and then install slots on it to place objects via FDF. This sounds potentially doable with your framework as well? I suspect you've already done the hard part with the slot functionality.
I did not implement wall mounted Furniture yet (mostly because nobody asked), but you can try to make it wall mounted by setting the "Force Type" field to "painting", I have not tested it but it might work on a stroke of luck. I'm adding proper implementation of wall-furniture to the todo list anyway, but it might take a while until I get to implement it.
Interesting! I will try that out. If it doesn't work, no worries. This mod has increased so much in such a short span of time, and I wouldn't want you to feel obligated to add anything
89 comments
Right now we can add a sound to such objects and it's great! But if we add not just a sound but a music track, you can't stop it then. Being able to turn off the track would've given an opportunity to create music boxes :')
If it's too complicated then just let's forget it, because it's a small thing not worth wasting too much time on it
I'm adding it to the todo list but I don't think I'll do it myself, maybe someone else will have the courage to implement it one day.
This opens up another possibility for me!
I have a few things to discuss with you...
Is it possible to specify the path of the image that can be used in “Source Image”, such as “\Stardew Valley\Content\TileSheets”?
//ContentPatcher content.json
(For example, I want to use a tile sheet added by CP like this.){
"Action": "Load",
"Target": "TileSheets/Test",
"FromFile": "assets/Test.png"
},
I would like to be able to use a content patcher or ModConfig to allow the user to change the textures of the furniture added by this mod at will.
//FurnitureFramework content.json
"Source Image": "TileSheets/Test.png",
One more thing, is it possible to remove the light function by default in the fish tank?
The fish tank emits light at night.
Another thing is that I can't seem to get rid of the furniture I added as “FishTank” because I can't throw it away or put it in a shipping box.Is there any way to make it possible to dispose of this?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I use translation tools to read and write English. I apologize if the meaning is not understood or if there are strange expressions.
in your content.json file you can write:
{
"Included": {
"Fish Tank 1": {
"Path": "fish_tank_1.json",
"Enabled": true
},
"Fish Tank 2": {
"Path": "fish_tank_2.json",
"Enabled": false
}
}
}
And then have 2 files named "fish_tank_1.json" and "fish_tank_2.json", each one with the proper file path:
{
"Furniture": {
"{{modID}}.my_fish_tank": {
"Source Image": "fish_tank_1.png"// change to fish_tank_2 in fish_tank_2.json
... // other furniture properties
}
}
}
It is not possible (for now) to access the game's base sprite-sheets, I don't really know how to do it without breaking the "Source Image" field.
About the light: I didn't notice it was doing this, I'll take care of it when I'll work on light-sources.
I don't know why you can't throw your furniture in the trash, I just tried it with my example Fish Tank and it worked. Are you using the trash-can in the inventory menu?
(It was a fish tank with fish in it, so he could not throw it away.
As for the lights, thank you in advance! Looking forward to your updates!
I tried “Included” and got an error.
I don't know what is wrong! Please help!
// [FF] content.json
Below are the details of the error. (It is long, so I will fold it up.){
"Format": 2,
"Included": {
"Fish Tank 1": {
"Path": "fish_tank_1.json",
"Enabled": true
},
"Fish Tank 2": {
"Path: "fish_tank_2.json",
"Enabled": false
}
}
}
[Furniture Framework] Could not load content.json for Tikamin557.FF.RecessedFishTank_NEW:
StardewModdingAPI.Framework.Exceptions.SContentLoadException: Failed loading asset 'content.json' from SMAPI\tikamin557.ff.recessedfishtank_new: an unexpected error occurred.
---> Newtonsoft.Json.JsonReaderException: Can't parse JSON file at C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods\[BBB] Editing MOD\Recessed Fish Tank (SDV1.6)\[FF] Recessed Fish Tank\content.json. This doesn't seem to be valid JSON.
Technical details: Invalid property identifier character: . Path 'Included', line 5, position 0.
at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in E:\source\_Stardew\SMAPI\src\SMAPI.Toolkit\Serialization\JsonHelper.cs:line 86
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadDataFile[T](IAssetName assetName, FileInfo file) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 180
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 120
--- End of inner exception stack trace ---
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.ThrowLoadError(IAssetName assetName, ContentLoadErrorType errorType, String reasonPhrase, Exception exception) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 319
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 132
at StardewModdingAPI.Framework.ModHelpers.ModContentHelper.Load[T](String relativePath) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ModHelpers\ModContentHelper.cs:line 57
at FurnitureFramework.FurniturePack.load(String path) in /mnt/data/Code/SV Mods/Furniture Framework/FurnitureFramework/FurniturePack.cs:line 175
// [FF] content.json
{
"Included": {
"Fish Tank 1": {
"Path": "fish_tank_1.json",
"Enabled": true
},
"Fish Tank 2": {
"Path: "fish_tank_2.json",
"Enabled": false
}
}
}
[Furniture Framework] Could not load content.json for Tikamin557.FF.RecessedFishTank_NEW:
StardewModdingAPI.Framework.Exceptions.SContentLoadException: Failed loading asset 'content.json' from SMAPI\tikamin557.ff.recessedfishtank_new: an unexpected error occurred.
---> Newtonsoft.Json.JsonReaderException: Can't parse JSON file at C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods\[BBB] Editing MOD\Recessed Fish Tank (SDV1.6)\[FF] Recessed Fish Tank\content.json. This doesn't seem to be valid JSON.
Technical details: Invalid property identifier character: . Path 'Included', line 3, position 0.
at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in E:\source\_Stardew\SMAPI\src\SMAPI.Toolkit\Serialization\JsonHelper.cs:line 86
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadDataFile[T](IAssetName assetName, FileInfo file) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 180
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 120
--- End of inner exception stack trace ---
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.ThrowLoadError(IAssetName assetName, ContentLoadErrorType errorType, String reasonPhrase, Exception exception) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 319
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 132
at StardewModdingAPI.Framework.ModHelpers.ModContentHelper.Load[T](String relativePath) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ModHelpers\ModContentHelper.cs:line 57
at FurnitureFramework.FurniturePack.load(String path) in /mnt/data/Code/SV Mods/Furniture Framework/FurnitureFramework/FurniturePack.cs:line 175
“validator”! This is incredibly useful! I didn't know such a tool existed...thanks for telling us about it!
It helped me a lot!
Why doesn't an item appear in the Generic Mod Config Menu even if I set “Enabled” in the “Included” section?
I used the above code for “Included” as it is, but the json loading is working correctly according to “Enabled” true/false, but the item is not displayed in the Generic Mod Config Menu.
{
"Format": 2,
"Furniture: {},
"Includes": {
...// keep what was already here
}
}
That's on me, I forgot to remove the requirement for Furniture definitions.
[SMAPI log parser]
// [My Mod] content.json
{
"Format": 2,
"Furniture": {
"TsRFT_B00_Vanilla_01": {
"Display Name": "LongPillar",
"Rotations": 1,
"Collisions": { "Width": 1, "Height": 1 },
"Placement Restriction": 2,
"Source Image": "assets/LongPillar(Spacer).png",
"Source Rect": { "X": 0, "Y": 0, "Width": 16, "Height": 64 }
}
},
"Included": {
"FishTank1": {
"Path": "fish_tank_1.json",
"Enabled": true
},
"FishTank2": {
"Path": "fish_tank_2.json",
"Enabled": false
}
}
}
// [My Mod] config.json
{}
Shouldn't the [My Mod] settings appear in ModConfig?
In the meantime, I will also share the status of the "FurnitureFramework" setup.
"slot_place_key": "MouseRight",
"slot_take_key": "MouseRight",
"disable_AT_warning": false,
"enable_slot_debug": false,
"slot_debug_alpha": 0.5,
"slot_debug_default_color": {
"B": 147,
"G": 20,
"R": 255,
"A": 255
Your mod's name should appear in the config menu but it's not.
Can you try deleting the "config.json" file of your mod and restart the game?
If it still doesn't work, I think I will only be able to help if you send me your Furniture Pack so I can try to figure our what's wrong.
The new “config.json” shows the text representing the item, but the item still does not appear in ModConfig.
{
I share the file for this mod that I am creating!".FishTank1": true,
".FishTank2": false
}
[Mod file. Google Drive link]
- your Furniture in the included files should have the same ID (the key in the "Furniture" dictionary) so that the game knows that they are the same but with different definitions
- I made a mistake in my code causing an issue when a Furniture pack defines the same Furniture multiple times (even with included files)
I'll fix the code and upload the new version shortly. I'll also send you a correction of your pack so you don't have to worry about it.
(I thought it was used to turn on/off furniture to be added...)
Thank you for the correction of the file and also the new version!
However, I am sorry to keep repeating this, but that setting still does not appear on the ModConfig screen, and I cannot toggle true/false in ModConfig.(´;ω;`)
(If you open “config.json” and rewrite true/false directly, the change itself will be applied.)
[SMAPI log parser]
(We are using the latest version of the Furniture Framework and the mod files that you modified for us.)
// config.json
{
".Black Variant": false,
".Blue Variant": false
}
I would like to confirm that I may have misunderstood the fundamental point,
If I use the “Enabled” property of “Included”, the user can freely change its true/false value in the “Generic Mod Config Menu”, right?
--------------------------------------------------------------------------------------------------------------------------------------------
I use translation tools to read and write English. I apologize if the meaning is not understood or if there are strange expressions.
Anyway, it's always possible to change the config by editing the mod's config.json.
If we learn anything, we will let you know!
I understand it for now! Thank you for the lengthy discussion!
And also would it be possible for the player to set what stores they would like the items to show up in and/or custom prices?
About stores, it is already possible to set stores in which each Furniture will show up, see this part of the documentation. The price you give for a Furniture will be the same in all shops.
If you want more control over how your Furniture shows up in shops, you have to make a Content Patcher (CP) Pack, see this part of the documentation to learn how to make a "mixed content pack". If you do this, you'll be able to define a "ConfigSchema" in the CP Pack, which will create config options for the Generic Mod Config Menu and allow players to configure your shops.
re: User Configuration
Aha so that's how you do that! I've done just Content Patcher stuff before but never a mixed content pack. Excited to dive into this part now that I've got my custom furniture working.
Thank you so much for your hard work on the resource.
I'm still planning on adding support for i18n translations later, I'll let you know when it'll be implemented.
I just found out about this mod today and I want to thank you so much for creating this wonderful mod!
There were many restrictions on furniture added using CP in SDV1.6, and I was frustrated that I could not create the furniture I wanted, but thanks to this mod, I will be able to create what I want to create!
I've only looked through a few of them, but I was even impressed with the github guide, which is very detailed and easy to understand!
Again, thank you so much!!!!!
A new wind blew in the mod creation process, which had been a bit stuck in a rut!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I use translation tools to read and write English. I apologize if the meaning is not understood or if there are strange expressions.
If you have a mod that requires Custom Furniture, no. The author of the mod would have to port their mod for the Furniture Framework.
Long story short, this is something I thought about adding to this Framework, but it's not a priority because of the complexity of the task, I've contacted the author of the updated FDF mod to learn how they did it, hoping that I could learn how to do it from them.
I'm also in contact with HaPyke to plan out how to make this mod compatible with Market Town, I'm confident that we can work it out!
I'm adding proper implementation of wall-furniture to the todo list anyway, but it might take a while until I get to implement it.