Talcos: Something I noted was that you posted a red card that had, in effect, Lightning Helix on it. I was wondering... what happens to a network trained solely on monocolor cards, which is then given priming for a multicolor card? I am quite interested in knowing whether it creates a menu-based card (like Lightning Helix) or something more blended.
Good question! You've brought up several good points. Actually, I think I know the answer already. A 3UW creature will be treated as blue and a 3WU will be treated as white. That's exactly what's happening with our multicolored cards already (that's a problem that I'm working on).
The majority of cards in Magic are monocolored. When we're training the network, to be able to predict the body text of a card, the network has to know the color of that card. The network wants the cheapest, least mentally taxing rule for determining color. The network is extremely lazy that way.
If the network scans left, gets past the colorless mana, and hits a U, the network will decide that the card is blue, because it's going to be right 90.3% of the time. Then it sees the other mana symbols and says "The card is blue... and some noise. Maybe throw in some non-blue stuff, I don't know."
If there were more multicolored cards, then the network would have to learn to pay attention to the nuances. For example, what makes 1WWU (Supreme Verdict) different from WUU (Absorb)? You and I know that it's because the principal effect of the card is more strongly one color than another and the minor color brings in the auxiliary effects. However, because there aren't many multicolored cards, this isn't a general rule that the network is going to pick up on.
This is, however, a problem that we need to solve, precisely because of the Lightning Helix issue that you brought up. Because the network mentally catalogued Lightning Helix as red (or at least red dominant, as its categories can be fuzzy), it saw no issue with making a monored card with both damage and life gain.
Ultimately, it all comes down to training, as I've discussed before. One way of expanding the card pool without altering the distributions is to present it with the same multicolored cards multiple times (not all at once, but over the course of an epoch), with the mana costs shuffled around. If it tries to predict that Lightning Helix is red, it will be wrong when it tries to predict it as white, and vice versa. This, I hypothesize, could encourage the network to read all of the colored mana symbols, and not just the first one.
Your solution might also work, but I'm afraid that, even if it's successful, the NN won't identify Lightning Helix as red/white, it'll identify it as purple, and will be hesitant to make purple cards that incorporate exclusively white or exclusively red effects. That being said, I'm open to alternatives and I'm willing to try whatever you'd like.
EDIT: I will need to test what I just said because it may be it treats the last colored mana symbol as the most relevant rather than the first, but my claim is still valid either way.
EDIT(2): For those of you who would be interested to know it, I'll be taking a look at how to do those visualizations today. I'll let you know once I have something worth sharing.
EDIT(3): Aha, I see how they did it. I can dump all the activations of every cell at every time step when I prime the network. All I have to do is take those numbers, map them to colors, and overlay them on the text. Fun. Now comes the tricky part... doing that.
EDIT(4): Two hours later and I think I might have something. A little more work is needed though.
Talcos: Something I noted was that you posted a red card that had, in effect, Lightning Helix on it. I was wondering... what happens to a network trained solely on monocolor cards, which is then given priming for a multicolor card? I am quite interested in knowing whether it creates a menu-based card (like Lightning Helix) or something more blended.
Good question! You've brought up several good points. Actually, I think I know the answer already. A 3UW creature will be treated as blue and a 3WU will be treated as white. That's exactly what's happening with our multicolored cards already (that's a problem that I'm working on).
The majority of cards in Magic are monocolored. When we're training the network, to be able to predict the body text of a card, the network has to know the color of that card. The network wants the cheapest, least mentally taxing rule for determining color. The network is extremely lazy that way.
If the network scans left, gets past the colorless mana, and hits a U, the network will decide that the card is blue, because it's going to be right 90.3% of the time. Then it sees the other mana symbols and says "The card is blue... and some noise. Maybe throw in some non-blue stuff, I don't know."
If there were more multicolored cards, then the network would have to learn to pay attention to the nuances. For example, what makes 1WWU (Supreme Verdict) different from WUU (Absorb)? You and I know that it's because the principal effect of the card is more strongly one color than another and the minor color brings in the auxiliary effects. However, because there aren't many multicolored cards, this isn't a general rule that the network is going to pick up on.
This is, however, a problem that we need to solve, precisely because of the Lightning Helix issue that you brought up. Because the network mentally catalogued Lightning Helix as red (or at least red dominant, as its categories can be fuzzy), it saw no issue with making a monored card with both damage and life gain.
Ultimately, it all comes down to training, as I've discussed before. One way of expanding the card pool without altering the distributions is to present it with the same multicolored cards multiple times (not all at once, but over the course of an epoch), with the mana costs shuffled around. If it tries to predict that Lightning Helix is red, it will be wrong when it tries to predict it as white, and vice versa. This, I hypothesize, could encourage the network to read all of the colored mana symbols, and not just the first one.
Your solution might also work, but I'm afraid that, even if it's successful, the NN won't identify Lightning Helix as red/white, it'll identify it as purple, and will be hesitant to make purple cards that incorporate exclusively white or exclusively red effects. That being said, I'm open to alternatives and I'm willing to try whatever you'd like.
EDIT: I will need to test what I just said because it may be it treats the last colored mana symbol as the most relevant rather than the first, but my claim is still valid either way.
EDIT(2): For those of you who would be interested to know it, I'll be taking a look at how to do those visualizations today. I'll let you know once I have something worth sharing.
EDIT(3): Aha, I see how they did it. I can dump all the activations of every cell at every time step when I prime the network. All I have to do is take those numbers, map them to colors, and overlay them on the text. Fun. Now comes the tricky part... doing that.
EDIT(4): Two hours later and I think I might have something. A little more work is needed though.
What about siloing abilities based on mana cost? Like with the Lightning Helix example, the mana cost is WR so maybe in the text you put "R - @ deals 3 damage to target creature or player." and "W - you gain 3 life."
Similarly, Supreme Verdict would have "U - @ can't be uncasted." and "WW - destroy all creatures." Absorb would have "UU -uncast target spell" and "W - you gain 3 life."
This would, if properly formatted so the network understands that it has to account for all the colored mana in a card's cost, help it to "get" the color pie as well as proper cost for individual abilities.
What about siloing abilities based on mana cost? Like with the Lightning Helix example, the mana cost is WR so maybe in the text you put "R - @ deals 3 damage to target creature or player." and "W - you gain 3 life."
Similarly, Supreme Verdict would have "U - @ can't be uncasted." and "WW - destroy all creatures." Absorb would have "UU -uncast target spell" and "W - you gain 3 life."
This would, if properly formatted so the network understands that it has to account for all the colored mana in a card's cost, help it to "get" the color pie as well as proper cost for individual abilities.
That's definitely a possibility, I agree.
----------
Okay, so I have made some progress! Things are looking good! I used one of hardcast_sixdrop's recent checkpoints. The network has three layers with 512 network units per layer. I fed it Kemba, Kha Regent and recorded the activations of every cell in the network at each time step (i.e. the activations at "k", then "e", then "m", etc.). The input text looked like this:
"|kemba, kha regent|legendary|creature||cat cleric|&^^/&^^^^|{^WWWW}|at the beginning of your upkeep, put a &^^/&^^ white cat creature token onto the battlefield for each equipment attached to @.|"
I went hunting for cells that cared about the body text. Specifically, I used a Python script to take the lists of activations of each cell over time and isolated those cells whose activations had a high correlation coefficient with a step function that goes from 0 to 1 at the index where the body text begins. I recorded the best 15 candidates. I found several cells whose activations indicate that they serve as "regulator" cells, cells responsible for keeping the network on track.
Take for example Cell #843, that is, the 334th cell in the second layer of the network This cell outputs negative values when looking at characters outside the card body and positive values inside the body. When it is inside the body, its outputs tend towards zero when we reach the end of a word or the end of a sentence, and then settles at/around zero when we reach the end of the body text. So, in short, it reports "Are we inside a word in the body text?".
Another is Cell #772, that outputs zeroes whenever we are inside of a dependent clause (i.e. "At the beginning of your upkeep, put a &^^/&^^ white cat creature token onto the battlefield for each equipment attached to @.").
Some combination of cells like these are responsible for determining whether we have concluded the text of an ability in a card. If we're at the end of a word and at the end of a chunk of ability text, and the card has gone on long enough, that would be a safe point to stop.
I'm sure if I kept looking I could find one or more cells on the third layer that make the call to output a "|" and terminate the body based on the activations of these earlier cells. They have to be in there somewhere.
Anyway, this is definitely a good start towards deciphering what's going on inside the network as we're running it, so that's exciting.
EDIT: If you're moving your mouse over the graph and you see a "C", that's because I had to replace the commas with "C"s to fit everything in comma-separated value format.
This is, however, a problem that we need to solve, precisely because of the Lightning Helix issue that you brought up. Because the network mentally catalogued Lightning Helix as red (or at least red dominant, as its categories can be fuzzy), it saw no issue with making a monored card with both damage and life gain.
Ultimately, it all comes down to training, as I've discussed before. One way of expanding the card pool without altering the distributions is to present it with the same multicolored cards multiple times (not all at once, but over the course of an epoch), with the mana costs shuffled around. If it tries to predict that Lightning Helix is red, it will be wrong when it tries to predict it as white, and vice versa. This, I hypothesize, could encourage the network to read all of the colored mana symbols, and not just the first one.
Another way to improve the quality of training may be to scramble the mana costs of monocolored cards. [111RR could be presented as R1R11, 1R11R, or any such permutation.] This would entirely take away the network's crutch of looking at the first (or final) colored mana symbol. By promoting more careful reading of *all* mana symbols, it may help generate more accurate effects for multicolored cards, and even monocolored cards with heavy color weights.
Okay, so I have made some progress! Things are looking good! I used one of hardcast_sixdrop's recent checkpoints. The network has three layers with 512 network units per layer. I fed it Kemba, Kha Regent and recorded the activations of every cell in the network at each time step (i.e. the activations at "k", then "e", then "m", etc.).
I just wanted to say that this is awesome! Can't wait to see more neurons, especially the ones that read the natural number format.
I have not looked at the neuron extraction code yet. I'm planning to spend the afternoon cleaning up my data analysis scrips and hopefully (finally) making some nice Weka datasets out of the big 10MB dumps so we can see where we are statistically.
Has you padding experiment yielded any interesting results? Another possible thing for me to do is to look at the lua code some more and see if I can figure out where it's doing the chopping based on seq_length, and how hard it would be to change that to look for a certain character instead.
Just so you know, I wrote my own code inspired by that code (I couldn't quite get theirs to work).
And I halted the padding experiment yesterday. It's possible that the results are cleaner on average, and in any case, it's definitely something we should be doing, but it didn't solve the sequence length problem (but now we know how to fix that). I also need to go back and modify the training code so it doesn't actually train on the padding (as that's a waste of time and resources, because you end up with neurons whose sole purpose in life is to count the number of spaces to ensure that there is always enough padding). Next time the training will go much faster because I won't have to waste that time.
By the way, I observed something interesting. Here's a heatmap of the activations. I think I didn't save the third layer (whoops!), I'll have to go back and get that, which is why there are only 1024 cells in this graph).
But here's the interesting thing, notice how you can see a huge difference between layer one, the layer closest to the input, and layer 2. The first layer is very light colored, indicating that it doesn't strongly activate on anything. And the second layer is lighting up all the time. I think what's happening is that the first layer is taking in the raw data and probably echoing it on a regular basis.
"Oh, don't forget this is a creature!"
"She's legendary as well. And a Kha, whatever that means!"
"And white! A white Cat Cleric!"
Et cetera. The second layer, as you saw from the activation patterns I posted, is probably doing computation on the information in the abstract. It doesn't see "c r e a t u r e", it sees a signal indicating "this is a creature". Then in the third layer it all comes back together to do the prediction, which at the output layer is a 61(?) length vector, one for each potential character, with numbers indicating which character is most likely to happen next.
It's interesting that there are very few activations around the mana cost. Note the light colored gap around timesteps 50 to 69. Only a very small number of nodes actually worry about it. I think that's because if all it does is read the first colored mana symbol and count the total number of mana symbols for CMC, it doesn't need a lot of brain power, and it only dedicates a small number of cells to the task. The supertypes, types, and subtypes, meanwhile, get plenty of activity, if only because they are key determinants of the body text.
The majority of cells are concerned with the body text. There are some interesting trends there.
* There's a sudden drop off in activity around timestep 100, at the comma of "at the beginning of your upkeep,". I think that's because the network knows that it has the timing restriction and now anything could follow so it waits for additional information to pour in.
*Another striation appears right after "put a &^^/&^^ white cat creature token", because I think the following "onto the battlefield" is so predictable, there's not a lot of thinking going on about it.
*And then a third striation appears in the clause "for each equipment attached" and it pauses because like at timestep 100 it doesn't know who the equipment has to be attached to.
So really, at the second layer, it's reading the body text like
A t beg o y upk
P a &^^/&^^ W cat
f e equip att-ed
to @
And it pays less attention to the pieces that are missing from that because it assumes it already knows what they are (like how you and I read though documents very quickly, we skip over the irrelevant bits). That's my hypothesis, anyway.
I'm planning to spend the afternoon cleaning up my data analysis scrips and hopefully (finally) making some nice Weka datasets out of the big 10MB dumps so we can see where we are statistically.
I would so love to see that.
EDIT: Sorry if the heatmap is hard to read. I don't have much experience with rendering this much data, lol.
I like Sendai's suggestion quite a lot. Removing a systematic syntax removes the bias associated with that syntax. I do believe, though, that this implies that the NN would need more time to learn how to use mana costs at all, as it has to learn that 11R, 1R1, and R11 are all equivalent in addition to everything else.
I'm really looking forward to resolving this whole multicolored issue (I might start some experiments tonight with that in mind). Also the planeswalker issue. Specifically because the network can come up with some very unusual and interesting planeswalkers if I prime it with its own output, and I'd love for it to be able to come up with them without my prodding. Like these, for example:
False Sage 3U
Planeswalker - Phanta
+2: Draw X cards, where X is the number of creature cards in your graveyard.
-3: Put up to four target creature cards from your graveyard on the bottom of your library.
-6: you get an emblem with "at the beginning of your upkeep, target opponent sacrifices a creature."
#It's not balanced at all, and probably should have some black in the cost, but I like the consistent focus on creature cards. Oh, and a properly used "X".
Javida Napules 3RR
Planeswalker - North
+1: Javida Napules becomes a copy of target creature until end of turn.
-X: Put X +1/+1 counters on Javida Napules.
-4: You get an emblem with "Whenever Javida Napules attacks,put a 6/6 colorless Chantent warrior creature token with flying onto the battlefield."
3
#This is.. a very unusual card, mechanically speaking.
EDIT: I just realized that emblem doesn't work as written. Javida would take on the name of the creature she copies, and the emblem would never trigger when she attacked. But I like the idea all the same, lol.
Javida Napules 3RR
Planeswalker - North
+1: Javida Napules becomes a copy of target creature until end of turn.
-X: Put X +1/+1 counters on Javida Napules.
-4: You get an emblem with "Whenever Javida Napules attacks,put a 6/6 colorless Chantent warrior creature token with flying onto the battlefield."
3
#This is.. a very unusual card, mechanically speaking.
That's a beautifully designed planeswalker, to be honest. It's particularly interesting in that using the ultimate is useless if doing so uses up the planeswalker, and also in that the second ability is usually not useful, but sometimes VERY useful. (And actually, now that I think about it further, it seems that a -2 activation would not uncommonly make sense on the turn you play it...)
That's an incredibly interesting planeswalker, and it's hard to believe that the network came up with it. It's not the sort of thing WotC would ever print (two counter types), but all of its abilities actually work together. And the emblem does work, I think, because when a card uses its own name it means "this object", and the emblem doesn't say "whenever a creature named Javida Napules attacks"; compare the rules text of Shuriken, where it gives another object an ability with a reference to the Shuriken granting the ability. The emblem means "whenever {the object that created this ability} attacks, ...".
That's an incredibly interesting planeswalker, and it's hard to believe that the network came up with it.
To be fair, an awful lot of the time, it generates planeswalkers with abilities that might as well say "+0: You may rearrange the cards in your hand.". It could use a lot of work.
For that reason, I'm about to start an experiment to generate a feeder network for planeswalkers. Something to generate inputs to help train the big network.
It's not the sort of thing WotC would ever print (two counter types), but all of its abilities actually work together. And the emblem does work, I think, because when a card uses its own name it means "this object", and the emblem doesn't say "whenever a creature named Javida Napules attacks"; compare the rules text of Shuriken, where it gives another object an ability with a reference to the Shuriken granting the ability. The emblem means "whenever {the object that created this ability} attacks, ...".
Oh? I suppose you're right. I just wasn't sure if the change in name would affect anything. Well, even if it did, we could reword the first ability to say "except her name is still Javida Napules".
Have you taught the network to recognize distinctions between what sets, and also distinctions of what blocks, cards are from?
It might be relevant since sets and blocks often share mechanics, and the network might learn to check all the versions of a mechanic within a set to better distinguish a mechanic, and not confuse it as often with mechanics from other sets.
It might even be useful to teach the network about color, since it may learn that only certain sets like to break the color pie or use lots of multi-color cards.
I'm not sure what it might learn, but it might be useful for it to notice that some cards are repeated through multiple sets. Perhaps it would just come to think it can make copies of that card and treat it as new output?
Another thing I thought of was maybe it would be a good idea to try to teach the network about mechanics somewhat separately from names, by feeding it cards with the names stripped out of the top-line just for being noted to be a unique (or not unique for reprinted cards that are mechanically identical), and sub-types similarly isolated out, and any time subtypes or the creature's name (or other creatures' names) is referenced in the card text, the reference is linked directly, so the network doesn't have to distinguish those aspects on it's own, to teach it about the mechanics of cards, rather than spend learning cycles on name generation of often nonsensical names from the actual card game itself, and let it focus on the mechanics and color pie and card types and such?
Also, linking cards by set, eventually you might be able to tell the card to create a set?
Also, does the network recognize card rarity, and that such sometimes changes between sets, and that complexity in more recent sets is related to rarity? Could you then tell it to produce a set 'older' than the oldest sets, and have it make an exaggerated style of cards similar to the earliest cards of the game, and then tell it to create a 'newer' set, made more like how cards are now produced, and it would even include appropriate numbers of reprinted cards potentially rarity shifted in the set?
It doesn't recognize rarity, sets, blocks, that sort of thing. Not yet anyway. I've considered incorporating rarity at some point down the road. And yes, names are somewhat superfluous and mostly exist for the benefit of me not having to come up with names or say "look at card #1989323!" or what have you. The amount of computational power devoted to figuring out names is actually relatively small, from what I've seen. For the most part, it just says "throw some nouns together". I'm willing to make a small sacrifice for the pleasure of seeing names like "Righteous Tea Dragon". If anything, I can always make the network slightly larger to compensate. But you do make a good point.
I honestly think that set level thematic connections are far beyond our capabilities at this point, because we're training the network to think about cards individually, in a vacuum. Set design requires long-term planning, and long-term planning is still an open problem in the machine learning community. However, the plan is to use scripts to drive the network to create sets. For instance, I fire up the network and prime it with a fictitious ability word "milk -" and it comes up with..
"Milk - if you would draw a card and you have no cards in hand,"
It just invented that on the spot. Now let's see what it does with it. Put it on a creature and I get..
"Milk - if you would draw a card and you have no cards in hand, THIS gets +2/+2 and gains flying until end of turn"
And I ask it to make an artifact/enchantment with Milk and I get
"Milk - if you would draw a card and you have no cards in hand, lose 2 life and draw an additional card."
"Milk - if you would draw a card and you have no cards in hand, you may put a 1/1 white Construct artifact creature token with first strike onto the battlefield."
In this way, I can populate custom-made sets with entirely machine-invented mechanics. That I think is the best way forward towards creating coherent sets.
EDIT: For those of you who would be interested to know, the planewalker generation script is looking very good. The names are... interesting (e.g. "Alcesimarchus, Skinny Prophet" and "Volusena the Magnificent High Senator"), but then again, that's not overly important. The important thing is that the abilities match the colors and the loyalty costs are scaled according to the costs of the spells that I stole the abilities from. Right now I'm just conjuring up monocolored planeswalkers. Anyway, I'll see about generating a corpus of them and training a feeder network, though I probably won't start training until tomorrow afternoon or evening.
Righteous Tea Dragon 1B
Legendary Enchantment - Aura
Enchant player
At the beginning of enchanted player's upkeep, if that player has three or fewer cards in hand, Righteous Tea Dragon deals 1 damage to that player.
#I'm sharing this card in part because I love the name "Righteous Tea Dragon". Originally it was going to be a creature, I believe, but I forced it to be a legendary aura.
Artwork for card:
Private Mod Note
():
Rollback Post to RevisionRollBack
Why did I ever think a signature in comic sans was a good idea?
Phanta, False Sage 3UB
Planeswalker - Phanta
+1: Each player puts the top three cards of his or her library into his or her graveyard.
-5: Draw X cards, then discard X cards, where X is the number of creature cards in all graveyards.
-7: You get an emblem with "at the beginning of your upkeep, target opponent sacrifices a creature."
3
Probably unbalanced as hell, but I like the concept.
Phanta, False Sage 3UB
Planeswalker - Phanta
+1: Each player puts the top three cards of his or her library into his or her graveyard.
-5: Draw X cards, then discard X cards, where X is the number of creature cards in all graveyards.
-7: You get an emblem with "at the beginning of your upkeep, target opponent sacrifices a creature."
3
Probably unbalanced as hell, but I like the concept.
This actually seems really, really weak. 5 mana for 3 starting loyalty, his + ability doesn't provide any sort of card advantage or board impact, his -5 ability (meaning it takes two turns of +ing to use, making it basically an ultimate) doesn't even provide card advantage and only gives you filtering. I think this suite of abilities/loyalty would be fine at THREE mana (see Ashiok, Nightmare Weaver who I think is still stronger than this).
Private Mod Note
():
Rollback Post to RevisionRollBack
My Moderator Helpdesk
Currently Playing:
Legacy: Something U/W Controlish EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
Phanta, False Sage 3UB
Planeswalker - Phanta
+1: Each player puts the top three cards of his or her library into his or her graveyard.
-5: Draw X cards, then discard X cards, where X is the number of creature cards in all graveyards.
-7: You get an emblem with "at the beginning of your upkeep, target opponent sacrifices a creature."
3
Probably unbalanced as hell, but I like the concept.
This actually seems really, really weak. 5 mana for 3 starting loyalty, his + ability doesn't provide any sort of card advantage or board impact, his -5 ability (meaning it takes two turns of +ing to use, making it basically an ultimate) doesn't even provide card advantage and only gives you filtering. I think this suite of abilities/loyalty would be fine at THREE mana (see Ashiok, Nightmare Weaver who I think is still stronger than this).
I think it might be interesting if all of the abilities were mirrored, especially the middle ability.
Private Mod Note
():
Rollback Post to RevisionRollBack
Why did I ever think a signature in comic sans was a good idea?
I took a brief break before lunch to tweak the planeswalker generation script some more, and I have to say this: trying to write a script by hand for generating Magic cards is so difficult. The NN makes it look like child's play. I created a batch of planeswalkers for training only to realize that I completely messed up "X" costs. I had to add a rule explaining when a planeswalker needs to have an ability with an X in its loyalty cost and when it didn't. I now completely sympathize with all of the network's shortcomings - there are so many exceptions to every rule. That and I now have a much greater appreciation for its talent; I could never come up with a series of well-thought-out rules to produce mechanically coherent planeswalkers, yet the network has little trouble coming up with cards like Javida or Phanta.
It's funny. Even though on one level I understand all this as nothing more than a complex arrangement of mathematical transformations, I can never dispel the great mystery of it all, of something being greater than the sum of its parts. Sometimes it feels like I'm looking into a mirror.
Anyway, planeswalkers are a good target, same with cards with multipart abilities like kicker, because the network has to stay coherent across the whole card body, and if we can make improvements on those kinds of cards, a lot of other good things will follow on their own. Of course, we should be realistic about the results. For example, through priming the network with its own output, I got this planeswalker:
Sassaku, Dorn Lully 3WW
Planeswalker - Ajani
+1: Until end of turn, whenever a creature attacks, if it's enchanted, it gets +&^/+&^ until end of turn.
+1: Search your library for any number of cards with the same name as target artifact or enchantment card and put it onto the battlefield tapped. then shuffle your library.
-5: Reveal any number of enchantment cards in your hand, then draw that many cards.
3
It's consistent, but remember that there was some human-driven filtering in the process because I had to take the output after each ability and feed it back in, and I had several choices at each step. For the second ability, many of the abilities had something to do with creatures, attacking, or enchantments, but the network has very wide latitude in terms of what it produces. Alternatives for the second ability included...
* destroy target artifact or enchantment.
* target creature gets +&^/+&^ until end of turn. untap all creatures you control.
* each player sacrifices two attacking creatures.
There were also a number of other choices that flooded in regarding life gain (which is logical because the network chose to make a white planeswalker). And on top of that, a smaller number of abilities that were totally unrelated. All of those outcomes were equally likely. I'll also note that while there were enchantment-related cards for the third ability (as the network was influenced by its first two choices), there were also a lot of abilities that granted the player an emblem, and the text inside the emblem could be dramatically unrelated.
But this was for a general-purpose network that was only ever exposed to 59 planeswalkers ever, so that's not a bad start!
We'll have to see how things turn out with the feeder network which will generate planeswalkers exclusively. I plan on setting up the training script so that it's at least somewhat likely to produce planeswalkers with thematic trends (e.g. if the first ability cares about lands or creatures, the second ability might also care about lands or creatures). My hope is to sway the feeder network to reuse or reinterpret elements of the first ability it generates when it conjures up the second. Next, the feeder network will only consider monocolored planeswalkers, because I want to see how well it picks up on the monocolored relationships in the absence of multicolored cards. Finally, this will also be a test of how well padding works for eliminating cross-contamination. Several experiments wrapped up into one. If this is successful, then, as hardcast_sixdrop and others have suggested, we can use feeder networks like this to expand the corpus of cards for training a big network. I'll let you know how it all goes.
EDIT: I plan on getting some very cool data analytics out of this one. Pretty pictures and all that.
EDIT(2): 7 hours later from the last edit, and training is a go! Parameters are for this run:
I generated 8000 planeswalkers. Estimated completion time, 8 hours or so. I kept the network fairly small so it would be easier to gather data on the activities and purposes of individual cells. That and we only have one card type. This should be fun.
Definitely looking forward to seeing your results, Talcos. Keep us posted. Pretty eager to see some data files that you're training off of. I'm scrapping a ~20 hour run because it completely dropped the ball and has no idea what mana cost ought to be. Just poor formatting on my part.
I was reading that paper Talcos linked and it got me thinking if repeating the mana cost at the end of the card wouldn't make it easier for it to learn the color identity of the card, either by providing a positionally closer color element for it to latch to or by creating sort of a "closing bracket" the will encompass the whole content of the card, so to speak.
[...]
devoted champion GW ~ GG
creature ~ elf soldier
whenever you cast a spirit or arcane spell, you may gain 3 life.
2/2
death the sacred 2GW ~ 3G
legendary creature ~ human cleric
reach W: regenerate @.
2/4
berrervest drake 1U ~ 1R
creature ~ drake
flying
@ can't be blocked except by creatures with flying.
1/2
valley the stampede XU ~ 2RR
sorcery
return target land card from your graveyard to the battlefield.
white famolish 2U ~ 1R
creature ~ vedalken wizard
sacrifice a red creature, and a green creature: @ deals 1 damage to target creature or player.
2/3
omutiaon 1RG ~ 3U
enchantment 3, reveal a goblin card from your hand: draw a card.
groon's glider U ~ R
creature ~ human wizard
you may cast @ as though it had flash. if you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.
enchant creature
when @ enters the battlefield, you may exile a swamp and return target creature card from your graveyard to your hand.
1/1
carcokister battlemage 2U ~ 2R
creature ~ human monk
as long as you control a snow land, @ gets +1/+1, has flying, haste, trample, and haste.
2/2
primal mage 1WB ~ 2WU
creature ~ human wizard
you may choose not to untap @ during your untap step. 1B, T: target creature you control gains protection from the color of your choice until end of turn.
2/2
pack hieror 4R ~ 3B
creature ~ insect
T, put two +1/+1 counters on @, remove a +1/+1 counter from @.
3/2
master's guile U ~ R
enchantment ~ aura
enchant creature
enchanted creature has "T: prevent the next 1 damage that would be dealt to target creature or player this turn.
shizora, giant of bong 6W ~ 6G
legendary creature ~ spirit
flying
whenever @ deals combat damage to a player, you may have target player discard a card. = @ deals 3 damage to target creature or player. B, sacrifice a creature: regenerate @.
3/6
mercadian 6UWU ~ 7
legendary creature ~ dragon
flying
@ can block only creatures with flying.
when @ dies, put a 3/3 green beast creature token onto the battlefield.
6/6
abomination 4U ~ 3RR
creature ~ spirit
flying
whenever a creature blocks or becomes blocked by a creature, @ deals 3 damage to that artifact's controller.
2/3
growth dragon 3RR ~ 3UU
creature ~ dragon
flying R: @ gains shroud until end of turn.
4/4
spiritual thra forcer R ~ 1U
creature ~ human wizard W, T: exile target creature an opponent controls.
whenever a creature with power 5 or greater enters the battlefield under your control, @ gets +3/+3 until end of turn. activate this ability only once each turn.
1/1
goblin reflection UU ~ RR
sorcery
target player's life total becomes the number of cards in your hand.
villainous horror 4B ~ 6R
creature ~ spirit 3B, T: @ deals 2 damage to target creature with flying.
3/3
etal shivor 1BG ~ 1B
creature ~ elemental spirit
when @ dies, each player reveals his or her hand. you choose a nonland card from it. that player discards that card.
2/4
skyshroud plague 2U ~ G
instant
cast @ only during the declare attackers step and only if you've been attacked this step.
if a player does, @ assigns no combat damage this turn.
oddblade infectation XRW ~ 5B
sorcery
destroy all creatures with power 3 or greater. flip a coin. if you win the flip, remove a -1/-1 counter from @.
morph 3UB
morbid neda 3BR ~ 3B
creature ~ elemental
whenever a player casts a white spell, you may pay WUBRG. if you do, tap target creature an opponent controls.
4/4
carnival 1U ~ R
instant
strive ~ @ costs R more to cast for each target beyond the first.
return a creature card from your graveyard to your hand.
tendrils of the hunt 4UU ~ 3RR
creature ~ human wizard
T: you may put a creature card from your hand onto the battlefield.
2/2
routswork outcast U ~ 1R
creature ~ human wizard U, T: put a 1/1 red goblin creature token onto the battlefield.
1/1
spike kavu 2RR ~ 3UU
creature ~ kavu
mountainwalk
whenever @ attacks, tap target creature you don't control. if that creature would die, return @ to its owner's hand. if you do, you may put that card on the bottom of your library.
3/3
dark eader 7RR ~ 4B
creature ~ elemental
whenever you cast an instant or sorcery spell, you may pay 3. if you do, return another target creature you control to its owner's hand.
7/6
warrior's krarike 5R ~ 3B
creature ~ avatar
@ doesn't untap during your untap step.
at the beginning of the upkeep of enchanted creature's controller, @ deals 1 damage to you.
4/4
spectral soldier 2U ~ 1RR
creature ~ human wizard
T: draw a card, then discard a card at random.
2/1
undergoblin aven 2UB ~ 2RR
creature ~ zombie ape
when @ enters the battlefield, destroy target creature with the same name as that creature.
2/2
steel scholar 1BR ~ 2B
creature ~ human wizard
T: draw two cards. exile @. then shuffle your library.
2/2
nightblade growth 3R ~ BG
sorcery
destroy target nonblack creature." its controller puts a 2/2 black zombie creature token onto the battlefield.
dare raiser 4U ~ 2RR
creature ~ faerie rogue
flying
when @ dies, put a +1/+1 counter on target creature. activate this ability only during your upkeep.
3/2
ashling's knight 4W ~ 5G
creature ~ human soldier
whenever @ attacks, each land deals 1 damage to you.
threshold ~ 2W, T: put a 1/1 green saproling creature token onto the battlefield.
1/6
mirror acolyte 2U ~ 2R
creature ~ human wizard
countertype % ise
infect
@ attacks each turn if able.
2/1
loxodon stopmon UB ~ 1UU
creature ~ vedalken wizard 1B, discard a card: target creature gets -3/-3 until end of turn.
2/2
selesnya mimic 3U ~ 4
creature ~ shapeshifter
countertype % nere
@ enters the battlefield with X % counters on it. X, T, remove a -1/-1 counter from a creature you control: @ gets +2/+0 and gains first strike until end of turn.
2/2
jidden sliver 2U ~ 2
creature ~ sliver
all sliver creatures have first strike.
1/1
gripsire boggart 3RW ~ 5R
creature ~ giant
5/5
mana megosity 1BRG ~ 4R
enchantment
at the beginning of your upkeep, [choose one ~ = search your library for a plains card, put it onto the battlefield tapped, then shuffle your library.
cycling 1G
chaaber of chaos U ~ R
creature ~ merfolk wizard U, T: target creature gains haste until end of turn.
1/1
nightsteel giant 2RW ~ 2R
creature ~ giant 1W: target creature you control gains haste until end of turn.
2/3
stromgald 2RR ~ B
enchantment
at the beginning of each player's upkeep, that player sacrifices a creature.
voice of vitality UB ~ 2U
enchantment ~ aura
enchant land
at the beginning of the upkeep of enchanted enchantment's controller, @ deals 1 damage to that player.
mentor of prophet 1R ~ 4U
creature ~ goblin shaman
whenever @ blocks or becomes blocked by a creature, that creature doesn't untap during its controller's next untap step.
-11: exile the top three cards of your library. put two cards exiled with @ into their owner's hand.
1/1
lancer to the might 2UU ~ 3RR
enchantment
creatures with flying get +2/+2 and have flying.
as long as @ is untapped, @ deals 2 damage to that creature.
scholar sage 1W ~ 5
creature ~ human cleric
protection from black
scavenge 5R
2/2
vibiling mantus R ~ 1U
creature ~ goblin
trample
whenever @ deals combat damage to a player, draw a card.
1/1
osha stalker WBR ~ 6B
creature ~ human warrior
vigilance
at the beginning of the end step, exile that card for as long as @ remains tapped.
3/3
rakkos's crackle 3UU ~ 3RR
enchantment
cumulative upkeep U
whenever an opponent casts a spell, you may destroy target land.
ashes of the horde 2U ~ 2RG
creature ~ human wizard
T: put a 1/1 colorless wizard creature token onto the battlefield.
1/2
gravely the bank G ~ 0
enchantment ~ aura
enchant land
whenever enchanted land becomes tapped, its controller may pay 1. if you do, target creature gains double strike until end of turn.
corrupted rabble R ~ 1U
creature ~ goblin
countertype % death
exalted
1/1
myr calation 1UB ~ 4U
sorcery
[choose one ~ = you gain 2 life for each creature you control.
kor scoats 2U ~ 1R
creature ~ nightstalker
when @ enters the battlefield, draw a card, then discard a card.
whenever a creature you control attacks, defending player may copy this spell and may choose a new target for that copy.
1/3
urza's troble 1R ~ 2U
creature ~ human artificer
creatures you control have flying.
2/1
abomination 3RR ~ 2B
creature ~ human warrior
trample
whenever @ deals combat damage to a player, you may pay 1BB. if you do, draw a card.
4/4
dorcity black angel 6WB ~ 4WW
creature ~ angel
flying
when @ leaves the battlefield, destroy all other permanents instead.
@ deals X damage to target creature or player.
6/6
understepe dragon 4RR ~ 2B
creature ~ dragon
flying
whenever @ deals combat damage to a player, you may draw a card.
4/4
strate ghoul 3BR ~ 2B
creature ~ zombie warrior
whenever @ becomes blocked by a creature, destroy that creature. it can't be regenerated.
4/3
argothian leafflow WB ~ 2WU
creature ~ spirit
first strike
when @ enters the battlefield, you gain 6 life.
2/1
navalant mandler 3RG ~ 4R
creature ~ treefolk shaman
whenever another artifact enters the battlefield under your control, you may put a +1/+1 counter on @.
3/4
eldrazi sandstorm U ~ 1R
enchantment ~ aura
enchant tapped creature
when @ enters the battlefield, exile all goblins.
moontrasper 2U ~ 3
creature ~ spirit
defender
whenever @ blocks, it gets +2/+0 until end of turn.
0/3
tibal strength 2RR ~ 5U
instant
choose a color. target player discards two cards.
siren of the externive UB ~ UU
enchantment 2U: return target nonland permanent to its owner's hand. if that land was a snow land, that player loses 6 life.
jopatrom's tireless 3R ~ 4
creature ~ human barbarian
trample
at the beginning of your upkeep, destroy @ unless you pay U.
3/2
rust witch 2W ~ 4
creature ~ human knight
trample
T: target player puts the top X cards of his or her library into his or her graveyard.
2/2
forgate shaman U ~ 1R
creature ~ human wizard
T: add G or B to your mana pool.
1/1
neguis enemance 1U ~ R
enchantment
at the beginning of your upkeep, return a blue or black creature you control to its owner's hand.
whenever a player casts a black spell, you may pay B. if you do, any player may activate this ability.
feast of vol 1U ~ R
enchantment ~ aura
enchant land
at the beginning of your upkeep, destroy target nonbasic land. you choose which creatures each get +1/+1 and gain trample until end of turn.
despoiling kraken 3UU ~ 2RR
creature ~ kraken UU: target creature gains flying until end of turn.
evoke R
3/5
cunning invisition 3RR ~ BG
sorcery
@ deals 11 damage to target player.
T: untap target permanent.
resovate invisivity 3U ~ 1
instant
untap all permanents you control, then return each of them back you draw step.
when @ leaves the battlefield, return the exiled cards to the battlefield. if it's a creature card, draw a card.
cloud of amer G ~ 1G
creature ~ goblin warrior
when @ dies, each player loses 3 life and you gain 2 life.
2/1
incite portal 3 ~ 4
artifact
remove two % counters from @: choose a creature type. reveal cards from the top of your library until you reveal a nonland card. then discard that many cards.
reality strength B ~ 2B
enchantment ~ aura
enchant creature
enchanted creature gets -4/-0 and loses all abilities. you lose 3 life.
desecration pillar 1 ~ 2
artifact ~ equipment
equip 2
equipped creature has protection from white.
conspure 5B ~ 2BB
instant
destroy target nonblack creature. it can't be regenerated.
thunderers of mogis 4BBB ~ 3BB
creature ~ demon
flying
whenever @ deals combat damage to a player, that player discards a card. if you do, draw a card.
7/7
oinous whisperers 3WW ~ 4WW
creature ~ human rebel
trample
whenever @ blocks or becomes blocked by a creature, destroy that creature at end of combat.
3/4
hand of the storm 3U ~ 2U
creature ~ illusion wall
defender R: @ gets +0/+1 until end of turn.
3/5
ancient drake 2U ~ 3U
creature ~ drake
flying G: @ gets +1/+0 until end of turn.
1/3
death's guile 3R ~ 4R
enchantment
whenever a creature you control is turned face up, put a -1/-1 counter on each other creature you control that shares a color with it.
battlemaster wurm 4GG ~ 3GGG
creature ~ wurm
7/7
demon mage 1U ~ U
creature ~ human wizard
double strike
when @ enters the battlefield, destroy target blue permanent.
1/1
fire nymbition 7R ~ 5R
instant
@ deals 4 damage to target creature.
tar spellshaper W ~ 2W
creature ~ human cleric 1W, sacrifice @: search your library for a forest or plains card and put it onto the battlefield. then shuffle your library.
1/1
vailing ruver 3 ~ 2(G/U)
artifact creature ~ scarecrow
@ can't be uncast.
@ attacks each turn if able. 3, T: tap target creature.
2/2
goblin war barrier 2R ~ 1R
creature ~ goblin artificer R, T: you may put a creature card from your hand onto the battlefield.
2/2
spike lawn 7 ~ 8
artifact creature ~ shapeshifter
when @ enters the battlefield, creatures you control get +2/+2 until end of turn.
4/5
rout archers 4W ~ 5W
creature ~ human soldier W: @ gets +1/+1 until end of turn.
2/4
fultic mardon 3BBB ~ 2BB
creature ~ demon
flying
when @ enters the battlefield, exile all green creatures. 1B: @ gains haste until end of turn.
7/7
sandless craftring 2W ~ 1W
sorcery
add 1 to your mana pool.
hammerwing drake 3UU ~ 3U
creature ~ drake
flying
at the beginning of your upkeep, sacrifice @ unless you pay U. R: @ gets +1/+0 until end of turn. 2, remove a +1/+1 counter from @: @ gets +1/+1 until end of turn. activate this ability only during your turn, before attackers are declared.
3/3
animate forger 5WW ~ 3WW
creature ~ human soldier
vigilance
whenever @ attacks, you may have target player discard a card.
4/4
selusian soul 1 ~ 2
artifact ~ equipment
equip 1
equipped creature gets +1/+1 and has protection from black.
beetlemone 3G ~ 2G
creature ~ write
whenever @ attacks, exile all creatures you control. put the top X cards of your library into your graveyard. if you do, target opponent reveals his or her hand. you choose a nonland card from it. reveal that card. shuffle your library, then put them back in any order.
2/2
armored raptor 2W ~ W
creature ~ human soldier
whenever @ becomes the target of a spell or ability, sacrifice it.
2/1
lion of lines 2B ~ B
enchantment
each creature you control with a +1/+1 counter on it attacks each turn if able.
T: put a +1/+1 counter on @.
rehemptive portal 3 ~ 4
artifact
at the beginning of each player's upkeep, that player puts a 1/1 colorless myr artifact creature token with trample onto the battlefield.
giant infantry 2W ~ 3W
creature ~ human soldier
first strike
shroud
@ has indestructible as long as you control a swamp. 11: untap @. prevent all damage that would be dealt to target creature or player this turn.
2/2
thamino, howl of bone 3RR ~ 1RR
legendary creature ~ human rogue
haste
echo B
4/4
scarwing griffin 1WW ~ 2WW
creature ~ griffin
flying
whenever you cast a spirit or arcane spell, if @ is a basic land, it gets +1/+1 until end of turn.
2/2
hornet wornd 5RR ~ 7RR
sorcery
@ deals 3 damage to target player.
if @ was kicked, it enters the battlefield with X +1/+1 counters on it, where X is the number of cards in your hand.
wall of manand 5 ~ 6
artifact creature ~ construct 2: target creature blocks @ this turn if able.
5/4
lost copean 3WW ~ 4WW
creature ~ angel
flying
as long as @ is equipped, it can't be blocked this turn.
5/5
coostal primordial 5UUU ~ 6UUU
creature ~ leviathan
islandwalk
whenever @ deals combat damage to a player, you may have it deal 9 damage to target creature or player.
9/9
frosts whellar 3BB ~ 2BB
creature ~ nightmare horror
flying
whenever @ deals combat damage to a player, you may pay 3BB. if you do, @ deals X damage to target player.
4/4
hipwionace 3 ~ 2R
artifact
T: add B or R to your mana pool. @ deals 1 damage to you.
soldevi barrier 4UU ~ 6UU
creature ~ elemental
flying 2G: put a 1/1 green saproling creature token onto the battlefield.
4/3
prowling primordial 5G ~ 3G
creature ~ beast
echo 2G
when @ enters the battlefield, return a blue creature you control to its owner's hand.
3/3
quicksilver knight W ~ 1W
creature ~ human cleric 1W, T: choose target creature you control. if you do, @ assigns no combat damage this turn. untap that creature.
1/1
goblin swine 5RRR ~ 2RR
creature ~ dragon
flying, haste
whenever @ attacks, it gets +1/+0 until end of turn for each first creature and each player instead.
7/7
wandering ranger 1G ~ 2G
creature ~ human druid
whenever a creature you control is turned face up, if it's a creature, put two 1/1 white soldier creature tokens onto the battlefield.
1/2
protective spirit 4BB ~ 3BB
creature ~ insect
when @ enters the battlefield, you may return target creature card from your graveyard to your hand.
6/4
predatory ware 3B ~ 2B
enchantment ~ aura
enchant creature
enchanted creature has flying and lifelink.
tel~jilad treefolk 5BB ~ 3BB
creature ~ zombie giant
whenever @ attacks, it gets +1/+1 until end of turn. = target creature gets +2/+2 until end of turn.
unearth BB
6/3
ember bond 1R ~ 2R
instant
target creature gets +2/+0 until end of turn.
splice onto arcane 3R
archoteal rob 2 ~ 1
artifact ~ equipment
equip 2
equipped creature has protection from white. activate this ability only if you control a nontoken permanent.
urza's protector 3WW ~ 4WW
creature ~ human soldier
threshold ~ @ gets +2/+2 as long as seven or more cards are in your graveyard.
2/3
dark of the shaman 4B ~ 3B
enchantment
each creature you control gets +2/+1 and has "T: this creature deals 1 damage to target creature or player.
fable giant 3WW ~ 2WW
creature ~ giant warrior
when @ enters the battlefield, if you control two or more lands, you gain 3 life.
5/6
champion of aragon WW ~ 2WW
creature ~ human soldier
whenever @ blocks or becomes blocked by a creature, destroy that creature.
2/2
bloodchaser expage 2BB ~ 3B
creature ~ human assassin
protection from black 1B: @ gets +1/+0 until end of turn.
morph 3B
2/3
dreams, weight of choosing 4GG ~ 3GG
legendary creature ~ dragon
trample
@ enters the battlefield with four +1/+1 counters on it.
each other creature you control gets +2/+2 and has flying.
6/6
casted of the sixil WW ~ 1WW
creature ~ human monk
whenever another tapped creature dies, you may pay 1. if you do, you gain 8 life. R: target merfolk you control gains double strike until end of turn.
2/2
kessak wor fild
land
T: add 1 to your mana pool. 3, T, sacrifice @: target player puts the top three cards of his or her library into his or her graveyard.
steel druid WW ~ W
creature ~ human knight
protection from blue
sacrifice @: search your library for a plains card and put it onto the battlefield. then shuffle your library.
2/2
sliver celestial 3GG ~ 1GG
creature ~ treefolk
trample
at the beginning of your upkeep, sacrifice @ unless you pay 4.
6/6
sentry of seshiro B ~ 1B
creature ~ human soldier shaman
sacrifice @: you gain 2 life.
1/1
shattering monster 4BBB ~ 3BBB
creature ~ horror
trample
whenever @ attacks, untap all creatures that share a color with it. it can't be regenerated.
miracle 4BB
6/6
urborg kami 4W ~ 3W
creature ~ spirit
flying
@ can't attack unless defending player controls an island.
T: add W or U to your mana pool.
2/2
barbarian gorge
land
T: add 1 to your mana pool. 3, T, sacrifice @: draw a card.
leam of garroyles 3W ~ 2W
creature ~ pegasus
flying 2, return a land you control to its owner's hand: prevent the next 3 damage that would be dealt to target creature or player this turn.
2/2
falken shard 1 ~ 2
artifact ~ equipment
equip 2
equipped creature gets +2/+2. 1, T: put a 1/1 green saproling creature token onto the battlefield.
cinder of the lord 1RR ~ 2R
creature ~ human rogue R, T: @ loses this ability and becomes an aura enchantment with enchant creature. attach it to target creature.
2/2
disunder warrior 6G ~ 4G
creature ~ rhino warrior 1: @ gets -1/-1 until end of turn.
5/5
seekwite hunter 2R ~ 4R
creature ~ human wizard G, T, sacrifice @: @ deals 4 damage to target attacking or blocking creature.
2/2
niven vitality 4GG ~ 5GG
enchantment
when @ enters the battlefield, target creature blocks this turn if able.
brize attermonger 4R ~ 5RR
creature ~ giant warrior
indestructible
as long as your devotion to blue and black is less than seven, @ isn't a creature.
at the beginning of your upkeep, you may look at the top card of your library. if it's a land card, @ gets +2/+2 until end of turn.
5/5
urbard scout 4W ~ 5W
creature ~ human monk
whenever @ attacks, it gets +2/+2 until end of turn. = it gains first strike until end of turn.
3/4
sheltering troll 3GG ~ 3G
creature ~ beast
whenever @ attacks, it gets -3/-3 until end of turn. 2W: @ gets +2/+2 until end of turn. activate this ability only once each turn.
4/4
echain necrigonies 3B ~ 4B
creature ~ zombie mercenary
when @ enters the battlefield, if you control three or more artifacts, @ deals 3 damage to that creature's controller.
3/3
poison empty 4RR ~ XR
sorcery
destroy target permanent with converted mana cost 3 or less.
sporimancer 2BB ~ 1BBR
creature ~ vampire
when @ enters the battlefield, if you control two or more mountains, you may cast @ without paying its mana cost. if you do, you may cast a nonland card revealed this way onto the battlefield under your control.
3/3
mind exrang 1R ~ R
creature ~ orc
sacrifice a creature: @ gains first strike until end of turn.
2/2
protective flesh XG ~ G
sorcery
@ deals X damage to target creature or player.
erery cultory 5 ~ 5R
artifact 8: target creature gets +2/+2 until end of turn.
shell to whisper 4RRR ~ 3RR
sorcery
destroy all creatures. each of those tokens gain haste until end of turn.
versery roc 3W ~ 3WW
creature ~ beast
when @ enters the battlefield, put target card from a graveyard onto the battlefield under their owners' control.
3/3
kyren balistor 2B ~ 1B
creature ~ zombie bird
flying
when @ enters the battlefield, return a creature you control to its owner's hand.
2/1
mindstorm 3UU ~ BGU
instant
return target creature to its owner's hand.]
living stand
land
@ enters the battlefield tapped.
when @ enters the battlefield, choose a color and a creature type.
whenever a player attacks and isn't blocked, you may may pay G rather than pay @'s mana cost.
uncast target spell if its converted mana cost is equal to that creature's power and its toughness is equal to @'s power.
gembling furys 3W ~ 2W
enchantment 1: the next time a source of your choice would deal damage to you this turn, prevent that damage.
dryad's blood 5BB ~ 4B
sorcery
return up to two target creature cards with converted mana cost 3 or less from your graveyard to the battlefield. that creature gains haste. put a +1/+1 counter on it.
remove a % counter from @: put a +1/+1 counter on target creature. if that creature is black, it gets +2/+0 until end of turn.
beld guide 3B ~ 4B
creature ~ zombie gniff B, sacrifice @: @ deals damage equal to its power to target creature that player controls.
2/3
gideon's tor 4GG ~ 4G
enchantment
countertype % charge
@ enters the battlefield with X +1/+1 counters on it. 4, T: put a % counter on @. 2B, remove X % counters from @: add BB to your mana pool. @ deals 1 damage to you.
boros township 2 ~ 3
artifact
activated abilities of creatures can't be blocked except by two or more creatures.
heart spirit W ~ 1W
creature ~ spirit
when @ dies, put a 1/1 white spirit creature token with flying onto the battlefield.
1/1
mistform soldier 2R ~ RW
creature ~ snake shaman 1G, T: put a 1/1 white soldier creature token onto the battlefield.
1/1
caneland ippariate 2R ~ 1R
creature ~ human artificer 4, T: destroy target creature with power 2 or less.
1/1
marsh horde 2GG ~ 3GG
creature ~ spike
trample
@ enters the battlefield with X +1/+1 counters on it, where X is the total power of the creatures expept.
0/0
bong swords 5BBB ~ 4BBB
sorcery
put three 1/1 black eldrazi spawn creature tokens onto the battlefield.
relix trap 3W ~ 3WW
enchantment
tap an untapped creature you control: prevent the next 4 damage that would be dealt to target creature or player this turn."
baneshous glace 2 ~ 1
artifact ~ equipment
equip 2
equipped creature gets +1/+1.
whenever a player casts a spell, you may pay 1W. if you do, put a +1/+1 counter on it. 1, T, sacrifice @: search your library for a creature card with converted mana cost 3 or less and put it onto the battlefield. then shuffle your library.
centaur high flame 7UU ~ 4U
enchantment
whenever a player casts a spell, you may put a % counter on @.
remove three % counters from @: @ deals damage equal to the number of % counters on it to target creature or player.
concaxs U ~ 1U
enchantment ~ aura
enchant creature
enchanted creature gets +2/+2. R, T: target creature can't be regenerated this turn.
murcatic pillar 3R ~ 4R
enchantment
whenever a spell or ability an opponent controls causes you to discard @, put it onto the battlefield under their owners' control. if that creature you control with a % counter on it, put it on top of its owner's library.
assassination 2G ~ 3G
enchantment
whenever a white enchantment enters the battlefield under your control, uncast target spell. that player puts the top two cards of his or her library into his or her graveyard.
when @ dies, you may destroy target creature with power 4 or greater.
great sprower 4GGG ~ 5GGG
creature ~ beast
forestwalk
8/11
favoraster sage 1UU ~ 1U
creature ~ merfolk wizard
protection from black
when @ enters the battlefield, draw a card at the beginning of the next turn's upkeep.
2/2
deful dospalodian 3W ~ 2W
creature ~ human soldier W, T: target creature gets +2/+2 until end of turn.
1/3
surge of explorer 4G ~ 2GW
creature ~ human rogue
shroud
whenever another creature dies, you may search your library for a basic land card, reveal it, and put it into your hand. then shuffle your library.
5/3
thunderblood monk UU ~ U
creature ~ merfolk rogue
@ can't be blocked except by two or more creatures.
2/1
jolum dragon 4RR ~ 3R
creature ~ dragon
flying
when @ enters the battlefield, if tribute wasn't paid, it deals X damage to target creature or player, where X is the number of % counters on @.
5/5
seanchock dead 2BB ~ BB
creature ~ skeleton 1B: target creature can't block this turn. 1B: regenerate @. 1B: @ gets +1/+0 until end of turn.
2/2
wall of researcher WW ~ 1WW
creature ~ human soldier
bitd creatures have flying.
2/2
zeosize grand W ~ 1W
enchantment ~ aura
enchant creature
enchanted creature gets +2/+5. B, T: put target creature you control to their owner's hand.
phyrexian hellkite 4RR ~ 2RR
creature ~ dragon
flying
@ can block only creatures with flying.
-2: destroy target artifact or enchantment. they can't be regenerated.
6/6
black discovery 1U ~ 2U
enchantment ~ aura
enchant permanent
enchanted permanent doesn't untap during its controller's untap step.
at the beginning of the upkeep of enchanted creature's controller, @ deals 1 damage to that player unless he or she pays 2 life.
renerade gear 3 ~ 5
artifact ~ equipment
equip 4
equipped creature gets +2/+2 and has trample.
deepwood heaver 1WW ~ WW
creature ~ human soldier
when @ enters the battlefield, sacrifice it unless you pay 1WW.
2/4
loathspout harvest 1W ~ 2W
instant
target creature gets +2/+2 until end of turn.
when there are no creatures on the battlefield, sacrifice @. if you do, search your library for a shaman card, reveal it, put it into your hand, then shuffle your library.
kless of delice 4 ~ 3R
artifact
T: add WB to your mana pool.
whenever a player casts an instant or sorcery spell, @ deals 2 damage to that player.
scraphind 1WW ~ 3W
creature ~ bird
flying
when @ enters the battlefield, name a card. target player draws three cards.
2/2
reveler 4BBB ~ 5BB
creature ~ horror
flying
when @ enters the battlefield, each player returns a land he or she controls to its owner's hand.
5/5
seeruned farmos 2BB ~ 4BB
creature ~ zombie rogue
whenever @ deals combat damage to a player, you may draw a card.
when @ leaves the battlefield, return the exiled card to the battlefield under your control.
2/3
croth of deckles 3 ~ 1/1
artifact
whenever a mountain enters the battlefield under your control, you may put a green orc
falconed ranger 2R ~ 3R
creature ~ human wizard
T: @ deals 1 damage to target creature or player.
2/2
madian shield B ~ 2B
enchantment ~ aura
enchant artifact
when enchanted land becomes tapped, @ deals 1 damage to that player.
kite ambush corps 1WW ~ 2WW
creature ~ human cleric 2W, T: tap target creature. U: target player puts a 2/2 green wolf creature token onto the battlefield.
2/2
basalt of the scalden 3U ~ 2U
creature ~ human monk U, T: tap target creature.
2/3
power angel 3WW ~ 2WW
creature ~ angel
flying
at the beginning of your upkeep, target player loses 2 life for each creature card discarded this way.
5/5
undercity mana 6 ~ 7
artifact creature ~ shapeshifter
when @ dies, exile @ and target permanent is blocking it.
4/4
torture ilf 2GG ~ 4GG
creature ~ fungus beast
vigilance
whenever @ deals combat damage to a player, if @ is attacking, you may pay X, where X is the number of swamps you control.
morph 4GG
3/3
wildform 3UU ~ 5UU
enchantment
whenever a creature you control deals damage, that damage is dealt to @ instead.
whenever a spell or ability causes a player to discard a card, @ deals 1 damage to that player.
stonewald trons 5W ~ 4W
enchantment ~ aura
enchant creature
enchanted creature gets +1/+1 for each creature destroyed this way.
spinerite mob 2G ~ 3G
creature ~ snake warrior
when @ enters the battlefield, draw a card.
2/2
graver spider 3GG ~ 4GG
creature ~ spider
reach
whenever you cast a spirit or arcane spell, @ gets +2/+2 until end of turn.
2/5
leonin scorpion 4GG ~ 3GG
creature ~ beast
infect
at the beginning of your upkeep, put a -1/-1 counter on each creature you control.
6/8
shambling drake 5U ~ 4U
creature ~ drake
flying
at the beginning of your upkeep, remove a +1/+1 counter from @. U: return @ to its owner's hand.
3/3
reaper selection 3BB ~ 2BB
sorcery
put X 1/1 red goblin creature tokens onto the battlefield.
whenever @ becomes the target of a spell or ability, sacrifice it.
sorceress strike 2B ~ BB
sorcery
target player reveals his or her hand. you choose a nonland card from it. exile that card.
medocian crasher RR ~ 2RR
creature ~ ogre warrior
whenever another creature enters the battlefield under your control, you may have @ deal 1 damage to target player.
2/2
shell sanctuary 1B ~ B
enchantment ~ aura
enchant creature
when @ enters the battlefield, draw a card.
enchanted creature gets +2/+0.
renewed trap 4WW ~ 2WW
instant ~ trap
if an opponent cast a creature spell this turn, it gets +2/+2 and gains first strike until end of turn.
stabling staspine 4 ~ 3
artifact creature ~ wall
defender
T: add 1 to your mana pool.
8/7
culling well 6GG ~ 4GG
sorcery
put a 1/1 white soldier creature token onto the battlefield.
creatures you control get +1/+1.
T: add X mana of any one color to your mana pool."
brightform 1W ~ 2W
enchantment
at the beginning of each player's draw step, that player shuffles his or her library.
consumbil estanger WW ~ 1WW
creature ~ human knight
flying
T: prevent the next 2 damage that would be dealt to target creature or player this turn.
2/2
sandstorm clack 6 ~ 4R
artifact
at the beginning of your upkeep, if you have no cards in hand, you may gain 3 life. 2, remove a % counter from @: add WB to your mana pool. then if you have 7 or less life, draw a card, then discard a card.
srow star 2 ~ 4
artifact
when @ enters the battlefield, put up to X +1/+0 counters on it.
spreading distortion 3WW ~ 7W
enchantment
countertype % fade
fading 5
remove a % counter from @: add G to your mana pool.
obpless of bolts 1BB ~ 2BB
sorcery
target player sacrifices a creature if it has the greatest power among creatures you control.
oblition of abi 3 ~ 4
artifact
whenever a player casts a spell, green creatures you control gain haste. activate this ability only once each turn, and only if you've cast another forest or a soldier creature you control.
assassination 3UU ~ 1UB
enchantment
at the beginning of each opponent's upkeep, that player reveals the top card of his or her library. you may choose new targets for the copies unless that player pays 2.
froststone seer 1U ~ 2U
creature ~ human wizard
when @ enters the battlefield, return target artifact card from your graveyard to your hand.
1/1
false power 5GG ~ 3GG
sorcery
destroy all lands.
T: add WB to your mana pool.
growth BB ~ 3BB
instant
all creatures get -1/-1 until end of turn. if that creature was a human, it gets +1/+0 until end of turn.
hood ringer 2G ~ 2GG
creature ~ snake shaman
countertype % spore
at the beginning of your upkeep, sacrifice @ unless you pay G.
0/2
dragon the savage 2W ~ 1W
instant
destroy target artifact or enchantment. its controller may put a % counter on @.
remove three % counters from @: add G to your mana pool for each attacking creature you control.
turn unlaws 2B ~ B
enchantment ~ aura
enchant creature
whenever enchanted creature deals damage to an opponent, if @ is untapped, that player puts the top card of his or her library into his or her graveyard.
flanding whicles W ~ 2W
creature ~ human cleric 1W, T: return target artifact, creature, or land card from your graveyard to your hand.
1/1
atoria devils 5RR ~ 3BR
creature ~ djinn
when @ enters the battlefield, each player chooses a creature type. each player returns to the battlefield tapped under his or her control at the beginning of the next end step.
6/6
salvage 1B ~ B
instant
destroy target enchantment.
echo the pertechorn 3R ~ 4R
instant
@ deals 3 damage to target creature or player.
rite of druid 3U ~ 4U
creature ~ human wizard
T: @ deals 1 damage to target creature. if you do, put that card onto the battlefield under your control.
1/2
insectize W ~ 1W
instant
target creature gets +5/+5 until end of turn.
fallen wand 2U ~ 1U
instant
uncast target spell unless its controller pays 2.
fledgling hoors 4B ~ 3BB
creature ~ zombie
whenever another creature enters the battlefield, destroy that creature if it has a % counter on it. after chosen face~down players. that player discards three cards.
4/2
red scarecrow 6 ~ 6U
artifact creature ~ scarecrow
@ can't attack unless defending player controls an island.
3/3
frenzy surge 5BBB ~ 4BB
sorcery
destroy all creatures and enchantments.
keeper of racian 3R ~ 2R
creature ~ goblin
morph 2R
when @ is turned face up, you may sacrifice a creature. return target creature to its owner's hand.
3/2
tripker dragon 3BB ~ 2BB
creature ~ dragon
flying 2R: return @ to its owner's hand.
4/4
face of inrander 3W ~ 1W
creature ~ human samurai
bushido 1 R: @ gets +1/+0 until end of turn. if @ was kicked, it enters the battlefield with X +1/+1 counters on it. 2W, remove X % counters from @: put a 1/1 blue bird creature token with flying onto the battlefield.
at the beginning of your upkeep, sacrifice @ unless you pay GG.
whenever a player casts a spell, @ deals 1 damage to that player.
2/1
snade scroll 2W ~ 1W
enchantment 1: the next time a source of your choice would deal damage to you this turn, prevent that damage.
crawled vateral 2R ~ 3R
creature ~ goblin
countertype % poison
flying
when @ enters the battlefield, you may pay 2B. if you do, you may sacrifice a land. if you do, put @ onto the battlefield. activate this ability only during your upkeep.
2/2
ancestral cavalry W ~ 1W
creature ~ human soldier W: @ gains flying until end of turn.
1/1
creak dragon 4RR ~ 2R
creature ~ dragon
flying, haste
when @ enters the battlefield, put a -1/-1 counter on target creature. 6, T: put a +1/+1 counter on target creature.
5/5
dosum avalanche 1R ~ XR
instant
choose up to seven lands target player controls. at this turn's next end of combat, that player may put X 1/1 red goblin creature tokens onto the battlefield.
viashino sea 4U ~ 2UU
creature ~ elemental
when @ dies, draw a card.
whenever a nontoken creature dealt damage by @ this turn dies, flip @.
6/6
t naulermage U ~ 1U
creature ~ human wizard U, T: look at the top card of your library. destroy all auras attached to that creature.
1/1
mender of detains 3 ~ 4
artifact 4, T, sacrifice @: draw a card.
nonar of rain 3B ~ 2B
sorcery
search your library for a card with the same name as that card, reveal that card, and put it into your hand. then shuffle your library.
dream of the regent 2GG ~ 2G
sorcery
until end of turn, target creature you control produces to his or her mana pool .
sunshino dragon 4UU ~ 5U
creature ~ dragon
flying 3: target creature you control gains first strike until end of turn.
6/6
cage of the heart 1BB ~ 3BB
creature ~ human wizard
T: untap @.
2/2
dragon angel 3UU ~ 4UU
enchantment
whenever an opponent casts a spell, that player reveals his or her hand, then that player shuffles his or her library.
uneye in bone 4 ~ 3R
artifact
at the beginning of your upkeep, @ deals 1 damage to you.
final umbra 2B ~ 1B
instant
buyback 4
destroy target artifact or enchantment and target nonblack creature. it can't be regenerated.
sphere of pack 4B ~ 5B
enchantment
at the beginning of each player's upkeep, that player loses 3 life.
sea fear 4RR ~ 3RR
creature ~ elemental
haste
at the beginning of your upkeep, sacrifice @ unless you pay 1U.
when @ leaves the battlefield, return the exiled cards to the battlefield under its owner's control at the beginning of the next end step.
7/6
crosssognet glory XRR ~ 3RR
sorcery
target player gains 1 life.
unstrike signet 2 ~ 3
artifact 3, T: @ deals 1 damage to target creature or player.
frontier syn 2R ~ 3R
instant
@ deals 3 damage to each creature and each player.
vigilance
trample
swarm of land 3UU ~ 2U
enchantment ~ aura
enchant creature
when @ enters the battlefield, you may search your library for a card named harvost hero, your opponents can't cast spells this turn, where X is the number of artifacts you control.
giant sliver 1B ~ 2B
creature ~ sliver
all sliver creatures have haste.
1/1
vanguard's logis of the mind 2BB ~ 3BB
enchantment
countertype % divinity
at the beginning of your upkeep, you may search your library for a basic land card and put it onto the battlefield tapped. then shuffle your library.
lying farfur 1BB ~ 2BB
creature ~ zombie
protection from white
when @ enters the battlefield, if tribute wasn't paid, you may tap or untap target creature.
2/1
vey into the peal 1W ~ 2W
instant
destroy target enchantment. = kack creatures get +1/+0 until end of turn.
leashrift allure 1U ~ 3U
instant
reveal any number of land cards with a single target and exile them. then that player shuffles his or her library.
darkwater whispers W ~ 1WW
creature ~ human soldier W, first strike
hellbent ~ @ gets +3/+3 as long as seven or more cards are in your graveyard.
1/2
dragon rush 3W ~ 2W
enchantment
as @ enters the battlefield, choose a color.
at the beginning of each player's upkeep, @ deals 2 damage to you. U, T: target player loses 2 life.
wall of solereds 3W ~ 2W
creature ~ fox wizard 1W, Q: choose a color. each other player sacrifices a creature.
2/4
explosive tyrant 6UU ~ 5UU
creature ~ djinn
flying
whenever you cast an instant or sorcery spell, you may draw a card.
6/6
shaman of brater 2W ~ 3W
creature ~ human scout
flying
when @ enters the battlefield, it deals 3 damage to each creature with flying.
whenever you cast a black spell, remove a +1/+1 counter from @. R: @ gets +1/+0 until end of turn.
2/2
messenger's attendant 5 ~ 3
artifact creature ~ construct 1, sacrifice @: search your library for a card, reveal it, and put it into your hand. then shuffle your library.
0/8
aller elite 1W ~ 2W
creature ~ human knight
when @ enters the battlefield, you may exile a red creature card from your hand.
evoke W
2/2
garilla tomb 2U ~ 4U
legendary creature ~ human wizard
players spells you control have trample.
2/2
scythe amob 1U ~ 2U
creature ~ human wizard
when @ enters the battlefield, destroy each nonbasic land he or she controls.
1/3
runeshater 3 ~ 4
artifact creature ~ construct 1: @ gains first strike until end of turn.
3/3
gracepolt force 4W ~ 3WW
creature ~ elephant cleric 2W: @ gets +1/+1 until end of turn.
3/4
war base 5R ~ 4R
sorcery
destroy all creatures you control. if you do, @ deals 2 damage to target creature or player.
hagmot shaman 1U ~ U
creature ~ human wizard U, sacrifice @: return target creature to its owner's hand.
1/3
hunting wanderer 4R ~ 3R
creature ~ kavu
when @ enters the battlefield, it deals 4 damage to target creature or player.
2/3
shared tangle 3GG ~ 2GG
creature ~ beast
forestwalk
when @ enters the battlefield, you gain 4 life.
6/6
young stalker 2BB ~ 1BB
creature ~ zombie
morph 1B
when @ is turned face up, it deals 1 damage to each creature and each player.
2/2
rod mastermind 2W ~ 1W
creature ~ soltari monk W, T: reveal a creature card with converted mana cost 2 or less from your hand rather than pay @'s mana cost.
each player reveals the top card of his or her library. if that card is the named card, the player shuffles his or her library.
2/2
spawnball of the wilds WW ~ 1WW
creature ~ human knight
first strike
at the beginning of your upkeep, @ deals 1 damage to you.
2/2
apprantice 4W ~ 3W
enchantment
if an opponent controls more lands than each other player, you may pay 2. if you do, put a 3/3 green beast creature token onto the battlefield.
darksteel village 2BBB ~ 4BB
creature ~ human minion
haste
if @ would be destroyed, destroy all nonblack creatures that player controls.
2/2
longsline dragon 5UU ~ 4UU
creature ~ dragon
flying
whenever @ attacks, put a +1/+1 counter on it. if U was spent to cast @, any player may put a creature card from your hand onto the battlefield.
5/6
thran infrontice 3R ~ 2R
enchantment 2: @ deals 1 damage to target creature or player. if W was spent to cast @, draw two cards.
karaki, river prowler WW ~ 1WW
legendary creature ~ human cleric
T: target creature gets +1/+1 until end of turn.
1/2
spoils of the underworld 2G ~ 1G
sorcery
return target card from your graveyard to your hand. = destroy target blue or red permanent.
soulfall of nogabar 5RR ~ XBR
creature ~ giant warrior
T: destroy target creature with converted mana cost X.
5/5
gilted goblin W ~ 1W
creature ~ kithkin soldier
flying 2W: return @ to its owner's hand.
1/1
trickster titan 3BB ~ 4BB
creature ~ giant
when @ enters the battlefield, change that player returns a land he or she controls to its owner's hand.
7/7
goblin hellkite 5RR ~ 4R
creature ~ dragon
flying
T: return target creature you control to its owner's hand.
draw a card.
5/4
labtrither's archive 6 ~ 7
artifact creature ~ construct
at the beginning of your upkeep, sacrifice @ unless you pay WUBRG.
4/4
zoria tide 3UU ~ 1UB
enchantment 1U: target player discards a card.
harch into stone 4 ~ 3U
artifact
@ enters the battlefield tapped. 4, T: put a % counter on @. GU, T: remove X % counters from @.
@ has creatures you control get +1/+1 for each permanent you control during each other player's untap step.
folt of the strike W ~ 1W
instant
target creature gets +2/+2 until end of turn for each creature blocking it.
prages of rush 3BBB ~ 2BB
enchantment 1B: target creature gets -1/-1 until end of turn.
draw a card.
desponsion 2W ~ 3W
enchantment
when you control no untapped lands, draw a card.
sliver rush XU ~ 3U
instant
as an additional cost to cast @, sacrifice a creature.
add RRRGG to your mana pool.
zombie winds
land
@ enters the battlefield tapped.
when @ enters the battlefield, sacrifice it unless you pay 1.
draw a card.
nizelend tave W ~ 1W
instant
prevent all damage that would be dealt to target creature this turn.
tressers of the exiled 3U ~ 4U
creature ~ human warrior
when @ enters the battlefield, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. 6, T: you gain 2 life.
3/2
reaping hatchling 4BB ~ 3(B/G)(B/G)(B/G)
creature ~ zombie avatar
@'s power and toughness are each equal to the number of basic land types among lands you control.
*/*
firestup the prifowor 1B ~ 2B
creature ~ imp
flying B: @ gets +1/+0 until end of turn.
1/1
phyrexian banmerer 4U ~ 2U
creature ~ drake
flying
whenever @ deals combat damage to a player, put a +1/+1 counter on it.
3/2
primordial archons 3B ~ 4B
creature ~ vampire
sacrifice @: @ deals 2 damage to target creature or player.
3/3
sultai splinter 6 ~ 5U
artifact creature ~ horror
flying 9, T: target creature gets +2/+2 until end of turn.
rebound
3/3
countrimade 3GG ~ 2GG
creature ~ elemental 2G: @ gets +2/+2 until end of turn.
7/2
shock burst 5GG ~ 2GW
sorcery
draw cards equal to the life lost this way.
legacy of infusion B ~ 1B
creature ~ rat wizard
protection from white 2B: @ gets +1/+0 until end of turn.
1/1
crystal might XU ~ 2U
sorcery
choose target creature. you gain 2 life.
tap X target creatures, then return another target creature to its owner's hand.
witch raiders 1W ~ W
creature ~ human scout
as long as @ is equipped, it gets +1/+1.
2/2
salt boon B ~ 1B
instant
target creature gains flying until end of turn.
strangle shade 2B ~ 3B
creature ~ shade
sacrifice a creature: @ gains haste until end of turn.
1/1
river of feast 5GGG ~ 2GG
creature ~ spirit
countertype % quest
when @ enters the battlefield, you may search your library for any number of land cards, reveal them, and put them into your hand. then shuffle your library.
8/8
ansimitation 3BB ~ 5BB
sorcery
[choose one ~ = put a 5/5 green wolf creature token onto the battlefield.
whenever you cast a white spell, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
eternal orbors 5BBB ~ 2BB
creature ~ horror B, sacrifice a creature: target creature gets +5/+5 until end of turn.
6/6
patron of the hunt 4BBB ~ 2BBB
legendary creature ~ horror
flying, trample
whenever @ deals combat damage to a player, that player discards a card.
at the beginning of your upkeep, sacrifice @ unless you pay GW.
6/6
pelement centaur 1B ~ B
creature ~ zombie spirit
changeling
whenever another creature becomes the target of a spell or ability, sacrifice it.
2/1
darksteel mist 3RR ~ 4R
creature ~ viashino warrior
countertype % charge 2B, remove a +1/+1 counter from @: put a +1/+1 counter on target creature.
4/4
trevel aven WW ~ 1W
creature ~ human knight
@ can't be blocked by creatures with power 1 or less.
2/2
gate from tarmitate 5RR ~ 3BRG
creature ~ dragon
flying
when @ enters the battlefield, each opponent loses 2 life and you gain 6 life.
6/6
unhermer's scourge 3G ~ 5GG
sorcery
put a 3/3 green beast creature token onto the battlefield.
flashback 9GG
sage of the firechacker 1R ~ R
creature ~ goblin warrior
mountainwalk
2/2
ritual 2U ~ 3U
instant
uncast target spell unless its controller pays X. for each creature he or she controls, put a 2/2 green bear creature token onto the battlefield.
paladin gatekeeper U ~ 1U
creature ~ merfolk U, T: target land becomes a 2/5 artifact creature that's still a land.
1/1
venerous koune 9 ~ 7
artifact creature ~ insect
when @ enters the battlefield, draw a card.
enchanted creature gets +2/+2 and has "whenever this creature deals damage to an opponent, you may put a +1/+1 counter on @.
6/7
well of the less 1 ~ G
artifact X, T: choose a color. @ deals damage equal to the number of % counters on it.
at the beginning of your upkeep, sacrifice @ unless you pay 1."
sphere of weirding 3R ~ 2RR
enchantment ~ aura
enchant creature
enchanted creature gets +1/+0 for each basic land type among lands you control.
fozeran rider W ~ 1W
creature ~ human soldier
T: destroy target attacking creature.
1/1
hovorgua's musicity 1BB ~ BB
enchantment
players can't cast more than one spell each turn.
breaked moonmind 2G ~ 3G
enchantment
whenever a player casts a white spell, remove a +1/+1 counter from @.
varlow golem 5 ~ 3
artifact creature ~ golem
flash
effect
whenever @ deals combat damage to a player, you may pay 1B. if you do, you gain 1 life.
3/3
silvano spellbrime 2GG ~ 1G
creature ~ treefolk
trample
when @ enters the battlefield, untap all creatures you control.
dash 1B
3/5
extractive prife 2B ~ 3B
instant
destroy target artifact. it can't be regenerated.
nid rodless 1R ~ 2R
creature ~ minotaur warrior
2/2
scrapall 3BBB ~ 1BB
creature ~ horror
deathtouch
when @ enters the battlefield, it deals 3 damage divided as you choose among one, two, or three target creatures.
5/5
great archer 2WW ~ 3WW
creature ~ human knight
bestow 5W
haste
whenever @ deals combat damage to a player, you may pay 2G. if you do, you gain 1 life.
when @ leaves the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
2/1
phyrexian guide 1WW ~ 2WW
creature ~ bird soldier
flying
whenever @ deals damage to a creature, that creature's controller has that player controls.
2/3
exorcien trainee 2W ~ 1W
creature ~ human advisor 1WW, T: tap target creature.
1/3
gift of the mornity 3UU ~ 2UU
creature ~ illusion
nonblue creatures you control get +1/+1.
3/5
spawn of line 2G ~ 1G
enchantment ~ aura
enchant creature
enchanted creature can't attack or block.
flade flame 1W ~ 2W
instant
target creature you control gains first strike until end of turn. = return target permanent to its owner's hand.
karori, hedge of alabaster 3BBB ~ 1BBB
legendary creature ~ human wizard
protection from white
whenever @ deals combat damage to a player, you may pay GB. if you do, return target creature card from your graveyard to your hand.
4/4
rakdos scarecrow 3 ~ 4
artifact creature ~ myr 1: @ gains vigilance until end of turn.
2/2
ambush froething 3G ~ 2G
creature ~ spirit
soulbond
as long as @ is paired with another creature, both creatures have protection from red.
2/2
dream from the weak 3G ~ 4G
instant
destroy target attacking or blocking creature. that creature doesn't untap during its controller's next untap step.
transmute artifact 1G ~ 3G
enchantment
at the beginning of your upkeep, you may put a % counter on @.
T, remove any number of % counters from @: add B to your mana pool.
if @ was kicked with its R kicker, it enters the battlefield with a +1/+1 counter on it for each time it deal damage to you this turn.
threshold ~ as long as seven or more cards are in your graveyard, @ gets +1/+0 for each creature you control.
thran lash 8R ~ 4RR
instant
@ deals 17 damage to target player.
suspend 6~2R
tempt of bloodshift 5UU ~ 6UU
sorcery
draw three cards.
razorful arcedempt 1W ~ 2W
creature ~ human soldier
kicker W and/or R
whenever @ attacks, it gets +2/+1 until end of turn.
2/1
soul gate X ~ 2
artifact
whenever an opponent loses life, you gain 2 life.
volcanic beast 6RR ~ 6RG
creature ~ beast
haste
when @ enters the battlefield, sacrifice it unless you pay G. 2GG: regenerate @.
6/6
the rift 6R ~ 4R
enchantment
at the beginning of your upkeep, you may untap target creature.
creeping dragon 5RR ~ 4R
creature ~ dragon
flying
morph 3RR
when @ is turned face up, return target creature card from your graveyard to your hand.
5/5
jaberi's casts 3U ~ 2U
creature ~ human wizard 1U: target creature gains swampwalk until end of turn.
2/2
malachoth 3GG ~ 2GG
creature ~ praetor
countertype % spore
at the beginning of your upkeep, sacrifice @ unless you pay 1 for each card in your hand.
5/5
battle mutation 1W ~ 2W
instant
@ deals 2 damage to target creature. put a 1/1 white spirit creature token with flying onto the battlefield.
spoil demon 5BBB ~ 4BB
creature ~ demon
flying
at the beginning of your upkeep, destroy @ and target creature with power 4 or greater.
6/7
thankel trap 5B ~ 3B
instant ~ trap
if you control a mountain, it gets +1/+1 until end of turn.
you may pay 2 and return a creature you control to its owner's hand.
when @ enters the battlefield, sacrifice it unless you return an untapped beast creature you control to its owner's hand. activate this ability only once each turn.
mystic pencimpation 3U ~ 2U
enchantment
at the beginning of each player's draw step, that player may put a creature card from his or her hand onto the battlefield.
cunning searing 2RR ~ 2R
sorcery
destroy all enchantments. if you do, @ assigns no combat damage this turn. activate this ability only any time you could cast a sorcery.
zight maze 4B ~ XBB
sorcery
destroy each creature with converted mana cost X or less.
phyrexian avenger 2W ~ 1W
creature ~ spirit
as @ enters the battlefield, choose a color.
creatures you control get +1/+1.
2/2
faerie soul 1B ~ B
instant
return target creature card from your graveyard to the battlefield.
stake shaman 3W ~ WW
creature ~ human wizard
when @ enters the battlefield, tap target creature with power 4 or greater.
2/2
aven sneaker W ~ 1W
creature ~ human soldier
first strike, protection from blue
1/1
hirockait 3BBB ~ 3BB
creature ~ horror
trample
@ enters the battlefield with two +1/+1 counters on it.
if damage would be dealt to @, prevent that damage. remove a +1/+1 counter from @.
5/5
hammerhight 1R ~ R
enchantment ~ aura
enchant creature
enchanted creature has infect. R: @ gets +1/+0 until end of turn.
incressing harvest 2G ~ 1GG
sorcery
search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
flashback 9G
warken of the lord W ~ 1W
creature ~ human soldier
T: tap target creature.
1/1
doppelsonger scarecrow 4 ~ 5
artifact creature ~ construct
green creatures you control get +2/+2 and have indestructible.
whenever equipped creature attacks, if it was kicked, it deals 3 damage to target enchantment or player.
3/3
nall of the fallen 2W ~ 3W
creature ~ human knight
flying
@ can't attack unless you sacrifice a permanent.
2/2
trained boil 2U ~ 3U
instant
uncast target spell unless its controller pays 1.
soul harvest 3 ~ 4
artifact
T: add U or B to your mana pool. U, T: add R to your mana pool.
grim attack 2W ~ W
instant
target creature gets +2/+2 until end of turn. activate this ability only if you control a swamp.
exile @. each of those creatures can't be blocked this combat.
dege elemental 4W ~ 5W
creature ~ elemental
flying 1, sacrifice a goblin: return @ to its owner's hand.
3/4
balduvian monstrosity 5GG ~ 6GGG
creature ~ beast R: @ gets +1/+0 until end of turn.
7/7
cartifor 3W ~ 2W
creature ~ bird soldier
flying
whenever @ attacks, look at the top two cards of your library. put one of them into your hand and the rest on the bottom of your library in any order.
2/3
predatory path W ~ 1W
instant
you gain 1 life for each creature you control.
the malicious 4WW ~ 3WW
legendary creature ~ human warrior
first strike
whenever a creature you control deals combat damage to a player, you may pay 1W. if you do, put a +1/+1 counter on @. activate this ability only during your turn, before attackers are declared.
4/4
rashina troupe 3RR ~ 4R
creature ~ yeti
if a creature dealt damage by @ this turn dies, put a 1/1 green insect creature token onto the battlefield.
4/4
hunter shaman 1R ~ R
creature ~ human shaman
at the beginning of your end step, each player reveals the top card of his or her library. if it's a nonland card, you may cast it without paying its mana cost. if you do, return @ to the battlefield under their owners' control.
3/1
fertilat 6RR ~ XBR
creature ~ elemental
whenever you cast a spirit or arcane spell, you may search your library for a card, then shuffle your library and put that card on top of it.
7/7
luminate 3B ~ 2B
enchantment ~ aura
enchant creature
enchanted creature gets +2/+2 and has "T: this creature deals 1 damage to target player.
giant illusionist 2B ~ 1B
creature ~ zombie warrior 2B: target creature deals damage to that creature's controller equal to the number of cards in all graveyards.
2/2
favor dragon 4RR ~ 2R
creature ~ dragon
flying
when @ enters the battlefield, sacrifice it unless you return a land you control to its owner's hand.
T: add W or B to your mana pool. @ deals 1 damage to you.
4/4
spitting herald 3R ~ 3R
creature ~ kavu
metalcraft ~ @ gets +1/+1 as long as you control a forest.
whenever a player casts a spell, put a +1/+1 counter on @.
3/2
mortinco 3G ~ 3G
artifact creature ~ insect druid
when @ enters the battlefield, you may search your library for a faerie card, reveal it, and put it into your hand. then shuffle your library.
1/3
silknit cable 4 ~ 4
artifact 2: until end of turn, @ becomes a 2/2 golem artifact creature until end of turn. it's still a land.
at the beginning of each upkeep, if @ is tapped, its controller loses X life.
statualing shield 2B ~ 2B
enchantment ~ aura
enchant creature
enchanted creature gets +1/+1 and has flying.
trample 1: @ gets +1/-1 until end of turn. 3: regenerate @.
stormcage of sphere 2 ~ 2
artifact
T: add one mana of any color to your mana pool.
dual grappler 2R ~ 2R
creature ~ lizard
@ gets +1/+1 as long as you control a demon.
2/2
sentinel scroll
land
@ enters the battlefield tapped.
T: add W or B to your mana pool.
ranger of zombies 2R ~ 2R
creature ~ hound
T: @ deals 3 damage to target creature or player.
2/2
lava to the damned R ~ R
instant
@ deals 1 damage to target creature or player.
veldunic charm 2W ~ 2W
instant
you gain 3 life for each creature you control.
signal werewolf 1G ~ 1G
creature ~ wall
defender
at the beginning of your upkeep, put a 2/2 green wolf creature token onto the battlefield. if it's a creature, destroy that creature.
1/4
mystic barrier U ~ U
instant
as an additional cost to cast @, sacrifice a creature.
exile target creature or land.
cilling game 2B ~ 2B
sorcery
target player discards a card. any player may activate this ability.
wandering knight 2WW ~ 2WW
creature ~ human cleric
T: prevent the next 1 damage that would be dealt to target creature or player this turn.
2/2
pilmage 2R ~ 2R
instant
@ deals 6 damage to each creature and each player.
slame druid 1U ~ 1U
creature ~ human wizard
T, sacrifice @: draw a card.
1/1
setessan whipterge 3 ~ 3
artifact
when @ enters the battlefield, draw a card. 4, T: put a 1/1 white soldier creature token onto the battlefield.
treasure masticore 5 ~ 5
artifact creature ~ construct
as long as @ is equipped, it gets +2/+2 and has first strike.
4/4
ojutai elder 2W ~ 2W
creature ~ human cleric 2W, T: put a 1/1 white kithkin soldier creature token onto the battlefield. it has "2: this creature gets +1/+0 until end of turn.
1/4
scourge of lightning W ~ W
sorcery
target player puts the top two cards of his or her library into his or her graveyard.
rogue shaman 1W ~ 1W
creature ~ human soldier
creatures with power 3 or greater spells you control can't be played.
@ deals 3 damage to target creature or player.
2/2
soldevi mage 1U ~ 1U
creature ~ human wizard
whenever @ deals combat damage to a player, draw a card.
1/1
infinerate 2R ~ 2R
instant
@ deals 3 damage to target creature or player.
reckless one 3U ~ 3U
creature ~ human soldier
@ can't be blocked as long as you control a permanent of the chosen type.
3/3
noble kitekin 4W ~ 4W
creature ~ human soldier
other black creatures you control get +1/+1. 1WB, T: put a 1/1 green saproling creature token onto the battlefield.
whenever a player casts a green spell, you may search your library for an enchantment card and put it onto the battlefield. then shuffle your library.
3/3
reckless infernal 1W ~ 1W
creature ~ bird soldier
flying U: @ gains flying until end of turn.
2/1
passace B ~ B
instant
target creature can't block this turn.
bandling olemy 4 ~ 4
artifact creature ~ construct 1G, T: return target nonland permanent to its owner's hand.
2/2
mask of jet 1WU ~ 1WU
instant
change the text of target spell or permanent by replacing all instances of one color word with another.
tormented boll 3 ~ 3
artifact ~ equipment
equip 3
equipped creature has protection from @.
lifesmath B ~ B
creature ~ rat shaman B, T: @ loses this ability and becomes an aura enchantment with enchant creature. it can't be regenerated.
1/1
harsh into the beasts 1U ~ 1U
enchantment ~ aura
enchant creature
enchanted creature has flying.
@ enters the battlefield with a +1/+1 counter on it for each target beyond the first.
draw a card.
throne of the stone 4 ~ 4
artifact
@ enters the battlefield tapped.
whenever you cast a blue spell, you may have @ deal 1 damage to target player.
watch of nyx 2R ~ 2R
creature ~ spirit
@ can't be blocked except by two or more creatures.
2/2
leacher crusader 2WW ~ 2WW
creature ~ human cleric
trample
double strike
whenever @ attacks, it gets +2/+0 until end of turn.
2/2
necrospear 5R ~ 5R
sorcery
buyback 6
spells your opponents cast that target a source of your choice would deal this turn.
goblin stormbeast 2R ~ 2R
creature ~ goblin warrior
T, sacrifice @: destroy target enchantment. G: @ gets +1/+0 until end of turn. this effect doesn't remove @.
1/1
dragonlord ogre 4R ~ 4R
creature ~ ogre warrior
haste R: @ gets +1/+0 until end of turn.
4/3
silumgar of the flight 3U ~ 3U
creature ~ faerie rogue
flash
flying, trample
@ enters the battlefield with two +1/+1 counters on it.
@ can't block creatures with flying.
3/2
lyd the fallen margoth 1U ~ 1U
creature ~ human wizard
T: target player puts the top three cards of his or her library into his or her graveyard.
1/1
elger ogre 3R ~ 3R
creature ~ ogre warrior
when @ enters the battlefield, tap up to four target creatures.
3/3
high mindleaster 3U ~ 3U
creature ~ human wizard
T: add 1 to your mana pool.
2/2
mogg elemental 5UU ~ 5UU
creature ~ elemental
flying
whenever @ deals combat damage to a player, you may return target instant or sorcery card from your graveyard to your hand."
4/6
spite of wake B ~ B
sorcery
target player reveals his or her hand. you choose a nonland card from it. that player discards that card.
protective warrior 4R ~ 4R
creature ~ goblin rogue
when @ enters the battlefield, draw a card for each aura its attacked this turn.
2/4
rite of rootwater 1UU ~ 1UU
creature ~ illusion
flying
whenever another artifact enters the battlefield, sacrifice @.
0/4
contaminated crief 4 ~ 4
artifact
whenever a land enters the battlefield, you may put a % counter on @.
remove three % counters from @: @ deals 1 damage to target creature or player.
survival charm G ~ G
instant
search your library for a basic land card, put it onto the battlefield, then shuffle your library.
carnival of emeria 3B ~ 3B
creature ~ human assassin
T: choose target creature or player instead. if that card is a land card, @ deals 3 damage to that player.
2/1
rakdos tribute 1U ~ 1U
instant
draw a card for each blue creature you control.
argothian outlander W ~ W
creature ~ human cleric
when @ enters the battlefield, put a 7/7 red and green creature token with haste onto the battlefield. it has "at the beginning of your upkeep, you may pay 1. if you do, you gain 1 life.
1/1
changeling fury 1U ~ 1U
instant
put a +1/+1 counter on target creature you control.
reojous merchant 3G ~ 3G
creature ~ insect druid shaman
T: search your library for a giant card, reveal it, put it into your hand, then shuffle your library.
1/1
thundermoth gale 2U ~ 2U
instant
target player loses 1 life for each attacking creature without flying.
life of cheos 3G ~ 3G
creature ~ wall
defender W: @ gains first strike until end of turn.
1/4
ghost sipile 2 ~ 2
artifact ~ equipment
equip 2
equipped creature has "T: this creature deals 1 damage to target player.
war~deal phalanx 2W ~ 2W
creature ~ human soldier
whenever @ becomes blocked, target opponent discards a card at random.
1/3
tidar angel 1R ~ 1R
enchantment ~ aura
enchant creature
enchanted creature can't be blocked except by two or more creatures.
essence brass 2 ~ 2
artifact ~ equipment
equip 2
equipped creature has flying.
whenever equipped creature deals combat damage to a player, you may pay 1. if you do, you gain 2 life.
dedente harvest 3B ~ 3B
enchantment ~ aura
enchant creature
enchanted creature gets -2/-2 and has "B: regenerate @. B, sacrifice an artifact: untap target land.
dream battlemage 3G ~ 3G
creature ~ human druid 3G, sacrifice a black creature, a creature: @ gains flying until end of turn.
2/3
servant of lixid 2B ~ 2B
creature ~ sliver
all sliver creatures have exalted. 1, sacrifice @: @ deals 3 damage to target player.
2/2
volmatoc pap 1G ~ 1G
creature ~ boar G: @ gets +2/+2 until end of turn.
2/1
esper cotreat 2UU ~ 2UU
creature ~ merfolk wizard
when @ enters the battlefield, it deals damage to target creature equal to the number of cards in your hand.
2/2
warrior's krosa 7 ~ 7
artifact creature ~ golem
@ gets +2/+2 for each permanent of the chosen type.
6/6
goblin ruphicker 2RR ~ 2RR
creature ~ human rogue
whenever another creature enters the battlefield under your control, target creature gains flying until end of turn.
3/3
myr crowd 1G ~ 1G
instant
target creature you control gains protection from the color of your choice until end of turn. = uncast target spell unless its controller pays 2.
patron of the death 4 ~ 4
artifact
at the beginning of each player's draw step, that player draws a card.
reverence 3W ~ 3W
instant
put a 2/2 white angel creature token with flying onto the battlefield.
flashback~5W
mortion caterun
land
T: add 1 to your mana pool. 4, T: target creature gains first strike until end of turn.
thunder's vast 1R ~ 1R
instant
@ deals 2 damage to target creature or player.
path of untamanka 2G ~ 2G
creature ~ faerie
flying
T: put a +1/+1 counter on @.
2/2
mistform traitor 4B ~ 4B
creature ~ vampire shaman
whenever @ attacks, it deals 2 damage to target attacking creature or player.
3/3
instable greater 1W ~ 1W
creature ~ human knight
flanking 2W: destroy target creature with power 2 or less.
2/1
hatchet harvest 2GG ~ 2GG
sorcery
destroy target creature with power 3 or greater. = put a 1/1 green insect creature token onto the battlefield.
sentinel scorpion 3W ~ 3W
creature ~ hound 4W: @ gets +1/+1 until end of turn.
2/4
elvish cartor G ~ G
creature ~ elf scout
T: target creature gains protection from the color of your choice until end of turn.
1/1
withered wall 1W ~ 1W
creature ~ wall
defender 1: @ gets +1/+0 until end of turn.
0/4
thran trainer 4U ~ 4U
creature ~ human rogue
flying 1, sacrifice a creature: regenerate @.
2/3
fiery marshal 1U ~ 1U
creature ~ human wizard
whenever a creature you control deals combat damage to a player, that player discards a card at random.
2/1
mamaturid ranger 3W ~ 3W
creature ~ human monk
whenever @ deals combat damage to a player, that player reveals cards from the top of his or her library until he or she reveals an instant or sorcery card. put a creature card from your hand onto the battlefield. 2, T: put a % counter on @. U, remove a +1/+1 counter from @: you gain 2 life.
3/2
bruised abomination 3G ~ 3G
creature ~ treefolk shaman 1G, sacrifice a goblin: @ deals 6 damage to target creature or player.
3/4
adarkar dreams 1G ~ 1G
enchantment ~ aura
enchant creature
enchanted creature gets +2/+2 as long as a copy of any creature on the battlefield.
tower golem 7 ~ 7
artifact creature ~ golem
when @ enters the battlefield, you may exile target card from a graveyard.
when you pay 1 more to cast it, sacrifice @.
5/6
nature's ern 2 ~ 2
artifact creature ~ spirit
1/1
spell to lost 2B ~ 2B
instant
target creature gets -4/-0 and gains flying until end of turn.
dark leic 2R ~ 2R
sorcery
@ deals 3 damage to target creature or player. that player discards a card.
kitsune spades 1BB ~ 1BB
creature ~ vampire shaman
whenever @ attacks and isn't blocked, you may sacrifice it. if you do, for each creature destroyed this way, you lose 4 life. 2B, discard a card: @ gains flying until end of turn.
2/1
down of unspear 1W ~ 1W
instant
prevent all damage that would be dealt to you this turn, then discard a card.
armagerute 2R ~ 2R
instant
@ deals 2 damage to target creature or player. that creature's controller sacrifices it at the beginning of the next end step.
lascless strength 4B ~ 4B
sorcery
destroy target creature. it can't be regenerated.
monist of rollager 3 ~ 3
artifact creature ~ golem
whenever @ attacks, you may search your library for a card named wind hound draw each color, you may repeat this process.
2/4
hallowed battlemage 2W ~ 2W
creature ~ human soldier
exalted
whenever @ attacks, it gets +1/+0 and gains forestwalk until end of turn. untap it.
2/2
wave of taven death 2U ~ 2U
enchantment
whenever a player casts a spell that's untapped, if @ is an enchantment, @ becomes a 4/4 golem artifact creature. it's still a land.
battleglide ayen 4 ~ 4
artifact creature ~ hound 3: prevent the next 1 damage that would be dealt to @ this turn is dealt to target creature or player instead.
2/4
sun's sentinel 7 ~ 7
artifact creature ~ construct 4: target creature you control gains trample until end of turn.
4/5
memory refuge
land
@ enters the battlefield tapped.
when @ enters the battlefield, you gain 1 life.
T: add B or R to your mana pool.
titania's lamp 4 ~ 4
artifact
T: add G, U, or R to your mana pool.
xinthorn pentarte 1 ~ 1
artifact ~ equipment
equip 2
equipped creature has first strike.
goblin wingscrown 2R ~ 2R
creature ~ goblin soldier
flash
pay 3 life: prevent the next 1 damage that would be dealt to target creature this turn.
1/1
swarmfoot veil 1BB ~ 1BB
creature ~ treefolk shaman
you may play any number of blue creature cards from his or her graveyard. you may play it this turn.
2/2
goblin summoning 3BB ~ 3BB
instant
destroy all enchantments. you gain X life.
serra swine R ~ R
creature ~ boar R, sacrifice a creature: @ gets +2/+0 until end of turn.
1/1
goblin vithient 2B ~ 2B
creature ~ goblin warrior
when @ enters the battlefield, draw a card.
2/2
spider retreat
land
@ enters the battlefield tapped.
T: add W to your mana pool.
whenever a player casts a spell, return that card to the battlefield under its owner's control at the beginning of the next end step.
promemory shade 1B ~ 1B
creature ~ shade
whenever @ becomes blocked, it gets +3/+0 until end of turn instead.
1/2
dragon wowf
land
@ enters the battlefield tapped.
T: add U or B to your mana pool.
spirit leaf 2W ~ 2W
enchantment
at the beginning of each upkeep, if you have no cards in hand, target player puts the top four cards of his or her library into his or her graveyard.
sabertooth lages
land
@ enters the battlefield tapped.
T: add R or G to your mana pool.
chauntless stone 2 ~ 2
artifact
@ enters the battlefield tapped.
when @ enters the battlefield, you may tap or untap target permanent.
soltari white pit 1G ~ 1G
creature ~ elf shaman 1G, T: destroy target creature with flying.
2/2
scorn of sporoting 4 ~ 4
artifact 2, T: target player shuffles his or her graveyard into his or her library, then draws seven cards.
gloma myr 2 ~ 2
artifact creature ~ myr 2, T: target creature can't be blocked this turn.
1/1
sage of the field visal 1B ~ 1B
instant
strive ~ @ costs 1B more to cast for each target beyond the first.
any number of target creatures each get +1/+1 until end of turn.
draw a card.
barbarian shadow 1 ~ 1
artifact ~ equipment
equip 2
whenever equipped creature attacks, it gets +1/+1 until end of turn.
spiritual conliver 4BB ~ 4BB
creature ~ spirit B: @ gets +1/+1 until end of turn.
5/4
spall of kroid 1B ~ 1B
creature ~ demon bird
flying
morph 1B
when @ is turned face up, target creature gets -3/-3 until end of turn.
at the beginning of your upkeep, put a % counter on @.
1/1
scorched rain 3RR ~ 3RR
sorcery
@ deals 6 damage to target creature or player.
graveraker bond 2W ~ 2W
enchantment ~ aura
enchant creature
enchanted creature gets +1/+1 and has first strike.
aerie cower the spowling 2G ~ 2G
instant
as an additional cost to cast @, sacrifice a goblin. if you do, destroy target enchantment.
ledge the firehorn 3UU ~ 3UU
creature ~ elemental
flying
shroud 1G: until end of turn, @ gets +1/+1 and has infect. U, sacrifice @: @ deals 2 damage to target creature or player.
3/3
cataryum protector 5R ~ 5R
creature ~ elemental 2R: return @ to its owner's hand.
5/4
relenthess aven 4B ~ 4B
creature ~ zombie soldier
whenever @ becomes blocked, it gets +2/+2 until end of turn.
3/3
kill diversion 1GG ~ 1GG
enchantment
as @ enters the battlefield, you lose 3 life.
T: add G to your mana pool.
hollow elemental 3R ~ 3R
creature ~ elemental
4/4
hood cloud U ~ U
instant
put an X/X green ooze creature token onto the battlefield, where X is the number of attacking creatures. those creatures attack if able.
whenever you cast a spirit or arcane spell, you may pay 2R. if you do, it deals 3 damage to target creature. if that creature has two or more +1/+1 counters on @, remove a -1/-1 counter from @.
strategolis researcher 2WW ~ 2WW
creature ~ kor soldier
when @ enters the battlefield, switch its power and toughness until end of turn.
3/3
skyburd scavenger 3G ~ 3G
creature ~ elf warrior
sliver creatures you control with flying have "T: put a +1/+1 counter on @.
3/3
orimin cokramo U ~ U
creature ~ merfolk soldier
sacrifice @: draw a card.
1/1
drake angel 1R ~ 1R
enchantment ~ aura
enchant creature
enchanted creature has "T: destroy target green creature. activate this ability only during your turn.
raad the dance 1R ~ 1R
instant
target creature attacks this turn if able.
hellow burst 2G ~ 2G
enchantment
whenever a creature enters the battlefield, put a +1/+1 counter on @.
familiar's mage 2R ~ 2R
creature ~ goblin
T: target creature gets +2/+0 until end of turn.
2/2
silken thrower 3WW ~ 3WW
creature ~ spirit
flying
whenever @ deals combat damage to a player, you may tap target creature.
2/2
keldon beast 3W ~ 3W
creature ~ bird
flying W: @ gets +1/+0 until end of turn.
2/2
stunge of the hodde 2 ~ 2
artifact 1, sacrifice @: add one mana of any color to your mana pool.
somberwald dut fiend 5R ~ 5R
creature ~ giant
5/5
darkreat cloud U ~ U
instant
change the text of target spell or permanent by replacing all instances of one color word with another or one basic land type with another until end of turn. U, T, sacrifice @: target creature gets -2/-0 until end of turn.
angel of empires 4 ~ 4
artifact
when @ enters the battlefield, if you control two or more swamps, it deals 6 damage to target treefolk noncreature artifact spell.
mana chimera 6 ~ 6
artifact creature ~ beast 2: @ gets +1/+1 until end of turn.
4/5
urza's revelation BB ~ BB
sorcery
each player sacrifices a creature.
heroes' lement 1B ~ 1B
sorcery
destroy target creature with power 3 or greater.
grinding tort 2 ~ 2
artifact ~ equipment
equip 2
equipped creature gets +0/+3.
creatures of the chosen type get +1/+1 and have vigilance.
unriped seraph 2RR ~ 2RR
creature ~ ogre
3/3
jomoty obelisk 4 ~ 4
artifact creature ~ cat
countertype % charge
whenever @ deals combat damage to a player, you may pay 3. if you do, tap target opponent.
2/2
naved war 3W ~ 3W
enchantment ~ aura
enchant creature
enchanted creature gets +2/+2 and has first strike.
savage angel 1U ~ 1U
creature ~ angel spirit
flying
when @ enters the battlefield, draw a card.
1/1
wall of golem 3 ~ 3
artifact creature ~ golem W: @ gains flying until end of turn.
1/3
balduvian magest 3W ~ 3W
creature ~ spirit
when @ enters the battlefield, target player discards a card. activate this ability only during your turn.
3/1
sinsame spirit 3B ~ 3B
creature ~ spirit
flying B: @ gains flying until end of turn.
2/2
prismatic wall 5 ~ 5
artifact creature ~ hound 5: @ gains shroud until end of turn.
2/5
reckless explorer 1U ~ 1U
creature ~ human wizard 1U, T: target creature gains shroud until end of turn.
1/1
fire mentor 2G ~ 2G
creature ~ elf warrior
whenever a creature you control dies, you may search your library for a forest card and put that card onto the battlefield. then shuffle your library.
2/2
schirflector 2 ~ 2
artifact 1, T: @ deals 2 damage to target creature or player.
scorch the spider 3B ~ 3B
sorcery
destroy all islands.
sacrifice a land: draw a card.
spirit elemental 3RR ~ 3RR
creature ~ elemental R, sacrifice two creatures: draw a card.
4/4
quicksilver hunt U ~ U
instant
target creature with power 2 or less can't be blocked this turn.
ludechic canyons
land
T: add 1 to your mana pool. GU, T: target creature gets +2/+0 until end of turn.
memory druid 1WU ~ 1WU
creature ~ fox cleric
T: draw a card.
2/2
memory supses 3 ~ 3
artifact 1, T, discard a card: put a 1/1 white spirit creature token with flying onto the battlefield.
rystoration rock 3 ~ 3
artifact ~ equipment
equip 3
equipped creature has protection from red.
trained cable 2 ~ 2
artifact ~ equipment
equip 2
indestructible
equipped creature has first strike.
phyrexian curse 2 ~ 2
artifact ~ equipment
equip 3
equipped creature gets +1/+1.
as long as equipped creature is white, it gets +1/+1 and has first strike.
abzan captain 3U ~ 3U
creature ~ human warrior
whenever @ becomes blocked, you gain 1 life.
3/3
sword of the gear
land
T: add 1 to your mana pool. G, T: add 1G to your mana pool.
psychic prawber 3B ~ 3B
creature ~ rat
whenever @ becomes the target of a spell or ability, sacrifice it.
2/2
dream mana G ~ G
enchantment ~ aura
enchant creature
when @ enters the battlefield, destroy target nonbasic land.
survival graff 3R ~ 3R
sorcery
@ deals 3 damage to target creature or player.
grandeur ~ at the beginning of each player's upkeep, that player sacrifices a creature.
sun and rupture 2B ~ 2B
instant
destroy target tapped creature.
fateful hour ~ if you have 11 or less life, the next time a source of your choice would deal damage to you this turn, that damage is dealt to target creature with flying and each player equal to the number of attacking creatures that player controls. that creature deals damage equal to its power to @.
keeper of the blood 4G ~ 4G
creature ~ cat
5/4
phienic anishmant 8 ~ 8
artifact creature ~ leviathan
defender 1: @ gets +1/-1 until end of turn.
7/7
naku paladin 2W ~ 2W
creature ~ human soldier
first strike
T, sacrifice @: add RR to your mana pool.
2/2
orator of the proses 1R ~ 1R
creature ~ human wizard R, T: target creature gains first strike until end of turn.
2/1
unforge of the hour 3W ~ 3W
creature ~ human soldier
T: target unblocked attacking blocking creature gets +3/+3 until end of turn. activate this ability only any time you could cast a sorcery.
2/3
reyavana strike 2U ~ 2U
instant
uncast target spell unless its controller pays 1.
blightland grave 1U ~ 1U
enchantment 1U, discard a card: you gain 2 life.
strength of light 4RR ~ 4RR
instant
@ deals 3 damage to each creature and each player. activate this ability only during your turn, before attackers are declared.
servant of the basilisk 3GG ~ 3GG
creature ~ beast
trample
whenever @ deals combat damage to a player, draw a card.
5/5
bloodcaller's land 2R ~ 2R
enchantment ~ aura
enchant creature
enchanted creature can't be blocked by white creatures.
pay 3 life: regenerate @.
master of the reath 4W ~ 4W
creature ~ human cleric 5: @ gets +2/+2 and gains flying until end of turn.
1/3
farraunt rift 1U ~ 1U
instant
target creature blocks this turn if able.
geralva 3BB ~ 3BB
creature ~ elemental
flying
whenever another creature enters the battlefield, you may return @ to its owner's hand. 1BB, T: destroy target nonblack creature.
5/5
stranglerion 3GG ~ 3GG
creature ~ treefolk mutant
reach
whenever @ attacks, you may exile any number of blue cards from your hand rather than pay @'s mana cost.
put a 1/1 green saproling creature token onto the battlefield.
sacrifice an artifact: add UB to your mana pool.
3/3
tempper of esse
tribal sorcery ~ card
quicksilver rage 1G ~ 1G
instant
target creature gets +2/+0 and gains flying until end of turn.
thursting poar 1R ~ 1R
creature ~ goblin warrior
at the beginning of your upkeep, if @ is a plains, it gets +0/+2 until end of turn.
2/2
hunger of gruzz
land
@ enters the battlefield tapped.
T: add G or W to your mana pool.
barran cutthroat 3G ~ 3G
creature ~ cat
whenever @ becomes blocked by a creature, @ deals damage to that creature instead.
3/3
work of vourst 3WW ~ 3WW
creature ~ human knight
flanking 2W: regenerate @.
3/3
aven reckless 1RR ~ 1RR
creature ~ lizard
metalcraft ~ @ gets +1/+1 for each aura attached to it.
whenever @ deals combat damage to a creature, destroy that creature. it can't be regenerated.
2/2
pillar of the hoodmaster 2B ~ 2B
creature ~ goblin shaman B: regenerate @.
whenever a player casts a kithkin spell, you may exile target black permanent.
2/2
underwalker 1W ~ 1W
creature ~ cephalid monk
flanking
when @ enters the battlefield, if it was kicked, draw a card.
2/1
stone troll 1R ~ 1R
creature ~ wall
defender
flying
sacrifice a creature: @ gets +1/+1 until end of turn.
0/3
stonefire myr 3 ~ 3
artifact creature ~ myr
when @ enters the battlefield, you may exile target attacking creature. put a 2/2 black zombie creature token onto the battlefield.
-2: untap all creatures you control and attach it to target creature or player.
put a +1/+1 counter on target creature.
hellbent ~ @ gets +1/+1 as long as you control a white permanent.
1/1
[...]
It looks to me like this is a great test of how the RNN is doing! Most of the color mismatches cards are hilariously unprintable, and a lot of the cost mismatches are too. When the RNN remembers where it started though, almost all of them are great! I think this might be something to integrate into the main RNN.
This also points out how poorly the RNN understands multicolor cards. For all but one of these multicolor cards, it loses data about the cost. The one time it gets this right, the cards is incredibly short:
memory druid 1WU ~ 1WU
creature ~ fox cleric
T: draw a card.
2/2
[...]
Sassaku, Dorn Lully 3WW
Planeswalker - Ajani
+1: Until end of turn, whenever a creature attacks, if it's enchanted, it gets +&^/+&^ until end of turn.
+1: Search your library for any number of cards with the same name as target artifact or enchantment card and put it onto the battlefield tapped. then shuffle your library.
-5: Reveal any number of enchantment cards in your hand, then draw that many cards.
3
It's consistent, but remember that there was some human-driven filtering in the process because I had to take the output after each ability and feed it back in, and I had several choices at each step. For the second ability, many of the abilities had something to do with creatures, attacking, or enchantments, but the network has very wide latitude in terms of what it produces. Alternatives for the second ability included...
* destroy target artifact or enchantment.
* target creature gets +&^/+&^ until end of turn. untap all creatures you control.
* each player sacrifices two attacking creatures.
[...]
For the feeder network, I hope you're only including sorcery-speed effects. That last ability is useless on a planeswalker.
Just wanted to post a quick update so nobody thinks I've gone and vanished.
I'm working on my Python codebase. It's gotten much better. After much hacking, head scratching, pulling out of hair, staring off into space, moving code into and out of modules, drinking of beer, drinking of caffeine, and other programming-related activities, I've managed build something that's pretty usable. It's not done yet but it's getting there. I actually fixed a bunch of broken mana costs that I hadn't noticed before when I pulled all the mana symbol handling code out into a library instead of duplicating it badly everywhere.
For anyone out there trying to parse, modify, transform, analyze, or make forum posts containing data in my format, I highly suggest you take a look at the code on github. At the very least the mana cost and unary number handling routines in utils.py should be helpful. If you have any problems, I'll check issues posted on github super frequently, so that's probably the best way to communicate.
Next up I plan to use my data processing library to reencode all of the cards with the mana costs scrambled. It almost works out of the box right now, and it should be finished tomorrow evening.
Unfortunately I don't have any new cards to post, but here's some statistics. Essentially free to get using the code in datamine.py, the hard part was doing the printing.
Real Cards:
====================
14659 valid cards, 0 invalid cards.
14659 cards parsed, 0 failed to parse
--------------------
14658 unique card names
--------------------
6 represented colors (including colorless as 'A'), 32 combinations
Breakdown by color:
A B G R U W
1964 2897 2878 2862 2871 2885
--------------------
9 unique card types, 17 combinations
Breakdown by type:
creature enchantment instant sorcery artifact land planeswalker tribal summon
7712 1963 1862 1586 1537 510 58 54 2
--------------------
262 unique subtypes, 972 combinations
-- Popular subtypes: --
human 1675
aura 791
wizard 555
soldier 514
warrior 490
spirit 395
elemental 349
zombie 326
beast 323
shaman 310
-- Top combinations: --
aura 772
human wizard 304
spirit 287
human soldier 265
elemental 237
beast 225
equipment 187
human cleric 173
zombie 144
dragon 125
--------------------
4 unique supertypes, 6 combinations
Breakdown by supertype:
legendary snow world basic
647 48 26 10
====================
10 MB dump at temp 0.8:
====================
67758 valid cards, 14 invalid cards.
67772 cards parsed, 30 failed to parse
--------------------
65595 unique card names
--------------------
6 represented colors (including colorless as 'A'), 32 combinations
Breakdown by color:
A B G R U W
8644 10906 11739 11803 12601 14802
--------------------
17 unique card types, 22 combinations
Breakdown by type:
creature instant enchantment artifact sorcery land tribal planeswalker snow blue
35427 10028 9247 7336 6228 1427 55 46 2 1
--------------------
531 unique subtypes, 1447 combinations
-- Popular subtypes: --
human 11583
aura 3964
soldier 3685
wizard 3641
spirit 2366
warrior 2269
elemental 2044
cleric 1783
shaman 1659
beast 1455
-- Top combinations: --
aura 3957
human wizard 2718
human soldier 2693
spirit 2109
human cleric 1379
elemental 1374
equipment 1270
beast 1224
horror 826
dragon 715
--------------------
15 unique supertypes, 12 combinations
Breakdown by supertype:
legendary snow world suspender sporged whenever of regent beast herder recrusal cimple fools recant spells
1192 12 3 1 1 1 1 1 1 1 1 1 1 1 1
====================
Some interesting supertypes there... also why does it like horrors so much?
And there might be some bugs in what it printed. It's still a work in progress.
Oh, don't worry, I know you haven't vanished, haha. What you set out to do is not an easy task, and you have other obligations to fulfill anyway.
I'm going to have to delve in to the numbers you put out at some point in the near future. Horror is actually rather odd, because the network is not far off the mark for the distributions of other creature types. Like 2.2% of creatures are beasts in real Magic, and 1.8% of creatures are beasts in the dump. Maybe horror is riding on the coattails of human. Human is a popular creature type in all colors and, lexicographically, horror is near to human and none of the other creature types that start with the letter H are commonly used in Magic (my apologies to horse tribal fans). If the network starts with an "h" in the subtype field for a black creature but doesn't want "human", it would go for "horror". That gives horrors a statistically significant advantage.
This kind of information is immensely useful so we can see what the network learns and what it does not. Sometimes it might learn things that we didn't anticipate, like that. That's exactly the kind of thing I'm interested in knowing. For the most part, the distributions will resemble real Magic; it's all about figuring out where they diverge and why.
By the way, my latest network is still in training (epoch 21/30), and while I'll wait at until tonight so I have time to do diagnostics, this first run has already started giving some interesting results. For example, I named the planeswalkers (some with long titles, some with sort names) so I could see if it could extract and remember the first name of the planeswalker for use in the subtype line. It often remembers the name correctly. What's interesting is that sometimes it doesn't.
Examples of complete recall:
Arav the Critical Stormlord -> Arav
Vassenia -> Vassenia
Ameretat -> Ameretat
Caesulena -> Caesulena
Examples of "I'm sorry, I wasn't listening to you. What was your name again?":
Caesia, Anxious Specialist -> Barbatia
Sarad -> Prem
I know that the names of cards, if we choose to even include names at all in later versions of the network, are superfluous, but this was a good way to test the network's recall abilities. I'm actually not surprised by the mess-ups because most of the network's attention is devoted to coming up with the abilities (the majority of the text). While it's coming up with the name, ideas of what the planeswalker is going to do are already stirring, and I think it loses focus on details like matching the names. This being said, researchers have shown that you can teach an LSTM network to solve mathematical expressions, which involves carrying numbers around in its head for very long periods of time, so the network is perfectly capable of remembering a name. It's just that we have a relatively small network and trade-offs have to be made to maximize performance on as much of a card as possible.
Next, I'll also note that while training is not done, I've found that the network can be flexible with the number of abilities that a planeswalker has. They usually have three, but sometimes it will give them two or four (but never just one). The ability texts are almost always coherent, even at higher temperatures. I will note, however, that it occasionally messes up "X"s still. It's allowed to have an X in the ability text without having an X in the loyalty cost if it has a clause explaining what the X means, but sometimes it forgets to add in the explanation saying "where X is Y".
Again, the purpose of training the feeder network is not to deliver the final product to a player, but to give the big network more training on planeswalkers. With that in mind, I'm happy so long as the cards consistently resemble proper planeswalkers, even if they have imperfections here and there. We'll filter the results and then we can use what remains to train another network.
Anyway, just a few examples from the not-quite-done network:
Minucia 1WW
Planeswalker - Minucia
+1: Target permanent you control gains protection from artifacts or from the color of your choice until end of turn.
+1: Exile target creature you control. Return that card to the battlefield under its owner's control at the beginning of the next end step.
-7: Each player shuffles his or her hand, graveyard, and permanents he or she owns into his or her library, then draws seven cards. Each player's life total becomes 7.
3
Sagaristio the Investigeticelarr 2RR
Planeswalker - Martinus
+1: Put two 1/1 red Warrior creature tokens onto the battlefield.
-2: Target creature gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard.
-5: You get an emblem with "At end of combat, destroy each creature that blocked or was blocked this turn."
4
EDIT: FYI, training completed earlier and I started sampling. I'll do some analysis on the resulting cards. I might also get some LSTM cell activation dumps to figure out what cells do what (e.g. "name generation subregion", "emblem ability generation subregion", etc.)
(This is Ulthwithian, silly computer has me logged in on a different Curse account I had)
Sagaristio is... quite reasonable. 4 mana to spit out two 1/1 tokens a turn might be too good (cf. original Elspeth), but the other two abilities aren't quite as good as Elspeth's.
Note that the two last abilities have quite a lot of synergy, and the 'bomb' ability is easy to pull off, but not overtly powerful. (It gets a lot better if you can keep Martinus around.)
Minucia looks fine, though she should probably be White-Blue. (Entire wheelhouse is White-Blue, and is very reminiscent of Venser.)
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
This is the best thing. It's a traitor; when it attacks, it damages you or one of your attacking creatures.
Good question! You've brought up several good points. Actually, I think I know the answer already. A 3UW creature will be treated as blue and a 3WU will be treated as white. That's exactly what's happening with our multicolored cards already (that's a problem that I'm working on).
The majority of cards in Magic are monocolored. When we're training the network, to be able to predict the body text of a card, the network has to know the color of that card. The network wants the cheapest, least mentally taxing rule for determining color. The network is extremely lazy that way.
If the network scans left, gets past the colorless mana, and hits a U, the network will decide that the card is blue, because it's going to be right 90.3% of the time. Then it sees the other mana symbols and says "The card is blue... and some noise. Maybe throw in some non-blue stuff, I don't know."
If there were more multicolored cards, then the network would have to learn to pay attention to the nuances. For example, what makes 1WWU (Supreme Verdict) different from WUU (Absorb)? You and I know that it's because the principal effect of the card is more strongly one color than another and the minor color brings in the auxiliary effects. However, because there aren't many multicolored cards, this isn't a general rule that the network is going to pick up on.
This is, however, a problem that we need to solve, precisely because of the Lightning Helix issue that you brought up. Because the network mentally catalogued Lightning Helix as red (or at least red dominant, as its categories can be fuzzy), it saw no issue with making a monored card with both damage and life gain.
Ultimately, it all comes down to training, as I've discussed before. One way of expanding the card pool without altering the distributions is to present it with the same multicolored cards multiple times (not all at once, but over the course of an epoch), with the mana costs shuffled around. If it tries to predict that Lightning Helix is red, it will be wrong when it tries to predict it as white, and vice versa. This, I hypothesize, could encourage the network to read all of the colored mana symbols, and not just the first one.
Your solution might also work, but I'm afraid that, even if it's successful, the NN won't identify Lightning Helix as red/white, it'll identify it as purple, and will be hesitant to make purple cards that incorporate exclusively white or exclusively red effects. That being said, I'm open to alternatives and I'm willing to try whatever you'd like.
EDIT: I will need to test what I just said because it may be it treats the last colored mana symbol as the most relevant rather than the first, but my claim is still valid either way.
EDIT(2): For those of you who would be interested to know it, I'll be taking a look at how to do those visualizations today. I'll let you know once I have something worth sharing.
EDIT(3): Aha, I see how they did it. I can dump all the activations of every cell at every time step when I prime the network. All I have to do is take those numbers, map them to colors, and overlay them on the text. Fun. Now comes the tricky part... doing that.
EDIT(4): Two hours later and I think I might have something. A little more work is needed though.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
What about siloing abilities based on mana cost? Like with the Lightning Helix example, the mana cost is WR so maybe in the text you put "R - @ deals 3 damage to target creature or player." and "W - you gain 3 life."
Similarly, Supreme Verdict would have "U - @ can't be uncasted." and "WW - destroy all creatures." Absorb would have "UU -uncast target spell" and "W - you gain 3 life."
This would, if properly formatted so the network understands that it has to account for all the colored mana in a card's cost, help it to "get" the color pie as well as proper cost for individual abilities.
That's definitely a possibility, I agree.
----------
Okay, so I have made some progress! Things are looking good! I used one of hardcast_sixdrop's recent checkpoints. The network has three layers with 512 network units per layer. I fed it Kemba, Kha Regent and recorded the activations of every cell in the network at each time step (i.e. the activations at "k", then "e", then "m", etc.). The input text looked like this:
"|kemba, kha regent|legendary|creature||cat cleric|&^^/&^^^^|{^WWWW}|at the beginning of your upkeep, put a &^^/&^^ white cat creature token onto the battlefield for each equipment attached to @.|"
I went hunting for cells that cared about the body text. Specifically, I used a Python script to take the lists of activations of each cell over time and isolated those cells whose activations had a high correlation coefficient with a step function that goes from 0 to 1 at the index where the body text begins. I recorded the best 15 candidates. I found several cells whose activations indicate that they serve as "regulator" cells, cells responsible for keeping the network on track.
Here is a graph of the activations of the cells in question as they move through the input text. You can click on the legend to hide or show different activation patterns.
Take for example Cell #843, that is, the 334th cell in the second layer of the network This cell outputs negative values when looking at characters outside the card body and positive values inside the body. When it is inside the body, its outputs tend towards zero when we reach the end of a word or the end of a sentence, and then settles at/around zero when we reach the end of the body text. So, in short, it reports "Are we inside a word in the body text?".
Another is Cell #772, that outputs zeroes whenever we are inside of a dependent clause (i.e. "At the beginning of your upkeep, put a &^^/&^^ white cat creature token onto the battlefield for each equipment attached to @.").
Some combination of cells like these are responsible for determining whether we have concluded the text of an ability in a card. If we're at the end of a word and at the end of a chunk of ability text, and the card has gone on long enough, that would be a safe point to stop.
I'm sure if I kept looking I could find one or more cells on the third layer that make the call to output a "|" and terminate the body based on the activations of these earlier cells. They have to be in there somewhere.
Anyway, this is definitely a good start towards deciphering what's going on inside the network as we're running it, so that's exciting.
EDIT: If you're moving your mouse over the graph and you see a "C", that's because I had to replace the commas with "C"s to fit everything in comma-separated value format.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Another way to improve the quality of training may be to scramble the mana costs of monocolored cards. [111RR could be presented as R1R11, 1R11R, or any such permutation.] This would entirely take away the network's crutch of looking at the first (or final) colored mana symbol. By promoting more careful reading of *all* mana symbols, it may help generate more accurate effects for multicolored cards, and even monocolored cards with heavy color weights.
I just wanted to say that this is awesome! Can't wait to see more neurons, especially the ones that read the natural number format.
I have not looked at the neuron extraction code yet. I'm planning to spend the afternoon cleaning up my data analysis scrips and hopefully (finally) making some nice Weka datasets out of the big 10MB dumps so we can see where we are statistically.
Has you padding experiment yielded any interesting results? Another possible thing for me to do is to look at the lua code some more and see if I can figure out where it's doing the chopping based on seq_length, and how hard it would be to change that to look for a certain character instead.
And I halted the padding experiment yesterday. It's possible that the results are cleaner on average, and in any case, it's definitely something we should be doing, but it didn't solve the sequence length problem (but now we know how to fix that). I also need to go back and modify the training code so it doesn't actually train on the padding (as that's a waste of time and resources, because you end up with neurons whose sole purpose in life is to count the number of spaces to ensure that there is always enough padding). Next time the training will go much faster because I won't have to waste that time.
By the way, I observed something interesting. Here's a heatmap of the activations. I think I didn't save the third layer (whoops!), I'll have to go back and get that, which is why there are only 1024 cells in this graph).
But here's the interesting thing, notice how you can see a huge difference between layer one, the layer closest to the input, and layer 2. The first layer is very light colored, indicating that it doesn't strongly activate on anything. And the second layer is lighting up all the time. I think what's happening is that the first layer is taking in the raw data and probably echoing it on a regular basis.
"Oh, don't forget this is a creature!"
"She's legendary as well. And a Kha, whatever that means!"
"And white! A white Cat Cleric!"
Et cetera. The second layer, as you saw from the activation patterns I posted, is probably doing computation on the information in the abstract. It doesn't see "c r e a t u r e", it sees a signal indicating "this is a creature". Then in the third layer it all comes back together to do the prediction, which at the output layer is a 61(?) length vector, one for each potential character, with numbers indicating which character is most likely to happen next.
It's interesting that there are very few activations around the mana cost. Note the light colored gap around timesteps 50 to 69. Only a very small number of nodes actually worry about it. I think that's because if all it does is read the first colored mana symbol and count the total number of mana symbols for CMC, it doesn't need a lot of brain power, and it only dedicates a small number of cells to the task. The supertypes, types, and subtypes, meanwhile, get plenty of activity, if only because they are key determinants of the body text.
The majority of cells are concerned with the body text. There are some interesting trends there.
* There's a sudden drop off in activity around timestep 100, at the comma of "at the beginning of your upkeep,". I think that's because the network knows that it has the timing restriction and now anything could follow so it waits for additional information to pour in.
*Another striation appears right after "put a &^^/&^^ white cat creature token", because I think the following "onto the battlefield" is so predictable, there's not a lot of thinking going on about it.
*And then a third striation appears in the clause "for each equipment attached" and it pauses because like at timestep 100 it doesn't know who the equipment has to be attached to.
So really, at the second layer, it's reading the body text like
A t beg o y upk
P a &^^/&^^ W cat
f e equip att-ed
to @
And it pays less attention to the pieces that are missing from that because it assumes it already knows what they are (like how you and I read though documents very quickly, we skip over the irrelevant bits). That's my hypothesis, anyway.
I would so love to see that.
EDIT: Sorry if the heatmap is hard to read. I don't have much experience with rendering this much data, lol.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
False Sage
3U
Planeswalker - Phanta
+2: Draw X cards, where X is the number of creature cards in your graveyard.
-3: Put up to four target creature cards from your graveyard on the bottom of your library.
-6: you get an emblem with "at the beginning of your upkeep, target opponent sacrifices a creature."
#It's not balanced at all, and probably should have some black in the cost, but I like the consistent focus on creature cards. Oh, and a properly used "X".
Javida Napules
3RR
Planeswalker - North
+1: Javida Napules becomes a copy of target creature until end of turn.
-X: Put X +1/+1 counters on Javida Napules.
-4: You get an emblem with "Whenever Javida Napules attacks,put a 6/6 colorless Chantent warrior creature token with flying onto the battlefield."
3
#This is.. a very unusual card, mechanically speaking.
EDIT: I just realized that emblem doesn't work as written. Javida would take on the name of the creature she copies, and the emblem would never trigger when she attacked. But I like the idea all the same, lol.
I'll keep y'all posted as to how everything goes.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
That's a beautifully designed planeswalker, to be honest. It's particularly interesting in that using the ultimate is useless if doing so uses up the planeswalker, and also in that the second ability is usually not useful, but sometimes VERY useful. (And actually, now that I think about it further, it seems that a -2 activation would not uncommonly make sense on the turn you play it...)
To be fair, an awful lot of the time, it generates planeswalkers with abilities that might as well say "+0: You may rearrange the cards in your hand.". It could use a lot of work.
For that reason, I'm about to start an experiment to generate a feeder network for planeswalkers. Something to generate inputs to help train the big network.
Oh? I suppose you're right. I just wasn't sure if the change in name would affect anything. Well, even if it did, we could reword the first ability to say "except her name is still Javida Napules".
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
It might be relevant since sets and blocks often share mechanics, and the network might learn to check all the versions of a mechanic within a set to better distinguish a mechanic, and not confuse it as often with mechanics from other sets.
It might even be useful to teach the network about color, since it may learn that only certain sets like to break the color pie or use lots of multi-color cards.
I'm not sure what it might learn, but it might be useful for it to notice that some cards are repeated through multiple sets. Perhaps it would just come to think it can make copies of that card and treat it as new output?
Another thing I thought of was maybe it would be a good idea to try to teach the network about mechanics somewhat separately from names, by feeding it cards with the names stripped out of the top-line just for being noted to be a unique (or not unique for reprinted cards that are mechanically identical), and sub-types similarly isolated out, and any time subtypes or the creature's name (or other creatures' names) is referenced in the card text, the reference is linked directly, so the network doesn't have to distinguish those aspects on it's own, to teach it about the mechanics of cards, rather than spend learning cycles on name generation of often nonsensical names from the actual card game itself, and let it focus on the mechanics and color pie and card types and such?
Also, linking cards by set, eventually you might be able to tell the card to create a set?
Also, does the network recognize card rarity, and that such sometimes changes between sets, and that complexity in more recent sets is related to rarity? Could you then tell it to produce a set 'older' than the oldest sets, and have it make an exaggerated style of cards similar to the earliest cards of the game, and then tell it to create a 'newer' set, made more like how cards are now produced, and it would even include appropriate numbers of reprinted cards potentially rarity shifted in the set?
I honestly think that set level thematic connections are far beyond our capabilities at this point, because we're training the network to think about cards individually, in a vacuum. Set design requires long-term planning, and long-term planning is still an open problem in the machine learning community. However, the plan is to use scripts to drive the network to create sets. For instance, I fire up the network and prime it with a fictitious ability word "milk -" and it comes up with..
"Milk - if you would draw a card and you have no cards in hand,"
It just invented that on the spot. Now let's see what it does with it. Put it on a creature and I get..
"Milk - if you would draw a card and you have no cards in hand, THIS gets +2/+2 and gains flying until end of turn"
And I ask it to make an artifact/enchantment with Milk and I get
"Milk - if you would draw a card and you have no cards in hand, lose 2 life and draw an additional card."
"Milk - if you would draw a card and you have no cards in hand, you may put a 1/1 white Construct artifact creature token with first strike onto the battlefield."
In this way, I can populate custom-made sets with entirely machine-invented mechanics. That I think is the best way forward towards creating coherent sets.
EDIT: For those of you who would be interested to know, the planewalker generation script is looking very good. The names are... interesting (e.g. "Alcesimarchus, Skinny Prophet" and "Volusena the Magnificent High Senator"), but then again, that's not overly important. The important thing is that the abilities match the colors and the loyalty costs are scaled according to the costs of the spells that I stole the abilities from. Right now I'm just conjuring up monocolored planeswalkers. Anyway, I'll see about generating a corpus of them and training a feeder network, though I probably won't start training until tomorrow afternoon or evening.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Artwork for card:
3UB
Planeswalker - Phanta
+1: Each player puts the top three cards of his or her library into his or her graveyard.
-5: Draw X cards, then discard X cards, where X is the number of creature cards in all graveyards.
-7: You get an emblem with "at the beginning of your upkeep, target opponent sacrifices a creature."
3
Probably unbalanced as hell, but I like the concept.
This actually seems really, really weak. 5 mana for 3 starting loyalty, his + ability doesn't provide any sort of card advantage or board impact, his -5 ability (meaning it takes two turns of +ing to use, making it basically an ultimate) doesn't even provide card advantage and only gives you filtering. I think this suite of abilities/loyalty would be fine at THREE mana (see Ashiok, Nightmare Weaver who I think is still stronger than this).
Currently Playing:
Legacy: Something U/W Controlish
EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
I think it might be interesting if all of the abilities were mirrored, especially the middle ability.
It's funny. Even though on one level I understand all this as nothing more than a complex arrangement of mathematical transformations, I can never dispel the great mystery of it all, of something being greater than the sum of its parts. Sometimes it feels like I'm looking into a mirror.
Anyway, planeswalkers are a good target, same with cards with multipart abilities like kicker, because the network has to stay coherent across the whole card body, and if we can make improvements on those kinds of cards, a lot of other good things will follow on their own. Of course, we should be realistic about the results. For example, through priming the network with its own output, I got this planeswalker:
Sassaku, Dorn Lully
3WW
Planeswalker - Ajani
+1: Until end of turn, whenever a creature attacks, if it's enchanted, it gets +&^/+&^ until end of turn.
+1: Search your library for any number of cards with the same name as target artifact or enchantment card and put it onto the battlefield tapped. then shuffle your library.
-5: Reveal any number of enchantment cards in your hand, then draw that many cards.
3
It's consistent, but remember that there was some human-driven filtering in the process because I had to take the output after each ability and feed it back in, and I had several choices at each step. For the second ability, many of the abilities had something to do with creatures, attacking, or enchantments, but the network has very wide latitude in terms of what it produces. Alternatives for the second ability included...
* destroy target artifact or enchantment.
* target creature gets +&^/+&^ until end of turn. untap all creatures you control.
* each player sacrifices two attacking creatures.
There were also a number of other choices that flooded in regarding life gain (which is logical because the network chose to make a white planeswalker). And on top of that, a smaller number of abilities that were totally unrelated. All of those outcomes were equally likely. I'll also note that while there were enchantment-related cards for the third ability (as the network was influenced by its first two choices), there were also a lot of abilities that granted the player an emblem, and the text inside the emblem could be dramatically unrelated.
But this was for a general-purpose network that was only ever exposed to 59 planeswalkers ever, so that's not a bad start!
We'll have to see how things turn out with the feeder network which will generate planeswalkers exclusively. I plan on setting up the training script so that it's at least somewhat likely to produce planeswalkers with thematic trends (e.g. if the first ability cares about lands or creatures, the second ability might also care about lands or creatures). My hope is to sway the feeder network to reuse or reinterpret elements of the first ability it generates when it conjures up the second. Next, the feeder network will only consider monocolored planeswalkers, because I want to see how well it picks up on the monocolored relationships in the absence of multicolored cards. Finally, this will also be a test of how well padding works for eliminating cross-contamination. Several experiments wrapped up into one. If this is successful, then, as hardcast_sixdrop and others have suggested, we can use feeder networks like this to expand the corpus of cards for training a big network. I'll let you know how it all goes.
EDIT: I plan on getting some very cool data analytics out of this one. Pretty pictures and all that.
EDIT(2): 7 hours later from the last edit, and training is a go! Parameters are for this run:
nohup /opt/torch/distro/install/bin/th train.lua -data_dir data/planeswalkers/ -learning_rate_decay_after 10 -rnn_size 512 -num_layers 2 -dropout 0.1 -max_epochs 30 -seq_length 400 -gpuid -1
I generated 8000 planeswalkers. Estimated completion time, 8 hours or so. I kept the network fairly small so it would be easier to gather data on the activities and purposes of individual cells. That and we only have one card type. This should be fun.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
It looks to me like this is a great test of how the RNN is doing! Most of the color mismatches cards are hilariously unprintable, and a lot of the cost mismatches are too. When the RNN remembers where it started though, almost all of them are great! I think this might be something to integrate into the main RNN.
This also points out how poorly the RNN understands multicolor cards. For all but one of these multicolor cards, it loses data about the cost. The one time it gets this right, the cards is incredibly short:
(I love how appropriate that title is!)
For the feeder network, I hope you're only including sorcery-speed effects. That last ability is useless on a planeswalker.
I'm working on my Python codebase. It's gotten much better. After much hacking, head scratching, pulling out of hair, staring off into space, moving code into and out of modules, drinking of beer, drinking of caffeine, and other programming-related activities, I've managed build something that's pretty usable. It's not done yet but it's getting there. I actually fixed a bunch of broken mana costs that I hadn't noticed before when I pulled all the mana symbol handling code out into a library instead of duplicating it badly everywhere.
For anyone out there trying to parse, modify, transform, analyze, or make forum posts containing data in my format, I highly suggest you take a look at the code on github. At the very least the mana cost and unary number handling routines in utils.py should be helpful. If you have any problems, I'll check issues posted on github super frequently, so that's probably the best way to communicate.
Next up I plan to use my data processing library to reencode all of the cards with the mana costs scrambled. It almost works out of the box right now, and it should be finished tomorrow evening.
Unfortunately I don't have any new cards to post, but here's some statistics. Essentially free to get using the code in datamine.py, the hard part was doing the printing.
Real Cards:
10 MB dump at temp 0.8:
I'm going to have to delve in to the numbers you put out at some point in the near future. Horror is actually rather odd, because the network is not far off the mark for the distributions of other creature types. Like 2.2% of creatures are beasts in real Magic, and 1.8% of creatures are beasts in the dump. Maybe horror is riding on the coattails of human. Human is a popular creature type in all colors and, lexicographically, horror is near to human and none of the other creature types that start with the letter H are commonly used in Magic (my apologies to horse tribal fans). If the network starts with an "h" in the subtype field for a black creature but doesn't want "human", it would go for "horror". That gives horrors a statistically significant advantage.
This kind of information is immensely useful so we can see what the network learns and what it does not. Sometimes it might learn things that we didn't anticipate, like that. That's exactly the kind of thing I'm interested in knowing. For the most part, the distributions will resemble real Magic; it's all about figuring out where they diverge and why.
By the way, my latest network is still in training (epoch 21/30), and while I'll wait at until tonight so I have time to do diagnostics, this first run has already started giving some interesting results. For example, I named the planeswalkers (some with long titles, some with sort names) so I could see if it could extract and remember the first name of the planeswalker for use in the subtype line. It often remembers the name correctly. What's interesting is that sometimes it doesn't.
Examples of complete recall:
Arav the Critical Stormlord -> Arav
Vassenia -> Vassenia
Ameretat -> Ameretat
Caesulena -> Caesulena
Examples of partial recall:
Chavali -> Chavi
Pitri -> Pitti
Nigilia -> Nigidia
Turbalio -> Turullia
Manishie, Exquisite High Cleric -> Maloney
Examples of "I'm sorry, I wasn't listening to you. What was your name again?":
Caesia, Anxious Specialist -> Barbatia
Sarad -> Prem
I know that the names of cards, if we choose to even include names at all in later versions of the network, are superfluous, but this was a good way to test the network's recall abilities. I'm actually not surprised by the mess-ups because most of the network's attention is devoted to coming up with the abilities (the majority of the text). While it's coming up with the name, ideas of what the planeswalker is going to do are already stirring, and I think it loses focus on details like matching the names. This being said, researchers have shown that you can teach an LSTM network to solve mathematical expressions, which involves carrying numbers around in its head for very long periods of time, so the network is perfectly capable of remembering a name. It's just that we have a relatively small network and trade-offs have to be made to maximize performance on as much of a card as possible.
Next, I'll also note that while training is not done, I've found that the network can be flexible with the number of abilities that a planeswalker has. They usually have three, but sometimes it will give them two or four (but never just one). The ability texts are almost always coherent, even at higher temperatures. I will note, however, that it occasionally messes up "X"s still. It's allowed to have an X in the ability text without having an X in the loyalty cost if it has a clause explaining what the X means, but sometimes it forgets to add in the explanation saying "where X is Y".
Again, the purpose of training the feeder network is not to deliver the final product to a player, but to give the big network more training on planeswalkers. With that in mind, I'm happy so long as the cards consistently resemble proper planeswalkers, even if they have imperfections here and there. We'll filter the results and then we can use what remains to train another network.
Anyway, just a few examples from the not-quite-done network:
Minucia
1WW
Planeswalker - Minucia
+1: Target permanent you control gains protection from artifacts or from the color of your choice until end of turn.
+1: Exile target creature you control. Return that card to the battlefield under its owner's control at the beginning of the next end step.
-7: Each player shuffles his or her hand, graveyard, and permanents he or she owns into his or her library, then draws seven cards. Each player's life total becomes 7.
3
Sagaristio the Investigeticelarr
2RR
Planeswalker - Martinus
+1: Put two 1/1 red Warrior creature tokens onto the battlefield.
-2: Target creature gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard.
-5: You get an emblem with "At end of combat, destroy each creature that blocked or was blocked this turn."
4
EDIT: FYI, training completed earlier and I started sampling. I'll do some analysis on the resulting cards. I might also get some LSTM cell activation dumps to figure out what cells do what (e.g. "name generation subregion", "emblem ability generation subregion", etc.)
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Sagaristio is... quite reasonable. 4 mana to spit out two 1/1 tokens a turn might be too good (cf. original Elspeth), but the other two abilities aren't quite as good as Elspeth's.
Note that the two last abilities have quite a lot of synergy, and the 'bomb' ability is easy to pull off, but not overtly powerful. (It gets a lot better if you can keep Martinus around.)
Minucia looks fine, though she should probably be White-Blue. (Entire wheelhouse is White-Blue, and is very reminiscent of Venser.)