It is currently 16 Apr 2024, 06:09
   
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: 11
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: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 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: 11
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: 394
Joined: 18 Aug 2012, 04:24
Has thanked: 29 times
Been thanked: 66 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 | TargetsWithSharedTypes$ Creature,Artifact,Enchantment,Planeswalker,Tribal,Land
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

Code: Select all
Name:Collapsing Plane
ManaCost:2 R
Types:World Enchantment
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCorrode | TriggerDescription$ At the beginning of your upkeep, put a collapse counter on each other nonland permanent you control, then sacrifice each permanent you control that has three or more collapse counters on it.
SVar:TrigCorrode:DB$ PutCounterAll | ValidCards$ Permanent.nonLand+YouCtrl+Other | CounterType$ RUST | CounterNum$ 1 | SubAbility$ DBDestroyAllRusted
SVar:DBDestroyAllRusted:DB$ SacrificeAll | ValidCards$ Permanent.nonLand+YouCtrl+counters_GE3_RUST
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigRemove | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, remove all collapse counters from permanents you control.
SVar:TrigRemove:DB$ RemoveCounterAll | ValidCards$ Permanent.YouCtrl | CounterType$ RUST | AllCounters$ True
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Permanent.YouCtrl+nonLand+Other | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever another nonland permanent you control leaves the battlefield, CARDNAME deals 1 damage to any target.
SVar:TrigDamage:DB$DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1
Oracle:At the beginning of your upkeep, put a collapse counter on each other nonland permanent you control, then sacrifice each permanent you control that has three or more collapse counters on it.\nWhen Collapsing Plane leaves the battlefield, remove all collapse counters from permanents you control.\nWhenever another nonland permanent you control leaves the battlefield, Collapsing Plane deals 1 damage to any target.
psly4mne
 
Posts: 20
Joined: 11 Feb 2019, 18:35
Has thanked: 0 time
Been thanked: 1 time

Re: Custom Card Thread

Postby sunsharior » 19 Mar 2019, 01:11

Hi, first time posting here. Long time fan of this software.

I'm trying to create a custom card. After a few hours, i'm happy to say the one i created don't crash the editor but it still don't seems to work like i wanted in game. If a kind soul could maybe help me, i'd be very grateful.

The card is the following.

Name: Pride of the Maelstrom
Cost: {W} {U} {B} {R} {G}
Type: Legendary creature - Dragon
Flying
{X} : Exile the top X cards of each opponent’s library, then for each color of mana spent to activate this ability, you may cast one nonland cards with converted mana cost X or less from among them without paying their mana costs, then put the rest into the bottom of their library in a random order.
P/T: 5/5

To put the ability in layman's term, by paying X i can exile the top X card of all my opponent's library. Then, among those cards, i choose Y nonlands cards with CMC <= X where Y equals the number of colors i used to activate the ability. Y is always >= 0 and <= 5 because only 5 color exist WUBRG. I can then cast those choosen cards for free. All remaining cards go on bottom of their owner's library in a random order.

Thank you very much for your help!


Code: Select all
Name:Pride of the Maelstrom
ManaCost:W U B R G
Types:Legendary Creature Dragon
PT:5/5
K:Flying
A:AB$ Mill | Cost$ X | Defined$ You | SubAbility$ TrigMill | SpellDescription$ Exile the top X cards of each opponent’s library, then for each colors of mana spent to activate this ability, you may cast one nonland cards with converted mana cost X or less from among them without paying their mana costs, then put the rest into the bottom of their library in a random order.
SVar:TrigMill:DB$ Mill | NumCards$ Y | References$ Y | Defined$ Player.Opponent | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | RememberMilled$ True | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | WithoutManaCost$ True | ValidZone$ Exile | Valid$ Card.nonLand+cmcLEX+IsRemembered | Amount$ X | Optional$ True | References$ X | SubAbility$ DBCleanup
SVar:Y:Count$xPaid
SVar:X:Count$Converge
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:Flying\nExile the top X cards of each opponent’s library, then for each colors of mana spent to activate this ability, you may cast one nonland cards with converted mana cost X or less from among them without paying their mana costs, then put the rest into the bottom of their library in a random order.
EDIT:

I Think i solved my own question after all.

