Skip to main content

Export and Import

Sequences live in the place, which is the right home for editing. To move one between places, keep it in source control, or diff two versions, export it to JSON.

From the editor​

  • Export JSON to ServerStorage, in the sequence menu (•••), writes the open sequence to a StringValue at ServerStorage.FlowExports.<Name>.sequence.json and selects it. Copy its value, or save it to a file from the Explorer.
  • Import from Selected StringValue reads the selected StringValue and adds it as a new sequence.

From a script​

local json = Flow:ExportSequence("DoorOpen")

-- In another place
local sequenceInstance = Flow:ImportSequence(json, "DoorOpenCopy")

ImportSequence warns and returns nil if the JSON is invalid or a sequence with that name already exists. Pass a second argument to import under a different name.

What an export carries​

The export is a versioned plain table holding the sequence's settings, bindings, tracks, sections, and keyframes, including curves, blending, and track colors. Roblox types such as CFrame and Color3 are written as tagged values ({ "$type": "CFrame", "Value": [...] }) so they survive the round trip.

It does not carry spawnable templates or custom section types. Copy those into the new place alongside the sequence. A sequence that uses a section type the place doesn't have still imports and plays; those sections just do nothing until the type is installed.

Every sequence records the schema version it was written with. A newer runtime reads older exports, and an older runtime refuses an export it can't understand rather than misreading it.