Skip to main content
Duplicates multiple Roblox instances in batch with shared parent and offset options. All duplicates can be created with the same positioning offset and moved to the same new parent.

Endpoint

mass_duplicate

Parameters

paths
array
required
Array of paths to instances to duplicate.
newParent
string
Optional path to a different parent for all duplicated objects. If not provided, each clone will have the same parent as its original.
offset
array
Optional position offset as an array of three numbers [x, y, z]. Applied to all duplicated objects that have a Position or CFrame property.

Response

results
array
Array of results, one for each path in the input. Each result contains:

Examples

Duplicate Multiple Parts

{
  "paths": [
    "game.Workspace.Part1",
    "game.Workspace.Part2",
    "game.Workspace.Part3"
  ]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.Part1",
      "name": "Part1",
      "sourcePath": "game.Workspace.Part1"
    },
    {
      "ok": true,
      "path": "Workspace.Part2",
      "name": "Part2",
      "sourcePath": "game.Workspace.Part2"
    },
    {
      "ok": true,
      "path": "Workspace.Part3",
      "name": "Part3",
      "sourcePath": "game.Workspace.Part3"
    }
  ]
}

Duplicate with Shared Offset

{
  "paths": [
    "game.Workspace.Tree1",
    "game.Workspace.Tree2",
    "game.Workspace.Tree3"
  ],
  "offset": [50, 0, 0]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.Tree1",
      "name": "Tree1",
      "sourcePath": "game.Workspace.Tree1"
    },
    {
      "ok": true,
      "path": "Workspace.Tree2",
      "name": "Tree2",
      "sourcePath": "game.Workspace.Tree2"
    },
    {
      "ok": true,
      "path": "Workspace.Tree3",
      "name": "Tree3",
      "sourcePath": "game.Workspace.Tree3"
    }
  ]
}

Duplicate to New Parent

{
  "paths": [
    "game.ReplicatedStorage.Template.Part1",
    "game.ReplicatedStorage.Template.Part2"
  ],
  "newParent": "game.Workspace.Level1"
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.Level1.Part1",
      "name": "Part1",
      "sourcePath": "game.ReplicatedStorage.Template.Part1"
    },
    {
      "ok": true,
      "path": "Workspace.Level1.Part2",
      "name": "Part2",
      "sourcePath": "game.ReplicatedStorage.Template.Part2"
    }
  ]
}

Duplicate with Parent and Offset

{
  "paths": [
    "game.Workspace.Checkpoint1",
    "game.Workspace.Checkpoint2"
  ],
  "newParent": "game.Workspace.Checkpoints",
  "offset": [0, 5, 0]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.Checkpoints.Checkpoint1",
      "name": "Checkpoint1",
      "sourcePath": "game.Workspace.Checkpoint1"
    },
    {
      "ok": true,
      "path": "Workspace.Checkpoints.Checkpoint2",
      "name": "Checkpoint2",
      "sourcePath": "game.Workspace.Checkpoint2"
    }
  ]
}

Handling Partial Failures

{
  "paths": [
    "game.Workspace.ValidPart",
    "game.Workspace.NonExistent",
    "game.Workspace.AnotherValidPart"
  ],
  "offset": [10, 0, 0]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.ValidPart",
      "name": "ValidPart",
      "sourcePath": "game.Workspace.ValidPart"
    },
    {
      "error": "Invalid path: game.Workspace.NonExistent",
      "sourcePath": "game.Workspace.NonExistent"
    },
    {
      "ok": true,
      "path": "Workspace.AnotherValidPart",
      "name": "AnotherValidPart",
      "sourcePath": "game.Workspace.AnotherValidPart"
    }
  ]
}

Create Multiple Copies from Template

{
  "paths": [
    "game.ReplicatedStorage.NPCTemplate",
    "game.ReplicatedStorage.NPCTemplate",
    "game.ReplicatedStorage.NPCTemplate"
  ],
  "newParent": "game.Workspace.NPCs"
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.NPCs.NPCTemplate",
      "name": "NPCTemplate",
      "sourcePath": "game.ReplicatedStorage.NPCTemplate"
    },
    {
      "ok": true,
      "path": "Workspace.NPCs.NPCTemplate",
      "name": "NPCTemplate",
      "sourcePath": "game.ReplicatedStorage.NPCTemplate"
    },
    {
      "ok": true,
      "path": "Workspace.NPCs.NPCTemplate",
      "name": "NPCTemplate",
      "sourcePath": "game.ReplicatedStorage.NPCTemplate"
    }
  ]
}

Notes

  • Each object is duplicated independently; one failure does not stop others
  • Results are returned in the same order as the input paths
  • All duplicates share the same newParent and offset options
  • The sourcePath field in the response helps track which original path each result corresponds to
  • You can duplicate the same path multiple times to create multiple copies
  • For more control over individual duplicates, use smart_duplicate multiple times
  • More efficient than calling smart_duplicate individually for each path

Build docs developers (and LLMs) love