I am creating a tool where players can move different furniture around the map by left clicking on the furniture and then placing the furniture by moving their mouse to their desired location and letting go of the left click.

I ONLY want the furniture to move on the X axis but for some reason it is changing the rotation of the model as well. How can I make it only move on the X and/or Z axis and NOT affect rotation?

My code in a LocalScript

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local moveEvent = nil --We need to store the event so we may disconnect when left-click is released
local firstPosition = nil --Initialize to later store the brick's position
local finalPosition = nil --Initialize to later store the brick's moving position
local target = nil

mouse.Button1Down:connect(function()
    target = mouse.Target
    if target and target.Parent.Name == "Furniture" then
		--target.Parent.PrimaryPart = target --Each model will have a target beforehand
		mouse.TargetFilter = target
		firstPosition = target.Position
		--print('firstPosi is', firstPosition)		
        moveEvent = mouse.Move:connect(function()	
		--Nothing here as of now, placeholder	       
        end)
    end
end)

mouse.Button1Up:connect(function()
	finalPosition = mouse.Hit.p	
	--print('mouse up first pos', firstPosition)
	--print('final minus first pos', finalPosition.x - firstPosition.x)	
	--print('final minus first pos ABS', math.abs(finalPosition.x - firstPosition.x))
	if math.abs(finalPosition.x - firstPosition.x) > 2 then --The position of the first click compared to when the player lets go of the left click has to be more than 2 studs or whatever
		print('yes')
		--target.Parent.PrimaryPart.Position.x = finalPosition.x --Only moves the individual part and not the whole model so this does not work D:
		--target.Parent.PrimaryPart.Position.z = finalPosition.z --Same issue but on z axis		
		target.Parent:SetPrimaryPartCFrame(mouse.Hit)		
	end		
end)