It is currently 17 Feb 2019, 23:44
   
Text Size

Custom Card Thread

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Custom Card Thread

Postby archon1000 » 12 Apr 2018, 03:31

Hi all, one issue I keep running into as I start out is cards not counting themselves for various things.

For instance, on this creature, I copied the code from Meteor Crater to make a ramp creature with the same effect (just changing perm to creature), but it won't count its own Green color. Is there a 'counts itself' flag? I think if I understand this, I'll solve a lot of pending problems I have...Thanks!

Code: Select all
Name:Ramp Guy
ManaCost:1 G
Types:Creature Human
PT:1/1
A:AB$ ManaReflected  | Cost$ T | ColorOrType$ Color | Valid$ Creature.YouCtrl | ReflectProperty$ Is | SpellDescription$ Choose a color of a creature you control. Add one mana of that color to your mana pool.
Oracle:{T}: Choose a color of a creature you control. Add one mana of that color to your mana pool.
archon1000
 
Posts: 9
Joined: 11 Feb 2015, 16:59
Has thanked: 1 time
Been thanked: 2 times

Re: Custom Card Thread

Postby friarsol » 12 Apr 2018, 12:51

archon1000 wrote:Hi all, one issue I keep running into as I start out is cards not counting themselves for various things.

For instance, on this creature, I copied the code from Meteor Crater to make a ramp creature with the same effect (just changing perm to creature), but it won't count its own Green color. Is there a 'counts itself' flag? I think if I understand this, I'll solve a lot of pending problems I have...Thanks!

Code: Select all
Name:Ramp Guy
ManaCost:1 G
Types:Creature Human
PT:1/1
A:AB$ ManaReflected  | Cost$ T | ColorOrType$ Color | Valid$ Creature.YouCtrl | ReflectProperty$ Is | SpellDescription$ Choose a color of a creature you control. Add one mana of that color to your mana pool.
Oracle:{T}: Choose a color of a creature you control. Add one mana of that color to your mana pool.
That's not really how Valid works. Valid takes all things in the zone (defaulting to the battlefield) and filters by the query you provide. If you are providing "Creature.YouCtrl" then it takes all the creatures you control and use that as the base cards. Then looking for all of the colors they "are".

So it should work the way you are doing it, maybe there's something else going wrong.
friarsol
Global Moderator
 
Posts: 7330
Joined: 15 May 2010, 04:20
Has thanked: 239 times
Been thanked: 908 times

Re: Custom Card Thread

Postby archon1000 » 13 Apr 2018, 02:51

This is my set's other mechanic that I want to make sure is possible before I design any more. I thought I had this one figured out but I can't quite get it after a few hours of reading the API wiki and trial-and-error.

Code: Select all
Name:Death Trigger Guy
ManaCost:R
Types:Creature Human
PT:1/1
K:Haste

T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self+enteredBattlefieldThisTurn | Execute$ TrigDealDamage  | TriggerDescription$ Whenever CARDNAME dies, if it entered the battlefield this turn, it deals 3 damage to target player.

SVar:TrigDealDamage:DB$DealDamage | ValidTgts$ Player | TgtPrompt$ Select target player | NumDmg$ 3
It's an attempt to combine a Hixus, Prison Warden effect with Mudbutton Torchrunner , but the code above will not activate the death trigger at all. Switching out 'enteredBattlefieldThisTurn' for any other variable (such as Human) works. I tried 'IsPresent$ Card.Self+enteredBattlefieldThisTurn' from Hixus' code and that doesn't work either. Any help would be greatly appreciated, or if there's any other resources besides this thread and the wiki, that'd be great too!
archon1000
 
Posts: 9
Joined: 11 Feb 2015, 16:59
Has thanked: 1 time
Been thanked: 2 times

Re: Custom Card Thread

Postby TrueGreenman » 12 Aug 2018, 15:21

I need some help with a card.

I found this design for triple lands that utilizes level counters on the custom mtg subreddit, and wanted to add those on forge.

Here's the code I've writen:
Code: Select all
Name:Esper Island
ManaCost:no cost
Types:Land
K:Level up:1
SVar:maxLevel:5
S:Mode$ Continuous | Affected$ Card.Self | AddAbility$ ManaA | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-4 CARDNAME has "{T}: Add {U}."
S:Mode$ Continuous | Affected$ Card.Self | AddAbility$ ManaB | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 5+ CARDNAME has "{T}: Add {W}{U}{B}."
SVar:ManaA:AB$Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}.
SVar:ManaB:AB$Mana | Cost$ T | Produces$ W U B | SpellDescription$ Add {W}{U}{B}.
SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LT5_LEVEL

