Primary Part Of Model Does Not Exist When Reaches Client

So I have an edge case I’m trying to deal with. I create a model with a primary part on the server, fire a client with a remote event passing the model, then destroying the model right after firing. However, the client only receives the model, while the primary part being nil. For example:

Server:

local model = Instance.new("Model", workspace)
model.PrimaryPart = somePart

remoteEvent:FireClient(player, model)

model:Destroy()

Client:

remoteEvent.OnClientEvent:Connect(function(model)
print(model.PrimaryPart) -- will print 'nil'
end)

As you can see, the primary part never gets replicated to the client. Can someone please explain this behavior?

Probably because somePart is not a child of model, therefore PrimaryPart never gets set.

Parent somePart to model before setting it as the PrimaryPart, then try again.

No, the primary part does exist and it is parented under the model.

When it reaches the client it doesn’t exist.

I just realized, model:Destroy(), you destroy the model while not passing in a clone instance. The reason it returns nil is because you destroyed it.