JSON Schema - seastan/dragncards GitHub Wiki

gameDef

  • Description: The game definition schema
  • Type: object
  • Required: No

gameDef.pluginName

  • Description: The name of the plugin
  • Type: string
  • Required: Yes

gameDef.tutorialUrl

  • Description: The URL of the tutorial
  • Type: string
  • Required: No

gameDef.playerCountMenu

  • Description: The player count menu settings
  • Type: array
  • Required: No
  • Example

gameDef.playerCountMenu.[key]

  • Description: A player count menu setting
  • Type: object
  • Required: No

gameDef.playerCountMenu.[key].label

  • Description: The label of the player count menu setting
  • Type: label
  • Required: Yes

gameDef.playerCountMenu.[key].numPlayers

  • Description: The number of players for this setting
  • Type: integer
  • Required: Yes

gameDef.playerCountMenu.[key].layoutId

  • Description: The layout ID for this setting
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.layouts"

gameDef.backgroundUrl

  • Description: The URL of the background image
  • Type: string
  • Required: No

gameDef.loadPreBuiltOnNewGame

  • Description: If set to true, it will open the pre-built deck menu when the game starts
  • Type: boolean
  • Required: No

gameDef.vacantSeatOnNewGame

  • Description: If set to true, the user that created the room for the game will not be automatically seated in the player1 seat.
  • Type: boolean
  • Required: No

gameDef.actionLists

  • Description: Predefined action lists that care called using hotkeys or clicking on buttons. The key is the actionListId.
  • Type: object
  • Required: No
  • Example

gameDef.actionLists.[key]

  • Description: An action list
  • Type: actionList
  • Required: No

gameDef.announcements

  • Description: List of announcements that are displayed to users in the 'Create Room' lobby
  • Type: array
  • Required: No
  • Example

gameDef.announcements.[key]

  • Description: A single announcement
  • Type: string
  • Required: No

gameDef.automation

  • Description: Automation settings
  • Type: object
  • Required: No
  • Example

gameDef.automation.postNewGameActionList

  • Description: Action list that is called right after a new game is created
  • Type: actionList
  • Required: No

gameDef.automation.postSitDownActionList

  • Description: Action list that is called right after a player sits down
  • Type: actionList
  • Required: No

gameDef.automation.postLoadActionList

  • Description: Action list that is called right after a deck is loaded
  • Type: actionList
  • Required: No

gameDef.automation.preLoadActionList

  • Description: Action list that is called right before a deck is loaded
  • Type: actionList
  • Required: No

gameDef.automation.postMoveStackActionList

  • Description: Action list that is called after a stack is moved, either via drag and drop or via MOVE_STACK / MOVE_STACKS. This is called after the cards in the stack have their properties updated via the onCardEnter settings of the group the stack moved to. The following variables are pre-defined and can be used in this action list: $ORIG_STACK_ID (the ID for the stack that moved), $ORIG_GROUP_ID (the ID of the group the stack moved from), $DEST_GROUP_ID (the ID of the group the stack moved to), $DEST_STACK_ID (if the moved stack was attached to a target stack, this is the ID of the target stack, otherwise it is unchanged from $ORIG_STACK_ID), $ORIG_PARENT_CARD (the card object for the parent card in the moved stack), $DEST_PARENT_CARD (if the moved stack was attached to a target stack, this is the card object of the parent card in the target stack, otherwise it is identical to $ORIG_PARENT_CARD). Note that when one stack attaches to some target stack, the moved stack is disbanded, so $ORIG_STACK_ID will no longer point to a valid stack.
  • Type: actionList
  • Required: No

gameDef.automation.gameRules

  • Description: Automation rules
  • Type: object
  • Required: No

gameDef.automation.gameRules.[key]

  • Description: A rule that is triggered automatically
  • Type: object
  • Required: No

gameDef.automation.gameRules.[key].abstract

  • Description: If set to true, it represents an abstract rule is meant to be inherited and expanded upon by other rules
  • Type: boolean
  • Required: No

gameDef.automation.gameRules.[key].inheritFrom

  • Description: The id of the rule to inherit rules from
  • Type: string
  • Required: No

gameDef.automation.gameRules.[key].type

  • Description: The type of rule
  • Type: string
  • Required: No
  • Allowed values: "[\"trigger\", \"passive\"]"

gameDef.automation.gameRules.[key].autoRun

  • Description: Parameters for the rule to automatically run
  • Type: object
  • Required: No

gameDef.automation.gameRules.[key].autoRun.status

  • Description: The status of the rule. If set to 'always', the rule will automatically run when the condition is met. If set to 'never', the rule will not automatically run. If set to 'prompt', the user will be prompted to run the rule.
  • Type: string
  • Required: Yes
  • Allowed values: "[\"always\", \"never\", \"prompt\", \"promptYN\"]"

gameDef.automation.gameRules.[key].autoRun.promptPlayerI

  • Description: The player that should be prompted to run the rule. Example: 'player1' or '$PLAYER_N' or some code that returns a playerI value.
  • Type: code
  • Required: Yes

gameDef.automation.gameRules.[key].autoRun.promptMessage

  • Description: The message to display to the player when prompting them to run the rule
  • Type: string
  • Required: Yes

gameDef.automation.gameRules.[key].listenTo

  • Description: The paths in the game state to listen to for changes
  • Type: array
  • Required: No

gameDef.automation.gameRules.[key].listenTo.[key]

  • Description: A path in the game state
  • Type: any
  • Required: No

gameDef.automation.gameRules.[key].condition

  • Description: The condition that must be met for the rule to trigger
  • Type: code
  • Required: No

gameDef.automation.gameRules.[key].then

  • Description: (trigger type only) The action list to call when the rule triggers
  • Type: actionList
  • Required: No

gameDef.automation.gameRules.[key].onDo

  • Description: (passive type only) The action list to call when the condition is met
  • Type: actionList
  • Required: No

gameDef.automation.gameRules.[key].offDo

  • Description: (passive type only) The action list to call when the condition is no longer met
  • Type: actionList
  • Required: No

gameDef.automation.gameRules.[key].priority

  • Description: The priority of the rule. Lower values are executed first.
  • Type: integer
  • Required: No

gameDef.automation.cards

  • Description: Card automation settings. Each key is a databaseId corresponding to a card.
  • Type: object
  • Required: No

gameDef.automation.cards.[key]

  • Description: Rules for a specific card
  • Type: object
  • Required: No

gameDef.automation.cards.[key].abstract

  • Description: If set to true, it represents an abstract card is meant to be inherited and expanded upon by other cards. You can choose arbitrary databaseIds for abstract cards, then use the inheritFrom property to inherit the rules of the abstract cards.
  • Type: boolean
  • Required: No

