📦

Exporting & Importing

Export scenarios as JSON files and import them to share or back up.

Exporting a Scenario

Exporting lets you download your scenario as a JSON file for backup or sharing outside the platform.

  1. Go to Manage Scenarios from the navigation bar.
  2. Find the scenario you want to export.
  3. Click Export (or the download icon).
  4. A JSON file downloads to your computer.

The exported file contains:

  • Scenario name
  • All phases with player, ball, cone, target, and zone positions
  • Transition settings (arrow types, curves, manual paths, ball attach/detach, arc direction/bend/height)
  • Team references (by ID)
Tip: Export is available to all users, including Free tier. Use it to back up your scenarios or transfer them between accounts.

Importing a Scenario

  1. Go to Manage Scenarios.
  2. Click Import (or the upload icon).
  3. Select a previously exported JSON file.
  4. The scenario is created in your account with all phases and settings intact.
Note: Free tier users can import scenarios, but the 3-scenario limit still applies. If you're at the limit, delete a scenario first or upgrade to Premium.

JSON File Format

The exported JSON follows this structure. Phases are pure keyframes (no start/transition split) and balls are stored in a balls array — each with its own id:

{
  "name": "My Scenario",
  "phases": [
    {
      "name": "Phase 1",
      "home": { "players": [{ "id": "home:0", "position": [10, 0, 5], "lookMode": "attach", "lookAtTarget": "ball:ball-1", "actions": [{ "type": "pose_wave_left", "trigger": 0.5 }], "arc": { "type": "curve", "direction": "right", "bend": 0.3, "height": 0, "thickness": 0.08 } }] },
      "away": { "players": [{ "id": "away:0", "position": [-10, 0, -5] }] },
      "balls": [
        { "id": "ball-1", "color": "#ffffff", "position": [0, 0, 0], "attached": null, "arc": { "type": "manual", "thickness": 0.08, "points": [[0,0,0],[2,0,1],[4,0,0]] } }
      ],
      "cones": [],
      "targets": [],
      "zones": [
        {
          "id": "zone-1",
          "color": "#ffeb3b",
          "opacity": 0.35,
          "position": [0, 0, 0],
          "points": [[-5, -5], [5, -5], [5, 5], [-5, 5]]
        }
      ]
    }
  ]
}

You can edit the JSON manually and re-import it. Positions are [x, y, z] in meters, where Y is up and the pitch center is at (0, 0, 0). Zone points are 2D [x, z] vertex pairs forming the polygon outline. A ball that is attached to a player includes an attached field in "team:index" format (e.g. "home:3"). Each player can have a lookMode (auto, manual, or attach) — when attach, the lookAtTarget field specifies which item to track (e.g. "ball:ball-1", "home:3"). Each player can have an actions array of overlay animations, each with type (clip name like "pose_wave_left") and trigger (0.0–1.0, the point during the phase transition when the action plays once). Each item can have an arc object: type (basic, curve, or manual), direction, bend, height, thickness, and for manual paths a points array of [x, y, z] waypoints.

Use Cases

  • Backup — Export scenarios before making major changes.
  • Transfer — Move scenarios between accounts (e.g. coach → assistant).
  • Templates — Export a base scenario, duplicate and modify for different drills.
  • Offline editing — Edit positions in the JSON for precise control, then import.