Skip to content

Card Set Format

Matan Lurey edited this page Oct 2, 2021 · 1 revision

The source of truth implementation of the various schema(s) are available in the source code.

However, the below is a short overview of the format, with some annotated examples:

Format

NOTE: Unless otherwise specified, all names (strings) are case sensitive.

Overview

A CardSet object, which is normally the root object for mod content, contains the following structure:

{
  "units": {
    // Factions -> Ranks -> Units
    "Rebel": {
      "Commander": [
        { /* Unit for Rebels with Rank of Commander */ },
        { /* Unit for Rebels with Rank of Commander */ },
      ]
    }
  },
  "upgrades": {
    "Command": [
      { /* Upgrade with Command Requirement */ }
    ],
    "Training": [
      { /* Upgrade with Training Requirement */ },
      { /* Upgrade with Training Requirement */ }
    ]
  },
  "commands": {
    "Generic": [
      { /* Generic Command Card (For All Factions) */ }
    ],
    "Rebel": [
      { /* Generic Command Card (For Rebels) */ }
    ]
  },
  "battlefield": {
    /* This area is less useful, as it is not fully supported. */
  }
}

Units

A UnitCard defines:

  • The name, and optionally title and list-building display name for a unit
  • A link to the card (i.e. as a JPG)
  • A few game specific details about the unit (size, type, points, speed, upgrade slots)
  • A list of minis that come with the unit (base unit)
  • A list of command cards that come with the unit

Here is an annotated example:

{
  // Name. This is used as a case-insensitive key for other fields, and for list building/imports.
  "name": "Tauntaun Riders",

  // A card image file, preferably JPG.
  "image": "http://cloud-3.steamusercontent.com/ugc/1683770969788604655/CC7501F41054D1F68139C8ABCFAEE0CAA855475C/",

  // The base size of the Unit. One of the following:
  // ["small", "medium", "large", "huge", "laat", "epic", "long"]
  //
  // At this point in time, custom base sizes are not supported.
  "size": "medium",

  // The unit type of the Unit. One of the following:
  // [
  //   "Droid Trooper",
  //   "Clone Trooper",
  //   "Creature Trooper",
  //   "Emplacement Trooper",
  //   "Ground Vehicle",
  //   "Repulsor Vehicle",
  //   "Trooper",
  //   "Wookiee Trooper"
  // ]
  //
  // At this point in time, custom unit types are not supported.
  "type": "Creature Trooper",
  "points": 95,

  // 0, 1, 2, or 3
  "speed": 3,

  // Name of slot, and number of slots. Types are on of the following:
  // [
  //   "Armament",
  //   "Command",
  //   "Comms",
  //   "Counterpart",
  //   "Crew",
  //   "Flaw",
  //   "Force",
  //   "Gear",
  //   "Generator",
  //   "Grenades",
  //   "Hardpoint",
  //   "Heavy Weapon",
  //   "Ordnance",
  //   "Personnel",
  //   "Pilot",
  //   "Programming",
  //   "Training"
  // ]
  //
  // Note that Counterpart and Flaw are categorized as an upgrade in our data model.
  //
  // At this point in time, custom upgrade types are not supported.
  "upgrades": {
    "Training": 1,
    "Comms": 1
  },
  // Miniatures, listed one at a time. This does *NOT* include minis that come from an upgrade card.
  //
  // One of two formats supported:
  //   { "mesh": "URL", "diffuse": "URL"} or { "bundle": "URL", "secondary": "URL" }
  //
  // If you don't understand that format, you'll need to get familiar with TTS' formats. Sorry!
  //
  // As a placeholder, if you have no minis yet, you can specify a number, like "minis": 2.
  "minis": [
    {
      "mesh": "http://cloud-3.steamusercontent.com/ugc/788608699499191489/E91DEB380842511B21284A125A505B6C71D18474/",
      "diffuse": "http://cloud-3.steamusercontent.com/ugc/788608699499191676/8E19A176FF0B3D2923F8F3D6DEA80D389F77CB27/"
    },
    {
      "mesh": "http://cloud-3.steamusercontent.com/ugc/788608699499191881/3DBB7DF0943F0D25484DE34581411825BA566F8A/",
      "diffuse": "http://cloud-3.steamusercontent.com/ugc/788608699499191676/8E19A176FF0B3D2923F8F3D6DEA80D389F77CB27/"
    }
  ]
}

A few additional fields worth mentioning for some units:

Command Cards

"commands": [
  {
    "name": "Maximum Firepower",
    "image": "http://cloud-3.steamusercontent.com/ugc/1680393865564036422/34C5A93E3C69A143EB6E537C1D984010996FDDF2/",
    "pip": 1
  },
  {
    "name": "Evasive Maneuvers",
    "image": "http://cloud-3.steamusercontent.com/ugc/1680393865564035517/E8A15E29EA9390DE382A583AE416BC4DDDDA6A90/",
    "pip": 2
  },
  {
    "name": "Imperial Discipline",
    "image": "http://cloud-3.steamusercontent.com/ugc/1680393865564033490/3EB2A5666B5D911D173242DD948521DFC169FE22/",
    "pip": 3
  }
]

Required Upgrades

"required": ["Gideon Hask", "Del Meeko"]

This also applies to flaw cards:

"required": ["Not A Story The Jedi Would Tell"]

Strike Teams

"heavyWeaponTeam": true

Upgrades

A UpgradeCard defines:

  • The name, and optionally title and list-building display name for a unit
  • A link to the card (i.e. as a JPG)
  • A few game specific details about the unit (size, type, points, speed, upgrade slots)
  • A list of minis that come with the unit (base unit)
  • A list of command cards that come with the unit

Here is an annotated example:

{
  "name": "Z-6 Trooper",
  // JPG upgrade card.
  "image": "http://cloud-3.steamusercontent.com/ugc/1680393865568146746/5B85C86D1B259A5452AE5E7E1B60B9210A73EB95/",

  // See "units" -> "minis".
  "mini": {
    "mesh": "http://cloud-3.steamusercontent.com/ugc/785234780862734756/1F48FA301357905B28DA35A03658DFA39154DBFE/",
    "diffuse": "http://cloud-3.steamusercontent.com/ugc/785234780862736228/22D1A1ACC79493FE82165CC95A5E23170A4FBC5B/"
  },
  "points": 20,

  // List building restrictions. This can be quite tricky, it's best to reference an upgrade similar to the one you are adding.
  "restrictions": {
    "include": {
      "unit": ["Rebel Troopers"]
    }
  }
}

Clone this wiki locally