How to make one NPC model copy and paste at different places?

Hi,
I made script that takes npc from ReplicatedStorage and then copy it and paste it into random location
(not actually random just one of the places that i made).
But i want this npc to fill all the places. Also how can i make this to actually teleport npc? i tryed many to change UpperTorso’s CFrame but it just teleported the upper torso lol not actuall npc. and tryed this way with MoveTo. Anyone know how to teleport it and fill all the parts?

This is my “Random places”

This is a part of my script:

local X = math.random(8)
local RS = game.ReplicatedStorage
local folder = workspace.NPCs
local NPC1 = RS["Zone 1"].NPC1:Clone()

 NPC1.Parent = folder
 NPC1:FindFirstChild("Humanoid"):MoveTo(workspace.Pads[v.Name]["Tele" .. X].CFrame * 
 CFrame.new(0, 10, 0))

NPC1.Humanoid:MoveTo(pos) will make the npc try to walk to the position.

Instead, do NPC1:MoveTo(pos) to automatically teleport to the position.

So, I would assume that you want to randomly position NPCs until all parts are occupied. I’d like to point out that Humanoid:MoveTo just makes the humanoid walk to the point (if the NPC has the animate script), while Model:MoveTo moves it to a desired place instantaneously. The UpperTorso is also not the “root” or “main” part of a R15 character, that’ll be their LowerTorso, because that connects the upper and lower body together, so you should’ve been moving the LowerTorso instead.

Try this:

local blockList = workspace.Pads[v.Name]:GetChildren()
local blocks = #blockList

for i = 1, blocks do
    local x = math.random(1, #blockList)
    NPC1:MoveTo(blockList[x].CFrame * CFrame.new(0, 10, 0)
    table.remove(blockList, x)
end