Skip to main content
Creates multiple fully-configured Roblox instances in batch. Each item can have its own properties, attributes, and source code.

Endpoint

mass_create_objects_with_properties

Parameters

items
array
required
Array of objects to create. Each item contains:

Response

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

Examples

Create Multiple Configured Parts

{
  "items": [
    {
      "path": "game.Workspace",
      "className": "Part",
      "properties": {
        "Name": "RedPart",
        "Anchored": true,
        "Color": {"type": "Color3", "value": [1, 0, 0]},
        "Size": {"type": "Vector3", "value": [5, 1, 5]}
      }
    },
    {
      "path": "game.Workspace",
      "className": "Part",
      "properties": {
        "Name": "BluePart",
        "Anchored": true,
        "Color": {"type": "Color3", "value": [0, 0, 1]},
        "Size": {"type": "Vector3", "value": [5, 1, 5]}
      }
    }
  ]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.RedPart",
      "name": "RedPart"
    },
    {
      "ok": true,
      "path": "Workspace.BluePart",
      "name": "BluePart"
    }
  ]
}

Create Multiple Scripts

{
  "items": [
    {
      "path": "game.ServerScriptService",
      "className": "Script",
      "properties": {
        "Name": "ServerInit"
      },
      "source": "print('Server initialized')\ngame.Players.PlayerAdded:Connect(function(player)\n\tprint(player.Name .. ' joined')\nend)"
    },
    {
      "path": "game.ServerScriptService",
      "className": "Script",
      "properties": {
        "Name": "DataManager"
      },
      "source": "local DataStore = game:GetService('DataStoreService')\nprint('DataManager loaded')"
    }
  ]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "ServerScriptService.ServerInit",
      "name": "ServerInit"
    },
    {
      "ok": true,
      "path": "ServerScriptService.DataManager",
      "name": "DataManager"
    }
  ]
}

Create Game Setup Structure

{
  "items": [
    {
      "path": "game.ReplicatedStorage",
      "className": "Folder",
      "properties": {
        "Name": "GameData"
      }
    },
    {
      "path": "game.ReplicatedStorage.GameData",
      "className": "Configuration",
      "properties": {
        "Name": "Settings"
      },
      "attributes": {
        "MaxPlayers": 10,
        "RoundTime": 300,
        "GameMode": "Teams"
      }
    },
    {
      "path": "game.ReplicatedStorage.GameData",
      "className": "ModuleScript",
      "properties": {
        "Name": "GameConfig"
      },
      "source": "local Config = {}\n\nConfig.VERSION = '1.0.0'\nConfig.DEBUG = false\n\nreturn Config"
    }
  ]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "ReplicatedStorage.GameData",
      "name": "GameData"
    },
    {
      "ok": true,
      "path": "ReplicatedStorage.GameData.Settings",
      "name": "Settings"
    },
    {
      "ok": true,
      "path": "ReplicatedStorage.GameData.GameConfig",
      "name": "GameConfig"
    }
  ]
}

Mixed Success and Failure

{
  "items": [
    {
      "path": "game.Workspace",
      "className": "Part",
      "properties": {
        "Name": "ValidPart",
        "Anchored": true
      }
    },
    {
      "path": "game.InvalidLocation",
      "className": "Part",
      "properties": {
        "Name": "FailedPart"
      }
    },
    {
      "path": "game.Workspace",
      "className": "Folder",
      "properties": {
        "Name": "ValidFolder"
      }
    }
  ]
}
Response:
{
  "results": [
    {
      "ok": true,
      "path": "Workspace.ValidPart",
      "name": "ValidPart"
    },
    {
      "error": "Invalid path: game.InvalidLocation"
    },
    {
      "ok": true,
      "path": "Workspace.ValidFolder",
      "name": "ValidFolder"
    }
  ]
}

Notes

  • Each object is created independently; one failure does not stop others
  • Results are returned in the same order as input items
  • Properties are applied before parenting
  • Invalid properties are silently ignored (wrapped in pcall)
  • More efficient than calling create_object_with_properties multiple times
  • For simple objects without properties, use mass_create_objects

Build docs developers (and LLMs) love