DotP 2014: Frequent Modding Mistakes
When you coded one or more cards but they don't work, it's very likely that your mistake is one of the following. This list will hopefully help the new modders auto-debugging their productions.
The card(s) cannot be seen in the Deck Editor and/or the game crashes before starting a duel
- Did you save the XML files with UTF-8 encoding? If you used ANSI encoding, you corrupted the special characters (japanese, russian, etc.) and the game can't read them properly. There's no undo for that: you need to rewrite the file from scratch and save it with the proper encoding.
- Did you produce XML files with correct structure? The structure of an XML file must follow specific rules. If you use Firefox browser, you can drop your XML file onto it: errors in the XML structure will be reported, or you'll see the whole XML file if no errors have been found. This is not the place to learn XML, anyway the most important rules can be condensed into this:
<BLOCK_THAT_CONTAINS_SOMETHING> <ANOTHER_BLOCK_THAT_CONTAINS_SOMETHING tag_name="tag_value"> <![CDATA[Here you can write special characters]]> </ANOTHER_BLOCK_THAT_CONTAINS_SOMETHING> </BLOCK_THAT_CONTAINS_SOMETHING> <BLOCK_THAT_DOESNT_CONTAIN_ANYTHING />
- Did you keep Multiverse ID, FILENAME value inside the XML files, and actual XML file names uniform? Maybe you added your prefix to a Multiverse ID but forgot to do it in all 3 places.
The card(s) can be seen in the Deck Editor, but the game crashes at some point during a duel
- Are your cards compatible with other mods you installed? Make a test with only your mod in the game folder: if it works, then there's a conflict with another mod. Try to find which one by putting back one mod at a time in the game folder, and when you find the culprit, talk with the other mod's author and see if you can find a solution together.
- If one of your cards produces tokens, did you include the TOKEN_REGISTRATION block? Each kind of token produced by a card needs its own TOKEN_REGISTRATION. Look at other cards if you need examples, for example Bestial Menace.
- If one of your cards produces tokens, did you specify the correct token name? Maybe you updated a card from a previous DotP game and forgot to change the token name with the new one.
- Does your card produce tokens that produce tokens? Then maybe you forgot to include the TOKEN_REGISTRATION block(s) for the token(s) produced by the produced token. Example: Awakening Zone can produce Eldrazi Spawn tokens which in turn can produce colourless mana tokens, thus Awakening Zone needs two TOKEN_REGISTRATION blocks one for Eldrazi Spawn tokens and one for colourless mana tokens. The game does not recognize TOKEN_REGISTRATION blocks on tokens.
- If one of your cards produces tokens, did you put an underscore in the ARTID of the token? An underscore, "_", in the ARTID will cause the game to crash out, changing the ARTID and the associated image to not include underscores seems to remove this crash.
The card(s) can be seen in-game, but do not work
- Did the card come directly from a card generator? Card generators can only fully generate very simple cards and cannot handle complex abilities. Cards with abilities that can't be auto-generated must be coded manually before they wil work in game.
- Is the ability a triggered ability? Triggered abilities require the TRIGGER tag, maybe you were copying part of the ability from another card and simply forgot the trigger.
Card uses counters, but the counters don't show up on the card
- Did you include the COUNTER_REGISTRATION tag in the abilities that deal with those counters? If you forget the COUNTER_REGISTRATION tag then the card will still correctly generate the counters, but they will not be visible unless they are one of the built-in types (+1/+1, -1/-1, etc...).
Deck appears fine using the in-game deck manager, but crashes at some point in a match
- Did you include basic land of all colours used by the deck? Sometimes we get in a hurry and just copy a land pool from another deck and the land pool copied does not have at least one land for each of the colours of the deck.