Custom Cards & Sets - Cockatrice/Cockatrice GitHub Wiki


To add custom art for cards, the easiest way is to use the CUSTOM folder.

  1. Go to the Deck Editor. On the top tabs, go to Card Database → Open custom image folder.

  2. Your computer should now open the CUSTOM folder in a separate window.

  • The CUSTOM folder will accept .png, .jpeg, or .jpg image files only.
  • Example: If you'd like to use the promo image for Polukranos, World Eater, then you'd name this image Polukranos, World Eater.png and save it to the CUSTOM folder.
  1. Download the desired card art from any source, preferable from Scryfall and save it to the folder from the previous step.

  2. Restart Cockatrice to enable the new pictures you placed into the CUSTOM folder.

Note: Split cards should be stored as FirstcardSecondcard.jpg; for example, Fire // Ice should be stored as FireIce.jpg.


To add your own custom cards follow these steps.

  • This can be useful for spoilers and/or cards that you make yourself.
  1. Go to the Deck Editor. On the top tabs, go to Card Database → Open custom sets folder.

  2. When you're in the folder, create a new XML file and give it a name starting with a number.

  • Example: 01.customcards.xml
  1. Open this file with a decent text editor that supports UTF-8 like Notepad++ or Sublime Text. Dumb editors like Windows's notepad will break on special characters and vowels with accent marks. In this new file you've made, start with the following information:
<?xml version="1.0" encoding="UTF-8"?>
<cockatrice_carddatabase version="4">
  <sets>
  ...
  </sets>
  <cards>
  ...
  </cards>
</cockatrice_carddatabase>
  1. Define new sets in the card database. If all the cards will be defined as part of sets that already exists on another card database, the sets don't need to be declared again. For each set that you want to define, inside the <sets>...</sets> section add a new set definition:
<set>
  <name>XXX</name>
  <longname>My awesome custom card set</longname>
  <settype>Custom</settype>
  <releasedate>2019-04-20</releasedate>
</set>

The following information will give you assistance in filling in the set fields you see above:

  • Place the set code in between the name tags. Set codes are usually a short 3-4 characters identification code.

  • Place a longer set description between the longname tags.

  • State the set type between the settype tags, eg. Core, Expansion or Promo. This information can be useful to sort or filter sets in the set editor.

  • Place the set release date between the releasedate tags; ensure it is in the yyyy-mm-dd format. This information can be useful to sort or filter sets in the set editor.

  1. Add custom cards by adding one card tag for each card inside the <cards>...</cards> section:
<card>
  <name>Card name</name>
  <text>Card description and oracle text, including actions, effects, etc..</text>
  <prop>
    <layout>normal</layout>
    <side>front</side>
    <type>Instant</type>
    <maintype>Instant</maintype>
    <manacost>R</manacost>
    <cmc>1</cmc>
    <colors>R</colors>
    <coloridentity>R</coloridentity>
    <pt>0/2</pt>
    <loyalty>4</loyalty>
    <format-standard>legal</format-standard>
    <format-commander>legal</format-commander>
    <format-modern>legal</format-modern>
    <format-pauper>legal</format-pauper>
  </prop>
  <set rarity="common" uuid="12345678-abcd-1234-abcd-1234567890ab" num="42" muid="123456" picurl="http://.../image.jpg">XXX</set>
  <related>Another card name</related>
  <reverse-related>Another card name</reverse-related>
  <token>1</token>
  <tablerow>3</tablerow>
  <cipt>1</cipt>
  <upsidedown>1</upsidedown>
</card>

