The best solution I could think of should be setting the network ownership of the box to the player who fired it. This assures the replication of physics for the player.
Otherwise you can try checking for other alternative methods for launching projectiles.
r = game:service("RunService")
Item = script.Parent
Position = Item.Position
function fly()
local Direction = Item.CFrame.lookVector
Position = Position + Direction
local errorr = Position - Item.Position
Item.Velocity = 7*errorr
end
t, s = r.Stepped:wait()
swoosh = script.Parent.Swoosh
swoosh:play()
d = t + 10.0 - s
--connection = Item.Touched:connect(blow)
while t < d do
fly()
t = r.Stepped:wait()
end