gameDef.automation.cards.[key].inheritFrom

  • Description: The databaseId of the card to inherit rules from
  • Type: string
  • Required: No

gameDef.automation.cards.[key].ability

  • Description: The abilities of the card, which can be triggered manually by the player. The key is the side of the card corresponding to the ability, such as 'A' or 'B'.
  • Type: object
  • Required: No

gameDef.automation.cards.[key].ability.[key]

  • Description: An ability of the card's [key] side
  • Type: actionList
  • Required: No

gameDef.automation.cards.[key].rules

  • Description: Rules that are triggered automatically
  • Type: object
  • Required: No

gameDef.automation.cards.[key].rules.[key]

  • Description: A rule that is triggered automatically
  • Type: object
  • Required: No

gameDef.automation.cards.[key].rules.[key].type

  • Description: The type of rule
  • Type: string
  • Required: No
  • Allowed values: "[\"trigger\", \"passive\", \"entersPlay\", \"whileInPlay\"]"

gameDef.automation.cards.[key].rules.[key].autoRun

  • Description: Parameters for the rule to automatically run
  • Type: object
  • Required: No

gameDef.automation.cards.[key].rules.[key].autoRun.status

  • Description: The status of the rule. If set to 'always', the rule will automatically run when the condition is met. If set to 'never', the rule will not automatically run. If set to 'prompt', the user will be prompted to run the rule.
  • Type: string
  • Required: Yes
  • Allowed values: "[\"always\", \"never\", \"prompt\", \"promptYN\"]"

gameDef.automation.cards.[key].rules.[key].autoRun.promptPlayerI

  • Description: The player that should be prompted to run the rule. Example: 'player1' or '$PLAYER_N' or some code that returns a playerI value.
  • Type: code
  • Required: Yes

gameDef.automation.cards.[key].rules.[key].autoRun.promptMessage

  • Description: The message to display to the player when prompting them to run the rule
  • Type: string
  • Required: Yes

gameDef.automation.cards.[key].rules.[key].listenTo

  • Description: The paths in the game state to listen to for changes
  • Type: array
  • Required: No

gameDef.automation.cards.[key].rules.[key].listenTo.[key]

  • Description: A path in the game state
  • Type: any
  • Required: No

gameDef.automation.cards.[key].rules.[key].condition

  • Description: The condition that must be met for the rule to trigger
  • Type: code
  • Required: No

gameDef.automation.cards.[key].rules.[key].side

  • Description: The side of the card the rule belongs to
  • Type: string
  • Required: No

gameDef.automation.cards.[key].rules.[key].then

  • Description: (trigger and entersPlay types only) The action list to call when the rule triggers
  • Type: actionList
  • Required: No

gameDef.automation.cards.[key].rules.[key].onDo

  • Description: (passive and whileInPlay types only) The action list to call when the condition is met
  • Type: actionList
  • Required: No

gameDef.automation.cards.[key].rules.[key].offDo

  • Description: (passive and whileInPlay types only) The action list to call when the condition is no longer met
  • Type: actionList
  • Required: No

gameDef.automation.cards.[key].rules.[key].priority

  • Description: The priority of the rule. Lower values are executed first.
  • Type: integer
  • Required: No

gameDef.browse

  • Description: Settings for the browse group feature
  • Type: object
  • Required: Yes
  • Example

gameDef.browse.filterPropertySideA

  • Description: The property to filter on (only side A is supported). Example: 'type'
  • Type: string
  • Required: Yes

gameDef.browse.filterValuesSideA

  • Description: The predefined options of filterPropertySideA to filter on (only side A is supported). Example: ['Ally', 'Attachment', 'Enemy']
  • Type: array
  • Required: Yes

gameDef.browse.filterValuesSideA.[key]

  • Description: A value of filterPropertySideA. Example: 'Ally'
  • Type: string
  • Required: No

gameDef.browse.textPropertiesSideA

  • Description: The properties to search through when typing in the text box (only side A is supported). Example: ['name', 'text', 'traits']
  • Type: array
  • Required: Yes

gameDef.browse.textPropertiesSideA.[key]

  • Description: A property to search through. Example: 'name'
  • Type: any
  • Required: No

gameDef.cardBacks

  • Description: Card back settings
  • Type: object
  • Required: Yes
  • Example

gameDef.cardBacks.[key]

  • Description: A card back
  • Type: object
  • Required: No

gameDef.cardBacks.[key].width

  • Description: The width of the card back
  • Type: float
  • Required: Yes

gameDef.cardBacks.[key].height

  • Description: The height of the card back
  • Type: float
  • Required: Yes

gameDef.cardBacks.[key].imageUrl

  • Description: The URL of the image to use as the card back
  • Type: string
  • Required: Yes

gameDef.cardMenu

  • Description: Settings for the card menu
  • Type: object
  • Required: No
  • Example

gameDef.cardMenu.moveToGroupIds

  • Description: The group IDs to provide as options to move the card to
  • Type: array
  • Required: No

gameDef.cardMenu.moveToGroupIds.[key]

  • Description: The group ID
  • Type: string
  • Required: No
  • Allowed values: "gameDef.groups"

gameDef.cardMenu.suppress

  • Description: The options to suppress in the card menu
  • Type: array
  • Required: No

gameDef.cardMenu.suppress.[key]

  • Description: The option to suppress
  • Type: string
  • Required: No
  • Allowed values: "[\"Detach\", \"Attachment Direction\", \"Flip\", \"Delete\", \"Move To\", \"Show To\", \"Toggle Trigger\", \"Set Rotation\"]"

gameDef.cardMenu.options

  • Description: Custom options to display in the card menu
  • Type: array
  • Required: No

gameDef.cardMenu.options.[key]

  • Description: A custom option to display in the card menu
  • Type: object
  • Required: No

gameDef.cardMenu.options.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.cardMenu.options.[key].actionList

  • Description: The action list to call when the option is selected
  • Type: actionList
  • Required: Yes

gameDef.cardMenu.options.[key].showIf

  • Description: The condition that must be met for the option to be displayed
  • Type: code
  • Required: No

gameDef.cardProperties

  • Description: Card properties
  • Type: object
  • Required: No
  • Example

gameDef.cardProperties.[key]

  • Description: A card property
  • Type: object
  • Required: No

gameDef.cardProperties.[key].label

  • Description: The label of the property
  • Type: label
  • Required: No

