3 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

CreateGameEventRequest — openapi

Request body for POST /v3/universes/{universeId}/game-events. universeId comes from the URL path, not the body. VirtualEventsApi.Models.V3.Request.CreateGameEventRequest.Visibility is restricted to Public/Private — Moderated is server-side only. Nullable CLR properties allow JSON binding to materialize incomplete requests; required fields are enforced by the virtual-events gRPC service when CreateVirtualEvent runs.

Properties

NameTypeRequiredDescription
titlestringfalseEvent title. Clients must provide a non-empty value.
subtitlestringfalseEvent subtitle. Clients must provide a non-empty value.
descriptionstringfalseOptional event description.
startTimestringfalseEvent start time. Clients must provide a timestamp such as yyyy-MM-ddTHH:mm:ss.fffzzz or yyyy-MM-ddTHH:mm:ss.fffZ.
endTimestringfalseEvent end time. Clients must provide a timestamp such as yyyy-MM-ddTHH:mm:ss.fffzzz or yyyy-MM-ddTHH:mm:ss.fffZ, and it must be after VirtualEventsApi.Models.V3.Request.CreateGameEventRequest.StartTime.
visibilityfalseMust be Public or Private; Moderated is server-managed and rejected.
groupIdintegerfalseGroup host. When omitted, the authenticated user is the host.
placeIdintegerfalseOptional venue place ID. When omitted, the event is created in the universe root place.
categoriesarrayfalse
thumbnailsarrayfalse
configfalseOptional event configuration block (recurrence + notification audience) on the v3 Create body.
featuringStatusfalseOptional featuring status flag. When omitted, defaults to "not featured".
taglinestringfalseOptional tagline. Length and content are validated server-side.

Complete Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Event title. Clients must provide a non-empty value.",
      "nullable": true
    },
    "subtitle": {
      "type": "string",
      "description": "Event subtitle. Clients must provide a non-empty value.",
      "nullable": true
    },
    "description": {
      "type": "string",
      "description": "Optional event description.",
      "nullable": true
    },
    "startTime": {
      "type": "string",
      "description": "Event start time. Clients must provide a timestamp such as\r\n`yyyy-MM-ddTHH:mm:ss.fffzzz` or `yyyy-MM-ddTHH:mm:ss.fffZ`.",
      "format": "date-time",
      "nullable": true
    },
    "endTime": {
      "type": "string",
      "description": "Event end time. Clients must provide a timestamp such as\r\n`yyyy-MM-ddTHH:mm:ss.fffzzz` or `yyyy-MM-ddTHH:mm:ss.fffZ`, and it must be after\r\nVirtualEventsApi.Models.V3.Request.CreateGameEventRequest.StartTime.",
      "format": "date-time",
      "nullable": true
    },
    "visibility": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventVisibility"
        }
      ],
      "description": "Must be `Public` or `Private`; `Moderated` is server-managed and rejected.",
      "nullable": true
    },
    "groupId": {
      "type": "integer",
      "description": "Group host. When omitted, the authenticated user is the host.",
      "format": "int64",
      "nullable": true
    },
    "placeId": {
      "type": "integer",
      "description": "Optional venue place ID. When omitted, the event is created in the universe root place.",
      "format": "int64",
      "nullable": true
    },
    "categories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EventRankedCategory"
      },
      "nullable": true
    },
    "thumbnails": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EventMedia"
      },
      "nullable": true
    },
    "config": {
      "allOf": [
        {
          "$ref": "#/components/schemas/CreateGameEventConfigRequest"
        }
      ],
      "description": "Optional event configuration block (recurrence + notification audience) on the v3 Create body.",
      "nullable": true
    },
    "featuringStatus": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FeaturingStatus"
        }
      ],
      "description": "Optional featuring status flag. When omitted, defaults to \"not featured\".",
      "nullable": true
    },
    "tagline": {
      "type": "string",
      "description": "Optional tagline. Length and content are validated server-side.",
      "nullable": true
    }
  },
  "additionalProperties": false,
  "description": "Request body for `POST /v3/universes/{universeId}/game-events`.\r\n`universeId` comes from the URL path, not the body.\r\nVirtualEventsApi.Models.V3.Request.CreateGameEventRequest.Visibility is restricted to Public/Private — Moderated is server-side only.\r\nNullable CLR properties allow JSON binding to materialize incomplete requests; required\r\nfields are enforced by the virtual-events gRPC service when `CreateVirtualEvent` runs."
}