How to make a tool rotate on a CFrame?

so i’m finishing up recoding the prism and wanted to make a simple spin script, but it just turns my character into a beyblade. it’s only meant to turn on one axis.
ALSO, how would i make it so it speeds up once the tool is activated? would i make a debounce number and set the time to the cframe .rad?


local tool = script.Parent
local mesh = tool:WaitForChild("Handle")

while wait() do
	mesh.CFrame = mesh.CFrame * CFrame.Angles(0, math.rad(5), 90, Random)


try using tweenservice to tween the rotation (i know you said on cframe but tweenservice would be better use in this scenario)

how would i use that? i know how to use tweening for transparency but i could never get it to work with rotating

local ts = game:GetService("TweenService") -- we get the tweenservice
local ti =,Enum.EasingStyle.Linear,Enum.EasingDirection.In,-1,false) -- we set the tween info (1 = time, Linear is EasingStyle,In is EasingDirection, -1 = Repeats Forever, false = doesnt Reverse)

local rotatetween = ts:Create(script.Parent,ti,{CFrame =,,0,360))}) -- we create the tween


here’s some source code, put this in a part and try it for yourself, be sure that the part is anchored,


i’m back from break
this does still not work, it worked for a part in studio but i even made the handle visible to show you

of course i modified the code myself to use “waitforchild:handle” to make the prism spin but still nothing