Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

get an npc to follow a specific player?

Asked by 5 years ago

How would i make an npc follow a specific player only (like an owner). I found this script but it gets the npc to follow everyone. (my last question got taken down for being "too broad", but i dont know what to do or how to get an answer, ive searched everywhere)

local larm = script.Parent:FindFirstChild("HumanoidRootPart")

local rarm = script.Parent:FindFirstChild("HumanoidRootPart")



function findNearestTorso(pos)

local list = game.Workspace:children()

local torso = nil

local dist = 100

local temp = nil

local human = nil

local temp2 = nil

for x = 1, #list do

temp2 = list[x]

if (temp2.className == "Model") and (temp2 ~= script.Parent) then

temp = temp2:findFirstChild("HumanoidRootPart")

human = temp2:findFirstChild("Humanoid")

if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then

if (temp.Position - pos).magnitude < dist then

torso = temp

dist = (temp.Position - pos).magnitude

end

end

end

end

return torso

end









while true do

wait(math.random(1,5))

local target = findNearestTorso(script.Parent.HumanoidRootPart.Position)

if target ~= nil then

script.Parent.Humanoid:MoveTo(target.Position, target)

end



end

1 answer

Log in to vote
0
Answered by 5 years ago
Edited 5 years ago

In line 66, I recommend making an if statement. For example;

if target.Name == "NameHere" then
    script.Parent.Humanoid:MoveTo(target.Position, target)
end

That code only fires if the Target's name is a certain name. You could do this for ranks aswell. But ofcourse, you would need to make a rank system.

0
would i use that instead of if target ~= nil then script.Parent.Humanoid:MoveTo(target.Position, target) end ? Bylli_Oruze 38 — 5y
0
Put the script I made under that. That check is important. MRbraveDragon 374 — 5y
0
Sorry for the late reply. MRbraveDragon 374 — 5y
0
I put it under it, but the npc still runs after other people Bylli_Oruze 38 — 5y
0
i still dont understand, can you put it where its supposed to go in the script? Bylli_Oruze 38 — 5y
Ad

Answer this question