Log in

Difference between revisions of "Introduction to Modding 2013"

(Notes on Tags)
(Your First Card: Changed MY_SUPERAWESOME_DECK to DECK_SUPERAWESOME because game only recognizes WADs that start with "DATA_DLC_" or "DECK_")
 
(One intermediate revision by one user not shown)
Line 22: Line 22:
  
 
==Your First Card==
 
==Your First Card==
Rename the <tt>\Deck_0001_ST_Unpacked</tt> folder to <tt>\MY_SUPERAWESOME_DECK</tt>, then open it up and click through past <tt>\DATA_ALL_PLATFORMS</tt> until you've found the "main" section of the folders, with <tt>\CARDS</tt> and <tt>\DECKS</tt>, etc. Open <tt>\CARDS</tt> and delete everything there. That's right, you don't need any of it right now. While you're at it, delete everything in <tt>\ART_ASSETS\ILLUSTRATIONS</tt>.
+
Rename the <tt>\Deck_0001_ST_Unpacked</tt> folder to <tt>\DECK_SUPERAWESOME</tt>, then open it up and click through past <tt>\DATA_ALL_PLATFORMS</tt> until you've found the "main" section of the folders, with <tt>\CARDS</tt> and <tt>\DECKS</tt>, etc. Open <tt>\CARDS</tt> and delete everything there. That's right, you don't need any of it right now. While you're at it, delete everything in <tt>\ART_ASSETS\ILLUSTRATIONS</tt>.
  
 
Now before we actually get started, I'd like to recommend that you download [http://notepadplusplus.org/ Notepad++]. Its a wonderful text editor and you will have a much better time with it than if you try to write these in Windows' default Notepad.
 
Now before we actually get started, I'd like to recommend that you download [http://notepadplusplus.org/ Notepad++]. Its a wonderful text editor and you will have a much better time with it than if you try to write these in Windows' default Notepad.
Line 58: Line 58:
 
Find that <tt>\DECKS</tt> folder we talked about earlier, and open up <tt>DECK_AJANI_GOLDMANE.XML</tt> with Notepad++. Here you will find everything that defines the loadout of the deck. Now to bend it to our needs.
 
Find that <tt>\DECKS</tt> folder we talked about earlier, and open up <tt>DECK_AJANI_GOLDMANE.XML</tt> with Notepad++. Here you will find everything that defines the loadout of the deck. Now to bend it to our needs.
  
In the very first line, find <tt>uid="1"</tt>. As you can see, Ajani's deck is using a <tt>uid</tt> of 1, so we can't use that for <tt>MY_SUPERAWESOME_DECK</tt>. Change it to something unique but reasonable, such as your birthday (mmddyy) or the next sequential uid after the in-game decks (86 is the highest used uid, counting the official deck packs).
+
In the very first line, find <tt>uid="1"</tt>. As you can see, Ajani's deck is using a <tt>uid</tt> of 1, so we can't use that for <tt>DECK_SUPERAWESOME</tt>. Change it to something unique but reasonable, such as your birthday (mmddyy) or the next sequential uid after the in-game decks (86 is the highest used uid, counting the official deck packs).
  
You will also need to change <tt>DECK_AJANI_GOLDMANE_LAND_POOL.XML</tt> to <tt>MY_SUPERAWESOME_DECK_LAND_POOL.XML</tt> and give it a unique uid as well, but other than those two changes you don't need to modify this file any further.
+
You will also need to change <tt>DECK_AJANI_GOLDMANE_LAND_POOL.XML</tt> to <tt>DECK_SUPERAWESOME_LAND_POOL.XML</tt> and give it a unique uid as well, but other than those two changes you don't need to modify this file any further.
  
 
''<nowiki>[Note: The uid you give to the Land Pool must be different from the deck and must be unique or you will get errors after playing the deck.]</nowiki>''
 
''<nowiki>[Note: The uid you give to the Land Pool must be different from the deck and must be unique or you will get errors after playing the deck.]</nowiki>''
Line 66: Line 66:
 
Next you have a list of cards in the deck. Change all of the <tt>name</tt> fields to <tt>FLYING_MAGIC_BEAR_12345</tt>, and voila! you've edited a deck. We're going to ignore the only-four-of-a-card-in-a-deck rule for a bit.
 
