How to animate an object with the player when you sit?

So to be clear I do know how to make an animation work once a player sits.

The problem I’m having and haven’t found solutions for is: I want to attach a spoon to a players hand once they sit down on a seat, and the spoon is animated with the rest of the player.

I saw many examples of how to attach an animated object to a player, but its a tool.

I thought maybe keeping an invisible attached object on a players hand on all times and just making it visible when they sit, and then its forced to be animated with the rest of the player, but I am not sure if there’s a better option.

Any help would be appreciated, thanks.

The ideal option would be to spawn and weld the spoon to the player’s hand when they sit down. While welding it preemptively would indeed work, the physics calculation will permanently have to consider this invisible, unused item whenever your character moves about.

What I personally like doing is spawning in a rig, moving my item to where I want the player to hold it, then welding it & the hand together (I personally use plugins to weld).
I then parent the weld to the item in question (i.e the spoon), and name it “Weld”. I then add an attribute called “WeldTarget” with the name of the bodypart it was just welded to.
When it comes to giving the player this item, all that’s needed is this:

local item = spoon:Clone()
local weld = item.Weld
local targetName = weld:GetAttribute("WeldTarget")
weld.Part1 = character:FindFirstChild(targetName)-- or part 0, depends on how you set it up
item.Parent = character