Invalid Argument #2 (string expected bit got instance)

local Selected = script.Parent.Handler:WaitForChild(“Selected”)
local SelContainer = game.Players.LocalPlayer.Backpack[Selected.Value]

In context, Selected, is an object value, this is for an inventory system. Selected is
the item selected (already coded) but when I try it says
invalid argument #2 (string expected, got Instance), now this probably means it has to
be a string, but how can I keep it as an object value doing this?

Going off of selected being a object value and you only put .Value, it is trying to find an instance equivalent to the name of another instance, leading to errors. Instead, I believe putting .Name after the .Value would fix it.

local Selected = script.Parent.Handler:WaitForChild("Selected")
local SelContainer = game.Players.LocalPlayer.Backpack[Selected.Value.Name]