gameDef.cardProperties.[key].type

  • Description: The data type of the property
  • Type: string
  • Required: Yes
  • Allowed values: "[\"boolean\", \"integer\", \"string\", \"float\"]"

gameDef.cardProperties.[key].default

  • Description: The default value of the property
  • Type: any
  • Required: Yes

gameDef.cardTypes

  • Description: Card types. The key is the name of the card type.
  • Type: object
  • Required: Yes
  • Example

gameDef.cardTypes.[key]

  • Description: Details of the card type
  • Type: object
  • Required: No

gameDef.cardTypes.[key].width

  • Description: The width of the card
  • Type: float
  • Required: Yes

gameDef.cardTypes.[key].height

  • Description: The height of the card
  • Type: float
  • Required: Yes

gameDef.cardTypes.[key].tokens

  • Description: The list of tokenIds that can be placed on the card
  • Type: array
  • Required: No

gameDef.cardTypes.[key].tokens.[key]

  • Description: A tokenId that can be placed on the card
  • Type: string
  • Required: No
  • Allowed values: "gameDef.tokens"

gameDef.cardTypes.[key].zoomFactor

  • Description: The scale factor of the card type
  • Type: float
  • Required: No

gameDef.cardTypes.[key].canOnlyAttachToTypes

  • Description: List of card types that this card type can only attach to
  • Type: array
  • Required: No

gameDef.cardTypes.[key].canOnlyAttachToTypes.[key]

  • Description: A card type that this card type can only attach to
  • Type: string
  • Required: No
  • Allowed values: "gameDef.cardTypes"

gameDef.cardTypes.[key].canOnlyHaveAttachmentsOfTypes

  • Description: List of card types that this card type can only have as attachments
  • Type: array
  • Required: No

gameDef.cardTypes.[key].canOnlyHaveAttachmentsOfTypes.[key]

  • Description: A card type that this card type can only have as attachments
  • Type: string
  • Required: No
  • Allowed values: "gameDef.cardTypes"

gameDef.clearTableOptions

  • Description: Options for clearing the table
  • Type: array
  • Required: No
  • Example

gameDef.clearTableOptions.[key]

  • Description: A clear table option
  • Type: object
  • Required: No

gameDef.clearTableOptions.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.clearTableOptions.[key].actionList

  • Description: The action list to call when the option is selected
  • Type: actionList
  • Required: Yes

gameDef.closeRoomOptions

  • Description: Options for closing the room
  • Type: array
  • Required: No
  • Example

gameDef.closeRoomOptions.[key]

  • Description: The label of the option
  • Type: object
  • Required: No

gameDef.closeRoomOptions.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.closeRoomOptions.[key].actionList

  • Description: The action list to call when the option is selected
  • Type: actionList
  • Required: Yes

gameDef.deckbuilder

  • Description: Settings for the deckbuilder
  • Type: object
  • Required: No
  • Example

gameDef.deckbuilder.addButtons

  • Description: List of increment/decrement button values to add to the deckbuilder. Example: [1, 2, 3]
  • Type: array
  • Required: No

gameDef.deckbuilder.addButtons.[key]

  • Description: An increment/decrement button values to add to the deckbuilder
  • Type: integer
  • Required: No

gameDef.deckbuilder.colorKey

  • Description: The face property to use set the text color in the builder
  • Type: string
  • Required: No

gameDef.deckbuilder.colorValues

  • Description: List of hex color values to use to set the text color in the builder
  • Type: object
  • Required: No

gameDef.deckbuilder.colorValues.[key]

  • Description: A hex color value to use to set the text color in the builder
  • Type: string
  • Required: No

gameDef.deckbuilder.columns

  • Description: The columns to display in the deckbuilder
  • Type: array
  • Required: No

gameDef.deckbuilder.columns.[key]

  • Description: A column to display in the deckbuilder
  • Type: object
  • Required: No

gameDef.deckbuilder.columns.[key].propName

  • Description: The name of the face property to display
  • Type: string
  • Required: Yes

gameDef.deckbuilder.columns.[key].label

  • Description: The label to display for the column
  • Type: label
  • Required: Yes

gameDef.deckbuilder.spawnGroups

  • Description: List of groupIds to allow the user to load cards into.
  • Type: array
  • Required: No

gameDef.deckbuilder.spawnGroups.[key]

  • Description: groupId to allow the user to load cards into
  • Type: object
  • Required: No

gameDef.deckbuilder.spawnGroups.[key].loadGroupId

  • Description: The group ID
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.groups"

gameDef.deckbuilder.spawnGroups.[key].label

  • Description: The label to display for the group
  • Type: label
  • Required: Yes

gameDef.deckMenu

  • Description: Settings for the pre-built deck menu
  • Type: object
  • Required: No
  • Example

gameDef.deckMenu.subMenus

  • Description: Second-level menus to display in the deck menu
  • Type: array
  • Required: No

gameDef.deckMenu.subMenus.[key]

  • Description: Second-level menu option
  • Type: object
  • Required: No

gameDef.deckMenu.subMenus.[key].label

  • Description: The label of the second-level menu
  • Type: label
  • Required: Yes

gameDef.deckMenu.subMenus.[key].subMenus

  • Description: Third-level menus to display in the second-level menu
  • Type: array
  • Required: No

gameDef.deckMenu.subMenus.[key].subMenus.[key]

  • Description: Third-level menu option
  • Type: object
  • Required: No

gameDef.deckMenu.subMenus.[key].subMenus.[key].label

  • Description: The label of the third-level menu
  • Type: label
  • Required: Yes

gameDef.deckMenu.subMenus.[key].subMenus.[key].deckLists

  • Description: The deck lists to display in the third-level menu
  • Type: array
  • Required: Yes

gameDef.deckMenu.subMenus.[key].subMenus.[key].deckLists.[key]

  • Description: A deck list to display in the third-level menu
  • Type: object
  • Required: No

gameDef.deckMenu.subMenus.[key].subMenus.[key].deckLists.[key].label

  • Description: The label of the deck list
  • Type: label
  • Required: Yes

gameDef.deckMenu.subMenus.[key].subMenus.[key].deckLists.[key].deckListId

  • Description: The ID of the deck list
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.preBuiltDecks"

gameDef.deckMenu.subMenus.[key].deckLists

  • Description: The deck lists to display in the second-level menu
  • Type: array
  • Required: No

gameDef.deckMenu.subMenus.[key].deckLists.[key]

  • Description: A deck list to display in the second-level menu
  • Type: object
  • Required: No

gameDef.deckMenu.subMenus.[key].deckLists.[key].label

  • Description: The label of the deck list
  • Type: label
  • Required: Yes

