Trouble with remote events

Hey, I am trying to send 2 attachments and an instance to a local script using remote events, but when I do so, it counts them as nil even though it I know that the values are what I want them to be in the server script, here is my code
Server Script:

--makes connection
local att0 = output.Output.Attachment
local att1 = input["Input"..inpnum].Attachment

local connectevent = output.Connect

local inputpart = input["Input"..inpnum]
local outputpart = output.Output
event:FireClient(player, att0, att1, connectevent, inputpart)

Local Script:

loadconnect.OnClientEvent:Connect(function(output, input, event, part2)
	--code
end)

If the attachements are in server storage or script service they aren’t replicated, also why can’t you just access them on client if they are instances?

As much as I know you can’t send Instances through remote events. If you know where the location of the instances is, then you could just send the name of the instance:

game.ReplicatedStorage.RemoteEvent:FireClient(Player, "Part")
game.ReplicatedStorage.RemoteEvent.OnClientEvent:Connect(function(Name)
	print(Location:FindFirstChild(Name))
end)

you really shouldn’t be sending instances through remoteEvents, instead you should send their properties, but if you have to theres another topic about it here

In my game, all of the parts that the player can place have a unique ID so can I just use that.