How can I :ApplyImpulse() on the client?

First, my problem was that :ApplyImpulse was delayed by half a second or so:

So, I set the network ownership to the player currently holding the disk. This also meant that I had to call :ApplyImpulse() from the client, which seems to have broken it.

Does :ApplyImpulse() just not work on the client? Is there a workaround for this?

Also, separate question: the disk goes gray right after it’s thrown, but the server still says that I have network ownership of it. Maybe the two problems are related?

Any help is appreciated!

(Also don’t mind the extra sounds in the second video, I worked on some other stuff before the change was made)

Could I see the code in the first video and the second video?