gameDef.deckMenu.subMenus.[key].deckLists.[key].deckListId

  • Description: The ID of the deck list
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.preBuiltDecks"

gameDef.deckMenu.deckLists

  • Description: The deck lists to display in the first-level deck menu
  • Type: array
  • Required: No

gameDef.deckMenu.deckLists.[key]

  • Description: A deck list to display in the first-level deck menu
  • Type: object
  • Required: No

gameDef.deckMenu.deckLists.[key].label

  • Description: The label of the deck list
  • Type: label
  • Required: Yes

gameDef.deckMenu.deckLists.[key].deckListId

  • Description: The ID of the deck list
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.preBuiltDecks"

gameDef.defaultActions

  • Description: Default actions to perform when a card is tapped in touch mode. The conditions are checked in order, and the first one that is met is displayed.
  • Type: array
  • Required: No
  • Example

gameDef.defaultActions.[key]

  • Description: A default action
  • Type: object
  • Required: No

gameDef.defaultActions.[key].actionList

  • Description: The action list to call when the card is tapped
  • Type: actionList
  • Required: Yes

gameDef.defaultActions.[key].label

  • Description: The label of the action
  • Type: label
  • Required: Yes

gameDef.defaultActions.[key].condition

  • Description: The condition that must be met for the action to be displayed
  • Type: actionList
  • Required: Yes

gameDef.defaultActions.[key].position

  • Description: The position of the action in the menu bar
  • Type: string
  • Required: No
  • Allowed values: "[\"top\", \"bottom\"]"

gameDef.faceProperties

  • Description: Card face properties
  • Type: object
  • Required: No
  • Example

gameDef.faceProperties.[key]

  • Description: A card face property. The key is the face property name.
  • Type: object
  • Required: No

gameDef.faceProperties.[key].label

  • Description: The label of the property
  • Type: label
  • Required: No

gameDef.faceProperties.[key].type

  • Description: The data type of the property
  • Type: string
  • Required: Yes
  • Allowed values: "[\"boolean\", \"integer\", \"string\", \"float\", \"object\", \"list\"]"

gameDef.faceProperties.[key].default

  • Description: The default value of the property
  • Type: selfType
  • Required: Yes

gameDef.functions

  • Description: Plugin-defined functions that can be called in any action list. The key is the function name, for example 'SHUFFLE_PLAYER_I_DECK'.
  • Type: object
  • Required: No
  • Example

gameDef.functions.[key]

  • Description: A plugin-defined function
  • Type: object
  • Required: No

gameDef.functions.[key].args

  • Description: The arguments of the function. Example: ['$PLAYER_I']
  • Type: any
  • Required: No

gameDef.functions.[key].args.[key]

  • Description: An argument of the function. Example: '$PLAYER_I'
  • Type: string
  • Required: No

gameDef.functions.[key].code

  • Description: The DragnLang code to execute. Example: ['SHUFFLE_GROUP', '{{$PLAYER_I}}Deck']
  • Type: code
  • Required: Yes

gameDef.gameProperties

  • Description: Game properties
  • Type: object
  • Required: No
  • Example

gameDef.gameProperties.[key]

  • Description: A game property
  • Type: object
  • Required: No

gameDef.gameProperties.[key].label

  • Description: The label of the property
  • Type: label
  • Required: No

gameDef.gameProperties.[key].type

  • Description: The data type of the property
  • Type: string
  • Required: Yes

gameDef.gameProperties.[key].default

  • Description: The default value of the property
  • Type: selfType
  • Required: Yes

gameDef.gameProperties.[key].min

  • Description: The minimum value of the property
  • Type: selfType
  • Required: No

gameDef.gameProperties.[key].max

  • Description: The maximum value of the property
  • Type: selfType
  • Required: No

gameDef.gameProperties.[key].options

  • Description: If the type is 'option', these are the options to choose from
  • Type: array
  • Required: No

gameDef.gameProperties.[key].options.[key]

  • Description: An option to choose from
  • Type: object
  • Required: No

gameDef.gameProperties.[key].options.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.gameProperties.[key].options.[key].id

  • Description: The ID of the option, which the game property will be set to when selected
  • Type: string
  • Required: Yes

gameDef.groupMenu

  • Description: Settings for the group hamburger menu
  • Type: object
  • Required: No
  • Example

gameDef.groupMenu.peekAtTopN

  • Description: List of options for the number of cards to peek at the top of the group. Example: [5, 10]
  • Type: array
  • Required: No

gameDef.groupMenu.peekAtTopN.[key]

  • Description: The number of cards to peek at the top of the group
  • Type: integer
  • Required: No

gameDef.groupMenu.moveToGroupIds

  • Description: The group IDs to provide as options to move the cards in the group to
  • Type: array
  • Required: No

gameDef.groupMenu.moveToGroupIds.[key]

  • Description: The group ID
  • Type: string
  • Required: No
  • Allowed values: "gameDef.groups"

gameDef.groupMenu.suppress

  • Description: List of options to suppress in the group menu
  • Type: array
  • Required: No

gameDef.groupMenu.suppress.[key]

  • Description: The option to suppress
  • Type: string
  • Required: No
  • Allowed values: "[\"Browse\", \"Look at top\", \"Look at top X\", \"Choose Random\", \"Set Visibility\", \"Move To\"]"

gameDef.groupMenu.options

  • Description: Custom options to display in the group menu
  • Type: array
  • Required: Yes

gameDef.groupMenu.options.[key]

  • Description: A custom option to display in the group menu
  • Type: object
  • Required: No

gameDef.groupMenu.options.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.groupMenu.options.[key].actionList

  • Description: The action list to call when the option is selected
  • Type: actionList
  • Required: Yes

gameDef.groupTypes

  • Description: Group type definitions. Any properties of a group type that are defined will be passed onto any groups that are given that type.
  • Type: object
  • Required: No
  • Example

gameDef.groupTypes.[key]

  • Description: A group type
  • Type: object
  • Required: No

gameDef.groupTypes.[key].label

  • Description: The label of the group type
  • Type: label
  • Required: No

gameDef.groupTypes.[key].tableLabel

  • Description: The label of the group type in the table
  • Type: label
  • Required: No

gameDef.groupTypes.[key].canHaveAttachments

  • Description: Whether the group can have attachments
  • Type: boolean
  • Required: No

gameDef.groupTypes.[key].shuffleOnLoad

  • Description: Whether the group should be shuffled when loaded
  • Type: boolean
  • Required: No

gameDef.groupTypes.[key].onCardEnter

  • Description: Properties to apply to a card when it enters the group. The key is the cardProperty to set, and the value is the value to set it to.
  • Type: object
  • Required: No

