The reason why it wasn't working is because of this line of code:
script.Parent.Parent:moveTo(mouse.Hit.p)
In the first line of your local script, it reads that Tool is defined as script.Parent.Parent. You did not set the Character, but rather, the tool. This is a very easy fix.
local tool = script.Parent.Parent
local Player = game:GetService("Players").LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
tool.Activated:Connect(function()
local Torso = script.Parent.Parent.Torso
local mouse = game.Players.LocalPlayer:GetMouse()
for x = Torso.Position.X-31,Torso.Position.X+31,0.000000000001 do
for z = Torso.Position.Y-31,Torso.Position.Y+31,0.000000000001 do
wait()
if mouse.Hit.p == Vector3.new(x,mouse.Hit.p.Y,z) then
Character:MoveTo(mouse.Hit.p)
end
end
end
end)
We made a few changes in the code. We basically created two variables, one for the player and one for the Character. We use the variable "Player" to help define the "Character" variable by either getting the Character or waiting for the Character to spawn in case it hasn't yet. In the event in which the Tool is activated we do some conditional statements created by you and we move the Character. I also changed moveTo() into MoveTo() since moveTo() is a non-existent function.
That's it, and if something is not right make sure to double check your code and debug any errors.
1 comment
Try script.Parent.Parent:SetPrimaryPartCFrame(mouse.Hit.p)