It looks like you are trying to get LocalPlayer in non-LocalScript. First, use a LocalScript instead, then fix you need to fix the removal of the fish. You are trying to :Destroy() a table (plrBackpack:GetChildren()). Instead, loop through the table and destroy each fish in it.
Lastly, you should add a check to make sure it’s the player who touches sellPart.
Edit: Oh, I forgot to answer your actual question. To exclude any child, just do something in the loop like: if child.Name ~= “Rod” then child:Destroy() end
local plr = game.Players.LocalPlayer
local plrBackpack = plr.Backpack
local sellPart = script.Parent
sellPart.Touched:Connect(function(hit)
if not hit:IsDescendantOf(plr.Character) then return end
local allFish = plrBackpack:GetChildren()
for _,fish in pairs(allFish) do
if fish.Name == 'Fish' then
fish:Destroy()
end
end
end)
(Code not tested, may need to be edited)