About this mod
Lets you designate furniture as having visible storage slots.
- Requirements
- Permissions and credits
- Changelogs
- Donations
To place items on display furniture, click on a slot using left mouse button while holding the item to be placed.
To take an item off display furniture, click on a slot with an item using right mouse button.
You can change these buttons in the config file.
If a slot already has a different item (or the same item with a different quality) as the item being placed, they will be switched.
If a slot already has the same item of the same quality as the item being placed, it will be added up to the max stack for that item.
At the moment, only ordinary vanilla items (anything in ObjectInformation.json) can be placed on display (this should improve once the new SDV item framework comes out).
Mods that use this framework:
Creating Display Furniture
To designate a furniture piece as having slots, use Content Patcher, e.g.:
{
"Format": "1.23.0",
"Changes": [
{
"Action": "EditData",
"Target": "Mods/aedenthorn.FurnitureDisplayFramework/dictionary",
"Entries": {
"Luxury Table": {
"slots": [
{
"slotRect": {
"X": 1,
"Y": 6,
"Width": 9,
"Height": 9
},
"itemRect": {
"X": 2,
"Y": 6,
"Width": 9,
"Height": 9
}
},
{
"slotRect": {
"X": 11,
"Y": -4,
"Width": 10,
"Height": 10
},
"itemRect": {
"X": 11,
"Y": -3,
"Width": 9,
"Height": 9
}
},
{
"slotRect": {
"X": 11,
"Y": 15,
"Width": 10,
"Height": 10
},
"itemRect": {
"X": 11,
"Y": 14,
"Width": 9,
"Height": 9
}
},
{
"slotRect": {
"X": 21,
"Y": 6,
"Width": 9,
"Height": 9
},
"itemRect": {
"X": 20,
"Y": 6,
"Width": 9,
"Height": 9
}
}
]
}
}
}
]
}
This adds four slots to the Luxury Table.
Keys
The key must be the full name of the furniture if it has no rotations. If the furniture has multiple rotations, you must make configurations for each rotation using the following syntax:
<FurnitureName>:<RotationIndex>
E.g. for Winter Dining Table, you need entries for:
Winter Dining Table:0 and Winter Dining Table:2
Multiple tables or rotations can share the same configuration by including multiple names separated by commas, e.g.:
"Winter Dining Table:0,Festive Dining Table:0"
Values
Each slot has two rectangles:
- slotRect: this designates the part of the furniture that is clickable
- itemRect: this designates the part of the furniture to display the item on.
The rectangle sizes are based on the actual furniture texture size before scaling.
Rectangle positions are relative to the top left corner of the bounding box (the tiles taken up by the furniture), NOT the texture itself. So the luxury table bounding box is 32x32 (2 tiles by 2 tiles, each tile is 16x16 before scaling). That's why I used negative Y values in the example above for the top slot.
Technical
Requires SMAPI, uses Harmony.
Compatible with Mod Updater for automatic updates.
Code is at https://github.com/aedenthorn/StardewValleyMods.
If you want to complain or ask for help or help me test my mods, you can visit my Discord server.
A list of all my mods for Stardew Valley is available at https://www.nexusmods.com/stardewvalley/articles/895.