gameDef.groupTypes.[key].onCardEnter.[key]

  • Description: The value to apply to the card's [key] property
  • Type: any
  • Required: No

gameDef.groupTypes.[key].onCardLeave

  • Description: Properties to apply to a card when it leaves the group. The key is the cardProperty to set, and the value is the value to set it to.
  • Type: object
  • Required: No

gameDef.groupTypes.[key].onCardLeave.[key]

  • Description: The value to apply to the card's [key] property
  • Type: any
  • Required: No

gameDef.groupTypes.[key].menuOptions

  • Description: Options to display in the group hamburger menu
  • Type: array
  • Required: No

gameDef.groupTypes.[key].menuOptions.[key]

  • Description: A menu option to display in the group hamburger menu
  • Type: object
  • Required: No

gameDef.groupTypes.[key].menuOptions.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.groupTypes.[key].menuOptions.[key].actionList

  • Description: The action list to call when the option is selected
  • Type: actionList
  • Required: Yes

gameDef.groupTypes.[key].[key]

  • Description:
  • Type: any
  • Required: No

gameDef.groups

  • Description: Group definitions
  • Type: object
  • Required: Yes
  • Example

gameDef.groups.[key]

  • Description: Definition of a group
  • Type: object
  • Required: No

gameDef.groups.[key].groupType

  • Description: The type of the group
  • Type: string
  • Required: No
  • Allowed values: "gameDef.groupTypes"

gameDef.groups.[key].label

  • Description: The label of the group
  • Type: label
  • Required: Yes

gameDef.groups.[key].tableLabel

  • Description: The label of the group in the table
  • Type: label
  • Required: No

gameDef.groups.[key].canHaveAttachments

  • Description: Whether the group can have attachments
  • Type: boolean
  • Required: No

gameDef.groups.[key].shuffleOnLoad

  • Description: Whether the group should be shuffled when loaded
  • Type: boolean
  • Required: No

gameDef.groups.[key].onCardEnter

  • Description: Properties to apply to a card when it enters the group. The key is the cardProperty to set, and the value is the value to set it to.
  • Type: object
  • Required: No

gameDef.groups.[key].onCardEnter.[key]

  • Description: The value to apply to the card's [key] property
  • Type: any
  • Required: No

gameDef.groups.[key].onCardLeave

  • Description: Properties to apply to a card when it leaves the group. The key is the cardProperty to set, and the value is the value to set it to.
  • Type: object
  • Required: No

gameDef.groups.[key].onCardLeave.[key]

  • Description: The value to apply to the card's [key] property
  • Type: any
  • Required: No

gameDef.groups.[key].menuOptions

  • Description: Options to display in the group hamburger menu
  • Type: array
  • Required: No

gameDef.groups.[key].menuOptions.[key]

  • Description: A menu option to display in the group hamburger menu
  • Type: object
  • Required: No

gameDef.groups.[key].menuOptions.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.groups.[key].menuOptions.[key].actionList

  • Description: The action list to call when the option is selected
  • Type: actionList
  • Required: Yes

gameDef.groups.[key].[key]

  • Description: Value of some arbitrary [key] you can define, which the group will have when the game starts
  • Type: any
  • Required: No

gameDef.hotkeys

  • Description:
  • Type: object
  • Required: No
  • Example

gameDef.hotkeys.token

  • Description: List of hotkeys for tokens
  • Type: array
  • Required: No

gameDef.hotkeys.token.[key]

  • Description: A hotkey for a token
  • Type: object
  • Required: No

gameDef.hotkeys.token.[key].key

  • Description: The key to press
  • Type: string
  • Required: Yes

gameDef.hotkeys.token.[key].tokenType

  • Description: The token type to spawn
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.tokens"

gameDef.hotkeys.token.[key].label

  • Description: The label of the hotkey
  • Type: label
  • Required: Yes

gameDef.hotkeys.game

  • Description: List of hotkeys for game actions
  • Type: array
  • Required: No

gameDef.hotkeys.game.[key]

  • Description: A hotkey for a game action
  • Type: object
  • Required: No

gameDef.hotkeys.game.[key].key

  • Description: The key to press
  • Type: string
  • Required: Yes

gameDef.hotkeys.game.[key].actionList

  • Description: The action list to call when the key is pressed
  • Type: actionList
  • Required: Yes

gameDef.hotkeys.game.[key].label

  • Description: The label of the hotkey
  • Type: label
  • Required: Yes

gameDef.hotkeys.card

  • Description: Hotkeys for cards
  • Type: array
  • Required: No

gameDef.hotkeys.card.[key]

  • Description: A hotkey for a card
  • Type: object
  • Required: No

gameDef.hotkeys.card.[key].key

  • Description: The key to press
  • Type: string
  • Required: Yes

gameDef.hotkeys.card.[key].actionList

  • Description: The action list to call when the key is pressed
  • Type: actionList
  • Required: Yes

gameDef.hotkeys.card.[key].label

  • Description: The label of the hotkey
  • Type: label
  • Required: Yes

gameDef.labels

  • Description: Labels used in the game. The [key] is the labelId, and it can be used for any label in the gameDef by referencing it via id:labelId. This is optional, and mainly used for localization. For example, if you have some button with the label 'Draw Card', you can instead define a label drawCard: {'English': 'Draw Card', 'Spanish': 'Robar Carta'} and then use id:drawCard as the label for the button.
  • Type: object
  • Required: No
  • Example

gameDef.labels.[key]

  • Description:
  • Type: object
  • Required: No

gameDef.labels.[key].[key]

  • Description: The label text
  • Type: string
  • Required: No

gameDef.layouts

  • Description: Layout definitions
  • Type: object
  • Required: Yes
  • Example

gameDef.layouts.[key]

  • Description: Definition of a layout
  • Type: object
  • Required: No

gameDef.layouts.[key].testBorders

  • Description: If set to true, the layout will display borders around the regions to help with layout testing
  • Type: boolean
  • Required: No

gameDef.layouts.[key].stackStyleWhenHoveredOver

  • Description: The CSS style of a stack overlay that appears when a stack is hovered over. Must be formatted in JSX. Example: {'backgroundColor': 'rgba(255, 0, 0, 0.5)'} will give stacks a transparent red overlay when hovered over.
  • Type: object
  • Required: No

gameDef.layouts.[key].stackStyleWhenHoveredOver.[key]

  • Description: A CSS style property
  • Type: string
  • Required: No

