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.