You can write your topic however you want, but you need to answer these questions:
What do you want to achieve? Keep it simple and clear!
I want to have my tool smoothly rotate in the player’s hand
What is the issue? Include screenshots / videos if possible!
no idea how to do this
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
I looked on the forum and used tweenservice, but that didn’t work
You could attach it with a HingeConstraint set to Motor, but because that is physics based it may be glitchy.
You could easily just rotate the weld.C0 or weld.C1 orientation.
Rotating smoothly;
You did search for tweenservice for the smoothness but didn’t search for the tool.Grip
(TweenService is a service that can gradually change a value into another value.)
Like the @Den_vers said; using the grip is very easy using CFrame math but you haven’t specified how you would want it to rotate.
Next to that; for the smoothest behaviour I recommend rotating it on the client (but then other users won’t be able to see this tool spinning unless those other clients also have scripts running locally spinning this tool, which is easy to do with something like collectionservice) but that is optional for smoothness.
Once the goal is reached; it will stop moving. That’s why you would want a tween that loops.
However, I personally would use a function connected to RunService.Heartbeat since tweening CFrames often results in undesired movement directions in the orientation.
Is there any specific event you want to make it trigger? Is there any behaviour that makes the grip return to its original position? What is your plan?
E.g; User uses tool: Tool spins 90 degrees in 1 second and stops; tool returns into original position after a delay of half a second