Take a look at the /MagicGeneratorDiscussion or /GeneratorLimited to see the silly cards people have received already, and their attempts to make up card name, type and mana costs for them. And on /TypeFourGenerated, people are not just making up these details, but playing games using these Generated cards!
The Magic Card Generator source may be seen below. It is available under the CreativeCommons?[Attribution-NonCommercial-ShareAlike 2.0 UK] license: others are free to create works based on it, provided they are distributed under the same license and not distributed for profit without AlexChurchill's prior permission. The output of the generator is automatically and randomly created, and no copyright is asserted over the Generator creations. Magic: the Gathering is a trademark of Wizards of the Coast.
The generator is under constant development. Notific of bugs is appreciated, to AlexChurchill by email or Wiki.
References Elsewhere
Seems more appropriate here than on the card discussion page: This generator is obviously getting around a bit, as I've just seen it mentioned in [a StarCityGames article...]
Wow, cooool!! :) Let the disjointed, overpowered madness continue!
I thought you guys might like to know that [Magic Lampoon]'s latest joke spoiler contains a card that's an obvious reference to your generator: Royal Pain in the Assassin BB Sorcery Choose the first one - destroy target tapped creature; or untap target blue artifact that came into play this turn; or enchanted Minotaurs you control gain protection from lands until end of turn. --Ultros, from forum.cmc.redleaf.de
Cool - thanks! :) By comparison, here's a genuine Generated instant that reminded me of this:
Instant (red) Choose one: unless any player pays X life, where X is the number of basic land types among lands you control, you reveal the top Y cards of your library, where Y is the number of enchantments any player controls. you put all sorcery cards from among them into hand and put the rest on the bottom of your library in any order and ~this~ deals 2 damage to target creature or player. Creatures damaged this way can't be regenerated. . If a creature damaged this way would be put into a graveyard this turn, remove it from the game instead. ; or unless an opponent sacrifices a creature, copy target Arcane spell and choose new targets for the copy
As well as the official discussion page, there are a bunch of other threads online discussing the creations of this generator. Those who enjoy reading people's reactions to the zany creations may find some threads here: [1][2][3][4][5][6][7][8][9][10]
In fact, people are playing a crazy game using the Generator on [this thread]. They each hit the Generator for one card and are forced to play it, generating a random colour and P/T if applicable, and having 5 mana of any colour available each pair of turns (from untap to untap) for activated abilities. No libraries or graveyards, and cards "drawn" are in hand but only usable to pay discard costs (all Generated things are considered to be tokens). Predictably, it's come out rather silly. So I rigged up an alternate shell around the generator to create creature P/Ts?, so people can play a similar game here on /TypeFourGenerated. See that page for the ensuing silliness. There are also Type Four games running [here]. --AC
On the tiny Magic forum Ultros hangs out on, there's a card making thread running where the previous round's winner posts a criteria for the card to be made for the next round, and everybody makes something for it. On the last one he did, he had them get a generated card that they liked, and clean it up. That post is here: [11]
maybeTap ::= _maybeTap##tapCostUsed? _maybeTap_used ::= nonmanacost _maybeTap_nothing2 ::= _maybeTap##playerPaying _maybeTap_notyou ::= nonmanacost _maybeTap_you ::= _maybeTap##myType _maybeTap_ctr ::= T <tapCostUsed?::=used> _maybeTap_art ::= T <tapCostUsed?::=used> _maybeTap_ench ::= nonmanacost _maybeTap_land ::= T <tapCostUsed?::=used> _maybeTap_unknown ::= nonmanacost // **** must reset these flags at start of each cost maybeSacThis? ::= _maybeSacThis?##thisStillInPlay? _maybe[SacThis no]? ::= nonmanacost _maybe[SacThis yes]? ::= _maybeSacThis?##sacCostUsed? _maybe[SacThis used]? ::= nonmanacost _maybe[SacThis nothing2]? ::= _maybeSacThis?##playerPaying _maybe[SacThis notyou]? ::= nonmanacost _maybe[SacThis you]? ::= "Sacrifice ~this~" <sacCostUsed?::=used> <thisStillInPlay?::=no>
Modifying Permanents
creaturepropmodifier ::= creaturepropmodifier##myColour creaturepropmodifier_white ::= get verbsuffix##myPluralSuffix? space ptchange | gain verbsuffix##myPluralSuffix? space grantablecreaturekeywordability | get verbsuffix##myPluralSuffix? space ptchange | gain verbsuffix##myPluralSuffix? space grantablecreaturekeywordability | permanentpropmodifier | maybegainsnewcreatureability##myNestedness | "can't attack or block" | "can't attack" | "can block an additional creature" | "can block any number of creatures" creaturepropmodifier_blue ::= permanentpropmodifier | get verbsuffix##myPluralSuffix? space ptchange | gain verbsuffix##myPluralSuffix? space grantablecreaturekeywordability | maybegainsnewcreatureability##myNestedness | "can't be blocked" | "can't be blocked except by " noncombatqualifiedcreatures | become verbsuffix##myPluralSuffix? space newcreaturetype creaturepropmodifier_black ::= permanentpropmodifier | get verbsuffix##myPluralSuffix? space ptchange | gain verbsuffix##myPluralSuffix? space grantablecreaturekeywordability | maybegainsnewcreatureability##myNestedness | "can't block " | "can't be blocked except by " noncombatqualifiedcreatures creaturepropmodifier_red ::= permanentpropmodifier | get verbsuffix##myPluralSuffix? space ptchange | get verbsuffix##myPluralSuffix? space ptchange | get verbsuffix##myPluralSuffix? space ptchange | gain verbsuffix##myPluralSuffix? space grantablecreaturekeywordability | maybegainsnewcreatureability##myNestedness | "can't block" | "can't be blocked by more than one creature" creaturepropmodifier_green ::= permanentpropmodifier | get verbsuffix##myPluralSuffix? space ptchange | get verbsuffix##myPluralSuffix? space ptchange | get verbsuffix##myPluralSuffix? space ptchange | gain verbsuffix##myPluralSuffix? space grantablecreaturekeywordability | maybegainsnewcreatureability##myNestedness | gain verbsuffix##myPluralSuffix? space landmanaability creaturepropmodifier_artifact ::= permanentpropmodifier | get verbsuffix##myPluralSuffix? space ptchange | gain verbsuffix##myPluralSuffix? space grantablecreaturekeywordability | maybegainsnewcreatureability##myNestedness | "can't be blocked except by " noncombatqualifiedcreatures | become verbsuffix##myPluralSuffix? space newcreaturetype
numberedcreaturepropmodifier ::= get verbsuffix##myPluralSuffix? space numberedptchange | get verbsuffix##myPluralSuffix? space numberedptchange | gain verbsuffix##myPluralSuffix? space numberedcreaturekeywordability pluralnumberedcreaturepropmodifier ::= <myPluralSuffix?::=s> numberedcreaturepropmodifier <myPluralSuffix?::=nothing>
noncreaturepermanentpropmodifier ::= noncreaturepermanentpropmodifier##myColour noncreaturepermanentpropmodifier_white ::= beverb##myPluralSuffix? " white" | gain verbsuffix##myPluralSuffix? space protection##myAbilityContext? | maybegainsnewnoncreatureability##myNestedness | noncreaturetypechangemodifier noncreaturepermanentpropmodifier_blue ::= beverb##myPluralSuffix? space singlecolourphrase | maybegainsnewnoncreatureability##myNestedness | noncreaturetypechangemodifier | "can't be the target of " qualifiedspellsorabilities noncreaturepermanentpropmodifier_black ::= beverb##myPluralSuffix? " black" | gain verbsuffix##myPluralSuffix? space grantablepermanentkeywordability | maybegainsnewnoncreatureability##myNestedness noncreaturepermanentpropmodifier_red ::= gain verbsuffix##myPluralSuffix? space grantablepermanentkeywordability | maybegainsnewnoncreatureability##myNestedness noncreaturepermanentpropmodifier_green ::= beverb##myPluralSuffix? space singlecolourphrase | maybegainsnewnoncreatureability##myNestedness | noncreaturetypechangemodifier | "can't be the target of " qualifiedspellsorabilities noncreaturepermanentpropmodifier_artifact ::= gain verbsuffix##myPluralSuffix? space grantablepermanentkeywordability | maybegainsnewnoncreatureability##myNestedness | noncreaturetypechangemodifier | "can't be the target of " qualifiedspellsorabilities
permanentpropmodifier ::= permanentpropmodifier##myColour permanentpropmodifier_white ::= beverb##myPluralSuffix? " white" | gain verbsuffix##myPluralSuffix? space protection##myAbilityContext? | maybegainsnewnoncreatureability##myNestedness permanentpropmodifier_blue ::= beverb##myPluralSuffix? space singlecolourphrase | maybegainsnewnoncreatureability##myNestedness | typechangemodifier | "can't be the target of " qualifiedspellsorabilities permanentpropmodifier_black ::= beverb##myPluralSuffix? " black " | gain verbsuffix##myPluralSuffix? space grantablepermanentkeywordability | maybegainsnewnoncreatureability##myNestedness permanentpropmodifier_red ::= maybegainsnewnoncreatureability##myNestedness permanentpropmodifier_green ::= beverb##myPluralSuffix? space singlecolourphrase | maybegainsnewnoncreatureability##myNestedness | typechangemodifier | "can't be the target of " qualifiedspellsorabilities permanentpropmodifier_artifact ::= gain verbsuffix##myPluralSuffix? space grantablepermanentkeywordability | maybegainsnewnoncreatureability##myNestedness | typechangemodifier typechangemodifier ::= beverb##myPluralSuffix? space aifsingular##myPluralSuffix? usefulnoncreaturepermanenttype myPluralSuffix? " in addition to " itpossessive##myPluralSuffix? " other types"
noncreaturetypechangemodifier ::= beverb##myPluralSuffix? space aifsingular##myPluralSuffix? usefulnoncreaturepermanenttype myPluralSuffix? " in addition to " itpossessive##myPluralSuffix? " other types" | beverb##myPluralSuffix? space aifsingular##myPluralSuffix? "creature" myPluralSuffix? " with power and toughness equal to " itpossessive##myPluralSuffix? " converted mana cost in addition to " itpossessive##myPluralSuffix? " other types" | beverb##myPluralSuffix? space aifsingular##myPluralSuffix? powertoughness " creature" myPluralSuffix? " in addition to " itpossessive##myPluralSuffix? " other types"
timeorcostmodifier ::= "as though they had flash" | "without paying their mana cost" | "by paying " quote nocardcosttext quote " rather than paying their mana cost" costmodifier ::= "without paying their mana cost" | "by paying " quote nocardcosttext quote " rather than paying their mana cost" costmodification ::= integeronethroughfour " more" | "up to " integeronethroughfour " less" | "an additional " quote nocardnonmanacost quote
maybegainsnewnoncreatureability_true ::= noncreaturepermanentpropmodifier maybegainsnewnoncreatureability_false ::= gain verbsuffix##myPluralSuffix? space quote pushAllFlags? <allowCIP::=false> <myAbilityContext?::=grantable> <myNestedness::=true> noncreatureability <myNestedness::=false> popAllFlags? quote
Trigger events
// some entries have _ps in their name. This indicates it may leave myPluralSuffix? in a non-blank state. // For a non-_ps thing to call a _ps thing, it must blank myPluralSuffix? afterwards // All _ps things must not call any subfunctions that could reference myPluralSuffix? in unsafe ways
event ::= <verbMood::=indicative> <passiveSubject::=singular> pushAllowCIP? event_ps##myColour popAllowCIP? <passiveSubject::=singular> <myPluralSuffix?::=nothing> event_ps_white ::= playerevent | playerevent | combatevent | aoroneormore_ps colourtarget space zonechangeverb event_ps_blue ::= playerevent | playerevent | aoroneormore_ps optionallyqualified_permanent space becometargeted setTargetPermanent?##myPluralSuffix? | aoroneormore_ps optionallyqualified_permanent space bebounced | aoroneormore_ps optionallyqualified_artifact space zonechangeverb | "a " optionallyqualified_spell space becountered event_ps_black ::= playerevent | playerevent | aoroneormore_ps optionallyqualified_creature space bedamaged setTargetCreature?##myPluralSuffix? | aoroneormore_ps optionallyqualified_creature space regenerateverb setTargetCreature?##myPluralSuffix? | aoroneormore_ps optionallyqualified_creature space gotograveyard event_ps_red ::= playerevent | combatevent | aoroneormore_ps optionallyqualified_creature space bedamaged setTargetCreature?##myPluralSuffix? | aoroneormore_ps optionallyqualified_permanent space becometargeted setTargetPermanent?##myPluralSuffix? | aoroneormore_ps optionallyqualified_artifact space zonechangeverb | aoroneormore_ps optionallyqualified_land space zonechangeverb event_ps_green ::= playerevent | playerevent | aoroneormore_ps optionallyqualified_creature space zonechangeverb | aoroneormore_ps optionallyqualified_creature space regenerateverb setTargetCreature?##myPluralSuffix? | aoroneormore_ps colourtarget space zonechangeverb | "a " <passiveSubject::=singular> optionallyqualified_spell space becountered event_ps_artifact ::= playerevent | aoroneormore_ps colourtarget space zonechangeverb // <passiveSubject::=singular> "a " qualifiedpermanent space permanentverb setTargetOnePermanent? | <passiveSubject::=singular> "a " qualifiedcreature space creatureverb setTargetOneCreature? | permspecifiedplayer{myPlr}{passiveSubject} space playerverb
aoroneormore_ps ::= "a " <passiveSubject::=singular> <myPluralSuffix?::=nothing> | "a " <passiveSubject::=singular> <myPluralSuffix?::=nothing> | "a " <passiveSubject::=singular> <myPluralSuffix?::=nothing> | "one or more " <passiveSubject::=s> <myPluralSuffix?::=s>
combatevent ::= "a " optionallyqualified_creature space combatverb setTargetOneCreature? | "one or more creatures " combatverb setTargetMultiCreatures?
// ** if I assigned possessive_playeryou to "your" (etc), would it evaluate the assignments contained in definition of playeryou etc? // ** using a version that definitely will
doverb_playeryou ::= do doverb_playeranopp ::= does doverb_playeranyplr ::= does doverb_playereachplr ::= does doverb_playereachopp ::= does doverb_playertgtopp ::= does doverb_playertgtplr ::= does doverb_playerallplrs ::= do doverb_playeryouropps ::= do doverb_that_player2 ::= does doverb_those_players2 ::= do haveverb_playeryou ::= have haveverb_playeranopp ::= has haveverb_playeranyplr ::= has haveverb_playereachplr ::= has haveverb_playereachopp ::= has haveverb_playertgtopp ::= has haveverb_playertgtplr ::= has haveverb_playerallplrs ::= have haveverb_playeryouropps ::= have haveverb_that_player2 ::= has haveverb_those_players2 ::= have
beverb_playeryou ::= are beverb_playeranopp ::= is beverb_playeranyplr ::= is beverb_playereachplr ::= is beverb_playereachopp ::= is beverb_playertgtopp ::= is beverb_playertgtplr ::= is beverb_playerallplrs ::= are beverb_playeryouropps ::= are beverb_that_player2 ::= is beverb_those_players2 ::= are
beverb_subjunctive ::= be beverb_indicative ::= beverb##passiveSubject beverb_singular ::= is beverb_nothing2 ::= is beverb_s ::= are
player[SecondRef you]? ::= you player[SecondRef notyou]? ::= "he or she" player[VerbSuffix you]? ::= nothing player[VerbSuffix notyou]? ::= s
Power and Toughness
ptexpression ::= power | power | toughness | "both power and toughness" | "total power and toughness" numericalptexpression ::= power | power | toughness | "total power and toughness" powertoughness ::= integeronethroughfour{lastchosenP} slash lastchosenP | integeronethroughfour{lastchosenP} slash lastchosenP | integeronethroughfour slash integeronethroughfour
// YAY FOREACH - no more worrying about intervening Xvar overwrites, at least not in this section chooseptnumbers ::= <ptnum1::=integeronethroughfour> pt2eqpt1 | <ptnum1::=integeronethroughfour> pt2eqpt1 | <ptnum1::=integeronethroughfour> <ptnum2::=integeronethroughfour> | <ptnum1::=dynamicinteger_noXphrase> pt2eqpt1 pt2eqpt1 ::= <ptnum2::=ptnum1>
numberedptchange ::= <tmp##param_discrete##that_many::=numberedptchangeproper> <tmp##that_many##that_many::=numberedptchangethatmany> tmp##param_discrete##that_many // can say "sacrifice a creature. target creature gets +X/+X, where X is the sacrificed creature's power", but not "sacrifice any number of lands. target creature gets +X/+X, where X is that many". Must say "+1/+1 for each one". (Ideally would be "for each creature sacrificed this way" --or better yet "sacrifice X creatures, then do something with X"--, but...)
colourphrase ::= colourword | colourword | colourword | colourword | colourword | "non" colourword colourword ::= white | blue | black | red | green | white | blue | black | red | green | multicoloured | colourless justcolourword ::= white | blue | black | red | green
newcolour ::= white | blue | black | red | green | white | blue | black | red | green | justcolourword " and " justcolourword | colourless singlecolourphrase ::= white | blue | black | red | green | white | blue | black | red | green | colourless | "the colour of your choice" definitecolourphrase ::= white | blue | black | red | green | white | blue | black | red | green | colourless
manasymbol ::= W | U | B | R | G manasuccessor_W ::= U manasuccessor_U ::= B manasuccessor_B ::= R manasuccessor_R ::= G manasuccessor_G ::= W manapredecessor_W ::= G manapredecessor_U ::= W manapredecessor_B ::= U manapredecessor_R ::= B manapredecessor_G ::= R manasymbol_white ::= W manasymbol_blue ::= U manasymbol_black ::= B manasymbol_red ::= R manasymbol_green ::= G manasymbol_artifact ::= W | U | B | R | G hybridsymbol_white_1 ::= "(G/W)" hybridsymbol_white_2 ::= "(W/U)" hybridsymbol_white_3 ::= "(G/U)" hybridsymbol_blue_1 ::= "(W/U)" hybridsymbol_blue_2 ::= "(U/B)" hybridsymbol_blue_3 ::= "(W/B)" hybridsymbol_black_1 ::= "(U/B)" hybridsymbol_black_2 ::= "(B/R)" hybridsymbol_black_3 ::= "(U/R)" hybridsymbol_red_1 ::= "(B/R)" hybridsymbol_red_2 ::= "(R/G)" hybridsymbol_red_3 ::= "(B/G)" hybridsymbol_green_1 ::= "(R/G)" hybridsymbol_green_2 ::= "(G/W)" hybridsymbol_green_3 ::= "(R/W)" hybridsymbol_artifact_1 ::= "(W/U)" | "(U/B)" | "(B/R)" | "(R/G)" | "(G/W)" hybridsymbol_artifact_2 ::= "(W/U)" | "(U/B)" | "(B/R)" | "(R/G)" | "(G/W)" hybridsymbol_artifact_3 ::= "(W/B)" | "(U/R)" | "(B/G)" | "(R/W)" | "(G/U)"
Numbers
genericcounter ::= genericsmallcounter | genericsmallcounter | genericlargecounter genericsmallcounter ::= "the number of cards in " permspecifiedplayerpossessive " hand" | "the number of " qualifiedspells " cast this turn" | "the number of basic land types among lands " permspecifiedplayer " control" playerVerbSuffix | "the number of " countableproperty " among " myCardType? space permspecifiedplayer " control" playerVerbSuffix showsuffixes | "the number of poison counters " permspecifiedplayer{myPlr} space haveverb##myPlr | "the amount of " maybedefinitecolourphrase " mana in " permspecifiedplayerpossessive " mana pool" genericlargecounter ::= "the number of " qualifiedpermanents " on the battlefield" | "the number of " optionallyqualifiedcreatures " on the battlefield" | permspecifiedplayerpossessive " life total" | "the number of " noncontrolqualifiedpermanents space permspecifiedplayer " control" playerVerbSuffix countableproperty ::= "basic land types" <myCardType?::=lands> | "colours" <myCardType?::=creaturesorpermanents> | "card types" <myCardType?::=permanents> <suffixes::=reminder_permtypes>
genericforeachcounter ::= smallforeachcounter | smallforeachcounter | largeforeachcounter smallforeachcounter ::= " for each card in " permspecifiedplayerpossessive " hand" | " for each card in " permspecifiedplayerpossessive " graveyard" | " for each " qualifiedspell " cast this turn" | " for each basic land type among lands " permspecifiedplayer " control" playerVerbSuffix | " for each " countableforeachproperty " among " myCardType? space permspecifiedplayer " control" playerVerbSuffix showsuffixes | " for each poison counter " permspecifiedplayer{myPlr} space haveverb##myPlr largeforeachcounter ::= " for each " qualifiedpermanent " on the battlefield" | " for each " optionallyqualified_creature " on the battlefield" | " for each " noncontrolqualifiedpermanent space permspecifiedplayer " control" playerVerbSuffix countableforeachproperty ::= "basic land type" <myCardType?::=lands> | "colour" <myCardType?::=creaturesorpermanents> | "card type" <myCardType?::=permanents> <suffixes::=reminder_permtypes> reminder_permtypes ::= " (The card types are artifact, creature, enchantment, instant, land, planeswalker, sorcery and tribal)"
// could rework the lastDynamicInt? to use deep assign if we could be bothered dynamicinteger ::= integeronethroughfour{lastDynamicInt?} | integeronethroughseven{lastDynamicInt?} | integeronethroughfour{lastDynamicInt?} | integeronethroughseven{lastDynamicInt?} | useXvariable dynamicinteger_noXphrase ::= integeronethroughfour{lastDynamicInt?} | integeronethroughseven{lastDynamicInt?} | integeronethroughfour{lastDynamicInt?} | integeronethroughseven{lastDynamicInt?} | 1{lastDynamicInt?} <suffixes::=genericforeachcounter>
Xdefinition ::= ", where " Xvar " is " genericcounter Xdefinitionsmall ::= ", where " Xvar " is " genericsmallcounter inequality ::= " or less" | " or less" | " or less" | " or more" | " or more" | " or more" | nothing
pluralsuffix_0 ::= s pluralsuffix_zero ::= s pluralsuffix_1 ::= nothing pluralsuffix_one ::= nothing pluralsuffix_2 ::= s pluralsuffix_two ::= s pluralsuffix_3 ::= s pluralsuffix_three ::= s pluralsuffix_4 ::= s pluralsuffix_four ::= s pluralsuffix_5 ::= s pluralsuffix_five ::= s pluralsuffix_6 ::= s pluralsuffix_six ::= s pluralsuffix_7 ::= s pluralsuffix_seven ::= s pluralsuffix_X ::= s pluralsuffix_Y ::= s pluralsuffix_Z ::= s pluralsuffix_a ::= nothing pluralsuffix_all ::= s
inanyorder_0 ::= nothing inanyorder_1 ::= nothing inanyorder_2 ::= " in any order" inanyorder_3 ::= " in any order" inanyorder_4 ::= " in any order" inanyorder_5 ::= " in any order" inanyorder_6 ::= " in any order" inanyorder_7 ::= " in any order" inanyorder_X ::= " in any order" inanyorder_Y ::= " in any order" inanyorder_Z ::= " in any order"
nextcardinal_nothing2 ::= first nextcardinal_first ::= second nextcardinal_second ::= third nextcardinal_third ::= fourth nextcardinal_fourth ::= fifth
Stacks
// Golden rule of stacks in this generator: push commands are store-then-push; pop commands are pop-then-read
initstacks ::= <stacklevel::=u> push ::= <prevlevel##1##stacklevel::=stacklevel> <stacklevel::=1##stacklevel> pop ::= <stacklevel::=prevlevel##stacklevel>
pushAllFlags? ::= pushparams pushAllowCIP? pushplayer <stack##stacklevel::=mySpd> push <stack##stacklevel::=myPluralSuffix?> <myPluralSuffix?::=nothing> push popAllFlags? ::= pop <myPluralSuffix?::=stack##stacklevel> pop <mySpd::=stack##stacklevel> popplayer popAllowCIP? popparams
// The type, player, counter and creaturetype stacks don't blank the value of myType / myCounter / myCtrType? when pushed
pushMyType? ::= <stack##stacklevel::=myType> push popMyType? ::= pop <myType::=stack##stacklevel>
pushplayer ::= <stack##stacklevel::=myPlr> push <stack##stacklevel::=playerSecondRef?> push <stack##stacklevel::=playerVerbSuffix> push popplayer ::= pop <playerVerbSuffix::=stack##stacklevel> pop <playerSecondRef?::=stack##stacklevel> pop <myPlr::=stack##stacklevel>
pushcounter ::= <stack##stacklevel::=myCounter> push popcounter ::= pop <myCounter::=stack##stacklevel>
pushCtrType? ::= <stack##stacklevel::=myCtrType?> push popCtrType? ::= pop <myCtrType?::=stack##stacklevel>
// The suffixes stack blanks the current "suffixes" after pushing it
popparams ::= pop <param_spell::=stack##stacklevel> pop <param_creature::=stack##stacklevel> pop <param_colour::=stack##stacklevel> pop <param_continuous::=stack##stacklevel> pop <param_discrete::=stack##stacklevel> pop <myTarget::=stack##stacklevel>
// The allowCIP and colour stacks force a specified value when pushed
Definitely not being used due to being too obscure or swingy: (The output here is better if it's built from reasonably frequent Magic concepts. In general an effect has to have been on at least ten cards, preferably rather more.) Referring to cards from a particular expansion (a la MTG: Apocalypse Chime). Indestructability. Instant win/lose effects. Turn-control (MTG: Mindslaver) or mulligan (MTG: Serum Powder) effects. Dividing cards into piles. Taking extra turns. Subgames. Modal activated abilities (MTG: Atalya, Samite Master, MTG: Ulasht, the Hate Seed) or triggered abilities (MTG: Putrid Warrior, MTG: Orzhov Pontiff). Colour bleed spells (MTG: Vigor Mortis).
To Do
Known bugs I'm likely to fix:
Black keeps getting "you reveal cards from the top of your library until you reveal a card" effects.
Flip cards' flipped forms can have kicker costs, which are useless. Although it'd work if the kicker went on the first half.
Cards can have "When ~this~ comes into play, flip ~this~" which is fairly pointless. Or "When you control no permanents, flip ~this~" which is even more pointless.
"When ~this~ leaves play, target player may Sacrifice a permanent. If that player doesn't, distribute the sacrificed permanent's mana cost +3/+3 counters on..."
Similarly, "Sacrifice 3 Myr: each player gains the sacrificed creature's toughness life"
Not so much a bug as an unforeseen interaction. Global Enchantments can flip into Auras. Seed: 1037851922, if you're interested. --CH
I don't have too much of a problem with that. I'd treat it like MTG: Copy Enchantment: an enchantment already in play suddenly discovering it needs to enchant something. That came up in [my current game on the CMC forums]. The card-global variable enchanttype means that it can't switch what it enchants. --AC
OK, technically under the rules this doesn't work. But I suggest we play it as if it does work, until I fix it. --AC
"~this~ deals X damage to two target creatures with both power and toughness not equal to Y, where Y is the number of basic land types among lands you control, where Y is the number of red creature spells played this turn." No seed, sorry.
If you paid the kicker cost, ninjutsu 4
Known bugs I may not fix:
"target with-a-CMC-less-than-3 spell" should be "target spell with-a-CMC-less-than-3"; "from a permanent you control source" should be... what?? Not possible, I guess, and use "from a source you control" instead.
Creatures can have trample twice. And I should do something about the "All Slivers become Slivers", "All basic lands become lands" etc if I can.
Similarly, "any number of target creatures with flying get -3/-0 until end of turn and those creatures get -2/-0 until end of turn"
Guild mechanics can get generated on gold cards with only one of the guild's colours on. For example, transmute (the UB mechanic) can appear on cards that are WU, BR, or suchlike.
Is it a bug that so many cards being generated with so much rules text? There are few magic cards which have more than (say) three segments of rules text, and those that do tend to effects which are small. The cards with excessive rules text also are ones which are most likely to be broken from a plausibility standpoint. --Angoel
A wise question. I think my answer is no, it's not a bug, because it's pretty much WorkingAsIntended. The cards are just more fun when they're more complex. However, I agree the eight-ability mammoths are fairly unwieldy, and so I've edited it to make them more unlikely. --AC
Are they 'just more fun'? Let's take random (how else) example from the generator:
Creature - Sliver (3/2, blue)
U: target Wizard gains All green creatures gain ~this~ comes into play with 2 +1/+1 counters on it
~this~ comes into play with 2 +1/+1 counters on it
Discard a card, T: put a +1/+1 counter on ~this~
~this~ comes into play with 2 +1/+1 counters on it
UU: put a +1/+1 counter on ~this~
Remove a +1/+1 counter from ~this~: any number of target Dragons gain All Slivers become a Slivers until end of turn
T, Pay 2 life, remove 4 +1/+1 counters from ~this~: two target Elves get -X/-0, where X is the number of permanents in play (This effect doesn't end at end of turn)
U, remove 1 +1/+1 counter from ~this~: put 1 1/1 colourless Sliver creature token with trample into play
Remove a +1/+1 counter from ~this~: attach target Equipment to target creature. (Control of that Equipment doesn't change.) until end of turn
All creatures with toughness less than or equal to 2 can't be blocked
Is this any fun to play? Or are you going to be spending your entire time with the creature thinking 'hang on - what does it do again?'. And given that you're only going to be using the strongest ability or two, what's the point in the extra ones? Speaking personally, if I want lots of abilities, I'd prefer them to be spread over a number of cards; it's easier to understand, and feels more creative to combo them that way. --Angoel
Hopefully when those abilities do come up now, they'll at least be easier to comprehend.
I guess people's opinions of fun differ. Like I say, I have edited it so that that kind of thing should be less common... but personally? I say, yes, that's absolutely a blast to play! A huge chunk of the fun of Magic for me comes from figuring out the complex interactions between many different effects. The only irritating thing about that example is that it's too strong to get a +1/+1 counter for UU. But apart from that, it's great fun! To always bear in mind that cards in your hand can turn into +1/+1 counters which can in turn become Sliver tokens, Equipment movement or Elf shrinkages... If you add something else that lets you sacrifice Wizards to draw cards, something that lets you change the creature type of red creatures and something that makes all Slivers red, for example, then you've got an engine... if you spot it! Which is what makes /TypeFourGenerated so much fun. Your point about having them spread out is a fair one, and is why I have made the edit I just mentioned; I'm trying to achieve a balance between keeping the cards interesting and making them a manageable size. That's my opinion, anyway; I'd be curious what others think. --AC
I'm a bit of a halfway point, I think. The cards that just have 1 line of text always strike me a little disappointing - especially when (as in my most recent game with Snapdragon) you get a reprint of an existing card! On the other hand, while the odd leviathian of rules is fun, too many do get very confusing. It's possible that Alex's change will get the right balance now - I think we need more Playtesting! (But I'm on holiday, and hence unlikely to wiki much, from Friday until 3rd Jan). --CH
Reprints of existing cards can be quite fun. For example, it's perfectly possible for the Generator to create MTG: Mind's Eye, MTG: Loxodon Warhammer, MTG: Dimir Infiltrator, MTG: Kokusho, the Evening Star, and any number of other funky cards. But things like MTG: Wind Drake will be an order of magnitude or two more common, of course... which, to be fair, is the way Limited should be. One possibility could be that I further reduce the average number of lines on a card, but make /TypeFourGenerated involve generating-and-playing two cards per turn. --AC
I've been thinking about taking out the effects that say "target creature gains big long potentially multi-line ability". They've caused two different bugs today and others in the past, they're often confusing, and they're some of the biggest culprits of the excessive bloat that Angoel objected to. I'd leave in the ability to grant flying, first strike and so on, but only keyword abilities. On the other hand, the bigger ones are silly and great fun on occasion. What do people think? --AC
I've never played with them, but from the perspective of clicking refresh and seeing what's interesting, I'd rather see "All lands gain 'All Slivers gain 'whenever....' until end of turn'" than "All elves gain flying". But then, I've never had to really consider the gameplay implications seriously. --Edwin
Tough call. It can get quite confusing - but it can be in a good way. It does make bugs more likely - but I think my stack should help sort that. As a gut feeling, it might work best if there was some way of limiting granted abilities to be one-deep only (so a card with "All lands gain 'huge-long-multiline-ability'" is fair game, but we wouldn't get "All lands gain 'All slivers gain 'whenever an artifact leaves play, target beast gains '...'''"). Not sure how hairy that would be to implement. --CH
Possibly to be implemented:
Allow noncreature permanents to have permanentkeywordability options like echo, phasing, cumulative upkeep
Regenerating noncreature permanents; make it easier for creatures to have "regenerate ~this~"
Affect one creature in more complex multiple ways à la MTG: Spinal Embrace or MTG: Induce Paranoia (although I won't be doing the "if you spent D on this" part)
Knowing when something is beneficial and when it isn't, to improve things like "if you do" / "don't"
Looking through at how things get done, the only Ravnica-block mechanics (thus far) unrepresented are Dredge and Radiance. Any chance?
They've both been considered. Dredge was rejected for power concerns in /TypeFourGenerated and other Limited settings. When you have an infinite library, it's too strong. Radiance is a bit fiddly, especially as it [applies wider than just creatures], and it would have to involve retroactively applying a prefix once the qualifiedtarget was chosen. Plus many effects won't work on multiple creatures ("Attach target Aura to target creature and each other creature that shares a colour with it"?). So it's not accidental that those two don't exist. Radiance is just about possible; Dredge I'd need quite some convincing to put in. --AC
Valid points. Radiance could, presumably, be added without the keyword, but no urgency. Dredge could probably be put back if the MCG was ever used for non-Type 4 purposes again, but I agree that it should sit on the sidelines for now. --CH
Addition of race-class creature tokens as in Lorwyn - bring in from the /LorwynGenerator
Addition of Hideaway
Addition of general typecycling
Formation of more Block modules like the /LorwynGenerator - pages with overrides for keywords and creature types, to allow generation of cards that appear to come from particular blocks.
In the /LorwynGenerator, prohibit gold cards that aren't in tribe gold pairings
Your suggestion here!
I've noticed that the /TypeFourCreatureGenerator has been generating things other than creatures. Is this a bug that's been introduced recently?
Ooh. Yes, that's yet more fallout from me introducing a third "category" of permanent types (lands, creatures/artifacts/enchantments, and now planeswalkers). Now fixed - thanks! --AC
Enchantment generator seems to be broken similarly, and any chance of getting an instant generator? Also, there have been a number of occasions where it seems to have dropped the card entirely...is this just a server load problem?
If what you're seeing is just "(...)", then that means the generation has taken too many steps, usually indicating an infinite loop. I'd guess Alex would quite like seeds for debugging if you see that. --CH
Never mind, I figured that out. The problem was I was issuing "!gen" in IRC and sometimes absolutely no output, not even (...), was being relayed, but it turns out that was just a bug I had introduced that broke the response-dividing in case of a card that went beyond 400 characters. It's no longer a problem.