gameDef.layouts.[key].postSetActionList

  • Description: The action list to call after the layout is set
  • Type: actionList
  • Required: No

gameDef.layouts.[key].cardSize

  • Description: The size of the cards in the layout
  • Type: float
  • Required: Yes

gameDef.layouts.[key].rowSpacing

  • Description: The spacing between rows in the layout
  • Type: float
  • Required: Yes

gameDef.layouts.[key].chat

  • Description: Chat settings
  • Type: object
  • Required: Yes

gameDef.layouts.[key].chat.left

  • Description: The left position of the chat
  • Type: any
  • Required: Yes

gameDef.layouts.[key].chat.top

  • Description: The top position of the chat
  • Type: any
  • Required: Yes

gameDef.layouts.[key].chat.width

  • Description: The width of the chat
  • Type: any
  • Required: Yes

gameDef.layouts.[key].chat.height

  • Description: The height of the chat
  • Type: any
  • Required: Yes

gameDef.layouts.[key].regions

  • Description: Regions in the layout
  • Type: object
  • Required: Yes

gameDef.layouts.[key].regions.[key]

  • Description: A region in the layout
  • Type: object
  • Required: No

gameDef.layouts.[key].regions.[key].groupId

  • Description: The group ID
  • Type: groupId
  • Required: Yes

gameDef.layouts.[key].regions.[key].type

  • Description: The type of the region
  • Type: string
  • Required: Yes

gameDef.layouts.[key].regions.[key].direction

  • Description: The direction of the region
  • Type: string
  • Required: No

gameDef.layouts.[key].regions.[key].left

  • Description: The left position of the region
  • Type: any
  • Required: Yes

gameDef.layouts.[key].regions.[key].top

  • Description: The top position of the region
  • Type: any
  • Required: Yes

gameDef.layouts.[key].regions.[key].width

  • Description: The width of the region
  • Type: any
  • Required: Yes

gameDef.layouts.[key].regions.[key].height

  • Description: The height of the region
  • Type: any
  • Required: Yes

gameDef.layouts.[key].regions.[key].style

  • Description: The style of the region, in the form of a CSS object. Example: {'background-color': 'red'}
  • Type: object
  • Required: No

gameDef.layouts.[key].regions.[key].style.[key]

  • Description: A CSS style property
  • Type: string
  • Required: No

gameDef.layouts.[key].regions.[key].layerIndex

  • Description: The layer index of the region. Higher index regions are drawn on top of lower index regions.
  • Type: integer
  • Required: No

gameDef.layouts.[key].regions.[key].hideTitle

  • Description: Whether to hide the title of the region
  • Type: boolean
  • Required: No

gameDef.layouts.[key].regions.[key].showMenu

  • Description: Whether to show the hamburger menu for the region
  • Type: boolean
  • Required: No

gameDef.layouts.[key].regions.[key].visible

  • Description: Whether the region is visible
  • Type: boolean
  • Required: No

gameDef.layouts.[key].regions.[key].cardSizeFactor

  • Description: The scale factor of the card size in the region
  • Type: float
  • Required: No

gameDef.layouts.[key].regions.[key].disableDroppableAttachments

  • Description: Whether to disable dropping attachments on cards in the region
  • Type: boolean
  • Required: No

gameDef.layouts.[key].tableButtons

  • Description: Buttons to display on the table. The [key] is the buttonId.
  • Type: object
  • Required: No

gameDef.layouts.[key].tableButtons.[key]

  • Description: A button to display on the table
  • Type: object
  • Required: No

gameDef.layouts.[key].tableButtons.[key].actionList

  • Description: The action list to call when the button is clicked
  • Type: actionList
  • Required: Yes

gameDef.layouts.[key].tableButtons.[key].label

  • Description: The label of the button
  • Type: label
  • Required: Yes

gameDef.layouts.[key].tableButtons.[key].left

  • Description: The left position of the button
  • Type: any
  • Required: Yes

gameDef.layouts.[key].tableButtons.[key].top

  • Description: The top position of the button
  • Type: any
  • Required: Yes

gameDef.layouts.[key].tableButtons.[key].width

  • Description: The width of the button
  • Type: any
  • Required: Yes

gameDef.layouts.[key].tableButtons.[key].height

  • Description: The height of the button
  • Type: any
  • Required: Yes

gameDef.layouts.[key].tableButtons.[key].visible

  • Description: Whether the button is visible
  • Type: boolean
  • Required: No

gameDef.layouts.[key].textBoxes

  • Description: Text boxes to display on the table. The [key] is the textBoxId.
  • Type: object
  • Required: No

gameDef.layouts.[key].textBoxes.[key]

  • Description: A text box to display on the table
  • Type: object
  • Required: No

gameDef.layouts.[key].textBoxes.[key].label

  • Description: The label of the text box
  • Type: any
  • Required: Yes

gameDef.layouts.[key].textBoxes.[key].left

  • Description: The left position of the text box
  • Type: any
  • Required: Yes

gameDef.layouts.[key].textBoxes.[key].top

  • Description: The top position of the text box
  • Type: any
  • Required: Yes

gameDef.layouts.[key].textBoxes.[key].width

  • Description: The width of the text box
  • Type: any
  • Required: Yes

gameDef.layouts.[key].textBoxes.[key].height

  • Description: The height of the text box
  • Type: any
  • Required: Yes

gameDef.layouts.[key].textBoxes.[key].visible

  • Description: Whether the text box is visible
  • Type: boolean
  • Required: No

gameDef.o8dImport

  • Description: Settings for importing .o8d files
  • Type: object
  • Required: No
  • Example

gameDef.o8dImport.o8dSectionToLoadGroupId

  • Description: Mapping of .o8d section names to groupIds to load the cards into
  • Type: object
  • Required: Yes

gameDef.o8dImport.o8dSectionToLoadGroupId.[key]

  • Description: The groupId to load the cards into
  • Type: groupId
  • Required: No

gameDef.o8dImport.otherSectionLoadGroupId

  • Description: Load group to load a card into if the section is not found in o8dSectionToLoadGroupId
  • Type: groupId
  • Required: Yes

gameDef.phases

  • Description: Phases of the game. The [key] is the phaseId.
  • Type: object
  • Required: No
  • Example

gameDef.phases.[key]

  • Description: A phase of the game
  • Type: object
  • Required: No

gameDef.phases.[key].label

  • Description: The label of the phase
  • Type: label
  • Required: Yes

gameDef.phases.[key].height

  • Description: The screen height of the phase label
  • Type: string
  • Required: Yes

gameDef.phaseOrder

  • Description: List of phaseIds in the order they should be displayed
  • Type: array
  • Required: No
  • Example

