How to update a blocks position according to its orientation

So basically I’m trying to make a block that acts as an explosive device to have its position updated via its current orientation meaning I want it to move diagonally instead of in the default xyz coordinate plane that the regular position property uses. I’ve tried doing so but I end up doing something wrong:

local nukepart = script.Parent.Parent.Parent
while true do
wait(0.4)
nukepart:SetPrimaryPartCFrame(script.Parent.CFrame + Vector3.new(0,-5,0))
end


if anyone could help correct me it would be appreciated

Try multiplying script.Parent.CFrame by another CFrame instead of a vector3:

nukepart:SetPrimaryPartCFrame(script.Parent.CFrame * CFrame.new(0,-5,0))