Here is the code
Code: Select all
Name:Pride of the Maelstrom
ManaCost:W U B R G
Types:Legendary Creature Dragon
PT:5/5
K:Flying
A:AB$ Mill | Cost$ X | Defined$ You | SubAbility$ TrigMill | SpellDescription$ Exile the top X cards of each opponent’s library, then for each colors of mana spent to activate this ability, you may cast one nonland cards with converted mana cost X or less from among them without paying their mana costs, then put the rest into the bottom of their library in a random order.
SVar:TrigMill:DB$ Mill | NumCards$ X | References$ X | Defined$ Player.Opponent | Destination$ Exile | LibraryPosition$ -1 | RandomOrder$ True | RememberMilled$ True | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | WithoutManaCost$ True | ValidZone$ Exile | Valid$ Card.nonLand+cmcLEX+IsRemembered | Amount$ Y | Optional$ True | References$ Y | SubAbility$ DBChangeZone
SVar:X:Count$xPaid
SVar:Y:Count$Converge
SVar:DBChangeZone:DB$ ChangeZoneAll | Origin$ Exile | ChangeType$ Card.IsRemembered,Card.IsImprinted | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:Flying\nExile the top X cards of each opponent’s library, then for each colors of mana spent to activate this ability, you may cast one nonland cards with converted mana cost X or less from among them without paying their mana costs, then put the rest into the bottom of their library in a random order.
sunsharior
 
Posts: 5
Joined: 19 Mar 2019, 00:54
Has thanked: 0 time
Been thanked: 1 time

Re: Custom Card Thread

Postby FrodoSnackins » 09 Apr 2019, 02:31

I'm new to Forge and I have no clue how to code custom cards, but I'd really like to have some of mine done for commander. Can anyone here either help me figure out how to code them or do it for me? I'd really appreciate it.

Here's the card:

Aliana, The Muse's Beckoning | UWG
Legendary Enchantment Creature - Siren
Bestow 2UWG
You control enchanted creature
Enchanted creature gets +1/+1 and deals damage as though it were your commander.
UWG:Return Aliana to its owner's hand.
1/1
"Beware the shore on which she lies, and hear not her song,
For if you listen to her lies, to her you will belong."
FrodoSnackins
 
Posts: 1
Joined: 09 Apr 2019, 02:25
Has thanked: 0 time
Been thanked: 0 time

Re: Custom Card Thread

Postby LexilconCondran » 23 Apr 2019, 08:25

timmermac wrote:I'm going to challenge the community to come up with custom cards for use in Forge. Post your card scripts in this thread. Please, nothing un-set worthy. Bonus points to those who create more Slivers. More bonus points to those who create the ultimate badass Sliver.
i have 13 cards i wanted to submit to be made into a custom wad
i just dont know how to share the link or whatever
its 13 cards i designed for a butterfly deck, for magic 2014
#-o "I Dont Know What to Do with my Life"

