deck2hand help

Which cards fetch which other cards, written down by players.

What deck2hand does

Type a card name, then ask it either way round:

  • Who searches this? Every card that can fetch it, best first.
  • What does this search? Everything one searcher can pull.

Players write the entries. The community checks each one before it goes live. Coverage is patchy in places, and anyone with a Discord account can write a missing one.

Destination sets where the card has to end up. Hand is the default; GY, banished, field and face-up Extra Deck are there too. Your settings go into the URL, so links are shareable.


Reading the results

A row is one entry: a searcher, and what it can grab.

  • The sentence under the name is the rule spelled out, like "any Warrior monster with Level 4 or lower".
  • Italics are the trigger or cost, like "If this card is Tributed".
  • HOPT is hard once per turn: once, however many copies you draw. SOFT is once per copy.
  • The letter is a grade. Hover or tab to it for the numbers.

List and Gallery are the same data laid out differently. Clicking a name opens the card.

Signed in, you can vote a row up or down. Votes are per pairing rather than per card, so Sangan can rate well for one target and badly for another.


What the grades mean

A grade is a total out of four parts.

Specificity (0 to 50)

How precisely the effect finds what you want.

Scope Base With extra conditions
Exact name50n/a
Archetype40+7 each, capped at 45
Field filter5+7 each, capped at 45

Two exceptions. A filter entry whose searcher shares an archetype with the target scores from 40, not 5. And an OR counts as its loosest half, so "Level 4 or Level 8" scores like the broader one.

Breadth (0 to −20)

The other half of specificity: how much else the effect would have found. Specificity cannot see that on its own, since one condition scores 12 whether it reads "Warrior" or "Monster".

The measure is the share of your card's own kind the effect can reach, counting only the zones it works in, and it costs a point per 5% of them.

Effect Reaches Costs
Foolish Burial — any monster100%−20
Mathematician — Level 4 or lower74%−15
Sangan — ATK 1500 or less63%−13
Summoner Monk — a Level 4 monster31%−6
Reinforcement of the Army8%−2
Anything naming one card0

Kind is what makes this fair between frames: Terraforming loses 2 for finding Field Spells, while Foolish Burial Goods loses 20 for finding any Spell at all. Counting both against all 14,000 cards would have let every Spell and Trap searcher off.

This catches a few good cards along with the bad ones. Vote them back up.

Speed (5 to 30)

Read off the frame: 30 for Normal and Quick-Play Spells, 25 for other Spells, 15 for monsters, 5 for Traps. The community can override it where the frame lies.

Votes

Added straight on, uncapped either way. They are there because the formula cannot see bad costs, dead modes, or targets nobody would actually fetch.

Grades

Grade From Looks like
S70Named target on a fast Spell
A55Named target on a monster
B40Reinforcement of the Army
C25Summoner Monk
D15Sangan, and most generic dumps
Funder 15Heavily downvoted

Ranking uses the raw total, not the letter.


Steps: longer lines

Steps sets how many actions a line may use. Raising it adds longer lines without dropping the short ones.

Everything starts in the Deck, so Steps 1 shows only effects that pull straight out of it. Monster Reborn turns up at Steps 2, paired with something that gets the card to the GY first.

A step either moves your card or sets up a tool. Foolish Burial into The White Stone of Legend is setup; White Stone adding Blue-Eyes is the part you wanted.

A tool only works from the zone it was put in, which is why Sangan into White Stone is not a line: White Stone lands in your hand, where its GY trigger is dead. Hand is the generous case, since a card there can also use its field effects.

Lines assume the cards they name are in your hand and your Normal Summon is up. Nothing charges you for getting there, so read a long line as a sketch.

A line scores as its weakest action, minus 5 per extra step and 3 per extra zone. Short usually wins.

Multi-step rows vote as a whole. At net -3 a line folds into a section at the bottom. Downvoting asks why, that answer goes to the community, and if it agrees the line moves to a flagged section. Nothing is deleted either way.

Lock effects like "you can only Special Summon Fiends this turn" vary too much to write down, so those actions just say "restriction applies". Hover it.


Adding and fixing entries

  1. Open the Workbench and pick the searcher.
  2. Add a scope per search effect.
  3. Fill in condition and restriction text if there is a trigger, a cost, or a once-per-turn clause.
  4. Submit.

The preview lists what your scopes match. If that list is wrong, the entry is wrong.

