Im making it so whenever this AI sees me it will start to chase me and there is to scripts im using for this 1. Making him walk around randomly this isnt the script getting the error
-----------------
--Walking Randomly AI
local human = script.Parent:WaitForChild("Humanoid")
local torso = script.Parent:WaitForChild("Torso")
local clone = script.Parent:Clone()
--[[local pathArgs = {
["AgentHeight"] = 5,
["AgentRaidus"] = 2,
["AgentCanJump"] = true
}--]]
function move()
local randX = math.random(-20,20)
local randZ = math.random(-20,20)
local goal = torso.Position + Vector3.new(randX,0,randZ)
local path = game:GetService("PathfindingService"):CreatePath()
path:ComputeAsync(torso.Position, goal)
local waypoints = path:GetWaypoints()
if path.Status == Enum.PathStatus.Success then
for _, waypoint in pairs(waypoints) do
if waypoint.Action == Enum.PathWaypointAction.Jump then
human.Jump = true
end
human:MoveTo(waypoint.Position)
human.MoveToFinished:Wait(2)
end
else
print("Path unsuccessful B")
wait(2)
end
end
human.Died:Connect(function()
wait(5)
clone.Parent = workspace
game:GetService("Debris"):AddItem(script.Parent,0.1)
end)
local BAIC = game.Workspace.bily117AI
while wait(3) do
if BAIC.Switch == false then
break
end
move()
end
and then 2. The region3 script that im making so when a player touches it the AI will chase them and this is the script with the error
---------------------
--Region
local RegionPart = game.Workspace.RegionPart1
local pos1 = RegionPart.Position - (RegionPart.Size / 2)
local pos2 = RegionPart.Position + (RegionPart.Size / 2)
local region = Region3.new(pos1, pos2)
local part = Instance.new("Part")
part.Anchored = false
part.Size = region.Size
part.Parent = game.Workspace
part.CanCollide = false
part.BrickColor = BrickColor.new("Really red")
part.Transparency = 0.7
part.Position = game.Workspace.RegionPart1.Position
part.Name = ("part")
local weld = Instance.new("Weld")
weld.Part0 = part
weld.Part1 = game.Workspace.RegionPart1
weld.Parent = part
local partt = game.Workspace:WaitForChild("part")
partt.Touched:Connect(function(hit)
if hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
print("Checkpoint 1")
local BAIC = game.Workspace:WaitForChild("bily117AI")
local BAICH = BAIC:WaitForChild("Humanoid")
local BAICT = BAIC:WaitForChild("Torso")
local switch = BAIC:FindFirstChild("Switch")
switch = false
while true do
wait(1)
if BAIC.Switch == true then
break
end
print("Checkpoint 2")
local Humanoid = hit.Parent
local goal = (BAICT.Position - Humanoid.Torso.Position).magnitude
print(goal)
local path = game:GetService("PathfindingService"):CreatePath()
path:ComputeAsync(BAICT.Position, goal)
local waypoints = path:WayPoints()
if path.Status == Enum.PathStatus.Success then
for _, waypoint in pairs(waypoints) do
if waypoint.Action == Enum.PathWaypointAction.Jump then
BAICH.Jump = true
end
BAICH:MoveTo(waypoint.Position)
BAICH.MoveToFinished:Wait(2)
end
else
print("Path unsuccessful B")
wait(2)
end
end
end
end)
awnser asap if u can, my discord is bily117#5405 if u wanna dm me about it

1 comment
On line 45, (BAICT.Position - Humanoid.Torso.Position).magnitude returns a number value representing the magnitude or length between the two vectors. On line 48, you attempt to use the magnitude value in place of the 'finish' Vector3 parameter. Yes, it does require a Vector3 value in the second parameter.