ToolGrip isn't returning to default hold state after being changed

This is a script I made for a simple lunge, with this being the default tool grip:
Screen Shot 2021-06-01 at 8.49.36 AM

local tool = script.Parent

local function onActivate()
        -- SWITCH TO LUNGE
	tool.GripForward = Vector3.new(0,1,0)
	tool.GripPos = Vector3.new(0,0,-0.5)
	tool.GripRight = Vector3.new(1,0,0)
	tool.GripUp = Vector3.new(0,-0,1)
	wait(1)
-- SWITCH BACK TO DEFAULT
	tool.GripForward = Vector3.new(0,0,-1)
	tool.GripPos = Vector3.new(0,-0.5,0)
	tool.GripRight = Vector3.new(1,0,0)
	tool.GripUp = Vector3.new(1,0,0)
end
tool.Activated:Connect(onActivate)

However, it gets messed up:
Top being how it is at first, middle being how it becomes during the 1 second, and bottom how it is after.


Any explanations for this? It doesn’t restore to the original state, even with the correct vectors.

Change tool.GripUp = Vector3.new(1,0,0) to tool.GripUp = Vector3.new(0,1,0)

Forgot to edit that before, I had that earlier and the same result happened.
Still the same.

You could try using the Tool Grip plugin, positioning your sword how you want it, then checking the vector3 values. They may be different from what you have typed in your code.

Actually, I did use that plugin to position this tool in the first place. I’ll try that again though.