[-o< "So here iam"
User avatar
LexilconCondran
 
Posts: 58
Joined: 23 Apr 2019, 07:53
Has thanked: 15 times
Been thanked: 1 time

Re: Custom Card Thread

Postby aanydoros » 14 Jun 2019, 15:46

Longtime lurker / custom card maker here.

Is a card such as this possible in Forge, where one can pay for spells with Phyrexian mana rather than normal mana?
Attachments
Phyrexian Authority.png
Phyrexian Authority: You may pay for spells with Phyrexian mana rather than normal mana.
aanydoros
 
Posts: 1
Joined: 14 Jun 2019, 15:35
Has thanked: 0 time
Been thanked: 0 time

Re: Custom Card Thread

Postby DIO » 12 Aug 2019, 13:51

Phyrexian Mindlink.full.jpg


phyrexian_mindlink.txt
Code: Select all
Name:Phyrexian Mindlink
ManaCost:2 B B
Types:Enchantment Aura Curse
K:Enchant opponent
A:SP$ Attach | Cost$ 2 B B | ValidTgts$ Opponent | AILogic$ Curse
S:Mode$ Continuous | Affected$ You | AddKeyword$ IgnoreHexproof:Permanent.OppCtrl,Opponent | Description$ Your opponents and permanents your opponents control with hexproof can be the target of spells and abilities you control as though they didn't have hexproof.
T:Mode$ Drawn | ValidCard$ Card.OppOwn | ValidActivatingPlayer$ Player.EnchantedBy | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever enchanted opponent draws a card, you draw a card unless they pay 1 life.
SVar:TrigDraw:DB$Draw | Defined$ You | UnlessCost$ PayLife<1> | UnlessPayer$ Player.EnchantedBy | NumCards$ 1
SVar:Picture:
Oracle:Enchant opponent\nYour opponents and permanents your opponents control with hexproof can be the target of spells and abilities you control as though they didn't have hexproof.\nWhenever enchanted opponent draws a card, you draw a card unless they pay 1 life.
-BUG- The "Whenever enchanted opponent" trigger triggers on every single opponent in a multiplayer game, not just the enchanted one. Not sure what I'm doing wrong here, though not a problem in a typical 1v1 duel.
Last edited by DIO on 12 Aug 2019, 15:52, edited 1 time in total.
DIO
 
Posts: 4
Joined: 12 Aug 2019, 13:14
Has thanked: 0 time
Been thanked: 0 time

Re: Custom Card Thread

Postby DIO » 12 Aug 2019, 15:51

Advent of the Dreadmaw.full.jpg
g_6_6_colossal_dreadmaw_mse.jpg


advent_of_the_dreadmaw.txt
Code: Select all
Name:Advent of the Dreadmaw
ManaCost:4 G G
Types:Sorcery
K:Epic
A:SP$ Token | Cost$ 4 G G | LegacyImage$ g 6 6 colossal dreadmaw mse | TokenScript$ g_6_6_colossal_dreadmaw | TokenOwner$ You | SpellDescription$ Create Colossal Dreadmaw, a 6/6 green Dinosaur creature token with trample.
DeckHas:Ability$Token
AI:RemoveDeck:Random
SVar:Picture:
Oracle:Create Colossal Dreadmaw, a 6/6 green Dinosaur creature token with trample.\nEpic (For the rest of the game, you can't cast spells. At the beginning of each of your upkeeps, copy this spell except for its epic ability.)

g_6_6_colossal_dreadmaw.txt
Code: Select all
Name:Colossal Dreadmaw
Types:Creature Dinosaur
Colors:green
ManaCost:no cost
PT:6/6
K:Trample
Oracle:Trample
DIO
 
Posts: 4
Joined: 12 Aug 2019, 13:14
Has thanked: 0 time
Been thanked: 0 time

Re: Custom Card Thread

Postby DIO » 13 Aug 2019, 22:26

Flux

This is an implementation of the Flux mechanic from a popular r/custommagic post by u/Spiderfuzz. It creates a moon under your control, a double faced token enchantment that transforms at the beginning of your upkeep. It begins as "The Full Moon", then transforms to "The Dark Moon", then transforms again and so on. It doesn't really do anything by itself, but other permanents and spells might care about its state.

I had to use a permanent to keep track of the moon state, so I decided to make it a legendary enchantment whose color is white when "full" and black when "dark" for flavor. This also means it interacts with things that care about its color or types. This mechanic is too rules-y and wordy to fully explain on the card itself, and is absolutely unprintable, but who cares ? Would be great in a custom set that cares for it.

Images:
Twilight Prowler.full.jpg
moon_mse.jpg


Code:
twilight_prowler.txt
| Open
Code: Select all
Name:Twilight Prowler
ManaCost:1 B B
Types:Creature Beast
PT:3/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ MoonCreate | IsPresent$ Permanent.YouCtrl+namedThe Full Moon,Permanent.YouCtrl+namedThe Dark Moon | PresentCompare$ EQ0 | TriggerDescription$ Flux (When this permanent enters the battlefield, if you don't control The Moon, you get The Moon.)
SVar:MoonCreate:DB$Token | TokenAmount$ 1 | TokenScript$ moon | TokenOwner$ You | LegacyImage$ moon mse
S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Defender | IsPresent$ Permanent.YouCtrl+namedThe Full Moon | PresentCompare$ GE1 | Description$ CARDNAME has defender as long as you control The Full Moon.
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Haste | IsPresent$ Permanent.YouCtrl+namedThe Dark Moon | PresentCompare$ GE1 | Description$ CARDNAME gets +2/+2 and has haste as long as you control The Dark Moon.
SVar:Picture:
Oracle:Flux (When this permanent enters the battlefield, if you don't control The Moon, you get The Moon.)\nTwilight Prowler has defender as long as you control The Full Moon.\nTwilight Prowler gets +2/+2 and has haste as long as you control The Dark Moon.
moon.txt
| Open
Code: Select all
Name:The Full Moon
ManaCost:no cost
Colors:white
Types:Legendary Enchantment
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBTransform | SpellDescription$ At the beginning of your upkeep, transform CARDNAME.
SVar:DBTransform:DB$SetState | Defined$ Self | Mode$ Transform
SVar:Picture:
AlternateMode:DoubleFaced
Oracle:(The Moon always starts full.)\nAt the beginning of your upkeep, transform The Full Moon.

ALTERNATE

Name:The Dark Moon
ManaCost:no cost
Colors:black
Types:Legendary Enchantment
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBTransform2 | SpellDescription$ At the beginning of your upkeep, transform CARDNAME.
SVar:DBTransform2:DB$SetState | Defined$ Self | Mode$ Transform
SVar:Picture:
Oracle:At the beginning of your upkeep, transform The Dark Moon.
DIO
 
Posts: 4
Joined: 12 Aug 2019, 13:14
Has thanked: 0 time
Been thanked: 0 time

Re: Custom Card Thread

Postby Pox22 » 22 May 2020, 18:57

I realize this is far from the most active thread around here, but I thought it would be more appropriate to post here than to create another thread.

I've been experimenting with scripting custom cards in forge--mostly by splicing effects from different cards together to create simple designs. I've learned a bit of the syntax this way, but still not enough to work out complex code from scratch.

I'm currently trying to implement this design:
Image

Most of this was quite simple--just take Aminatou, the Fateshifter, change the name, cost, and +1 ability accordingly. Grafting a temporary Future Sight to the -3 ability has been harder to figure out. Here is my code:

Name:Matthias, Fateseer
ManaCost:U U
Types:Legendary Planeswalker Matthias
Loyalty:2
Text:CARDNAME can be your commander.
A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | NumCards$ 2 | SubAbility$ DBTop | SpellDescription$ Draw two cards, then put two cards from your hand on top of your library.
SVar:DBTop:DB$ ChangeZone | Origin$ Hand | Destination$ Library | ChangeType$ Card | ChangeNum$ 2 | Mandatory$ True
A:AB$Effect | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ Player | MayPlay$ True | Description$ Play with the top card of your library revealed. You may play the top card of your library.
SVar:NonStackingEffect:True

SVar:Picture: https://i.imgur.com/zYbQuZv.jpg
Oracle:[+1]: Draw two cards, then put two cards from your hand on top of your library.\n[-3]: Until end of turn, You may look at and play the top card of your library. Matthias, Fateseer can be your commander.
I assumed that I could just graft the relevant scripting from Future Sight onto an A:AB$Effect ability. This, as I have it, clearly isn't how to implement it, since the ability does not appear as an option when Mathis has 3 or more loyalty. What am I missing? Thank you for your help!

EDIT: I have gotten the ability to appear as an option to activate because it was missing "Planeswalker$ True," but upon activating the ability, it doesn't seem to actually do anything. So that alone wasn't the problem.
Pox22
 
Posts: 7
Joined: 23 Dec 2016, 03:36
Has thanked: 1 time
Been thanked: 0 time

Re: Custom Card Thread

Postby squee1968 » 23 May 2020, 09:33

This will get you a little closer to what you want, but I playtested it, and it's still not working properly.
Code: Select all
Name:Matthias, Fateseer
ManaCost:U U
Types:Legendary Planeswalker Matthias
Loyalty:2
Text:CARDNAME can be your commander.
A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | NumCards$ 2 | SubAbility$ DBTop | SpellDescription$ Draw two cards, then put two cards from your hand on top of your library.
SVar:DBTop:DB$ ChangeZone | Origin$ Hand | Destination$ Library | ChangeType$ Card | ChangeNum$ 2 | Mandatory$ True
A:AB$ Effect | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ExileOnMoved$ Battlefield | SVars$ Sight,Blindness,ExileEffect | References$ Sight,Blindness,ExileEffect | SpellDescription$ Until end of turn, You may look at and play the top card of your library.
SVar:Sight:Mode$ Continuous | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ Player | MayPlay$ True | Description$ Until end of turn, You may look at and play the top card of your library.
SVar:Blindness:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ ExileEffect | TriggerZones$ Battlefield
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
SVar:NonStackingEffect:True
Oracle:[+1]: Draw two cards, then put two cards from your hand on top of your library.\n[-3]: Until end of turn, You may look at and play the top card of your library. Matthias, Fateseer can be your commander.
The picture-downloading code is obsolete.
squee1968
 
Posts: 254
Joined: 18 Nov 2011, 03:28
Has thanked: 110 times
Been thanked: 45 times

PreviousNext

Return to Forge

Who is online

Users browsing this forum: No registered users and 63 guests


Who is online

In total there are 63 users online :: 0 registered, 0 hidden and 63 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 63 guests

Login Form