Problems with physics

So I’m making an scuba diving game that will include fish that randomly swim around. But I’ve already encountered a problem, the fish only swim when your touching them. I’ve seen this type of thing where when you step on a block in a laggy game, the block starts the retain it’s physics. But I don’t see why it would happen in my game since I don’t really think it’s that laggy. I would like to know if anyone knows why this happens and how I could possibly fix it.

Set the NetworkOwnership of the fish to the Workspace (or Nil, I can’t remember exactly how).
It sounds like the NetworkOwnership is being set to the Player and it’s having issues when it transfers back and forth.

Didn’t seem to work, this is what I did.

fish.PrimaryPart:SetNetworkOwner(nil)

Do I need to change every part’s Network owner in the fish?

I believe you just set the Model’s ownership. Not my area of expertise though.

Doesn’t seem like I’m able to set the model’s ownership.

If this helps in anyway, this is what happens in game.

Yeah, you can’t. Just loop through the fish to find baseparts and set the network ownership. Something like this.

for i,v in pairs(a fish) do
   if v:IsA("BasePart") then 
      v:SetNetworkOwner(nil)
   end
end

Setting all the parts of the fish to nil doesn’t do anything, but turning it to the player instead works. Although the fishes orientation is all buggy and the fish spazzes a ton which definitely won’t work for me. So I’m still pretty lost on how to fix this.

Strange. I thought that might work, as I did that with my own game and that fixed the problem. I hope that you get a solution at some point, I don’t have any other ideas.