The following information will give you assistance in filling in the card fields you see above:

  • Place the card's name in between the name tags.

  • Place the card's description and oracle text (including actions, effects, etc..) in between the text tags.

  • If the card is a token (thus a card that can't be played in a deck and is created somehow by other card interactions), place a '1' in between the token tags. If not, then you must remove this tag.

  • If the card comes into play tapped, place a '1' in between the cipt tags. If not, then you must remove this tag.

  • If the card's picture must be shown upside down (eg. flip cards), place a '1' in between the upsidedown tags. If not, then you must remove this tag.

  • Place the corresponding number, as found below, in between the tablerow tags to allow the card to appear in the correct row in game:

    • 0 → lands
    • 1 → non-creature, non-land permanents (like Planeswalkers, Enchantments, and Artifacts)
    • 2 → creatures (this includes all cards that have the "creature" type like "Enchantment Creature")
    • 3 → non-permanent cards (like Instants and Sorceries)
  • For each set this card appears in, add a correspondent set tag. You need to add at least one set tag on a card. The minimal set declaration must contain at least the set code:

  <set>XXX</set>
  • Optional attributes can be used to add specific informations about the card in that set. These are the attributes that are commonly used:
Attribute name Description
rarity A textual description of the card's rarity in that set. This information can be useful to sort or filter cards in the deck editor. Common values are rare, uncommon, common.
uuid A universally unique identifier of this card in this set that must be unique for every single card. This can be used to reference the card on external resources, eg. to load a card picture from a website.
num The card's collector number in the set. This can be used to reference the card on external resources, eg. to load a card picture from a website.
muid The card's multiverse id. This is a special code assigned to each card in a specific game (MtG).
picurl The complete URL (including the protocol prefix, eg. http://) to a picture of this card. This url will be used to download the card picture.

Note: if you change a picurl later Cockatrice will not detect such a change and it will not refresh the previously downloaded image, all users need to remove the stored images whenever a picurl is edited or the image is updated, the simplest way to do so is using the button at Settings>Card Sources>Delete Downloaded Images.

  • If the card can create or transform itself into another card (eg. create a token or flip), you can add one or more related tags, adding the related card name inside the tag.

  • Instead, if the card can be created by another card (eg. this card is a token that can be created by another card), you can add one or more reverse-related tags, adding the reverse-related card name inside the tag.

  • There's no need to create both relationships between 2 cards. You just need to add the related tag to the original card (eg. a Sorcery that spawn tokens) or the reverse-related tag to the token card, but not both.

  • Card relations can accept these optional attributes:

Attribute name Description
count The number of cards that will be created; eg. for a card that creates three equal tokens, set it to 3 )
attach If the created card must be attached to the original card, set it to attach
exclude If you want the "Create all related cards" action to exclude this card from being created, set it to exclude
persistent If the created card should not be deleted when it leaves play, set it to persistent
  • All the generic card properties are nested inside the prop tag. Each property is represented by a new tag that must be added inside the prop tag and contain a value. These are the properties that are normally used:
Property name Description
layout The card layout, eg. normal, split, transform
side For normal cards this property defaults to front. Set it to back to specify that this card is the back side of another card.
type The full type of the card, eg. Legendary Creature — Spirit Cleric
maintype The main type of the card, eg. Creature
manacost Card mana cost, eg. 1WU
cmc Card converted mana cost, eg. 3
colors card colors, eg. UW. If your card is colorless, then you may safely omit this tag.
coloridentity Card color identity, eg. WU. If your card is colorless, then you may safely omit this tag.
pt Card's power/toughness. If the card doesn't have a p/t, you may safely omit this tag.
loyalty Card's starting loyalty total. If the card doesn't have a starting loyalty, you may safely omit this tag.
format-* Specify that the card is legal of that game format, where is the game format, eg. standard, modern. The property value must be legal. You can add one or more format- tags for each format
  1. Once you've saved this database and are ready for it to be used by the client, restart Cockatrice.
  • Please note that you may only have up to 25 additional databases and they are loaded in numerical/alphabetical order. (If there's a card in database 01.custom.xml and you have the same card name in 02.custom.xml, then it will load the card from the 01 database and ignore the 02 databases' version of the card.)

Custom cards for old v3 format.

  • Cockatrice version before 2.7 only supported the "version 3" card database format.
  • This section describes the how to create a card database using the old format.
  1. Create a new card database file and start with the following information:
<cockatrice_carddatabase version="3">
  <cards>
  ...
  </cards>
</cockatrice_carddatabase>
  1. To add your custom cards, replace the ... with as many card tags as necessary, found below.
<card>
    <name></name>
    <set picURL=""></set>
    <related></related>
    <color></color>
    <manacost></manacost>
    <cmc></cmc>
    <type></type> 
    <pt></pt>
    <loyalty></loyalty>
    <tablerow></tablerow>
    <text></text>
    <token></token>
    <cipt></cipt>
</card>

The following information will give you assistance in filling in the card fields you see above:

  • Place the card's name in between the name tags.

  • Place the image URL in the picURL parameter in the set tag. You may have multiple set tags per card.

  • Place the (usually) 3 letter set code in between the set tags.

  • If your card is a flip card, place the opposite card's name in between the related field. If not, then you may safely remove this tag.

  • Place the card's color (1 per tag) in between the color tag. If your card is colorless, then you may safely remove this tag. You may have multiple color tags per card.

  • Place the card's mana cost in between the manacost tags.

  • Place the card's converted mana cost in between the cmc tags.

  • Place the card's power/toughness in between the pt tags. If the card doesn't have a p/t, you may safely remove this tag.

  • Place the card's starting loyalty total in between the loyalty tags. If the card doesn't have a starting loyalty, you may safely remove this tag.

  • Place the corresponding number, as found below, in between the tablerow tags to allow the card to appear in the correct row in game:

    • 0 → lands
    • 1 → non-creature, non-land permanents (like Planeswalkers, Enchantments, and Artifacts)
    • 2 → creatures (this includes all cards that have the "creature" type like "Enchantment Creature")
    • 3 → non-permanent cards (like Instants and Sorceries)
  • Place the card's text in between the text tags.

  • If your card is a token (thus a card that can't be played in a deck and is created somehow by other card interactions), place a '1' in between the token tags. If not, then you may safely remove this tag.

  • If your card comes into play tapped, place a '1' in between the cipt tags. If not, then you may safely remove this tag.


To add custom sets follow these steps.

(e.g. for spoiled sets before they release, other games or your own developments)

A set is always a collection of one or more cards wrapped with the <cards> </cards> tag inside a .xml file. Information about the set are placed at the beginning of the file inside a <sets> </sets> tag

  1. Go to the Deck Editor. On the top tabs, go to Card Database → Open custom sets folder.

  2. Your computer should now open the customsets folder in a separate window.

  • The customsets folder will accept .xml files only.
  1. Restart Cockatrice to make the client recognize the new set(s) you placed into the customsets folder. You will get shown a message box that asks you if you want to enable the newly found sets. Just confirm and hit Yes. Your new set(s) will be enabled and displayed in your Deck Editor. If you need to adjust or disable a set go to Card Database → Edit sets....

Diagnosing problems in your xml file

  • The following procedure can execute a formal validation of a cards.xml card database file
  1. Get the path for the card database on your computer at: Settings → General → Path to card database.

  2. Grab the "cards.xsd" schema file from the "doc" subdirectory of your Cockatrice installation directory. An updated copy is also available here.

  3. You'll need xmllint:

  • Linux → it's available on the libxml2 package (libxml2-utils on ubuntu)
  • OSX → it's available in the developer tools
  • Windows → it's available in chocolatey: choco install xsltproc
  1. Run xmllint from a terminal (Command Prompt under Windows) with the following parameters, adjusting the paths as needed:
xmllint --schema ./path/to/cards.xsd ./path/to/cards.xml
  1. The command should print a nicely formatted version of the file and report any errors found.

Custom Card Databases by the Community

Here you can find card databases created by community members available for download.

The Cockatrice Project takes no responsibility for any cards, decks, or sets posted to the public wiki.

As long as they are designed correctly, Cockatrice lists them as a individual set in Edit sets... once you import them as Custom Set. Feel free to add your own set of cards/game to the list!

Games:


Additions to particular games:

  • Magic: The Gathering (CCG)
    • Pre-constructed decks (based on this, which was announced here)
      WebsiteDownload
    • Planesculptors holds a database of custom Magic sets made by their community
    • Expanded Kingdoms role cards for the EDH variant.
    • Kingdoms Role Creator This will automatically create the role tokens for a normal or expanded kingdoms game. Place this prog in the customsets folder of cockatrice, run it, and follow the simple on-screen instructions.
    • Custom Art Repository Folder of custom art for 600+ MTG cards compiled by user CallMeCJ_. They are named so they can be pasted directly into the Custom Art folder and they will work. Message him on Discord @ The Batsu-sama#3012 if you would like to contribute/request a piece.
    • Individual Secret Lair Drops has (nearly) every Secret Lair Drop as a separate .xml file to allow for prioritizing SLD art on a Drop by Drop basis and to make it easier to select art for cards with multiple SLD printings.

For problems and support with these games, sets, and/or decks, please contact their creators/maintainers. Also, check here to see how to add custom sets.

⚠️ **GitHub.com Fallback** ⚠️