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
🗂️ Page Index for this GitHub Wiki