Next you have a list of cards in the deck. Change all of the <tt>name</tt> fields to <tt>FLYING_MAGIC_BEAR_12345</tt>, and voila! you've edited a deck. We're going to ignore the only-four-of-a-card-in-a-deck rule for a bit.
  
From here all you have to do is get back to the <tt>\magic 2013</tt> folder, drag <tt>\MY_SUPERAWESOME_DECK</tt> onto <tt>Gibbed.Tools.Pack.exe</tt> and you'll have a lovely new <tt>.wad</tt> file. Launch <tt>DotP_2013.exe</tt> and see if it works.
+
From here all you have to do is get back to the <tt>\magic 2013</tt> folder, drag <tt>\DECK_SUPERAWESOME</tt> onto <tt>Gibbed.Tools.Pack.exe</tt> and you'll have a lovely new <tt>.wad</tt> file. Launch <tt>DotP_2013.exe</tt> and see if it works.
  
''<nowiki>[Note: This deck will be using Ajani's art, deck box, and deck name, so the first time you find it may take some guesswork.]</nowiki>''
+
''[Note: This deck will be using Ajani's art, and deck box, so the first time you find it may take some guesswork. The deck name will be "<tt>[DECK_SUPERAWESOME]</tt>" because we did not create the <tt>TEXT_PERMANENT</tt> strings for it.]''
  
 
===Notes on Tags===
 
===Notes on Tags===

Latest revision as of 18:22, 7 March 2013

Contents

[edit] Prelude

This guide aims to teach you how to mod custom cards and decks into Duels of the Planeswalkers 2013 in a local, simple, and easy-to-follow manner. The following will hopefully get you on your feet and into the world of card-coding.

[edit] Getting Ready to Modify

Before you start, you'll need some tools to work with, and to tweak Duels of the Planeswalkers to allow your custom content to be run. All of the necessary files can be found here.

Download the tools and extract them into a folder. I created a folder on my Desktop to put them in.

Depending on your version you may need to do some work so that your game can accept custom content. If you are running Theta 1.0r36 or Theta 1.0dc120919 then you can move on to the next step now.

If you are running the Steam or Skidrow versions or the very first Theta version then you will need to download the patcher DLL and put it in the game directory where DotP_2013.exe is. This could be C:\Program Files\Wizards of the Coast\Duels of the Planeswalkers, or C:\Program Files\Steam\steamapps\common\magic 2013.

[edit] Using the Tools

The two tools you'll be using the most are Gibbed.Tools.Pack.exe and Gibbed.Tools.Unpack.exe.

Open up two windows; your tools folder in one, and your game folder in the other.

Drag-and-drop Deck_0001_ST.wad onto the Unpack tool. You should see a console window open and flash some text at you, and when its done you will have a folder named \Deck_0001_ST_Unpacked, which contains all of the content contained in that particular deck, (Ajani's deck, in this case).

Packing a folder works exactly in reverse, but we'll get to that soon.

[edit] Your First Card

Rename the \Deck_0001_ST_Unpacked folder to \DECK_SUPERAWESOME, then open it up and click through past \DATA_ALL_PLATFORMS until you've found the "main" section of the folders, with \CARDS and \DECKS, etc. Open \CARDS and delete everything there. That's right, you don't need any of it right now. While you're at it, delete everything in \ART_ASSETS\ILLUSTRATIONS.

Now before we actually get started, I'd like to recommend that you download Notepad++. Its a wonderful text editor and you will have a much better time with it than if you try to write these in Windows' default Notepad.

Back to the task at hand, make another folder for you to keep all of your custom cards in a centralized place. I have a \Custom Cards folder in my tools folder. This isn't necessary, but makes organization a lot simpler. This is where you will save the cards you write. Open Notepad++ or your favorite text editor and we'll get started.

[edit] A Simple Example

The following is not an existing Magic card, but it will show the basic structure of a card file. Most of the tags are self-explanatory, but the details will get filled in later.

FLYING_MAGIC_BEAR_12345.xml

<?xml version='1.0'?>
<CARD_V2>
  <FILENAME text="FLYING_MAGIC_BEAR_12345" />
  <CARDNAME text="FLYING_MAGIC_BEAR" />
  <TITLE>                              
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying Magic Bear]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="12345" />         
  <ARTID value="A12345" />              
  <ARTIST name="Joe Cool" />
  <CASTING_COST cost="{G}" />          
  <TYPE metaname="Creature" />           
  <SUB_TYPE metaname="Bear" />
  <EXPANSION value="DPG" />             
  <RARITY metaname="M" />               
  <POWER value="1" />                    
  <TOUGHNESS value="1" />
</CARD_V2>

Once again, I want to assert that this is not an existing Magic card. This is what a barebones creature file looks like. Look it over a few times, sleep on it, then look over it again. Save this file into your centralized cache, then copy it into the \CARDS folder.

[edit] Deckbuilding 101

Find that \DECKS folder we talked about earlier, and open up DECK_AJANI_GOLDMANE.XML with Notepad++. Here you will find everything that defines the loadout of the deck. Now to bend it to our needs.

In the very first line, find uid="1". As you can see, Ajani's deck is using a uid of 1, so we can't use that for DECK_SUPERAWESOME. Change it to something unique but reasonable, such as your birthday (mmddyy) or the next sequential uid after the in-game decks (86 is the highest used uid, counting the official deck packs).

You will also need to change DECK_AJANI_GOLDMANE_LAND_POOL.XML to DECK_SUPERAWESOME_LAND_POOL.XML and give it a unique uid as well, but other than those two changes you don't need to modify this file any further.

[Note: The uid you give to the Land Pool must be different from the deck and must be unique or you will get errors after playing the deck.]

Next you have a list of cards in the deck. Change all of the name fields to FLYING_MAGIC_BEAR_12345, and voila! you've edited a deck. We're going to ignore the only-four-of-a-card-in-a-deck rule for a bit.

From here all you have to do is get back to the \magic 2013 folder, drag \DECK_SUPERAWESOME onto Gibbed.Tools.Pack.exe and you'll have a lovely new .wad file. Launch DotP_2013.exe and see if it works.

[Note: This deck will be using Ajani's art, and deck box, so the first time you find it may take some guesswork. The deck name will be "[DECK_SUPERAWESOME]" because we did not create the TEXT_PERMANENT strings for it.]

[edit] Notes on Tags

At this point, you're able to experiment a bit with our flying bear, or create your own other simple creatures, so let's fill in the details on the not-quite-explanatory tags.

<FILENAME> — This is what your file is saved as, and consists of the card's English name followed by its multiverse id. The card's English name is adjusted to fit certain rules to ensure the game can read it properly.

  • Special Characters are replaced with similar English characters: Æther Storm 184722 -> AEther Storm 184722
  • Punctuation is removed: Ajani's Mantra 249398 -> Ajanis Mantra 249398
  • Spaces are replaced with underscores: Ajanis Mantra 249398 -> Ajanis_Mantra_249398
  • Characters converted to UPPERCASE (optional): Ajanis_Mantra_249398 -> AJANIS_MANTRA_249398

<CARDNAME> - This is the name the game will recognize the card as and is generally just the English name of the card adjusted by the same rules as <FILENAME> above without the multiverse id.

<LOCALISED_TEXT> — Displays most of the text in-game. If you take a look at the official cards, you'll see that they have multiple LOCALISED_TEXT tags in each section for each language, but we're just going to work in English. Between the tags you'll see CDATA, this just tells the game that there's text here. Your text goes between the brackets.

<MULTIVERSEID> — Generally pulled from Gatherer, the multiverse id can be found in the url of a card's page, ie. http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=262876

<ARTID> — The community generally uses 'A'+multiverseid as the art id, and this number references the file used for the card's art. Naturally, more on this later.

<CASTING_COST> — This defines how much the card costs to play. Each cost is put inside {}'s; {B} for black, {U} for blue, {G} for green, {R} for red, {W} for white, {number} for an amount of colorless mana, or {X} for variable costs. Costs that can be paid with either of two colors can also be used, such as {G/W}. Phyrexian mana is defined as {R/P} or {G/P}. {3}{W}{R} for 3 colorless, a plains, and a mountain. Other mana costs like {2/W} are recognized by the engine as valid costs and work as expected (2 colourless or 1 white), but will NOT display the mana cost icon.

<TYPE> — Decides the card type: Instant, Sorcery, Enchantment, Creature, Artifact.

<SUB_TYPE> — This is usually for creature types, but is also used for equipment, auras, and curses.

<RARITY> — Just the first letter of the rarity, Common, Uncommon, Rare, Mythic rare, Land (for basic lands) or Token (for tokens).