Yeah that title is kinda confusing but its what i'm doing, basically if ya want to watch this video: https://www.youtube.com/watch?v=CsZsaR_gXJw then youll see what im doing, im trying to move a part on rotated parts like i did on the first part, or something. Also when you press r it changed the cut direction
I had to remove my cutting function or else this would be too long to post
Heres my code:
--Define Variables local CAS = game:GetService("ContextActionService") local player = game.Players.LocalPlayer local mouse = player:GetMouse() local Tool = script.Parent local mtarget local omtarget local down local newCut local Side1,Side2,disx1,disx2,pos1,pos2,disz1,disz2 local targ,CH,Part1,Part2 local siX, siZ local rot = "X" local waitimer = 0 local ptarg local equipped function Rotation() if rot == "X" and waitimer == 0 then rot = "Z" waitimer = 10 elseif rot == "Z" and waitimer == 0 then rot = "X" waitimer = 10 end while waitimer ~= 0 do waitimer = waitimer - 1 wait() end end function PreCut() mtarget = mouse.Target if ptarg ~= nil then if mtarget ~= ptarg then if ptarg:FindFirstChild("PreCut") then ptarg.PreCut:Destroy() end end end while mtarget:FindFirstChild("CanCut") and equipped do if mtarget:FindFirstChild("CutPart") == nil then if mtarget.CanCut.Value == true then if mtarget:FindFirstChild("PreCut") then local sized = mtarget.Size local pcut = mtarget.PreCut if rot == "X" and pcut.Size ~= Vector3.new(sized.X+0.1,sized.Y+0.1,0.1) then if mtarget.Size.Y > mtarget.Size.X and mtarget.Size.Y > mtarget.Size.Z then pcut.Position = Vector3.new(ptarg.Position.X,mouse.Hit.p.Y,ptarg.Position.Z)--Change the position elseif mtarget.Orientation.Z < 0 and mtarget.Orientation.Z < 180 then pcut.Position = Vector3.new(ptarg.Position.X,mouse.Hit.p.Y,ptarg.Position.Z)--Change the position else pcut.Position = Vector3.new(mouse.Hit.p.X,ptarg.Position.Y,ptarg.Position.Z)--Change the position end elseif rot == "Z" and pcut.Size ~= Vector3.new(0.1,sized.Y+0.1,sized.Z+0.1) then pcut.Position = Vector3.new(ptarg.Position.X,ptarg.Position.Y,mouse.Hit.p.Z)--Change the position else pcut:Destroy() end else local sized = mtarget.Size local newCut = Instance.new("Part", mtarget) --Create Cut Part local IAD = workspace:GetChildren() for i = 1, #IAD do local DIA = IAD[i] if DIA:FindFirstChild("PreCut") then DIA.PreCut:Destroy() end end ptarg = newCut.Parent newCut.BrickColor = BrickColor.new("Pastel orange") --Change Color of part newCut.Anchored = true --Anchor the part if rot == "X" then newCut.Size = Vector3.new(0.1,sized.Y+0.1,sized.Z+0.1) --Change the size if mtarget.Size.Y > mtarget.Size.X and mtarget.Size.Y > mtarget.Size.Z then newCut.Position = Vector3.new(ptarg.Position.X,mouse.Hit.p.Y,ptarg.Position.Z)--Change the position elseif mtarget.Orientation.Z < 0 and mtarget.Orientation.Z < 180 then newCut.Position = Vector3.new(ptarg.Position.X,mouse.Hit.p.Y,ptarg.Position.Z)--Change the position else newCut.Position = Vector3.new(mouse.Hit.p.X,ptarg.Position.Y,ptarg.Position.Z)--Change the position --print(rot) end elseif rot == "Z" then newCut.Size = Vector3.new(sized.X+0.1,sized.Y+0.1,0.1) --Change the size newCut.Position = Vector3.new(ptarg.Position.X,ptarg.Position.Y,mouse.Hit.p.Z)--Change the position --print(rot) end newCut.Orientation = ptarg.Orientation newCut.Material = "Neon" --Change the material newCut.Name = "PreCut" --Name the part newCut.CanCollide = false mouse.TargetFilter = newCut end end elseif mtarget:FindFirstChild("CutPart") then if ptarg:FindFirstChild("PreCut") then ptarg.PreCut:Destroy() end end wait() end end --Cutting Function, really long thing idk --Bind actions when equipping tool function Equip() CAS:BindAction("Cutting", Cut, false, Enum.UserInputType.MouseButton1) CAS:BindAction("Looking", PreCut, false, Enum.UserInputType.MouseMovement) CAS:BindAction("Rotate", Rotation, false, Enum.KeyCode.R) equipped = true end --Unbind actions when unequipping tool function Unequip() CAS:UnbindAction("Cutting") CAS:UnbindAction("Looking") CAS:UnbindAction("Rotate") equipped = false local children = workspace:GetChildren() for i = 1, #children do local CHH = children[i] if CHH:FindFirstChild("PreCut") then CHH.PreCut:Destroy() end end end --Check is tool is equipped or unequipped Tool.Equipped:Connect(Equip) Tool.Unequipped:Connect(Unequip)