gameDef.phaseOrder.[key]

  • Description: The phaseId
  • Type: string
  • Required: No

gameDef.playerProperties

  • Description: Player properties. The [key] is the player property name.
  • Type: object
  • Required: Yes
  • Example

gameDef.playerProperties.[key]

  • Description: A player property
  • Type: object
  • Required: No

gameDef.playerProperties.[key].label

  • Description: The label of the property
  • Type: label
  • Required: No

gameDef.playerProperties.[key].type

  • Description: The data type of the property
  • Type: string
  • Required: Yes

gameDef.playerProperties.[key].default

  • Description:
  • Type: selfType
  • Required: Yes

gameDef.playerProperties.[key].min

  • Description:
  • Type: selfType
  • Required: No

gameDef.playerProperties.[key].max

  • Description:
  • Type: selfType
  • Required: No

gameDef.playerProperties.[key].options

  • Description:
  • Type: array
  • Required: No

gameDef.playerProperties.[key].options.[key]

  • Description: An option to choose from
  • Type: object
  • Required: No

gameDef.playerProperties.[key].options.[key].label

  • Description:
  • Type: label
  • Required: Yes

gameDef.playerProperties.[key].options.[key].id

  • Description:
  • Type: string
  • Required: Yes

gameDef.pluginMenu

  • Description:
  • Type: object
  • Required: No
  • Example

gameDef.pluginMenu.options

  • Description:
  • Type: array
  • Required: No

gameDef.pluginMenu.options.[key]

  • Description: A plugin menu option
  • Type: object
  • Required: No

gameDef.pluginMenu.options.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.pluginMenu.options.[key].actionList

  • Description: The action list to call when the option is selected
  • Type: actionList
  • Required: Yes

gameDef.preBuiltDecks

  • Description: Pre-built decks. The [key] is the deck ID.
  • Type: object
  • Required: No
  • Example

gameDef.preBuiltDecks.[key]

  • Description: A pre-built deck
  • Type: object
  • Required: No

gameDef.preBuiltDecks.[key].label

  • Description:
  • Type: label
  • Required: Yes

gameDef.preBuiltDecks.[key].cards

  • Description: List of objects containing the card databaseIds to load, their quantity, and their loadGroupId
  • Type: array
  • Required: Yes

gameDef.preBuiltDecks.[key].cards.[key]

  • Description: Load information for a card
  • Type: object
  • Required: No

gameDef.preBuiltDecks.[key].cards.[key].databaseId

  • Description: The databaseId of the card
  • Type: string
  • Required: Yes

gameDef.preBuiltDecks.[key].cards.[key].quantity

  • Description: The quantity of the card to load
  • Type: integer
  • Required: Yes

gameDef.preBuiltDecks.[key].cards.[key].loadGroupId

  • Description: The group ID to load the card into
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.groups"

gameDef.preBuiltDecks.[key].cards.[key].left

  • Description: Optional: If being loaded into a 'free' region type, the initial left position of the card
  • Type: any
  • Required: No

gameDef.preBuiltDecks.[key].cards.[key].top

  • Description: Optional: If being loaded into a 'free' region type, the initial top position of the card
  • Type: any
  • Required: No

gameDef.preBuiltDecks.[key].preLoadActionList

  • Description: The action list to call before the deck is loaded
  • Type: actionList
  • Required: No

gameDef.preBuiltDecks.[key].postLoadActionList

  • Description: The action list to call after the deck is loaded
  • Type: actionList
  • Required: No

gameDef.preBuiltDecks.[key].hideFromSearch

  • Description: Whether the deck should be hidden from the pre-built search menu
  • Type: boolean
  • Required: No

gameDef.preferences

  • Description: User preferences.
  • Type: object
  • Required: No
  • Example

gameDef.preferences.game

  • Description: List of game properties to display in the Preferences panel. Values a user sets in this way will be stored in their account and automatically applied when they create a game.
  • Type: array
  • Required: No

gameDef.preferences.game.[key]

  • Description: A game property key
  • Type: string
  • Required: No
  • Allowed values: "gameDef.gameProperties"

gameDef.preferences.player

  • Description: List of player properties to display in the Preferences panel. Values a user sets in this way will be stored in their account and automatically applied when they sit in a seat.
  • Type: array
  • Required: No

gameDef.preferences.player.[key]

  • Description:
  • Type: string
  • Required: No
  • Allowed values: "gameDef.playerProperties"

gameDef.prompts

  • Description: Plugin-defined prompts that can be called in any action list. The key is the prompt name, for example 'CHOOSE_PLAYER_I'.
  • Type: object
  • Required: No
  • Example

gameDef.prompts.[key]

  • Description: A plugin-defined prompt
  • Type: object
  • Required: No

gameDef.prompts.[key].args

  • Description: The arguments of the prompt. Example: ['$PLAYER_I']
  • Type: array
  • Required: Yes

gameDef.prompts.[key].args.[key]

  • Description: An argument of the prompt. Example: '$PLAYER_I'
  • Type: string
  • Required: No

gameDef.prompts.[key].message

  • Description: The message to display in the prompt
  • Type: any
  • Required: Yes

gameDef.prompts.[key].input

  • Description: Details for an optional input box
  • Type: object
  • Required: No

gameDef.prompts.[key].input.type

  • Description: The type of input to expect from the user. Must be one of: 'text', 'number', 'selectCards'. The code in the prompt options can use the $PROMPT_INPUT variable to access the input value, which will be a string, number, or a list of card ids depending on the input type.
  • Type: string
  • Required: Yes

gameDef.prompts.[key].options

  • Description: The options to choose from in the prompt
  • Type: array
  • Required: Yes

gameDef.prompts.[key].options.[key]

  • Description: An option to choose from
  • Type: object
  • Required: No

gameDef.prompts.[key].options.[key].label

  • Description: The label of the option
  • Type: label
  • Required: Yes

gameDef.prompts.[key].options.[key].hotkey

  • Description: The hotkey to press to select the option. Example: '1'
  • Type: string
  • Required: No

gameDef.prompts.[key].options.[key].code

  • Description: The DragnLang code to execute when the option is selected.
  • Type: code
  • Required: No

gameDef.prompts.[key].options.[key].dontShowAgain

  • Description: Whether to show the option again in the future
  • Type: boolean
  • Required: No

gameDef.saveGame

  • Description: Settings for saving the game
  • Type: object
  • Required: No
  • Example

gameDef.saveGame.metadata

  • Description: Metadata to save with the game, which will be displayed in the saved games section of the user profile.
  • Type: object
  • Required: No