SVar:Y:Count$Valid Card.Self+counters_GE5_LEVEL

Oracle:Level up {1} ({1}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-4\n{T}: Add {U}.\nLEVEL 5+\n{T}: Add {W}{U}{B}.
Everything works fine up until the card gets to level 5. Instead of adding {W} {U} {B}, it adds {C}. How do I fix this?
TrueGreenman
 
Posts: 1
Joined: 12 Aug 2018, 15:10
Has thanked: 0 time
Been thanked: 0 time

Re: Custom Card Thread

Postby RumbleBBU » 22 Aug 2018, 03:25

TrueGreenman wrote:Everything works fine up until the card gets to level 5. Instead of adding {W} {U} {B}, it adds {C}. How do I fix this?
Look carefully.

"Produces$ W U B"

Sometimes one little wrong letter is all it takes.
User avatar
RumbleBBU
 
Posts: 383
Joined: 18 Aug 2012, 04:24
Has thanked: 29 times
Been thanked: 64 times

Re: Custom Card Thread

Postby psly4mne » 11 Feb 2019, 19:35

I started playing with Forge this weekend, and I ended up coding most of the custom cards and Un cards I have in my cube.

Scavenging Smith.png

Code: Select all
Name:Scavenging Smith
ManaCost:1 W
Types:Creature Human Soldier
PT:0/2
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | IsPresent$ Card.Self+unequipped | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of your upkeep, if Scavenging Smith isn’t equipped, create a colorless Equipment artifact token named Bonesplitter. It has “Equipped creature gets +2/+0” and equip 1. Attach it to CARDNAME.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Bonesplitter | TokenTypes$ Artifact,Equipment | TokenOwner$ You | TokenColors$ Colorless | TokenKeywords$ Equip:1 | TokenStaticAbilities$ SplitterST | RememberTokens$ True | SubAbility$ DBAttach | SpellDescription$ Create a colorless Equipment artifact token named Bonesplitter. It has "Equipped creature gets +2/+0" and equip {1}.
SVar:SplitterST:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | Description$ Equipped creature gets +2/+0 and has double strike.
SVar:DBAttach:DB$ Attach | Object$ Remembered | Defined$ Self | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHas:Ability$Token
Oracle:At the beginning of your upkeep, if Scavenging Smith isn’t equipped, create a colorless Equipment artifact token named Bonesplitter. It has “Equipped creature gets +2/+0” and equip 1. Attach it to Scavenging Smith.
It of Many Shapes.png

Code: Select all
Name:It of Many Shapes
ManaCost:2 U U
Types:Legendary Planeswalker It
Loyalty:4
A:AB$ Pump | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent | TgtPrompt$ Choose permanent to change | AILogic$ Pump | SubAbility$ ShapesharerCopy | StackDescription$ None | SpellDescription$ Target permanent becomes a copy of target permanent that shares a permanent type with it until your next turn.
SVar:ShapesharerCopy:DB$ Clone | ValidTgts$ Permanent | TgtPrompt$ Choose permanent to copy | CloneTarget$ ParentTarget | Duration$ UntilYourNextTurn
A:AB$ CopyPermanent | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumCopies$ 1 | SetPower$ 0 | SetToughness$ 1 | SpellDescription$ Create a token that’s a copy of target creature except it has base power and toughness 0/1.
A:AB$ Effect | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - It of Many Shapes | Triggers$ EOTTrig | SVars$ ItToken | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "At the beginning of your end step, create a token that’s a copy of target permanent."
SVar:EOTTrig:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command | Execute$ ItToken | TriggerDescription$ At the beginning of your end step, create a token that’s a copy of target permanent.
SVar:ItToken:DB$ CopyPermanent | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | NumCopies$ 1 | SpellDescription$ Create a token that’s a copy of target permanent.
Oracle:[+1]: Target permanent becomes a copy of target permanent that shares a permanent type with it until your next turn.\n[-1]: Create a token that’s a copy of target creature except it has base power and toughness 0/1.\n[-8]: You get an emblem with “At the beginning of your end step, create a token that’s a copy of target permanent.”
Dream Catcher.png

Code: Select all
Name:Dream Catcher
ManaCost:2 U
Types:Artifact
K:etbCounter:LOYALTY:1
S:Mode$ Continuous | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ Player | Description$ Play with the top card of your library revealed.
S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainTextOf$ Permanent.TopLibrary+nonAura+YouCtrl | GainedTextHasThisStaticAbility$ True | Description$ ORIGINALTEXTONLY:As long as the top card of your library is a non-Aura permanent card, Dream Catcher has the full text of that card and has the text “Play with the top card of your library revealed.” It’s still an artifact.
Oracle:Play with the top card of your library revealed.Dream Catcher enters the battlefield with a loyalty counter on it.\nPlay with the top card of your library revealed.\nAs long as the top card of your library is a non-Aura permanent card, Dream Catcher has the full text of that card and has the text “Play with the top card of your library revealed.” It’s still an artifact.
Dream Catcher was tricky. It seems like there's no way to pass the "Play with the top card of your library revealed" ability down to the gained text, but it's not that important. At one point the card also had an always on tap to scry 1. I removed that for balance reasons, but that seems like it would be impossible in Forge.

Nightmare Mimic.png

Code: Select all
Name:Nightmare Mimic
ManaCost:2 B
Types:Artifact
K:etbCounter:LOYALTY:1
T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Permanent.nonAura | TriggerZones$ Battlefield | Execute$ LazavCopy | TriggerDescription$ Whenever a non-Aura permanent card is put into a graveyard from anywhere, Nightmare Mimic becomes a copy of that card, except it’s still an artifact and it gains this ability.
SVar:LazavCopy:DB$ Clone | Defined$ TriggeredCard | AddTypes$ Artifact | GainThisAbility$ True | AddSVars$ LazavCopy
Oracle:Nightmare Mimic enters the battlefield with a loyalty counter on it.\nWhenever a non-Aura permanent card is put into a graveyard from anywhere, Nightmare Mimic becomes a copy of that card, except it’s still an artifact and it gains this ability.
Blast from the Past
Code: Select all
Name:Blast from the Past
ManaCost:2 R
Types:Instant
K:Madness:R
K:Cycling:1 R
K:Kicker:2 R
K:Flashback:3 R
K:Buyback:4 R
A:SP$ DealDamage | Cost$ 2 R | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2 | SubAbility$ DBTok | SpellDescription$ CARDNAME deals 2 damage to any target. If this spell was kicked, create a 1/1 red Goblin creature token.
SVar:DBTok:DB$ Token | Condition$ Kicked | ConditionDescription$ If this spell was kicked | TokenAmount$ 1 | TokenName$ Goblin | TokenTypes$ Creature,Goblin | TokenOwner$ You | TokenColors$ Red | TokenPower$ 1 | TokenToughness$ 1
Oracle:Madness {R}, cycling {1}{R}, kicker {2}{R}, flashback {3}{R}, buyback {4}{R}\nBlast from the Past deals 2 damage to any target. If this spell was kicked, create a 1/1 red Goblin creature token.
Lifebound Druid.png

Code: Select all
Name:Lifebound Druid
ManaCost:1 G
Types:Creature Human Druid
PT:1/2
S:Mode$ Continuous | Affected$ Card.Creature+YouCtrl | AffectedZone$ Stack | AddKeyword$ Convoke | Description$ Creature spells you cast have convoke. (Your creatures can help cast those spells. Each creature you tap while casting a creature spell pays for {1} or one mana of that creature's color.)
S:Mode$ Continuous | EffectZone$ All | Affected$ Card.Self | CharacteristicDefining$ True | SetColor$ All | Description$ CARDNAME is all colors.
AI:RemoveDeck:Random
Oracle:[White/Blue/Black/Red/Green color indicator]\nCreature spells you cast have convoke. (Your creatures can help cast those spells. Each creature you tap while casting an artifact spell pays for {1} or one mana of that creature's color.)
Grave Mimic.png

Code: Select all
Name:Grave Mimic
ManaCost:2 U B
Types:Creature Zombie Shapeshifter
PT:0/0
K:Persist
K:ETBReplacement:Copy:DBCopy:Optional
SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | ChoiceZone$ Graveyard | AddTypes$ Zombie | AddKeywords$ Persist | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature card in a graveyard except it’s a Zombie in addition to its other types and it gains persist.
Oracle:You may have Grave Mimic enter the battlefield as a copy of any creature card in a graveyard except it’s a Zombie in addition to its other types and it gains persist.
This one kind of confused me. The persist that the it gains from the copy effect doesn't actually trigger; the persist that it naturally has does. This seems like a bug.

"Ach! Hans, Run!"
Code: Select all
Name:"Ach! Hans, Run!"
ManaCost:2 R R G G
Types:Enchantment
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigAch | TriggerDescription$ At the beginning of your upkeep, you may search your library for a creature card, put it onto the battlefield, then shuffle your library. That creature gains haste. Exile it at the beginning of the next end step.
SVar:TrigAch:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature | RememberChanged$ True | SubAbility$ DBPump | SpellDescription$ Search your library for a card with that name, put it onto the battlefield, then shuffle your library. That creature gains haste. Exile it at the beginning of the next end step.
SVar:DBPump:DB$ Animate | Keywords$ Haste | Permanent$ True | AtEOT$ Exile | Defined$ Remembered | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:At the beginning of your upkeep, you may say “Ach Hans, run It’s the …” and the name of a creature card. If you do, search your library for a card with that name, put it onto the battlefield, then shuffle your library. That creature gains haste. Exile it at the beginning of the next end step.
Didn't bother with the naming aspect here.

Tasigurs Trance.png

Code: Select all
Name:Tasigur's Trance
ManaCost:3 UB G
Types:Enchantment
K:Delve
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigMill | TriggerDescription$ When CARDNAME enters the battlefield, put the top four cards of your library into your graveyard.
SVar:TrigMill:DB$Mill | NumCards$ 7 | Defined$ You
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, return a nonland card of an opponent's choice from your graveyard to your hand.
SVar:TrigChangeZone:DB$ChangeZone | Origin$ Graveyard | Destination$ Hand | DefinedPlayer$ You | Chooser$ Opponent | Hidden$ True | Mandatory$ True | ChangeType$ Card.nonLand+YouOwn | AILogic$ WorstCard
Oracle:Delve\nWhen Tasigur’s Trance enters the battlefield, put the top seven cards from your library into your graveyard.\nAt the beginning of your upkeep, return a nonland card of an opponent’s choice from your graveyard to your hand.
Sword of Dungeons & Dragons
Code: Select all
Name:Sword of Dungeons & Dragons
ManaCost:3
Types:Artifact Equipment
K:Equip:2
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddToughness$ 2 | AddSVar$ SwordOfBodyAndMindCE | AddKeyword$ Protection from Rogues & Protection from Clerics | Description$ Equipped creature gets +2/+2 and has protection from Rogues and from Clerics.
T:Mode$ DamageDone | ValidSource$ Creature.EquippedBy | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, you you create a 4/4 colorless Dragon creature token with Flying.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Dragon | TokenTypes$ Creature,Dragon | TokenOwner$ You | TokenColors$ Colorless | TokenPower$ 4 | TokenToughness$ 4 | TokenKeywords$ Flying
Oracle:Equipped creature gets +2/+2 and has protection from Rogues and from Clerics.\nWhenever equipped creature deals combat damage to a player, create a 4/4 gold Dragon creature token with flying.\nEquip {2}
I didn't bother with the 1 in 20 roll, might get to it later.

Value Storm.png

Code: Select all
Name:Value Storm
ManaCost:3
Types:Instant
A:SP$ Effect | Cost$ 3 | AILogic$ SpellCopy | Name$ Storm effect | Triggers$ EffSpellCast | SVars$ EffTrigCopy,SC | SpellDescription$ When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy.
SVar:EffSpellCast:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | OneOff$ True | SVars$ SC | Execute$ EffTrigCopy | TriggerZones$ Command | TriggerDescription$ The next instant or sorcery card you cast this turn has storm.
SVar:EffTrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Amount$ SC | References$ SC
SVar:SC:Count$ThisTurnCast_Card/Minus.1
Oracle:The next instant or sorcery card you cast this turn has storm.
Value Storm was really hard for me to figure out, and it's still wrong. It counts storm when the trigger resolves instead of when it triggers. Obviously I couldn't find a way to just grant the storm keyword in a way that worked.

Collapsing Plane.png

The forum won't let me post the code for this one because it interprets some part of it as an external URL, don't know why.
psly4mne
 
Posts: 9
Joined: 11 Feb 2019, 18:35
Has thanked: 0 time
Been thanked: 0 time

Previous

Return to Forge

Who is online

Users browsing this forum: No registered users and 13 guests


Who is online

In total there are 13 users online :: 0 registered, 0 hidden and 13 guests (based on users active over the past 10 minutes)
Most users ever online was 279 on 11 Jul 2013, 22:03

Users browsing this forum: No registered users and 13 guests

Login Form