My submissions holds your pending and rejected work with any review notes. To fix a live entry, load it and submit an edit; the old one stays up until yours is approved.

Missing entries lists cards that read like searchers with nobody covering them. Good place to start.

Entries describe cards moving between zones. Replacement effects and continuous stat changes are out of scope.


Writing scopes

One scope per effect, so a card with two searches gets two.

Exact name

The card names its target. Pick it and you are done.

Field filter

Conditions on stats and text, joined with AND.

  • Fields: name, type, race, attribute, ATK, DEF, level, Link rating, Pendulum scale, archetype, card text
  • Operators: equals, not equals, contains, less than, greater than
  • Case-sensitive is off by default. Turn it on for things like HERO in caps.
  • Exclude self is on by default.

race is what the game calls Type (Warrior, Fiend, Spellcaster). type is the frame (Effect Monster, Normal Spell).

Write what the card text demands and nothing else. Each condition adds specificity up to the cap.

Archetype

The database's own tag. Kept for old entries, but it often disagrees with what players mean by an archetype, so name contains is usually better. New entries do not offer it.

Examples

Card text Scope
"Add 1 'Blue-Eyes White Dragon'" Exact name
"Add 1 Level 4 or lower Warrior monster" level <= 4 and race == Warrior
"Add 1 monster with 1500 or less ATK" atk <= 1500
"Add 1 'Fire Fist' monster" name contains "Fire Fist"

Zones

Three dropdowns per scope, defaulting to Deck, Hand, and usable from Hand, so a plain tutor needs no clicks.

Dropdown What it means
Target fromWhere the fetched card comes from.
Target toWhere it lands.
Usable fromWhere the searcher itself has to be.

The zones are Deck, Hand, Field, GY, Banished, and the Extra Deck face-down or face-up.

Usable from is the one people get wrong:

  • The White Stone of Legend fires on being sent to the GY, so GY.
  • Angelechy Disturbance banishes itself from the GY, so GY.
  • Abyss Actor - Trendy Understudy fires from the Pendulum Zone, so Field, with target from set to the face-up Extra Deck.

Skip anything the game already forbids. Extra Deck monsters cannot sit in your hand, tokens only exist on the field, and the engine knows both.


Expressions

Filters cover most cards. When they do not, switch the scope to advanced mode. Alice, Lady of Lament wants ATK and DEF adding to exactly 2000, which no filter can say:

Expression Matches
atk + def == 2000 The Alice case.
atk == def Equal ATK and DEF.
(level == 4 or level == 8) and attribute == "DARK" Level 4 or 8 DARK monsters. The builder only joins with AND, so any OR needs an expression.

Typos are rejected as you type, and the preview runs the same code the search does.

Fields

Field Holds
nameThe full card name.
typeThe frame: Effect Monster, Normal Spell, XYZ Monster.
raceWhat the game calls Type. For Spells and Traps, the subtype: Quick-Play, Field, Counter.
attributeDARK, LIGHT, WATER. Monsters only.
atk, defAbsent on Spells and Traps. Link monsters have no def.
levelLevel, or Rank for Xyz. Absent on Link monsters.
linkvalLink rating.
scalePendulum scale.
archetypeThe official tag, with the caveats above.
descThe full card text.
idThe passcode. Rarely useful.

Operators

Operator Does
+ - * /Arithmetic on numbers.
== !=Equal and not equal. Different types never match.
< <= > >=Numeric, or alphabetical when both sides are text.
includesSubstring, case-sensitive: desc includes "cannot attack".
and or notBoolean logic.
( )Grouping.

A missing field compares false, so atk <= 1500 skips Spells and Traps on its own.

Cards that name other cards

The database indexes card names quoted inside card text, which is how Fusion and Ritual support gets written:

  • mentions(expr) is true when this card quotes something matching expr.
  • isMentionedBy(expr) is true when something matching expr quotes this card.
To find Write
Cards named as Fusion Material isMentionedBy(type includes "Fusion")
Ritual Monsters named by a Ritual Spell type includes "Ritual" and isMentionedBy(race == "Ritual")
Ritual Spells for a Ritual Monster race == "Ritual" and mentions(type includes "Ritual")
Cards that name Yubel mentions(name == "Yubel")

Neither one nests, and there are no other functions. The index is as literal as the card text, so "1 'Blue-Eyes' monster" quotes an archetype rather than a card and links nothing.

An expression counts as one condition however long it gets. Pair it with plain conditions when you want specificity.