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
nukepart:SetPrimaryPartCFrame(script.Parent.CFrame +,-5,0))

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 *,-5,0))