• Syntax Guide
  • Discord
  • Codeberg
  • Support us!
  • Hemolymph Syntax Guide

    You can perform advanced searches in Hemolymph by using specialized syntax to match specific properties.

    Numbers

    If the property you want to match is a number, you can use a numerical comparison.

    Query Meaning
    power = 2 Power equal to 2
    cost < 2 Cost lower than 2
    health > 2 Health greater than 2
    power <= 2 Cost lower than or equal to 2
    defense >= 2 Cost greater than or equal to 2
    flip != 2 Flip Cost different from 2

    The numerical properties you can match this way are:

    Property You can also use...
    cost c
    health h, hp
    defense d, def
    power p
    flip fc

    Text

    There are three ways to match text:

    Query Meaning
    description:ant description contains the word 'ant'
    name=bee name is exactly equal to 'bee'
    flavor:/.+/ flavor matches the /.+/ regex anywhere

    Only regex queries support spaces (as they are wrapped in slashes). To put spaces in any other text, put them inside double quotation marks (").

    Property You can also use...
    name n
    description d, desc
    flavor ft
    type t
    keyword kw

    Keywords will accept cards where at least one of the keywords matches the text query.

    Kin

    While kins are technically text, they have structure that you might care about while searching. Because of this, there's a few special rules to them.

    If the kin you are matching is not a valid kin, or if you are using regex matching, Hemolymph will default to text matching over the kins.

    However, if it matches a kin exactly as written in card text, it will depend on what kind of query you used.

    Query Meaning
    kin:insect Insect Kin and all the kins under it
    kin=insect Insect kin exactly

    Negation

    What happens if you want a card that doesn't match a query?

    For this, you use a dash before the query.

    However, it's important to know that not every card has every property. For example, all commands are cards that don't have 4 power, but they will not match -p=4. If you want that, use an exclamation mark instead of a dash.

    Logical Operators

    Normally, all queries are ANDed together. This is to say, multiple queries put together will only retrieve cards that match ALL the queries.

    You may want to override this behavior, for example, you may want cards that match cost=1 or power=3, but not necessarily both. You put OR between them for this.

    If you want them to satisfy only one of the two options, you use XOR instead

    Grouping

    Logical operators will only consume the two queries instantly to their sides. You may want them to do more than this. For this, you wrap multiple queries in brackets, just like you would do with a mathematical equation.

    This can also be used to negate chained queries, which is not always the same as negating each individual query.