Skip to content

fix: persist edits to items picked from the in-game furnishing list - #97

Merged
LeonBlade merged 1 commit into
LeonBlade:mainfrom
zaventh:fix/stock-list-soft-select
Oct 14, 2026
Merged

LeonBlade merged 1 commit into
LeonBlade:mainfrom
zaventh:fix/stock-list-soft-select

Conversation

@zaventh

@zaventh zaventh commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

Hey! We ran into #56 while decorating, so I dug into why it happens.

The in-game Indoor Furnishings list never actually picks the item up. It only soft-selects it: the game sets ActiveItem and highlights it, but State stays at SoftSelect. BDTH shows its controls as soon as ActiveItem is set in Rotate mode, so the item moves on screen. But the game only sends a new position to the server when it places an item that was really picked up (State == Active). A soft-selected item just gets dropped, which is why everything reverts when you leave and come back.

To fix it, PluginMemory calls SelectItem on the soft-selected item right before BDTH's first real change to its position or rotation. That's what the game does when you click a highlighted item, and it's the same call /bdth list already uses, so from then on the item saves normally when you place it.

I also made WritePosition skip writes that don't change anything. The controls rewrite the position every frame, so without that the item would get picked up the moment you chose it from the list. The in-game list ignores clicks while you're holding something, so you couldn't keep browsing.

The one change you'd notice in game: after picking from the in-game list, your first edit in BDTH picks the item up, and you click to place it, just like when you select something in the world.

Tested and working on today's build of FFXIV/Dalamud.

@LeonBlade
LeonBlade merged commit c7bb873 into LeonBlade:main Oct 14, 2026
2 checks passed
@LeonBlade

Copy link
Copy Markdown
Owner

Thanks for the PR! I appreciate the simple change, and I do like the change to WritePosition as well. I'm fine with the effect you mentioned, makes sense to me. I'll push this out in a release right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants