I have a local script which rotates a Motor6D with CFrame. But the arm rotates only for the player and not for the server (other players). I can see the rotation but other not. What can I do so other players can see what the player does (like arm movement)?
You have to understand the importance of acknowledging the difference between a Local script and a server script. Only use a Local script whenever you want something done locally and a server script whenever you want to execute something for the server.
Learn also the importance of remotes. Because remotes will allow you to communicate between the server and the client (local), mastering or even gaining a heads up to this stuff will allow you to execute your codes more efficiently.
You should add a remote event instance and place it inside ReplicatedStorage. Then follow the following steps:
--Local Script local remote = (remote-event-location) tool.Equipped:Connect(function() remote:FireServer() end)
then:
--Server Script local remote = (remote-event-location) remote.OnServerEvent:Connect(function() --move the arm end)
For more info, read this article on remote events (and functions which may not be necessary for you at the minute). Please accept the answer if I helped you solve your problem.
EDIT: code changed to suit needs
ANSWER: You are using a Local Script instead of a Server Script.
Local Scripts are client sided and Server Scripts are server sided.