gameDef.saveGame.metadata.[key]

  • Description: Either a value or an actionList that returns a value
  • Type: any
  • Required: No

gameDef.spawnExistingCardModal

  • Description: Settings for the 'Spawn Existing Card' modal
  • Type: object
  • Required: Yes
  • Example

gameDef.spawnExistingCardModal.columnProperties

  • Description: Face properties to display in the columns of the modal. Only the value for side A is displayed.
  • Type: array
  • Required: No

gameDef.spawnExistingCardModal.columnProperties.[key]

  • Description: A face property
  • Type: string
  • Required: No

gameDef.spawnExistingCardModal.loadGroupIds

  • Description: The group IDs to provide as options to load the card into
  • Type: array
  • Required: No

gameDef.spawnExistingCardModal.loadGroupIds.[key]

  • Description: The group ID
  • Type: string
  • Required: No
  • Allowed values: "gameDef.groups"

gameDef.stepReminderRegex

  • Description: List of step reminder regexes
  • Type: array
  • Required: No
  • Example

gameDef.stepReminderRegex.[key]

  • Description: A step reminder regex
  • Type: object
  • Required: No

gameDef.stepReminderRegex.[key].faceProperty

  • Description: The face property to apply the regex to
  • Type: string
  • Required: Yes

gameDef.stepReminderRegex.[key].regex

  • Description: The regex to match
  • Type: string
  • Required: Yes

gameDef.stepReminderRegex.[key].stepId

  • Description: The stepId to place a reminder on
  • Type: string
  • Required: Yes

gameDef.steps

  • Description: Steps of the game. The [key] is the stepId.
  • Type: object
  • Required: No
  • Example

gameDef.steps.[key]

  • Description: A step of the game
  • Type: object
  • Required: No

gameDef.steps.[key].phaseId

  • Description: The phaseId the step belongs to
  • Type: string
  • Required: Yes

gameDef.steps.[key].label

  • Description: The label of the step
  • Type: label
  • Required: Yes

gameDef.stepOrder

  • Description: List of stepIds in the order they should be displayed
  • Type: array
  • Required: No
  • Example

gameDef.stepOrder.[key]

  • Description: The stepId
  • Type: string
  • Required: No

gameDef.tokens

  • Description: Token definitions. The [key] is the token type.
  • Type: object
  • Required: No
  • Example

gameDef.tokens.[key]

  • Description: A token definition
  • Type: object
  • Required: No

gameDef.tokens.[key].label

  • Description: The label of the token
  • Type: label
  • Required: Yes

gameDef.tokens.[key].left

  • Description: The left position of the token
  • Type: string
  • Required: Yes

gameDef.tokens.[key].top

  • Description: The top position of the token
  • Type: string
  • Required: Yes

gameDef.tokens.[key].width

  • Description: The width of the token
  • Type: string
  • Required: Yes

gameDef.tokens.[key].height

  • Description: The height of the token
  • Type: string
  • Required: Yes

gameDef.tokens.[key].imageUrl

  • Description: The image URL of the token
  • Type: string
  • Required: Yes

gameDef.tokens.[key].canBeNegative

  • Description: Whether the token can be negative
  • Type: boolean
  • Required: No

gameDef.tokens.[key].hideLabel1

  • Description: Whether to hide label if the value is '1'
  • Type: boolean
  • Required: No

gameDef.topBarCounters

  • Description: Top bar counters
  • Type: object
  • Required: No
  • Example

gameDef.topBarCounters.shared

  • Description: List of shared counters
  • Type: array
  • Required: No

gameDef.topBarCounters.shared.[key]

  • Description: Details for a shared counter
  • Type: object
  • Required: No

gameDef.topBarCounters.shared.[key].label

  • Description: The label of the counter
  • Type: label
  • Required: Yes

gameDef.topBarCounters.shared.[key].imageUrl

  • Description: The image URL of the counter
  • Type: string
  • Required: Yes

gameDef.topBarCounters.shared.[key].gameProperty

  • Description: The game property whose value is displayed
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.gameProperties"

gameDef.topBarCounters.player

  • Description: List of player counters
  • Type: array
  • Required: No

gameDef.topBarCounters.player.[key]

  • Description: Details for a player counter
  • Type: object
  • Required: No

gameDef.topBarCounters.player.[key].label

  • Description: The label of the counter
  • Type: label
  • Required: Yes

gameDef.topBarCounters.player.[key].imageUrl

  • Description: The image URL of the counter
  • Type: string
  • Required: Yes

gameDef.topBarCounters.player.[key].playerProperty

  • Description: The player property whose value is displayed
  • Type: string
  • Required: Yes
  • Allowed values: "gameDef.playerProperties"

gameDef.touchBar

  • Description: List of touch bar rows
  • Type: array
  • Required: No
  • Example

gameDef.touchBar.[arrayelement]

  • Description: A touch bar row, which is a list of touch bar buttons
  • Type: array
  • Required: No

gameDef.touchBar.[arrayelement].[key]

  • Description: A touch bar button
  • Type: object
  • Required: No

gameDef.touchBar.[arrayelement].[key].id

  • Description: The button ID
  • Type: string
  • Required: No

gameDef.touchBar.[arrayelement].[key].label

  • Description: The label of the button
  • Type: label
  • Required: No

gameDef.touchBar.[arrayelement].[key].imageUrl

  • Description: The image URL of the button
  • Type: string
  • Required: No

gameDef.touchBar.[arrayelement].[key].actionType

  • Description: The type of action to perform when the button is clicked
  • Type: string
  • Required: No
  • Allowed values: "[\"token\", \"card\", \"game\", \"engine\"]"

gameDef.touchBar.[arrayelement].[key].tokenType

  • Description: The token type to spawn when the button is clicked
  • Type: string
  • Required: No
  • Allowed values: "gameDef.tokens"

gameDef.touchBar.[arrayelement].[key].actionList

  • Description: The action list to call when the button is clicked
  • Type: actionList
  • Required: No

gameDef.imageUrlPrefix

  • Description: Object describing the prefix to add to image URLs. The [key] is the language. This can be used to reduce character count in the TSV if many URLs contain a similar prefix. It can be used for localization if your images are hosted in such a way that the the URLs for the same card in different languages have the same suffix but different prefix. Example: {'Default': 'https://hostingsite.com/English/', 'English': 'https://hostingsite.com/English/', 'French': 'https://hostingsite.com/French/'}
  • Type: object
  • Required: No
  • Example

gameDef.imageUrlPrefix.[key]

  • Description: The image URL prefix
  • Type: string
  • Required: No